Code Review
/
src
/
app-framework-binder.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
websocket: Tune maximum received length
[src/app-framework-binder.git]
/
src
/
websock.c
diff --git
a/src/websock.c
b/src/websock.c
index
0bbd56a
..
4d8ffbf
100644
(file)
--- a/
src/websock.c
+++ b/
src/websock.c
@@
-30,6
+30,9
@@
#include "websock.h"
#define BLOCK_DATA_SIZE 4096
#include "websock.h"
#define BLOCK_DATA_SIZE 4096
+#if !defined(WEBSOCKET_DEFAULT_MAXLENGTH)
+# define WEBSOCKET_DEFAULT_MAXLENGTH 1048500 /* 76 less than 1M, probably enougth for headers */
+#endif
#define FRAME_GET_FIN(BYTE) (((BYTE) >> 7) & 0x01)
#define FRAME_GET_RSV1(BYTE) (((BYTE) >> 6) & 0x01)
#define FRAME_GET_FIN(BYTE) (((BYTE) >> 7) & 0x01)
#define FRAME_GET_RSV1(BYTE) (((BYTE) >> 6) & 0x01)
@@
-59,6
+62,8
@@
#define STATE_LENGTH 2
#define STATE_DATA 3
#define STATE_LENGTH 2
#define STATE_DATA 3
+static size_t default_maxlength = WEBSOCKET_DEFAULT_MAXLENGTH;
+
struct websock {
int state;
uint64_t maxlength;
struct websock {
int state;
uint64_t maxlength;
@@
-562,7
+567,7
@@
struct websock *websock_create_v13(const struct websock_itf *itf, void *closure)
if (result) {
result->itf = itf;
result->closure = closure;
if (result) {
result->itf = itf;
result->closure = closure;
- result->maxlength =
65000
;
+ result->maxlength =
default_maxlength
;
}
return result;
}
}
return result;
}
@@
-571,3
+576,13
@@
void websock_destroy(struct websock *ws)
{
free(ws);
}
{
free(ws);
}
+
+void websock_set_default_max_length(size_t maxlen)
+{
+ default_maxlength = maxlen;
+}
+
+void websock_set_max_length(struct websock *ws, size_t maxlen)
+{
+ ws->maxlength = (uint64_t)maxlen;
+}