| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- /* snac - A simple, minimalistic ActivityPub instance */
- /* copyright (c) 2022 grunfink - MIT license */
- #include "xs.h"
- #include "xs_encdec.h"
- #include "xs_json.h"
- #include "xs_socket.h"
- #include "xs_httpd.h"
- #include "snac.h"
- void httpd_connection(int rs)
- /* the connection loop */
- {
- FILE *f;
- xs *req;
- f = xs_socket_accept(rs);
- req = xs_httpd_request(f);
- {
- xs *j = xs_json_dumps_pp(req, 4);
- printf("%s\n", j);
- }
- fclose(f);
- }
- void httpd(void)
- /* starts the server */
- {
- 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_running = 1;
- srv_log(xs_fmt("httpd start %s:%d", address, port));
- for (;;) {
- httpd_connection(rs);
- }
- srv_log(xs_fmt("httpd stop %s:%d", address, port));
- }
|