# HG changeset patch # User John Tsiombikas # Date 1429261379 -10800 # Node ID 121b991ccc1d7a6743039843e4897ca62fb4f68c # Parent 5ec50ca0d0710bdf90f3a67879db146954a91d9c fixed the SIGPIPE bug diff -r 5ec50ca0d071 -r 121b991ccc1d src/main.c --- a/src/main.c Fri Apr 17 11:45:08 2015 +0300 +++ b/src/main.c Fri Apr 17 12:02:59 2015 +0300 @@ -94,6 +94,12 @@ } break; + case 'c': + if(tw_set_root(argv[++i]) == -1) { + return -1; + } + break; + case 'h': print_help(argv[0]); exit(0); diff -r 5ec50ca0d071 -r 121b991ccc1d src/tinyweb.c --- a/src/tinyweb.c Fri Apr 17 11:45:08 2015 +0300 +++ b/src/tinyweb.c Fri Apr 17 12:02:59 2015 +0300 @@ -124,11 +124,6 @@ { struct client *c, dummy; - if(!socks) { - /* just return the count */ - return num_clients + 1; /* +1 for the listening socket */ - } - /* first cleanup the clients marked for removal */ dummy.next = clist; c = &dummy; @@ -147,6 +142,12 @@ } clist = dummy.next; + + if(!socks) { + /* just return the count */ + return num_clients + 1; /* +1 for the listening socket */ + } + /* go through the client list and populate the array */ maxfd = lis; *socks++ = lis; @@ -210,6 +211,7 @@ c->bufsz = 0; c->next = clist; clist = c; + ++num_clients; return 0; } @@ -364,6 +366,7 @@ int sz = cont_left < 4096 ? cont_left : 4096; send(c->s, ptr, sz, 0); ptr += sz; + cont_left -= sz; } munmap(cont, st.st_size);