| summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/server/server_worker_send.c')
| -rw-r--r-- | src/server/server_worker_send.c | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/src/server/server_worker_send.c b/src/server/server_worker_send.c new file mode 100644 index 0000000..6ba6d67 --- /dev/null +++ b/src/server/server_worker_send.c @@ -0,0 +1,106 @@ +#include "../pervasive.h" + +#include "server.h" + +int ZoO_server_worker_send_confirm_protocol_version +( + struct ZoO_server_worker worker [const restrict static 1] +) +{ + int err; + + err = fprintf(worker->socket_as_file, "!CPV 1\n"); + + if (err <= 0) + { + /* TODO: error message? */ + + return -1; + } + + return 0; +} + +int ZoO_server_worker_send_positive +( + struct ZoO_server_worker worker [const restrict static 1] +) +{ + int err; + + err = fprintf(worker->socket_as_file, "!P\n"); + + if (err <= 0) + { + /* TODO: error message? */ + + return -1; + } + + return 0; +} + +int ZoO_server_worker_send_negative +( + struct ZoO_server_worker worker [const restrict static 1] +) +{ + int err; + + err = fprintf(worker->socket_as_file, "!N\n"); + + if (err <= 0) + { + /* TODO: error message? */ + + return -1; + } + + return 0; +} + +int ZoO_server_worker_send_generated_reply +( + struct ZoO_server_worker worker [const restrict static 1] +) +{ + int err; + + /* TODO */ + err = fputs + ( + "!GR ", + worker->socket_as_file + ); + + if (err <= 0) + { + /* TODO: error message? */ + + return -1; + } + + err = + fwrite + ( + worker->buffer, + sizeof(ZoO_char), + worker->buffer_length, + worker->socket_as_file + ); + + err = fputs + ( + "\n", + worker->socket_as_file + ); + + if (err <= 0) + { + /* TODO: error message? */ + + return -1; + } + + return 0; +} |


