summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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