Mercurial
annotate seobeo/seobeo_internal.h @ 127:9af248484ba2
[Updated] MrJuneJune Test.
| author | June Park <parkjune1995@gmail.com> |
|---|---|
| date | Thu, 08 Jan 2026 18:05:47 -0800 |
| parents | f236c895604e |
| children | 7a63e41a21fb |
| rev | line source |
|---|---|
|
19
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
1 #ifndef SEOBEO_SERVER_INTERNAL_H |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
2 #define SEOBEO_SERVER_INTERNAL_H |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
3 |
|
67
6626ec933933
[Seobeo] Separated out Client Server logic. Created test tools.
June Park <parkjune1995@gmail.com>
parents:
66
diff
changeset
|
4 #ifndef SEOBEO_NO_SSL |
|
6626ec933933
[Seobeo] Separated out Client Server logic. Created test tools.
June Park <parkjune1995@gmail.com>
parents:
66
diff
changeset
|
5 #include <openssl/ssl.h> |
|
19
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
6 #include <openssl/err.h> |
|
67
6626ec933933
[Seobeo] Separated out Client Server logic. Created test tools.
June Park <parkjune1995@gmail.com>
parents:
66
diff
changeset
|
7 #define SSL_CTX_TYPE SSL_CTX |
|
6626ec933933
[Seobeo] Separated out Client Server logic. Created test tools.
June Park <parkjune1995@gmail.com>
parents:
66
diff
changeset
|
8 #define SSL_TYPE SSL |
|
6626ec933933
[Seobeo] Separated out Client Server logic. Created test tools.
June Park <parkjune1995@gmail.com>
parents:
66
diff
changeset
|
9 #else |
|
6626ec933933
[Seobeo] Separated out Client Server logic. Created test tools.
June Park <parkjune1995@gmail.com>
parents:
66
diff
changeset
|
10 #define SSL_CTX_TYPE void |
|
6626ec933933
[Seobeo] Separated out Client Server logic. Created test tools.
June Park <parkjune1995@gmail.com>
parents:
66
diff
changeset
|
11 #define SSL_TYPE void |
|
6626ec933933
[Seobeo] Separated out Client Server logic. Created test tools.
June Park <parkjune1995@gmail.com>
parents:
66
diff
changeset
|
12 #endif |
|
19
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
13 |
|
121
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
14 // For web socket usages as body length are determine this... |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
15 #define MAX_INT_16 65536 |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
16 #define MAX_FRAGMENT_SIZE 1024 * 1024 |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
17 |
|
19
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
18 #include "dowa/dowa.h" |
| 96 | 19 #include <stdatomic.h> |
|
19
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
20 |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
21 typedef enum { |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
22 SEOBEO_STREAM_TYPE_SERVER, |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
23 SEOBEO_STREAM_TYPE_CLIENT, |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
24 } Seobeo_SocketType; |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
25 |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
26 typedef struct { |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
27 int32 socket; |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
28 Seobeo_SocketType type; |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
29 boolean connected; |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
30 |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
31 char *host; |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
32 char *port; |
|
67
6626ec933933
[Seobeo] Separated out Client Server logic. Created test tools.
June Park <parkjune1995@gmail.com>
parents:
66
diff
changeset
|
33 |
|
6626ec933933
[Seobeo] Separated out Client Server logic. Created test tools.
June Park <parkjune1995@gmail.com>
parents:
66
diff
changeset
|
34 SSL_CTX_TYPE *ssl_ctx; |
|
6626ec933933
[Seobeo] Separated out Client Server logic. Created test tools.
June Park <parkjune1995@gmail.com>
parents:
66
diff
changeset
|
35 SSL_TYPE *ssl; |
|
19
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
36 |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
37 uint8 *read_buffer; |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
38 uint32 read_buffer_capacity; |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
39 uint32 read_buffer_len; // current size |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
40 uint32 read_buffer_used; // TODO: Implement this for client |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
41 |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
42 uint8 *write_buffer; |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
43 uint32 write_buffer_capacity; |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
44 uint32 write_buffer_len; // current size |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
45 |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
46 void *file; |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
47 void *text_copy; |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
48 char *file_name; |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
49 |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
50 atomic_bool destroyed; |
|
66
a0f0ad5e42eb
[Misc] taking out capital P stuff.
June Park <parkjune1995@gmail.com>
parents:
65
diff
changeset
|
51 } Seobeo_Handle; |
|
19
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
52 |
|
71
75de5903355c
Giagantic changes that update Dowa library to be more align with stb style array and hashmap. Updated Seobeo to be caching on server side instead of file level caching. Deleted bunch of things I don't really use.
June Park <parkjune1995@gmail.com>
parents:
67
diff
changeset
|
53 // HTML cache type: maps file paths (char*) to file contents (char*) |
|
75de5903355c
Giagantic changes that update Dowa library to be more align with stb style array and hashmap. Updated Seobeo to be caching on server side instead of file level caching. Deleted bunch of things I don't really use.
June Park <parkjune1995@gmail.com>
parents:
67
diff
changeset
|
54 typedef Dowa_KV(char*, char*) Seobeo_Cache_Entry; |
|
75de5903355c
Giagantic changes that update Dowa library to be more align with stb style array and hashmap. Updated Seobeo to be caching on server side instead of file level caching. Deleted bunch of things I don't really use.
June Park <parkjune1995@gmail.com>
parents:
67
diff
changeset
|
55 |
|
19
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
56 typedef struct { |
|
71
75de5903355c
Giagantic changes that update Dowa library to be more align with stb style array and hashmap. Updated Seobeo to be caching on server side instead of file level caching. Deleted bunch of things I don't really use.
June Park <parkjune1995@gmail.com>
parents:
67
diff
changeset
|
57 Seobeo_Handle *srv; |
|
75de5903355c
Giagantic changes that update Dowa library to be more align with stb style array and hashmap. Updated Seobeo to be caching on server side instead of file level caching. Deleted bunch of things I don't really use.
June Park <parkjune1995@gmail.com>
parents:
67
diff
changeset
|
58 Seobeo_Cache_Entry *cache; |
|
19
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
59 } WorkerArgs; |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
60 |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
61 typedef enum { |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
62 SEOBEO_MODE_FORK, |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
63 SEOBEO_MODE_EDGE, |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
64 } Seobeo_ServerMode; |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
65 |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
66 |
|
71
75de5903355c
Giagantic changes that update Dowa library to be more align with stb style array and hashmap. Updated Seobeo to be caching on server side instead of file level caching. Deleted bunch of things I don't really use.
June Park <parkjune1995@gmail.com>
parents:
67
diff
changeset
|
67 // HTTP request map type: maps header names to header values |
|
75de5903355c
Giagantic changes that update Dowa library to be more align with stb style array and hashmap. Updated Seobeo to be caching on server side instead of file level caching. Deleted bunch of things I don't really use.
June Park <parkjune1995@gmail.com>
parents:
67
diff
changeset
|
68 typedef Dowa_KV(char*, char*) Seobeo_Request_Entry; |
|
19
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
69 |
|
72
4532ce6d9eb8
[Seobeo] Added router to the server logic. Few dowa string manipulation logics.
June Park <parkjune1995@gmail.com>
parents:
71
diff
changeset
|
70 // --- Router Types --- // |
|
4532ce6d9eb8
[Seobeo] Added router to the server logic. Few dowa string manipulation logics.
June Park <parkjune1995@gmail.com>
parents:
71
diff
changeset
|
71 // Forward declaration |
|
4532ce6d9eb8
[Seobeo] Added router to the server logic. Few dowa string manipulation logics.
June Park <parkjune1995@gmail.com>
parents:
71
diff
changeset
|
72 typedef struct Seobeo_Route_Struct Seobeo_Route; |
|
4532ce6d9eb8
[Seobeo] Added router to the server logic. Few dowa string manipulation logics.
June Park <parkjune1995@gmail.com>
parents:
71
diff
changeset
|
73 |
|
4532ce6d9eb8
[Seobeo] Added router to the server logic. Few dowa string manipulation logics.
June Park <parkjune1995@gmail.com>
parents:
71
diff
changeset
|
74 // Route handler function type |
|
4532ce6d9eb8
[Seobeo] Added router to the server logic. Few dowa string manipulation logics.
June Park <parkjune1995@gmail.com>
parents:
71
diff
changeset
|
75 typedef Seobeo_Request_Entry* (*Seobeo_Route_Handler)( |
|
4532ce6d9eb8
[Seobeo] Added router to the server logic. Few dowa string manipulation logics.
June Park <parkjune1995@gmail.com>
parents:
71
diff
changeset
|
76 Seobeo_Request_Entry *p_request_map, |
|
4532ce6d9eb8
[Seobeo] Added router to the server logic. Few dowa string manipulation logics.
June Park <parkjune1995@gmail.com>
parents:
71
diff
changeset
|
77 Dowa_Arena *p_arena |
|
4532ce6d9eb8
[Seobeo] Added router to the server logic. Few dowa string manipulation logics.
June Park <parkjune1995@gmail.com>
parents:
71
diff
changeset
|
78 ); |
|
4532ce6d9eb8
[Seobeo] Added router to the server logic. Few dowa string manipulation logics.
June Park <parkjune1995@gmail.com>
parents:
71
diff
changeset
|
79 |
|
19
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
80 // --- Parse Header into Dowa Map ---// |
|
71
75de5903355c
Giagantic changes that update Dowa library to be more align with stb style array and hashmap. Updated Seobeo to be caching on server side instead of file level caching. Deleted bunch of things I don't really use.
June Park <parkjune1995@gmail.com>
parents:
67
diff
changeset
|
81 extern int Seobeo_Web_Header_Parse(Seobeo_Handle *p_handle, Seobeo_Request_Entry **pp_map, Dowa_Arena *p_arena); |
|
19
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
82 |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
83 // --- Handle Request --- // |
|
71
75de5903355c
Giagantic changes that update Dowa library to be more align with stb style array and hashmap. Updated Seobeo to be caching on server side instead of file level caching. Deleted bunch of things I don't really use.
June Park <parkjune1995@gmail.com>
parents:
67
diff
changeset
|
84 extern void Seobeo_Web_HandleClientRequest(Seobeo_Handle *cli, Seobeo_Cache_Entry *p_html_cache); |
|
19
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
85 |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
86 // --- SSL --- // |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
87 extern void Seobeo_Web_SSL_Init(); |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
88 extern void Seobeo_Web_SSL_Cleanup(); // Not used |
|
67
6626ec933933
[Seobeo] Separated out Client Server logic. Created test tools.
June Park <parkjune1995@gmail.com>
parents:
66
diff
changeset
|
89 extern int Seobeo_SSL_Setup_Client(Seobeo_Handle *p_handle, const char *host, int socket_fd); |
|
6626ec933933
[Seobeo] Separated out Client Server logic. Created test tools.
June Park <parkjune1995@gmail.com>
parents:
66
diff
changeset
|
90 extern void Seobeo_SSL_Cleanup(Seobeo_Handle *p_handle); |
|
6626ec933933
[Seobeo] Separated out Client Server logic. Created test tools.
June Park <parkjune1995@gmail.com>
parents:
66
diff
changeset
|
91 extern int32 Seobeo_SSL_Write(Seobeo_Handle *p_handle, const uint8 *data, uint32 length); |
|
6626ec933933
[Seobeo] Separated out Client Server logic. Created test tools.
June Park <parkjune1995@gmail.com>
parents:
66
diff
changeset
|
92 extern int32 Seobeo_SSL_Read(Seobeo_Handle *p_handle, uint8 *buffer, uint32 length); |
|
19
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
93 |
|
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
94 // --- Serving using Edge --- // |
|
71
75de5903355c
Giagantic changes that update Dowa library to be more align with stb style array and hashmap. Updated Seobeo to be caching on server side instead of file level caching. Deleted bunch of things I don't really use.
June Park <parkjune1995@gmail.com>
parents:
67
diff
changeset
|
95 extern void *Seobeo_Web_Edge_Worker(void *vargs); |
|
75de5903355c
Giagantic changes that update Dowa library to be more align with stb style array and hashmap. Updated Seobeo to be caching on server side instead of file level caching. Deleted bunch of things I don't really use.
June Park <parkjune1995@gmail.com>
parents:
67
diff
changeset
|
96 extern void Seobeo_Web_Edge(Seobeo_Handle *p_server_handle, int thread_count, Seobeo_Cache_Entry *p_html_cache); |
|
19
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
97 |
|
119
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
98 // --- HTTP Client Types --- // |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
99 typedef struct { |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
100 char *method; |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
101 char *url; |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
102 char *host; |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
103 char *port; |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
104 char *path; |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
105 boolean use_tls; |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
106 |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
107 // Headers can be either HashMap or Array |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
108 Seobeo_Request_Entry *headers_map; |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
109 char **headers_array; |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
110 |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
111 char *body; |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
112 size_t body_length; |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
113 |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
114 boolean follow_redirects; |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
115 int32 max_redirects; |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
116 |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
117 char *download_path; |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
118 |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
119 Dowa_Arena *p_arena; |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
120 } Seobeo_Client_Request; |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
121 |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
122 typedef struct { |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
123 int32 status_code; |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
124 char *status_text; |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
125 |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
126 Seobeo_Request_Entry *headers; |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
127 |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
128 char *body; |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
129 size_t body_length; |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
130 |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
131 char *redirect_url; |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
132 |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
133 Dowa_Arena *p_arena; |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
134 } Seobeo_Client_Response; |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
135 |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
136 // --- HTTP Client Functions --- // |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
137 extern Seobeo_Client_Request *Seobeo_Client_Request_Create(const char *url); |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
138 extern void Seobeo_Client_Request_Set_Method(Seobeo_Client_Request *p_req, const char *method); |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
139 extern void Seobeo_Client_Request_Add_Header_Map(Seobeo_Client_Request *p_req, const char *key, const char *value); |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
140 extern void Seobeo_Client_Request_Add_Header_Array(Seobeo_Client_Request *p_req, const char *header); |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
141 extern void Seobeo_Client_Request_Set_Body(Seobeo_Client_Request *p_req, const char *body, size_t length); |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
142 extern void Seobeo_Client_Request_Set_Follow_Redirects(Seobeo_Client_Request *p_req, boolean follow, int32 max_redirects); |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
143 extern void Seobeo_Client_Request_Set_Download_Path(Seobeo_Client_Request *p_req, const char *path); |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
144 extern Seobeo_Client_Response *Seobeo_Client_Request_Execute(Seobeo_Client_Request *p_req); |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
145 extern void Seobeo_Client_Request_Destroy(Seobeo_Client_Request *p_req); |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
146 extern void Seobeo_Client_Response_Destroy(Seobeo_Client_Response *p_resp); |
|
c39582f937e5
[Seobeo Client] Added client side logic which will be used for all my other calls instead of curl.
June Park <parkjune1995@gmail.com>
parents:
96
diff
changeset
|
147 |
|
120
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
148 // --- WebSocket Types --- // |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
149 typedef enum { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
150 SEOBEO_WS_OPCODE_CONTINUATION = 0x0, |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
151 SEOBEO_WS_OPCODE_TEXT = 0x1, |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
152 SEOBEO_WS_OPCODE_BINARY = 0x2, |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
153 SEOBEO_WS_OPCODE_CLOSE = 0x8, |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
154 SEOBEO_WS_OPCODE_PING = 0x9, |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
155 SEOBEO_WS_OPCODE_PONG = 0xA |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
156 } Seobeo_WebSocket_Opcode; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
157 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
158 typedef enum { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
159 SEOBEO_WS_STATE_CONNECTING = 0, |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
160 SEOBEO_WS_STATE_OPEN, |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
161 SEOBEO_WS_STATE_CLOSING, |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
162 SEOBEO_WS_STATE_CLOSED |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
163 } Seobeo_WebSocket_State; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
164 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
165 typedef struct { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
166 Seobeo_WebSocket_Opcode opcode; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
167 uint8 *data; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
168 size_t length; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
169 boolean is_final; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
170 } Seobeo_WebSocket_Message; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
171 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
172 typedef struct { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
173 Seobeo_Handle *p_handle; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
174 char *url; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
175 char *host; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
176 char *port; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
177 char *path; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
178 boolean use_tls; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
179 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
180 Seobeo_WebSocket_State state; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
181 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
182 uint8 *fragment_buffer; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
183 size_t fragment_length; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
184 size_t fragment_capacity; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
185 Seobeo_WebSocket_Opcode fragment_opcode; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
186 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
187 Dowa_Arena *p_arena; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
188 } Seobeo_WebSocket; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
189 |
|
125
f236c895604e
[MrJuneJune] Added web socket for chat to this.
June Park <parkjune1995@gmail.com>
parents:
121
diff
changeset
|
190 // --- WebSocket Common Functions --- // |
|
f236c895604e
[MrJuneJune] Added web socket for chat to this.
June Park <parkjune1995@gmail.com>
parents:
121
diff
changeset
|
191 extern void Seobeo_WebSocket_Mask_Data(uint8 *data, size_t length, const uint8 *mask); |
|
f236c895604e
[MrJuneJune] Added web socket for chat to this.
June Park <parkjune1995@gmail.com>
parents:
121
diff
changeset
|
192 extern void Seobeo_WebSocket_Message_Destroy(Seobeo_WebSocket_Message *p_msg); |
|
f236c895604e
[MrJuneJune] Added web socket for chat to this.
June Park <parkjune1995@gmail.com>
parents:
121
diff
changeset
|
193 |
|
121
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
194 // --- WebSocket Client Functions --- // |
|
120
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
195 extern Seobeo_WebSocket *Seobeo_WebSocket_Connect(const char *url); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
196 extern int32 Seobeo_WebSocket_Send_Text(Seobeo_WebSocket *p_ws, const char *text); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
197 extern int32 Seobeo_WebSocket_Send_Binary(Seobeo_WebSocket *p_ws, const uint8 *data, size_t length); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
198 extern int32 Seobeo_WebSocket_Send_Ping(Seobeo_WebSocket *p_ws, const char *payload); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
199 extern int32 Seobeo_WebSocket_Send_Pong(Seobeo_WebSocket *p_ws, const char *payload); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
200 extern Seobeo_WebSocket_Message *Seobeo_WebSocket_Receive(Seobeo_WebSocket *p_ws); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
201 extern int32 Seobeo_WebSocket_Close(Seobeo_WebSocket *p_ws, uint16 code, const char *reason); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
202 extern void Seobeo_WebSocket_Destroy(Seobeo_WebSocket *p_ws); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
119
diff
changeset
|
203 |
|
121
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
204 // --- WebSocket Server Types --- // |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
205 typedef struct Seobeo_WebSocket_Server_Connection_Struct Seobeo_WebSocket_Server_Connection; |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
206 |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
207 struct Seobeo_WebSocket_Server_Connection_Struct { |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
208 Seobeo_Handle *p_handle; |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
209 char *client_id; |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
210 boolean is_active; |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
211 |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
212 uint8 *fragment_buffer; |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
213 size_t fragment_length; |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
214 size_t fragment_capacity; |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
215 Seobeo_WebSocket_Opcode fragment_opcode; |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
216 |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
217 Seobeo_WebSocket_Server_Connection *next; |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
218 }; |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
219 |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
220 typedef void (*Seobeo_WebSocket_Server_Handler)( |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
221 Seobeo_WebSocket_Server_Connection *p_conn, |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
222 Seobeo_WebSocket_Message *p_msg, |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
223 void *p_user_data |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
224 ); |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
225 |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
226 typedef struct { |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
227 char *path; |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
228 Seobeo_WebSocket_Server_Handler handler; |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
229 void *p_user_data; |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
230 } Seobeo_WebSocket_Server_Route; |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
231 |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
232 // --- WebSocket Server Functions --- // |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
233 extern void Seobeo_WebSocket_Server_Init(); |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
234 extern void Seobeo_WebSocket_Server_Register(const char *path, Seobeo_WebSocket_Server_Handler handler, void *p_user_data); |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
235 extern boolean Seobeo_WebSocket_Server_Handle_Upgrade(Seobeo_Handle *p_handle, Seobeo_Request_Entry *p_req_map, const char *path); |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
236 extern void Seobeo_WebSocket_Server_Handle_Connection(Seobeo_WebSocket_Server_Connection *p_conn); |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
237 extern int32 Seobeo_WebSocket_Server_Send_Text(Seobeo_WebSocket_Server_Connection *p_conn, const char *text); |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
238 extern int32 Seobeo_WebSocket_Server_Send_Binary(Seobeo_WebSocket_Server_Connection *p_conn, const uint8 *data, size_t length); |
|
125
f236c895604e
[MrJuneJune] Added web socket for chat to this.
June Park <parkjune1995@gmail.com>
parents:
121
diff
changeset
|
239 extern void Seobeo_WebSocket_Server_Broadcast_Text(const char *text, Seobeo_WebSocket_Server_Connection *origin_p_conn); |
|
121
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
240 extern void Seobeo_WebSocket_Server_Broadcast_Binary(const uint8 *data, size_t length); |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
241 extern void Seobeo_WebSocket_Server_Connection_Close(Seobeo_WebSocket_Server_Connection *p_conn, uint16 code, const char *reason); |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
242 extern void Seobeo_WebSocket_Server_Connection_Destroy(Seobeo_WebSocket_Server_Connection *p_conn); |
|
7b1719fa918c
[Seobeo] Added web socket server.
June Park <parkjune1995@gmail.com>
parents:
120
diff
changeset
|
243 |
|
19
875bb6e10db7
[Seobeo] Chaning Function naming to be easily readable.
June Park <parkjune1995@gmail.com>
parents:
1
diff
changeset
|
244 #endif |