back to scratko.xyz
aboutsummaryrefslogtreecommitdiff
path: root/server/server_data_processing.c
diff options
context:
space:
mode:
Diffstat (limited to 'server/server_data_processing.c')
-rw-r--r--server/server_data_processing.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/server/server_data_processing.c b/server/server_data_processing.c
index 41e4b08..40ce5e3 100644
--- a/server/server_data_processing.c
+++ b/server/server_data_processing.c
@@ -235,10 +235,14 @@ int get_cards_from_attacker(struct session *client,
const char *stack_card = NULL;
read_result = read_from_client(client->fd, client->buffer, max_buffer_size);
+
+#if DEBUG
printf("%d\n", read_result);
for(i = 0; i < read_result; ++i)
putchar(client->buffer[i]);
putchar('\n');
+#endif
+
if(!read_result)
return read_result;
for(i = 0, j = 0; i < read_result; ++i) {
@@ -261,6 +265,7 @@ int get_cards_from_attacker(struct session *client,
data_length = sprintf(output_buffer, "%d:%s\n", card_acceptance_status,
all_cards_received_status ? "all" : "not all");
write_to_client(client->fd, data_length);
+ sleep(2);
return read_result;
}
@@ -280,14 +285,21 @@ int get_card_from_defender(struct session *client, struct cards_on_table *cot,
const char *stack_card = NULL;
read_result = read_from_client(client->fd, client->buffer, max_buffer_size);
+
+#if DEBUG
printf("%d\n", read_result);
for(i = 0; i < read_result; ++i)
putchar(client->buffer[i]);
putchar('\n');
+#endif
+
if(!read_result)
return read_result;
- if(client->buffer[0] == '\n')
+ if(client->buffer[0] == '\n') {
+ /* the client sees “accepting cards” at the same time */
+ sleep(2);
return 1;
+ }
for(i = 0; i < read_result && client->buffer[i] != '\n'; ++i)
given_card[i] = client->buffer[i];
given_card[i] = '\0';
@@ -321,16 +333,23 @@ int get_cards_from_tossing_player(struct session *client,
const char *stack_card = NULL;
read_result = read_from_client(client->fd, client->buffer, max_buffer_size);
+
+#if DEBUG
printf("%d\n", read_result);
for(i = 0; i < read_result; ++i)
putchar(client->buffer[i]);
putchar('\n');
+#endif
+
if(!read_result)
return read_result;
/* cancellation */
- if(client->buffer[0] == '\n')
+ if(client->buffer[0] == '\n') {
+ /* the client sees “skipping the card toss” at the same time */
+ sleep(2);
return cancel;
+ }
for(i = 0, j = 0; i < read_result; ++i) {
if(client->buffer[i] == '\\') {
@@ -363,6 +382,7 @@ int get_cards_from_tossing_player(struct session *client,
data_length = sprintf(output_buffer, "%d:%s\n", card_acceptance_status,
all_cards_received_status ? "all" : "not all");
write_to_client(client->fd, data_length);
+ sleep(2);
if(!card_return_status)
return answer_got;
else