Browse Source

More httpd work.

default 2 years ago
parent
commit
e7c886beb7
4 changed files with 53 additions and 4 deletions
  1. 3 1
      Makefile
  2. 5 3
      httpd.c
  3. 43 0
      main.c
  4. 2 0
      snac.h

+ 3 - 1
Makefile

@@ -2,7 +2,7 @@ CFLAGS=-g -Wall
 
 all: snac
 
-snac: snac.o main.o data.o http.o
+snac: snac.o main.o data.o http.o httpd.o
 	$(CC) -L/usr/local/lib *.o -lcurl -lcrypto -o $@
 
 .c.o:
@@ -19,3 +19,5 @@ main.o: main.c snac.h xs.h
 data.o: data.c snac.h xs.h xs_json.h xs_openssl.h
 
 http.o: http.c snac.h xs.h xs_io.h xs_encdec.h xs_openssl.h xs_curl.h
+
+httpd.o: http.c snac.h xs.h xs_encdec.h xs_socket.h xs_httpd.h

+ 5 - 3
httpd.c

@@ -2,11 +2,8 @@
 /* copyright (c) 2022 grunfink - MIT license */
 
 #include "xs.h"
-#include "xs_io.h"
 #include "xs_encdec.h"
 #include "xs_json.h"
-#include "xs_curl.h"
-#include "xs_openssl.h"
 #include "xs_socket.h"
 #include "xs_httpd.h"
 
@@ -23,6 +20,11 @@ void httpd_connection(int rs)
 
     req = xs_httpd_request(f);
 
+    {
+        xs *j = xs_json_dumps_pp(req, 4);
+        printf("%s\n", j);
+    }
+
     fclose(f);
 }
 

+ 43 - 0
main.c

@@ -7,7 +7,49 @@
 
 #include "snac.h"
 
+int usage(void)
+{
+    printf("usage:\n");
+    return 1;
+}
+
+
 int main(int argc, char *argv[])
+{
+    char *cmd;
+    char *basedir;
+    int argi = 1;
+
+    argc--;
+    if (argc < argi)
+        return usage();
+
+    cmd = argv[argi++];
+
+    if (strcmp(cmd, "init") == 0) {
+        return 0;
+    }
+
+    if (argc < argi)
+        return usage();
+
+    basedir = argv[argi++];
+
+    if (!srv_open(basedir)) {
+        srv_log(xs_fmt("error opening database at %s", basedir));
+        return 1;
+    }
+
+    if (strcmp(cmd, "httpd") == 0) {
+        httpd();
+        return 0;
+    }
+
+    return 0;
+}
+
+
+#if 0
 {
     snac snac;
 
@@ -85,3 +127,4 @@ int main(int argc, char *argv[])
 
     return 0;
 }
+#endif

+ 2 - 0
snac.h

@@ -67,3 +67,5 @@ d_char *http_signed_request(snac *snac, char *method, char *url,
                         d_char *headers,
                         d_char *body, int b_size,
                         int *status, d_char **payload, int *p_size);
+
+void httpd(void);