diff --git a/faith-server/.cache/clangd/index/client_io.c.8C2D040904B1271A.idx b/faith-server/.cache/clangd/index/client_io.c.8C2D040904B1271A.idx deleted file mode 100644 index 5eacaf8..0000000 Binary files a/faith-server/.cache/clangd/index/client_io.c.8C2D040904B1271A.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/client_io.h.02B6A8499A7E62C3.idx b/faith-server/.cache/clangd/index/client_io.h.02B6A8499A7E62C3.idx deleted file mode 100644 index 47ef1b6..0000000 Binary files a/faith-server/.cache/clangd/index/client_io.h.02B6A8499A7E62C3.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/client_lifecycle.c.AB824C4EC105D87F.idx b/faith-server/.cache/clangd/index/client_lifecycle.c.AB824C4EC105D87F.idx deleted file mode 100644 index 93c2a16..0000000 Binary files a/faith-server/.cache/clangd/index/client_lifecycle.c.AB824C4EC105D87F.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/client_lifecycle.h.280ED39EEEE6D916.idx b/faith-server/.cache/clangd/index/client_lifecycle.h.280ED39EEEE6D916.idx deleted file mode 100644 index 209a1a0..0000000 Binary files a/faith-server/.cache/clangd/index/client_lifecycle.h.280ED39EEEE6D916.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/conn.c.286E7B4DB3D17795.idx b/faith-server/.cache/clangd/index/conn.c.286E7B4DB3D17795.idx deleted file mode 100644 index 287b507..0000000 Binary files a/faith-server/.cache/clangd/index/conn.c.286E7B4DB3D17795.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/conn.h.5B957B46D88BFFFE.idx b/faith-server/.cache/clangd/index/conn.h.5B957B46D88BFFFE.idx deleted file mode 100644 index ba15d5f..0000000 Binary files a/faith-server/.cache/clangd/index/conn.h.5B957B46D88BFFFE.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/conversation.c.9D5FE9B9ECB56104.idx b/faith-server/.cache/clangd/index/conversation.c.9D5FE9B9ECB56104.idx deleted file mode 100644 index 5873b6c..0000000 Binary files a/faith-server/.cache/clangd/index/conversation.c.9D5FE9B9ECB56104.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/conversation.h.CA8AEBC729A90768.idx b/faith-server/.cache/clangd/index/conversation.h.CA8AEBC729A90768.idx deleted file mode 100644 index 749b146..0000000 Binary files a/faith-server/.cache/clangd/index/conversation.h.CA8AEBC729A90768.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/device_link.c.D1E762ACED786DDA.idx b/faith-server/.cache/clangd/index/device_link.c.D1E762ACED786DDA.idx deleted file mode 100644 index bdb578a..0000000 Binary files a/faith-server/.cache/clangd/index/device_link.c.D1E762ACED786DDA.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/device_link.h.22C5EBE709AB0D7E.idx b/faith-server/.cache/clangd/index/device_link.h.22C5EBE709AB0D7E.idx deleted file mode 100644 index 06926d0..0000000 Binary files a/faith-server/.cache/clangd/index/device_link.h.22C5EBE709AB0D7E.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/dispatch.c.3F46910E43D46093.idx b/faith-server/.cache/clangd/index/dispatch.c.3F46910E43D46093.idx deleted file mode 100644 index 5ff90c3..0000000 Binary files a/faith-server/.cache/clangd/index/dispatch.c.3F46910E43D46093.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/dispatch.c.62F9B44B4E07CE38.idx b/faith-server/.cache/clangd/index/dispatch.c.62F9B44B4E07CE38.idx deleted file mode 100644 index a440897..0000000 Binary files a/faith-server/.cache/clangd/index/dispatch.c.62F9B44B4E07CE38.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/dispatch.h.2F9F87B70FC609EE.idx b/faith-server/.cache/clangd/index/dispatch.h.2F9F87B70FC609EE.idx deleted file mode 100644 index 151cd86..0000000 Binary files a/faith-server/.cache/clangd/index/dispatch.h.2F9F87B70FC609EE.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/dispatch.h.FD8C25C3BCFF72D4.idx b/faith-server/.cache/clangd/index/dispatch.h.FD8C25C3BCFF72D4.idx deleted file mode 100644 index 7f2f5e7..0000000 Binary files a/faith-server/.cache/clangd/index/dispatch.h.FD8C25C3BCFF72D4.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/envelopes.h.436F9D61FC5EFB78.idx b/faith-server/.cache/clangd/index/envelopes.h.436F9D61FC5EFB78.idx deleted file mode 100644 index 87a4c4e..0000000 Binary files a/faith-server/.cache/clangd/index/envelopes.h.436F9D61FC5EFB78.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/event_inbox.c.14FF782EECCF5E8E.idx b/faith-server/.cache/clangd/index/event_inbox.c.14FF782EECCF5E8E.idx deleted file mode 100644 index 5b3ba89..0000000 Binary files a/faith-server/.cache/clangd/index/event_inbox.c.14FF782EECCF5E8E.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/event_inbox.h.D41BD20F8085C3D1.idx b/faith-server/.cache/clangd/index/event_inbox.h.D41BD20F8085C3D1.idx deleted file mode 100644 index e8cb797..0000000 Binary files a/faith-server/.cache/clangd/index/event_inbox.h.D41BD20F8085C3D1.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/events.c.14865C6D9A01D9DB.idx b/faith-server/.cache/clangd/index/events.c.14865C6D9A01D9DB.idx deleted file mode 100644 index ecee3c7..0000000 Binary files a/faith-server/.cache/clangd/index/events.c.14865C6D9A01D9DB.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/events.h.CFA4CC35D07DB522.idx b/faith-server/.cache/clangd/index/events.h.CFA4CC35D07DB522.idx deleted file mode 100644 index 661de2f..0000000 Binary files a/faith-server/.cache/clangd/index/events.h.CFA4CC35D07DB522.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/faithd.c.6F79CE9E9CA84501.idx b/faith-server/.cache/clangd/index/faithd.c.6F79CE9E9CA84501.idx deleted file mode 100644 index 3b938ce..0000000 Binary files a/faith-server/.cache/clangd/index/faithd.c.6F79CE9E9CA84501.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/frame.c.C80373E52C9BB8D2.idx b/faith-server/.cache/clangd/index/frame.c.C80373E52C9BB8D2.idx deleted file mode 100644 index 5cebed7..0000000 Binary files a/faith-server/.cache/clangd/index/frame.c.C80373E52C9BB8D2.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/frame.h.65765AAFBD5799C5.idx b/faith-server/.cache/clangd/index/frame.h.65765AAFBD5799C5.idx deleted file mode 100644 index af48197..0000000 Binary files a/faith-server/.cache/clangd/index/frame.h.65765AAFBD5799C5.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/handshake.c.D817BD515F58D030.idx b/faith-server/.cache/clangd/index/handshake.c.D817BD515F58D030.idx deleted file mode 100644 index 09e9cab..0000000 Binary files a/faith-server/.cache/clangd/index/handshake.c.D817BD515F58D030.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/handshake.h.A3CA9501DDF10B53.idx b/faith-server/.cache/clangd/index/handshake.h.A3CA9501DDF10B53.idx deleted file mode 100644 index 861c15d..0000000 Binary files a/faith-server/.cache/clangd/index/handshake.h.A3CA9501DDF10B53.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/helpers.h.0A0CA671275D72A7.idx b/faith-server/.cache/clangd/index/helpers.h.0A0CA671275D72A7.idx deleted file mode 100644 index f4a32eb..0000000 Binary files a/faith-server/.cache/clangd/index/helpers.h.0A0CA671275D72A7.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/logging.c.CC1D02F5F22FC37C.idx b/faith-server/.cache/clangd/index/logging.c.CC1D02F5F22FC37C.idx deleted file mode 100644 index acaa70d..0000000 Binary files a/faith-server/.cache/clangd/index/logging.c.CC1D02F5F22FC37C.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/logging.h.8637C57BCD33C9F5.idx b/faith-server/.cache/clangd/index/logging.h.8637C57BCD33C9F5.idx deleted file mode 100644 index df1f8f7..0000000 Binary files a/faith-server/.cache/clangd/index/logging.h.8637C57BCD33C9F5.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/nob.h.6412967F74601D00.idx b/faith-server/.cache/clangd/index/nob.h.6412967F74601D00.idx deleted file mode 100644 index 2852eef..0000000 Binary files a/faith-server/.cache/clangd/index/nob.h.6412967F74601D00.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/reactor.c.3515F166852BDD2E.idx b/faith-server/.cache/clangd/index/reactor.c.3515F166852BDD2E.idx deleted file mode 100644 index 5674dbf..0000000 Binary files a/faith-server/.cache/clangd/index/reactor.c.3515F166852BDD2E.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/reactor.h.87443FCCBE09285A.idx b/faith-server/.cache/clangd/index/reactor.h.87443FCCBE09285A.idx deleted file mode 100644 index 2cdd0fa..0000000 Binary files a/faith-server/.cache/clangd/index/reactor.h.87443FCCBE09285A.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/routing.c.E27785336B8F53E8.idx b/faith-server/.cache/clangd/index/routing.c.E27785336B8F53E8.idx deleted file mode 100644 index f88d828..0000000 Binary files a/faith-server/.cache/clangd/index/routing.c.E27785336B8F53E8.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/routing.h.60EB94C2BAE0BA8C.idx b/faith-server/.cache/clangd/index/routing.h.60EB94C2BAE0BA8C.idx deleted file mode 100644 index d472810..0000000 Binary files a/faith-server/.cache/clangd/index/routing.h.60EB94C2BAE0BA8C.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/server.c.65834361912DC0E7.idx b/faith-server/.cache/clangd/index/server.c.65834361912DC0E7.idx deleted file mode 100644 index 6dde3b5..0000000 Binary files a/faith-server/.cache/clangd/index/server.c.65834361912DC0E7.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/server.h.9B962C063EC7D2A2.idx b/faith-server/.cache/clangd/index/server.h.9B962C063EC7D2A2.idx deleted file mode 100644 index 8892c19..0000000 Binary files a/faith-server/.cache/clangd/index/server.h.9B962C063EC7D2A2.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/sess_registry.c.9D0B46F1EA937F9A.idx b/faith-server/.cache/clangd/index/sess_registry.c.9D0B46F1EA937F9A.idx deleted file mode 100644 index e6c8d78..0000000 Binary files a/faith-server/.cache/clangd/index/sess_registry.c.9D0B46F1EA937F9A.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/sess_registry.h.F5B121E6DD5BAABC.idx b/faith-server/.cache/clangd/index/sess_registry.h.F5B121E6DD5BAABC.idx deleted file mode 100644 index a79d669..0000000 Binary files a/faith-server/.cache/clangd/index/sess_registry.h.F5B121E6DD5BAABC.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/stb_ds.h.D3BDF2CD136698C1.idx b/faith-server/.cache/clangd/index/stb_ds.h.D3BDF2CD136698C1.idx deleted file mode 100644 index ce5bc4a..0000000 Binary files a/faith-server/.cache/clangd/index/stb_ds.h.D3BDF2CD136698C1.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/tls.c.DD6BA93D6A5579FE.idx b/faith-server/.cache/clangd/index/tls.c.DD6BA93D6A5579FE.idx deleted file mode 100644 index 190837d..0000000 Binary files a/faith-server/.cache/clangd/index/tls.c.DD6BA93D6A5579FE.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/tls.h.6C3692A6EC4A764A.idx b/faith-server/.cache/clangd/index/tls.h.6C3692A6EC4A764A.idx deleted file mode 100644 index cc1cdb0..0000000 Binary files a/faith-server/.cache/clangd/index/tls.h.6C3692A6EC4A764A.idx and /dev/null differ diff --git a/faith-server/.cache/clangd/index/user.h.0278CD7771A19AE0.idx b/faith-server/.cache/clangd/index/user.h.0278CD7771A19AE0.idx deleted file mode 100644 index 9e2055e..0000000 Binary files a/faith-server/.cache/clangd/index/user.h.0278CD7771A19AE0.idx and /dev/null differ diff --git a/faith-server/.gitignore b/faith-server/.gitignore index 5d42613..e1f1cf4 100644 --- a/faith-server/.gitignore +++ b/faith-server/.gitignore @@ -2,3 +2,5 @@ chain.pem pkey.pem nob build +compile_commands.json +.cache/ diff --git a/faith-server/compile_commands.json b/faith-server/compile_commands.json deleted file mode 100644 index 1514ff7..0000000 --- a/faith-server/compile_commands.json +++ /dev/null @@ -1,272 +0,0 @@ -[ - { - "arguments": [ - "/usr/bin/cc", - "-Wall", - "-Wextra", - "-I../faith-proto/include", - "-c", - "-o", - "./build/obj/reactor_reactor.o", - "src/reactor/reactor.c" - ], - "directory": "/home/luca/Dev/faith/faith-server", - "file": "/home/luca/Dev/faith/faith-server/src/reactor/reactor.c", - "output": "/home/luca/Dev/faith/faith-server/build/obj/reactor_reactor.o" - }, - { - "arguments": [ - "/usr/bin/cc", - "-Wall", - "-Wextra", - "-I../faith-proto/include", - "-c", - "-o", - "./build/obj/logging_logging.o", - "src/logging/logging.c" - ], - "directory": "/home/luca/Dev/faith/faith-server", - "file": "/home/luca/Dev/faith/faith-server/src/logging/logging.c", - "output": "/home/luca/Dev/faith/faith-server/build/obj/logging_logging.o" - }, - { - "arguments": [ - "/usr/bin/cc", - "-Wall", - "-Wextra", - "-I../faith-proto/include", - "-c", - "-o", - "./build/obj/delivery_routing.o", - "src/delivery/routing.c" - ], - "directory": "/home/luca/Dev/faith/faith-server", - "file": "/home/luca/Dev/faith/faith-server/src/delivery/routing.c", - "output": "/home/luca/Dev/faith/faith-server/build/obj/delivery_routing.o" - }, - { - "arguments": [ - "/usr/bin/cc", - "-Wall", - "-Wextra", - "-I../faith-proto/include", - "-c", - "-o", - "./build/obj/delivery_events.o", - "src/delivery/events.c" - ], - "directory": "/home/luca/Dev/faith/faith-server", - "file": "/home/luca/Dev/faith/faith-server/src/delivery/events.c", - "output": "/home/luca/Dev/faith/faith-server/build/obj/delivery_events.o" - }, - { - "arguments": [ - "/usr/bin/cc", - "-Wall", - "-Wextra", - "-I../faith-proto/include", - "-c", - "-o", - "./build/obj/transport_conn.o", - "src/transport/conn.c" - ], - "directory": "/home/luca/Dev/faith/faith-server", - "file": "/home/luca/Dev/faith/faith-server/src/transport/conn.c", - "output": "/home/luca/Dev/faith/faith-server/build/obj/transport_conn.o" - }, - { - "arguments": [ - "/usr/bin/cc", - "-Wall", - "-Wextra", - "-I../faith-proto/include", - "-c", - "-o", - "./build/obj/server_dispatch.o", - "src/server/dispatch.c" - ], - "directory": "/home/luca/Dev/faith/faith-server", - "file": "/home/luca/Dev/faith/faith-server/src/server/dispatch.c", - "output": "/home/luca/Dev/faith/faith-server/build/obj/server_dispatch.o" - }, - { - "arguments": [ - "/usr/bin/cc", - "-Wall", - "-Wextra", - "-I../faith-proto/include", - "-c", - "-o", - "./build/obj/auth_handshake.o", - "src/auth/handshake.c" - ], - "directory": "/home/luca/Dev/faith/faith-server", - "file": "/home/luca/Dev/faith/faith-server/src/auth/handshake.c", - "output": "/home/luca/Dev/faith/faith-server/build/obj/auth_handshake.o" - }, - { - "arguments": [ - "/usr/bin/cc", - "-Wall", - "-Wextra", - "-I../faith-proto/include", - "-c", - "-o", - "./build/obj/server_client_lifecycle.o", - "src/server/client_lifecycle.c" - ], - "directory": "/home/luca/Dev/faith/faith-server", - "file": "/home/luca/Dev/faith/faith-server/src/server/client_lifecycle.c", - "output": "/home/luca/Dev/faith/faith-server/build/obj/server_client_lifecycle.o" - }, - { - "arguments": [ - "/usr/bin/cc", - "-Wall", - "-Wextra", - "-I../faith-proto/include", - "-c", - "-o", - "./build/obj/server_sess_registry.o", - "src/server/sess_registry.c" - ], - "directory": "/home/luca/Dev/faith/faith-server", - "file": "/home/luca/Dev/faith/faith-server/src/server/sess_registry.c", - "output": "/home/luca/Dev/faith/faith-server/build/obj/server_sess_registry.o" - }, - { - "arguments": [ - "/usr/bin/cc", - "-Wall", - "-Wextra", - "-I../faith-proto/include", - "-c", - "-o", - "./build/obj/server_client_io.o", - "src/server/client_io.c" - ], - "directory": "/home/luca/Dev/faith/faith-server", - "file": "/home/luca/Dev/faith/faith-server/src/server/client_io.c", - "output": "/home/luca/Dev/faith/faith-server/build/obj/server_client_io.o" - }, - { - "arguments": [ - "/usr/bin/cc", - "-Wall", - "-Wextra", - "-I../faith-proto/include", - "-c", - "-o", - "./build/obj/transport_frame.o", - "src/transport/frame.c" - ], - "directory": "/home/luca/Dev/faith/faith-server", - "file": "/home/luca/Dev/faith/faith-server/src/transport/frame.c", - "output": "/home/luca/Dev/faith/faith-server/build/obj/transport_frame.o" - }, - { - "arguments": [ - "/usr/bin/cc", - "-Wall", - "-Wextra", - "-I../faith-proto/include", - "-c", - "-o", - "./build/obj/delivery_event_inbox.o", - "src/delivery/event_inbox.c" - ], - "directory": "/home/luca/Dev/faith/faith-server", - "file": "/home/luca/Dev/faith/faith-server/src/delivery/event_inbox.c", - "output": "/home/luca/Dev/faith/faith-server/build/obj/delivery_event_inbox.o" - }, - { - "arguments": [ - "/usr/bin/cc", - "-Wall", - "-Wextra", - "-I../faith-proto/include", - "-c", - "-o", - "./build/obj/transport_tls.o", - "src/transport/tls.c" - ], - "directory": "/home/luca/Dev/faith/faith-server", - "file": "/home/luca/Dev/faith/faith-server/src/transport/tls.c", - "output": "/home/luca/Dev/faith/faith-server/build/obj/transport_tls.o" - }, - { - "arguments": [ - "/usr/bin/cc", - "-Wall", - "-Wextra", - "-I../faith-proto/include", - "-c", - "-o", - "./build/obj/server_server.o", - "src/server/server.c" - ], - "directory": "/home/luca/Dev/faith/faith-server", - "file": "/home/luca/Dev/faith/faith-server/src/server/server.c", - "output": "/home/luca/Dev/faith/faith-server/build/obj/server_server.o" - }, - { - "arguments": [ - "/usr/bin/cc", - "-Wall", - "-Wextra", - "-I../faith-proto/include", - "-c", - "-o", - "./build/obj/auth_device_link.o", - "src/auth/device_link.c" - ], - "directory": "/home/luca/Dev/faith/faith-server", - "file": "/home/luca/Dev/faith/faith-server/src/auth/device_link.c", - "output": "/home/luca/Dev/faith/faith-server/build/obj/auth_device_link.o" - }, - { - "arguments": [ - "/usr/bin/cc", - "-Wall", - "-Wextra", - "-I../faith-proto/include", - "-c", - "-o", - "./build/obj/commands_conversation.o", - "src/commands/conversation.c" - ], - "directory": "/home/luca/Dev/faith/faith-server", - "file": "/home/luca/Dev/faith/faith-server/src/commands/conversation.c", - "output": "/home/luca/Dev/faith/faith-server/build/obj/commands_conversation.o" - }, - { - "arguments": [ - "/usr/bin/cc", - "-Wall", - "-Wextra", - "-I../faith-proto/include", - "-c", - "-o", - "./build/obj/commands_dispatch.o", - "src/commands/dispatch.c" - ], - "directory": "/home/luca/Dev/faith/faith-server", - "file": "/home/luca/Dev/faith/faith-server/src/commands/dispatch.c", - "output": "/home/luca/Dev/faith/faith-server/build/obj/commands_dispatch.o" - }, - { - "arguments": [ - "/usr/bin/cc", - "-Wall", - "-Wextra", - "-I../faith-proto/include", - "-c", - "-o", - "./build/obj/faithd.o", - "src/faithd.c" - ], - "directory": "/home/luca/Dev/faith/faith-server", - "file": "/home/luca/Dev/faith/faith-server/src/faithd.c", - "output": "/home/luca/Dev/faith/faith-server/build/obj/faithd.o" - } -] diff --git a/faith-server/src/auth/device_link.c b/faith-server/src/auth/device_link.c index 7b16f7e..f70f2a4 100644 --- a/faith-server/src/auth/device_link.c +++ b/faith-server/src/auth/device_link.c @@ -80,8 +80,8 @@ device_link_handle_device_response(server_state_t *s, client_conn_t *cl, } if (!cl->authorized) { - char auth_id_hex[33]; - char device_id_hex[33]; + char auth_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; + char device_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; _FH_CHECK_RETURN(faith_id128_to_hex(cl->ident.auth_id.bytes, auth_id_hex)); _FH_CHECK_RETURN( faith_id128_to_hex(cl->ident.device_id.bytes, device_id_hex)); @@ -99,8 +99,8 @@ device_link_handle_device_response(server_state_t *s, client_conn_t *cl, } if (!req_cl || req_cl->closing) { - char req_auth_id_hex[33]; - char req_device_id_hex[33]; + char req_auth_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; + char req_device_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; _FH_CHECK_RETURN(faith_id128_to_hex(req->auth_id.bytes, req_auth_id_hex)); _FH_CHECK_RETURN( faith_id128_to_hex(req->device_id_new.bytes, req_device_id_hex)); @@ -299,8 +299,8 @@ defer: { s, req_cl, FAITH_DISCONNECT_AUTH_FAILED, FAITH_CLIENT_RECONNECT_FORBIDDEN, 0, 0, buf)); - char auth_id_hex[33]; - char device_id_hex[33]; + char auth_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; + char device_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; _FH_CHECK_RETURN(faith_id128_to_hex(client_id.bytes, auth_id_hex)); _FH_CHECK_RETURN(faith_id128_to_hex(device_id_new.bytes, device_id_hex)); @@ -332,8 +332,8 @@ device_link_new_device(server_state_t *s, client_conn_t *cl, return FAITH_ERR_BAD_ENVELOPE; if (g_verbose_logging) { - char cl_auth_id_hex[33]; - char new_device_id_hex[33]; + char cl_auth_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; + char new_device_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; _FH_CHECK_RETURN( faith_id128_to_hex(params->sender_auth_id.bytes, cl_auth_id_hex)); _FH_CHECK_RETURN( @@ -366,10 +366,10 @@ device_link_new_device(server_state_t *s, client_conn_t *cl, ¶ms->device_id, &req)); if (_fh_rc != FAITH_OK || !req) { - char sender_auth_id_hex[33]; + char sender_auth_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; _FH_CHECK_RETURN(faith_id128_to_hex(params->sender_auth_id.bytes, sender_auth_id_hex)); - char device_id_hex[33]; + char device_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; _FH_CHECK_RETURN( faith_id128_to_hex(params->device_id.bytes, device_id_hex)); nob_log(ERROR, @@ -448,8 +448,8 @@ faith_status_code_t device_link_queue_request( return FAITH_ERR_INVALID; if (!recipient_cl->authorized) { - char auth_id_hex[33]; - char device_id_hex[33]; + char auth_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; + char device_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; _FH_CHECK_RETURN( faith_id128_to_hex(recipient_cl->ident.auth_id.bytes, auth_id_hex)); _FH_CHECK_RETURN( @@ -464,8 +464,8 @@ faith_status_code_t device_link_queue_request( } if (recipient_cl->pending_device_link_req != NULL) { - char auth_id_hex[33]; - char device_id_hex[33]; + char auth_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; + char device_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; _FH_CHECK_RETURN( faith_id128_to_hex(recipient_cl->ident.auth_id.bytes, auth_id_hex)); _FH_CHECK_RETURN( diff --git a/faith-server/src/auth/handshake.c b/faith-server/src/auth/handshake.c index 25ecf50..b61aa8e 100644 --- a/faith-server/src/auth/handshake.c +++ b/faith-server/src/auth/handshake.c @@ -135,8 +135,8 @@ faith_status_code_t auth_handle_challenge_response( /* Failure finding session, different from FAITH_ERR_NOT_FOUND */ if (sess_rc == FAITH_ERR_INVALID) { - char sender_auth_id_hex[33]; - char device_id_hex[33]; + char sender_auth_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; + char device_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; _FH_CHECK_RETURN( faith_id128_to_hex(params->sender_auth_id.bytes, sender_auth_id_hex)); _FH_CHECK_RETURN( @@ -167,8 +167,8 @@ faith_status_code_t auth_handle_challenge_response( if (memcmp(params->public_key, sess->ident.public_key, FAITH_ED25519_PUBLIC_KEY_SIZE) != 0) { - char sender_auth_id_hex[33]; - char device_id_hex[33]; + char sender_auth_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; + char device_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; _FH_CHECK_RETURN(faith_id128_to_hex(params->sender_auth_id.bytes, sender_auth_id_hex)); _FH_CHECK_RETURN( @@ -272,8 +272,8 @@ reject: { /* Client failed authorization */ /* =============================== */ - char sender_auth_id_hex[33]; - char device_id_hex[33]; + char sender_auth_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; + char device_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; _FH_CHECK_RETURN( faith_id128_to_hex(params->sender_auth_id.bytes, sender_auth_id_hex)); _FH_CHECK_RETURN(faith_id128_to_hex(params->device_id.bytes, device_id_hex)); @@ -305,8 +305,8 @@ faith_status_code_t auth_authorize_client( &s->rt, &cl->ident.auth_id, &cl->ident.device_id, cl, public_key)); } - char cl_auth_id_hex[33]; - char cl_device_id_hex[33]; + char cl_auth_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; + char cl_device_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; _FH_CHECK_RETURN(faith_id128_to_hex(cl->ident.auth_id.bytes, cl_auth_id_hex)); _FH_CHECK_RETURN( faith_id128_to_hex(cl->ident.device_id.bytes, cl_device_id_hex)); @@ -342,8 +342,8 @@ auth_handshake_complete(server_state_t *s, client_conn_t *cl, server_set_client_state(s, cl, CLIENT_OPEN); - char auth_id_hex[33]; - char device_id_hex[33]; + char auth_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; + char device_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; faith_status_code_t _fh_result = FAITH_OK; diff --git a/faith-server/src/db/conn.c b/faith-server/src/db/conn.c new file mode 100644 index 0000000..7802ae7 --- /dev/null +++ b/faith-server/src/db/conn.c @@ -0,0 +1,35 @@ +#include "conn.h" + +#define _MODULE_NAME "db/conn" + +faith_status_code_t db_connect(const char *connection_str, faith_db_t *o_db) { + if (!o_db || !connection_str) + return FAITH_ERR_INVALID; + + memset(o_db, 0, sizeof(*o_db)); + + o_db->conn = PQconnectdb(connection_str); + if (!o_db->conn) { + return FAITH_ERR_NOMEM; + } + if (PQstatus(o_db->conn) != CONNECTION_OK) { + nob_log(ERROR, "[%s] Database connection failed: %s", _MODULE_NAME, + PQerrorMessage(o_db->conn)); + + PQfinish(o_db->conn); + o_db->conn = NULL; + return FAITH_ERR_IO; + } + + return FAITH_OK; +} + +faith_status_code_t db_disconnect(faith_db_t *db) { + if (!db) + return FAITH_ERR_INVALID; + if (db->conn != NULL) { + PQfinish(db->conn); + db->conn = NULL; + } + return FAITH_OK; +} diff --git a/faith-server/src/db/conn.h b/faith-server/src/db/conn.h new file mode 100644 index 0000000..13c8289 --- /dev/null +++ b/faith-server/src/db/conn.h @@ -0,0 +1,13 @@ +#pragma once + +#include + +#include + +typedef struct { + PGconn *conn; +} faith_db_t; + +faith_status_code_t db_connect(const char *connection_str, faith_db_t *o_db); + +faith_status_code_t db_disconnect(faith_db_t *db); diff --git a/faith-server/src/db/device_repo.c b/faith-server/src/db/device_repo.c new file mode 100644 index 0000000..de81d51 --- /dev/null +++ b/faith-server/src/db/device_repo.c @@ -0,0 +1,253 @@ +#include "device_repo.h" +#include "faith-proto/core/core.h" +#include + +#define _MODULE_NAME "db/device_repo" + +faith_status_code_t db_device_repo_insert(faith_db_t *db, + const faith_auth_id_t *auth_id, + const db_user_device_t *device) { + if (!db || !db->conn || !auth_id || !device) + return FAITH_ERR_INVALID; + + const char *values[] = { + (const char *)auth_id->bytes, + (const char *)device->device_id.bytes, + (const char *)device->public_key, + }; + const int lengths[] = {FAITH_AUTH_ID_SIZE, FAITH_DEVICE_ID_SIZE, + FAITH_ED25519_PUBLIC_KEY_SIZE}; + const int formats[] = {1, 1, 1}; + + PGresult *res = + PQexecParams(db->conn, + "INSERT INTO devices (auth_id, device_id, public_key) " + "VALUES ($1, $2, $3) " + "ON CONFLICT (auth_id, device_id) " + "DO UPDATE SET " + " public_key = EXCLUDED.public_key, " + " revoked_at = NULL", + 3, NULL, values, lengths, formats, 0); + + if (!res) + return FAITH_ERR_NOMEM; + + faith_status_code_t _fh_result = FAITH_OK; + + if (PQresultStatus(res) != PGRES_COMMAND_OK) { + char auth_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1] = {0}; + _FH_CHECK(faith_id128_to_hex(auth_id->bytes, auth_id_hex)); + if (_fh_rc == FAITH_OK) { + nob_log(ERROR, "[%s] Device registration failed (auth_id=%s): %s", + _MODULE_NAME, auth_id_hex, PQresultErrorMessage(res)); + } else { + nob_log(ERROR, "[%s] Device registration failed: %s", _MODULE_NAME, + PQresultErrorMessage(res)); + } + + _FH_RETURN_DEFER(FAITH_ERR_IO); + } + +defer: + PQclear(res); + return _fh_result; +} + +faith_status_code_t db_device_repo_delete(faith_db_t *db, + const faith_auth_id_t *auth_id, + const faith_device_id_t *device_id) { + + if (!db || !db->conn || !auth_id || !device_id) + return FAITH_ERR_INVALID; + + const char *values[] = { + (const char *)auth_id->bytes, + (const char *)device_id->bytes, + }; + const int lengths[] = {FAITH_AUTH_ID_SIZE, FAITH_DEVICE_ID_SIZE}; + const int formats[] = {1, 1}; + + PGresult *res = PQexecParams(db->conn, + "DELETE FROM devices " + "WHERE auth_id = $1 " + " AND device_id = $2 " + "RETURNING device_id", + 2, NULL, values, lengths, formats, 0); + + if (!res) + return FAITH_ERR_NOMEM; + + faith_status_code_t _fh_result = FAITH_OK; + + if (PQresultStatus(res) != PGRES_TUPLES_OK) { + char auth_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1] = {0}; + char device_id_hex[FAITH_DEVICE_ID_SIZE * 2 + 1] = {0}; + + faith_status_code_t rc = FAITH_OK; + { + _FH_CHECK(faith_id128_to_hex(auth_id->bytes, auth_id_hex)); + if (_fh_rc != FAITH_OK) + rc = _fh_rc; + } + { + _FH_CHECK(faith_id128_to_hex(device_id->bytes, device_id_hex)); + if (_fh_rc != FAITH_OK) + rc = _fh_rc; + } + + if (rc == FAITH_OK) { + nob_log( + ERROR, "[%s] Device removal failed (auth_id=%s, device_id=%s): %s", + _MODULE_NAME, auth_id_hex, device_id_hex, PQresultErrorMessage(res)); + } else { + nob_log(ERROR, "[%s] Device removal failed: %s", _MODULE_NAME, + PQresultErrorMessage(res)); + } + + _FH_RETURN_DEFER(FAITH_ERR_IO); + } + + int n_tuples = PQntuples(res); + + switch (n_tuples) { + case 0: + _FH_RETURN_DEFER(FAITH_ERR_NOT_FOUND); + + case 1: + _FH_RETURN_DEFER(FAITH_OK); + + default: + nob_log(ERROR, "[%s] Device removal returned %d rows; expected at most 1", + _MODULE_NAME, n_tuples); + + _FH_RETURN_DEFER(FAITH_ERR_INVALID); + } + +defer: + PQclear(res); + return _fh_result; +} + +faith_status_code_t +db_device_repo_get_device_list(faith_db_t *db, const faith_auth_id_t *auth_id, + db_user_device_list_t *o_list) { + if (!db || !db->conn || !auth_id || !o_list) + return FAITH_ERR_INVALID; + + o_list->devices = NULL; + o_list->n_devices = 0; + + const char *values[] = {(const char *)auth_id->bytes}; + const int lengths[] = {FAITH_AUTH_ID_SIZE}; + const int formats[] = {1}; + + PGresult *res = PQexecParams(db->conn, + "SELECT device_id, public_key " + "FROM devices " + "WHERE auth_id = $1 " + " AND revoked_at IS NULL " + "ORDER BY registered_at, device_id", + 1, NULL, values, lengths, formats, 1); + + if (!res) + return FAITH_ERR_NOMEM; + + db_user_device_t *devices = NULL; + faith_status_code_t _fh_result = FAITH_OK; + + if (PQresultStatus(res) != PGRES_TUPLES_OK) { + char auth_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1] = {0}; + _FH_CHECK(faith_id128_to_hex(auth_id->bytes, auth_id_hex)); + if (_fh_rc == FAITH_OK) { + nob_log(ERROR, "[%s] Device query failed (auth_id=%s): %s", _MODULE_NAME, + auth_id_hex, PQresultErrorMessage(res)); + } else { + nob_log(ERROR, "[%s] Device query failed: %s", _MODULE_NAME, + PQresultErrorMessage(res)); + } + + _FH_RETURN_DEFER(FAITH_ERR_IO); + } + + int n_rows = PQntuples(res); + + /* no devices in account */ + if (n_rows == 0) + _FH_RETURN_DEFER(FAITH_OK); + + int n_fields = PQnfields(res); + if (n_fields != DB_DEVICE_REPO_USER_DEVICE_FIELDS) { + nob_log(ERROR, + "[%s] Device query returned an unexpected number of columns: %d", + _MODULE_NAME, PQnfields(res)); + + _FH_RETURN_DEFER(FAITH_ERR_IO); + } + + devices = calloc((size_t)n_rows, sizeof(*devices)); + if (!devices) + _FH_RETURN_DEFER(FAITH_ERR_NOMEM); + + for (int r = 0; r < n_rows; r++) { + + /* check for any unexpected NULL values */ + for (int f = 0; f < n_fields; f++) { + if (!PQgetisnull(res, r, f)) + continue; + nob_log(ERROR, + "[%s] Device query returned an unexpected NULL field value " + "(field %i)", + _MODULE_NAME, f); + + _FH_RETURN_DEFER(FAITH_ERR_IO); + } + + int device_id_size = PQgetlength(res, r, DB_DEVICE_FIELD_DEVICE_ID); + int public_key_size = PQgetlength(res, r, DB_DEVICE_FIELD_PUBLIC_KEY); + + if (device_id_size != FAITH_DEVICE_ID_SIZE) { + nob_log(ERROR, "[%s] Device query returned invalid device_id size: %d", + _MODULE_NAME, device_id_size); + + _FH_RETURN_DEFER(FAITH_ERR_IO); + } + + if (public_key_size != FAITH_ED25519_PUBLIC_KEY_SIZE) { + nob_log(ERROR, "[%s] Device query returned invalid public_key size: %d", + _MODULE_NAME, public_key_size); + + _FH_RETURN_DEFER(FAITH_ERR_IO); + } + + /* copy data */ + memcpy(devices[r].device_id.bytes, + PQgetvalue(res, r, DB_DEVICE_FIELD_DEVICE_ID), FAITH_DEVICE_ID_SIZE); + + memcpy(devices[r].public_key, + PQgetvalue(res, r, DB_DEVICE_FIELD_PUBLIC_KEY), + FAITH_ED25519_PUBLIC_KEY_SIZE); + } + o_list->devices = devices; + o_list->n_devices = (size_t)n_rows; + devices = NULL; + +defer: + if (devices != NULL) { + free(devices); + } + PQclear(res); + return _fh_result; +} + +faith_status_code_t +db_device_repo_destroy_device_list(db_user_device_list_t *list) { + if (!list) + return FAITH_ERR_INVALID; + + free(list->devices); + + list->devices = NULL; + list->n_devices = 0; + + return FAITH_OK; +} diff --git a/faith-server/src/db/device_repo.h b/faith-server/src/db/device_repo.h new file mode 100644 index 0000000..b19e40f --- /dev/null +++ b/faith-server/src/db/device_repo.h @@ -0,0 +1,37 @@ +#pragma once + +#include "conn.h" + +#include +#include + +typedef enum { + DB_DEVICE_FIELD_DEVICE_ID, + DB_DEVICE_FIELD_PUBLIC_KEY, + DB_DEVICE_REPO_USER_DEVICE_FIELDS, +} db_user_device_fields_t; + +typedef struct { + faith_device_id_t device_id; + uint8_t public_key[FAITH_ED25519_PUBLIC_KEY_SIZE]; +} db_user_device_t; + +typedef struct { + db_user_device_t *devices; + size_t n_devices; +} db_user_device_list_t; + +faith_status_code_t db_device_repo_insert(faith_db_t *db, + const faith_auth_id_t *auth_id, + const db_user_device_t *device); + +faith_status_code_t db_device_repo_delete(faith_db_t *db, + const faith_auth_id_t *auth_id, + const faith_device_id_t *device_id); + +faith_status_code_t +db_device_repo_get_device_list(faith_db_t *db, const faith_auth_id_t *auth_id, + db_user_device_list_t *o_list); + +faith_status_code_t +db_device_repo_destroy_device_list(db_user_device_list_t *list); diff --git a/faith-server/src/db/events_repo.c b/faith-server/src/db/events_repo.c new file mode 100644 index 0000000..b8d97af --- /dev/null +++ b/faith-server/src/db/events_repo.c @@ -0,0 +1,12 @@ +#include "events_repo.h" +#include "faith-proto/core/core.h" + +faith_status_code_t db_events_repo_insert(faith_db_t *db, + const faith_auth_id_t *auth_id, + const faith_device_id_t *device_id, + const faith_envl_stc_event_t *event) { + if (!db || !db->conn || !auth_id || !device_id || !event) + return FAITH_ERR_INVALID; + + return FAITH_OK; +} diff --git a/faith-server/src/db/events_repo.h b/faith-server/src/db/events_repo.h new file mode 100644 index 0000000..94d6ead --- /dev/null +++ b/faith-server/src/db/events_repo.h @@ -0,0 +1,12 @@ +#pragma once + +#include "conn.h" +#include "faith-proto/codec/auth.h" + +#include +#include + +faith_status_code_t db_events_repo_insert(faith_db_t *db, + const faith_auth_id_t *auth_id, + const faith_device_id_t *device_id, + const faith_envl_stc_event_t *event); diff --git a/faith-server/src/db/user_repo.c b/faith-server/src/db/user_repo.c new file mode 100644 index 0000000..2178d1b --- /dev/null +++ b/faith-server/src/db/user_repo.c @@ -0,0 +1,101 @@ +#include "user_repo.h" +#include "faith-proto/codec/auth.h" +#include "faith-proto/core/core.h" +#include + +#define _MODULE_NAME "db/user_repo" + +faith_status_code_t db_user_repo_insert(faith_db_t *db, + const faith_auth_id_t *auth_id) { + if (!db || !db->conn || !auth_id) + return FAITH_ERR_INVALID; + + const char *values[] = {(const char *)auth_id->bytes}; + const int lengths[] = {FAITH_AUTH_ID_SIZE}; + const int formats[] = {1}; + + PGresult *res = PQexecParams(db->conn, + "INSERT INTO users (auth_id) " + "VALUES ($1) " + "ON CONFLICT (auth_id) DO NOTHING", + 1, NULL, values, lengths, formats, 0); + + if (!res) + return FAITH_ERR_NOMEM; + + faith_status_code_t rc = FAITH_OK; + + if (PQresultStatus(res) != PGRES_COMMAND_OK) { + char auth_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; + _FH_CHECK(faith_id128_to_hex(auth_id->bytes, auth_id_hex)); + + if (_fh_rc == FAITH_OK) { + nob_log(ERROR, "[%s] User insert failed (auth_id=%s): %s", _MODULE_NAME, + auth_id_hex, PQresultErrorMessage(res)); + } else { + nob_log(ERROR, "[%s] User insert failed: %s", _MODULE_NAME, + PQresultErrorMessage(res)); + } + + rc = FAITH_ERR_IO; + } + + PQclear(res); + return rc; +} +faith_status_code_t db_user_repo_delete(faith_db_t *db, + const faith_auth_id_t *auth_id) { + if (!db || !db->conn || !auth_id) + return FAITH_ERR_INVALID; + + const char *values[] = {(const char *)auth_id->bytes}; + const int lengths[] = {FAITH_AUTH_ID_SIZE}; + const int formats[] = {1}; + + PGresult *res = PQexecParams(db->conn, + "DELETE FROM users " + "WHERE auth_id is $1 " + "RETURNING auth_id ", + 1, NULL, values, lengths, formats, 0); + + if (!res) + return FAITH_ERR_NOMEM; + + faith_status_code_t _fh_result = FAITH_OK; + + if (PQresultStatus(res) != PGRES_TUPLES_OK) { + char auth_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1] = {0}; + + _FH_CHECK(faith_id128_to_hex(auth_id->bytes, auth_id_hex)); + if (_fh_rc == FAITH_OK) { + nob_log(ERROR, "[%s] User removal failed (auth_id=%s): %s", _MODULE_NAME, + auth_id_hex, PQresultErrorMessage(res)); + } else { + nob_log(ERROR, "[%s] User removal failed: %s", _MODULE_NAME, + PQresultErrorMessage(res)); + } + + _FH_RETURN_DEFER(FAITH_ERR_IO); + } + + int n_tuples = PQntuples(res); + + switch (n_tuples) { + case 0: + _FH_RETURN_DEFER(FAITH_ERR_NOT_FOUND); + break; + case 1: + _FH_RETURN_DEFER(FAITH_OK); + break; + default: + nob_log(ERROR, "[%s] User delete returned an unexpected number of rows: %d", + _MODULE_NAME, n_tuples); + + _FH_RETURN_DEFER(FAITH_ERR_INVALID); + break; + } + +defer: + PQclear(res); + return _fh_result; +} diff --git a/faith-server/src/db/user_repo.h b/faith-server/src/db/user_repo.h new file mode 100644 index 0000000..e617d8a --- /dev/null +++ b/faith-server/src/db/user_repo.h @@ -0,0 +1,8 @@ +#pragma once + +#include "conn.h" +#include "faith-proto/codec/auth.h" + +faith_status_code_t db_user_repo_insert(faith_db_t* db, const faith_auth_id_t* auth_id); + +faith_status_code_t db_user_repo_delete(faith_db_t* db, const faith_auth_id_t* auth_id); diff --git a/faith-server/src/delivery/routing.c b/faith-server/src/delivery/routing.c index 26eb7eb..758c752 100644 --- a/faith-server/src/delivery/routing.c +++ b/faith-server/src/delivery/routing.c @@ -26,7 +26,7 @@ delivery_route_envelope_to_auth_id(server_state_t *s, client_conn_t *cl_sender, &s->rt, recipient_auth_id, &recipient_user)); if (!recipient_user) { - char recipient_auth_id_hex[33]; + char recipient_auth_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; _FH_CHECK_RETURN( faith_id128_to_hex(recipient_auth_id->bytes, recipient_auth_id_hex)); @@ -41,7 +41,7 @@ delivery_route_envelope_to_auth_id(server_state_t *s, client_conn_t *cl_sender, return FAITH_OK; } - char recipient_auth_id_hex[33]; + char recipient_auth_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; _FH_CHECK_RETURN( faith_id128_to_hex(recipient_auth_id->bytes, recipient_auth_id_hex)); @@ -55,7 +55,7 @@ delivery_route_envelope_to_auth_id(server_state_t *s, client_conn_t *cl_sender, _FH_CHECK( server_queue_envelope_or_mark_dead(s, recipient_cl, &routing_envl)); - char recipient_device_id_hex[33]; + char recipient_device_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; _FH_CHECK_RETURN(faith_id128_to_hex(recipient_cl->ident.device_id.bytes, recipient_device_id_hex)); diff --git a/faith-server/src/server/sess_registry.c b/faith-server/src/server/sess_registry.c index f76bf7b..91cec21 100644 --- a/faith-server/src/server/sess_registry.c +++ b/faith-server/src/server/sess_registry.c @@ -81,8 +81,8 @@ faith_status_code_t sess_registry_register_session( /* write pointer back to avoid stale pointers */ hmput(rt->active_users, *auth_id, devmap); - char auth_id_hex[33]; - char device_id_hex[33]; + char auth_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; + char device_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; faith_status_code_t _fh_result = FAITH_OK; _FH_CHECK_DEFER(faith_id128_to_hex(auth_id->bytes, auth_id_hex)); @@ -159,8 +159,8 @@ sess_registry_unregister_session(sess_registry_state_t *rt, hmput(rt->active_users, *auth_id, devmap); } - char auth_id_hex[33]; - char device_id_hex[33]; + char auth_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; + char device_id_hex[FAITH_AUTH_ID_SIZE * 2 + 1]; _FH_CHECK_RETURN(faith_id128_to_hex(auth_id->bytes, auth_id_hex)); _FH_CHECK_RETURN(faith_id128_to_hex(device_id->bytes, device_id_hex));