|
@@ -0,0 +1,52 @@
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+#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"
|
|
|
+
|
|
|
+#include "snac.h"
|
|
|
+
|
|
|
+
|
|
|
+void httpd_connection(int rs)
|
|
|
+
|
|
|
+{
|
|
|
+ FILE *f;
|
|
|
+ xs *req;
|
|
|
+
|
|
|
+ f = xs_socket_accept(rs);
|
|
|
+
|
|
|
+ req = xs_httpd_request(f);
|
|
|
+
|
|
|
+ fclose(f);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void httpd(void)
|
|
|
+
|
|
|
+{
|
|
|
+ char *address;
|
|
|
+ int port;
|
|
|
+ int rs;
|
|
|
+
|
|
|
+ address = xs_dict_get(srv_config, "address");
|
|
|
+ port = xs_number_get(xs_dict_get(srv_config, "port"));
|
|
|
+
|
|
|
+ if ((rs = xs_socket_server(address, port)) == -1) {
|
|
|
+ srv_log(xs_fmt("cannot bind socket to %s:%d", address, port));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ srv_log(xs_fmt("httpd start %s:%d", address, port));
|
|
|
+
|
|
|
+ for (;;) {
|
|
|
+ httpd_connection(rs);
|
|
|
+ }
|
|
|
+
|
|
|
+ srv_log(xs_fmt("httpd stop %s:%d", address, port));
|
|
|
+}
|