Compare commits
3 Commits
1859c432c8
...
db053121f2
Author | SHA1 | Date | |
---|---|---|---|
db053121f2
|
|||
89a9d4b9d6
|
|||
bc7c3591a2
|
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,8 +1,8 @@
|
||||
*
|
||||
!src
|
||||
!src/**
|
||||
!docs
|
||||
!docs/**
|
||||
!doc
|
||||
!doc/**
|
||||
!Makefile
|
||||
!.gitignore
|
||||
!README.md
|
||||
|
26
Makefile
26
Makefile
@@ -37,35 +37,35 @@ bin/sesimos: bin/server.o bin/client.o
|
||||
$(CC) -o $@ $^ $(CFLAGS) -Lbin -lsesimos -Wl,-rpath=$(shell pwd)/bin $(LIBS)
|
||||
|
||||
|
||||
bin/server.o: src/server.c src/server.h src/defs.h src/client.h src/lib/cache.h src/lib/config.h src/lib/sock.h \
|
||||
bin/server.o: src/server.h src/defs.h src/client.h src/lib/cache.h src/lib/config.h src/lib/sock.h \
|
||||
src/lib/rev_proxy.h src/lib/geoip.h src/lib/utils.h
|
||||
|
||||
bin/client.o: src/client.c src/client.h src/defs.h src/server.h src/lib/utils.h src/lib/config.h src/lib/sock.h \
|
||||
bin/client.o: src/client.h src/defs.h src/server.h src/lib/utils.h src/lib/config.h src/lib/sock.h \
|
||||
src/lib/http.h src/lib/rev_proxy.h src/lib/fastcgi.h src/lib/cache.h src/lib/geoip.h src/lib/compress.h \
|
||||
src/lib/websocket.h
|
||||
|
||||
bin/lib/cache.o: src/lib/cache.c src/lib/cache.h src/lib/utils.h src/lib/uri.h src/lib/compress.h
|
||||
bin/lib/cache.o: src/lib/cache.h src/lib/utils.h src/lib/uri.h src/lib/compress.h
|
||||
|
||||
bin/lib/compress.o: src/lib/compress.c src/lib/compress.h
|
||||
bin/lib/compress.o: src/lib/compress.h
|
||||
|
||||
bin/lib/config.o: src/lib/config.c src/lib/config.h src/lib/utils.h src/lib/uri.h
|
||||
bin/lib/config.o: src/lib/config.h src/lib/utils.h src/lib/uri.h
|
||||
|
||||
bin/lib/fastcgi.o: src/lib/fastcgi.c src/lib/fastcgi.h src/server.h src/lib/utils.h src/lib/compress.h src/lib/http.h \
|
||||
bin/lib/fastcgi.o: src/lib/fastcgi.h src/server.h src/lib/utils.h src/lib/compress.h src/lib/http.h \
|
||||
src/lib/uri.h src/lib/include/fastcgi.h
|
||||
|
||||
bin/lib/geoip.o: src/lib/geoip.c src/lib/geoip.h
|
||||
bin/lib/geoip.o: src/lib/geoip.h
|
||||
|
||||
bin/lib/http.o: src/lib/http.c src/lib/http.h src/lib/utils.h src/lib/compress.h src/lib/sock.h
|
||||
bin/lib/http.o: src/lib/http.h src/lib/utils.h src/lib/compress.h src/lib/sock.h
|
||||
|
||||
bin/lib/rev_proxy.o: src/lib/rev_proxy.c src/lib/rev_proxy.h src/defs.h src/server.h src/lib/compress.h
|
||||
bin/lib/rev_proxy.o: src/lib/rev_proxy.h src/defs.h src/server.h src/lib/compress.h
|
||||
|
||||
bin/lib/sock.o: src/lib/sock.c src/lib/sock.h
|
||||
bin/lib/sock.o: src/lib/sock.h
|
||||
|
||||
bin/lib/uri.o: src/lib/uri.c src/lib/uri.h src/lib/utils.h
|
||||
bin/lib/uri.o: src/lib/uri.h src/lib/utils.h
|
||||
|
||||
bin/lib/utils.o: src/lib/utils.c src/lib/utils.h
|
||||
bin/lib/utils.o: src/lib/utils.h
|
||||
|
||||
bin/lib/websocket.o: src/lib/websocket.c src/lib/websocket.h src/defs.h src/lib/utils.h src/lib/sock.h
|
||||
bin/lib/websocket.o: src/lib/websocket.h src/defs.h src/lib/utils.h src/lib/sock.h
|
||||
|
||||
|
||||
permit:
|
||||
|
@@ -21,7 +21,7 @@ Sesimos – Secure, simple, modern web server
|
||||
|
||||
## Configuration
|
||||
|
||||
See [docs/example.conf](docs/example.conf) for more details.
|
||||
See [doc/example.conf](doc/example.conf) for more details.
|
||||
|
||||
|
||||
### Global directives
|
||||
|
@@ -628,9 +628,24 @@ int fastcgi_receive_chunked(fastcgi_conn *conn, sock *client) {
|
||||
while (1) {
|
||||
ret = sock_recv(client, tmp, sizeof(tmp), MSG_PEEK);
|
||||
if (ret < 0) return -2;
|
||||
else if (ret < 2) continue;
|
||||
|
||||
int len = 0;
|
||||
for (int i = 0; i < ret; i++) {
|
||||
char ch = tmp[i];
|
||||
if (ch == '\r') {
|
||||
continue;
|
||||
} else if (ch == '\n') {
|
||||
len = i + 1;
|
||||
break;
|
||||
} else if (!((ch >= '0' && ch <= '9') || (ch >= 'a' && ch <= 'f') || (ch >= 'A' && ch <= 'F'))) {
|
||||
return -2;
|
||||
}
|
||||
}
|
||||
if (len == 0) continue;
|
||||
|
||||
next_len = strtol(tmp, NULL, 16);
|
||||
char *ptr = strstr(tmp, "\r\n");
|
||||
ret = sock_recv(client, tmp, ptr - tmp + 2, 0);
|
||||
ret = sock_recv(client, tmp, len, 0);
|
||||
if (ret < 0) return -2;
|
||||
|
||||
if (next_len <= 0) break;
|
||||
|
@@ -112,9 +112,24 @@ long sock_splice_chunked(sock *dst, sock *src, void *buf, unsigned long buf_len)
|
||||
while (1) {
|
||||
ret = sock_recv(src, tmp, sizeof(tmp), MSG_PEEK);
|
||||
if (ret < 0) return -2;
|
||||
else if (ret < 2) continue;
|
||||
|
||||
int len = 0;
|
||||
for (int i = 0; i < ret; i++) {
|
||||
char ch = tmp[i];
|
||||
if (ch == '\r') {
|
||||
continue;
|
||||
} else if (ch == '\n') {
|
||||
len = i + 1;
|
||||
break;
|
||||
} else if (!((ch >= '0' && ch <= '9') || (ch >= 'a' && ch <= 'f') || (ch >= 'A' && ch <= 'F'))) {
|
||||
return -2;
|
||||
}
|
||||
}
|
||||
if (len == 0) continue;
|
||||
|
||||
next_len = strtol(tmp, NULL, 16);
|
||||
char *ptr = strstr(tmp, "\r\n");
|
||||
ret = sock_recv(src, tmp, ptr - tmp + 2, 0);
|
||||
ret = sock_recv(src, tmp, len, 0);
|
||||
if (ret < 0) return -2;
|
||||
|
||||
if (next_len <= 0) break;
|
||||
|
Reference in New Issue
Block a user