summaryrefslogtreecommitdiffstats
path: root/nserver
diff options
context:
space:
mode:
authorrsiddharth <s@ricketyspace.net>2019-11-21 21:11:51 -0500
committerrsiddharth <s@ricketyspace.net>2020-04-17 20:56:35 -0400
commit9a1bac7fc8ecbc2c47b72a9df4b72dfabfe058bd (patch)
treedc17e729159c98bf0e8fa8ac9fc4acb786b1fd94 /nserver
parent651f8a9ea23498d5adde77b89d94d85f654672b4 (diff)
nserve: Add check_cmd_size.
* nserver/src/nserve.c (check_cmd_size): New function. * nserver/src/nserve.h (CMD_SIZE): New constant.
Diffstat (limited to 'nserver')
-rw-r--r--nserver/src/nserve.c19
-rw-r--r--nserver/src/nserve.h3
2 files changed, 22 insertions, 0 deletions
diff --git a/nserver/src/nserve.c b/nserver/src/nserve.c
index 3d27c19..00ce905 100644
--- a/nserver/src/nserve.c
+++ b/nserver/src/nserve.c
@@ -25,6 +25,25 @@ int barfsock(char *buf, size_t buf_sz, int sock)
return -1;
}
+
+int check_cmd_size(char *cmd, int sock)
+{
+ check(cmd != NULL, "cmd is NULL");
+
+ size_t len = strlen(cmd);
+ if (len <= CMD_SIZE) {
+ return 0;
+ }
+
+ char *err = "error: command invalid: size > 120 characters\n";
+ send(sock, err, strlen(err), 0);
+
+ return 1;
+ error:
+ return -1;
+}
+
+
void nserve(int sock)
{
size_t buf_sz = 200;
diff --git a/nserver/src/nserve.h b/nserver/src/nserve.h
index ba80fd0..14e1b02 100644
--- a/nserver/src/nserve.h
+++ b/nserver/src/nserve.h
@@ -2,6 +2,7 @@
#define _nserve_h
#include <stdlib.h>
+#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
@@ -9,6 +10,8 @@
#include <dbg.h>
#include <ringbuffer.h>
+#define CMD_SIZE 120
+
void nserve(int sock);
#endif