diff options
Diffstat (limited to 'src/server/ws_key.c')
| -rw-r--r-- | src/server/ws_key.c | 36 |
1 files changed, 0 insertions, 36 deletions
diff --git a/src/server/ws_key.c b/src/server/ws_key.c deleted file mode 100644 index 015605e..0000000 --- a/src/server/ws_key.c +++ /dev/null @@ -1,36 +0,0 @@ -#include <openssl/sha.h> -#include <netinet/in.h> -#include <arpa/inet.h> -#include <string.h> -#include <stdio.h> - -#include "./base64.c" - -static const char *GUID = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; - -void websocket_accept_key(const char *client_key, char *output) { - char buf[256]; - snprintf(buf, sizeof(buf), "%s%s", client_key, GUID); - - unsigned char hash[SHA_DIGEST_LENGTH]; - SHA1((unsigned char *)buf, strlen(buf), hash); - base64_encode(hash, SHA_DIGEST_LENGTH, output); -} - -char *find_websocket_key(char *req) { - char *p = strstr(req, "Sec-WebSocket-Key:"); - - if (!p) return NULL; - - p += strlen("Sec-WebSocket-Key:"); - - while (*p == ' ') p++; - - static char key[128]; - int i = 0; - while (*p && *p != '\r' && *p != '\n') - key[i++] = *p++; - - key[i] = 0; - return key; -} |
