Compare commits
3 Commits
1859c432c8
...
db053121f2
Author | SHA1 | Date | |
---|---|---|---|
db053121f2
|
|||
89a9d4b9d6
|
|||
bc7c3591a2
|
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,8 +1,8 @@
|
|||||||
*
|
*
|
||||||
!src
|
!src
|
||||||
!src/**
|
!src/**
|
||||||
!docs
|
!doc
|
||||||
!docs/**
|
!doc/**
|
||||||
!Makefile
|
!Makefile
|
||||||
!.gitignore
|
!.gitignore
|
||||||
!README.md
|
!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)
|
$(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
|
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/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
|
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
|
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:
|
permit:
|
||||||
|
@@ -21,7 +21,7 @@ Sesimos – Secure, simple, modern web server
|
|||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
See [docs/example.conf](docs/example.conf) for more details.
|
See [doc/example.conf](doc/example.conf) for more details.
|
||||||
|
|
||||||
|
|
||||||
### Global directives
|
### Global directives
|
||||||
|
@@ -628,9 +628,24 @@ int fastcgi_receive_chunked(fastcgi_conn *conn, sock *client) {
|
|||||||
while (1) {
|
while (1) {
|
||||||
ret = sock_recv(client, tmp, sizeof(tmp), MSG_PEEK);
|
ret = sock_recv(client, tmp, sizeof(tmp), MSG_PEEK);
|
||||||
if (ret < 0) return -2;
|
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);
|
next_len = strtol(tmp, NULL, 16);
|
||||||
char *ptr = strstr(tmp, "\r\n");
|
ret = sock_recv(client, tmp, len, 0);
|
||||||
ret = sock_recv(client, tmp, ptr - tmp + 2, 0);
|
|
||||||
if (ret < 0) return -2;
|
if (ret < 0) return -2;
|
||||||
|
|
||||||
if (next_len <= 0) break;
|
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) {
|
while (1) {
|
||||||
ret = sock_recv(src, tmp, sizeof(tmp), MSG_PEEK);
|
ret = sock_recv(src, tmp, sizeof(tmp), MSG_PEEK);
|
||||||
if (ret < 0) return -2;
|
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);
|
next_len = strtol(tmp, NULL, 16);
|
||||||
char *ptr = strstr(tmp, "\r\n");
|
ret = sock_recv(src, tmp, len, 0);
|
||||||
ret = sock_recv(src, tmp, ptr - tmp + 2, 0);
|
|
||||||
if (ret < 0) return -2;
|
if (ret < 0) return -2;
|
||||||
|
|
||||||
if (next_len <= 0) break;
|
if (next_len <= 0) break;
|
||||||
|
Reference in New Issue
Block a user