summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-02-09 20:03:33 +0100
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-02-09 20:03:33 +0100
commit7af295b2ec22f06b24079bf895ac97079f64b6d7 (patch)
tree84a554fc2c169956e3ee975152332c39f6c3615a /src/server/server_worker_send.c
parent9ca43c73ba29d6b42cd771f1567074418c883c3e (diff)
It's starting to "properly" reply...
The ACSL coverage is far behind though.
Diffstat (limited to 'src/server/server_worker_send.c')
-rw-r--r--src/server/server_worker_send.c106
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;
+}