...
|
...
|
@@ -204,7 +204,7 @@ wk_service(wk *paramweb)
|
204
|
204
|
wk_client *client;
|
205
|
205
|
if(web==NULL)
|
206
|
206
|
return(-1);
|
207
|
|
- while((n=sselect_getreadfiltered(web,&(web->fdset),fds,sizeof(fds)/sizeof(fds[0])))>0) {
|
|
207
|
+ while((n=sselect_getreadfiltered(web->ssel,&(web->fdset),fds,sizeof(fds)/sizeof(fds[0])))>0) {
|
208
|
208
|
for(i=0;i<n;i++) {
|
209
|
209
|
fd=fds[i];
|
210
|
210
|
if(fd==web->serverfd) {
|
...
|
...
|
@@ -238,7 +238,7 @@ wk_service(wk *paramweb)
|
238
|
238
|
}
|
239
|
239
|
}
|
240
|
240
|
}
|
241
|
|
- while((n=sselect_getwritefiltered(web,&(web->fdset),fds,sizeof(fds)/sizeof(fds[0])))>0) {
|
|
241
|
+ while((n=sselect_getwritefiltered(web->ssel,&(web->fdset),fds,sizeof(fds)/sizeof(fds[0])))>0) {
|
242
|
242
|
for(i=0;i<n;i++) {
|
243
|
243
|
fd=fds[i];
|
244
|
244
|
if((client=(wk_client *)sselect_getuserptr(web->ssel,fd))==NULL || client->web!=(wk *)web)
|
...
|
...
|
@@ -548,7 +548,7 @@ wk_sbufacquire(wk *paramweb)
|
548
|
548
|
/* make sure there are free bufblocks */
|
549
|
549
|
if(web->usedbufblocks==web->sizebufblocks) {
|
550
|
550
|
wk_bufblock *newbb;
|
551
|
|
- if((newbb=(wk_bufblock *)realloc(web->bufblocks,web->sizebufblocks+BUFBLOCKBLOCK))==NULL)
|
|
551
|
+ if((newbb=(wk_bufblock *)realloc(web->bufblocks,(web->sizebufblocks+BUFBLOCKBLOCK)*sizeof(wk_bufblock)))==NULL)
|
552
|
552
|
return(-1); /* insufficient memory */
|
553
|
553
|
web->bufblocks=newbb;
|
554
|
554
|
memset(web->bufblocks+web->sizebufblocks,0,BUFBLOCKBLOCK*sizeof(wk_bufblock));
|
...
|
...
|
@@ -569,6 +569,7 @@ wk_sbufacquire(wk *paramweb)
|
569
|
569
|
memset(bb->bufs,0,sizeof(wk_buf)*BUFBLOCK);
|
570
|
570
|
bb->sizebufs=BUFBLOCK;
|
571
|
571
|
bb->usedbufs=0;
|
|
572
|
+ web->usedbufblocks++;
|
572
|
573
|
}
|
573
|
574
|
/* get first unused sbuf */
|
574
|
575
|
for(j=0;j<bb->sizebufs;j+=8) {
|
...
|
...
|
@@ -659,7 +660,7 @@ wk_clientacquire(_wk *web)
|
659
|
660
|
/* make sure there are free clientblocks */
|
660
|
661
|
if(web->usedclientblocks==web->sizeclientblocks) {
|
661
|
662
|
wk_clientblock *newcb;
|
662
|
|
- if((newcb=(wk_clientblock *)realloc(web->clientblocks,web->sizeclientblocks+CLIENTBLOCKBLOCK))==NULL)
|
|
663
|
+ if((newcb=(wk_clientblock *)realloc(web->clientblocks,(web->sizeclientblocks+CLIENTBLOCKBLOCK)*sizeof(wk_clientblock)))==NULL)
|
663
|
664
|
return(NULL); /* insufficient memory */
|
664
|
665
|
web->clientblocks=newcb;
|
665
|
666
|
memset(web->clientblocks+web->sizeclientblocks,0,CLIENTBLOCKBLOCK*sizeof(wk_clientblock));
|
...
|
...
|
@@ -680,6 +681,7 @@ wk_clientacquire(_wk *web)
|
680
|
681
|
memset(cb->clients,0,sizeof(wk_client)*CLIENTBLOCK);
|
681
|
682
|
cb->sizeclients=CLIENTBLOCK;
|
682
|
683
|
cb->usedclients=0;
|
|
684
|
+ web->usedclientblocks++;
|
683
|
685
|
}
|
684
|
686
|
/* get first unused client */
|
685
|
687
|
for(j=0;j<cb->sizeclients;j+=8) {
|
...
|
...
|
@@ -762,8 +764,8 @@ str_findfirstempty(char *ptr, int size)
|
762
|
764
|
{
|
763
|
765
|
int i;
|
764
|
766
|
for(i=0;i<(size-3);i++) {
|
765
|
|
- if(ptr[0]=='\r' && ptr[1]=='\n' && ptr[2]=='\r' && ptr[3]=='\n')
|
766
|
|
- return(ptr);
|
|
767
|
+ if(ptr[i+0]=='\r' && ptr[i+1]=='\n' && ptr[i+2]=='\r' && ptr[i+3]=='\n')
|
|
768
|
+ return(ptr+i);
|
767
|
769
|
}
|
768
|
770
|
return(NULL);
|
769
|
771
|
}
|
...
|
...
|
@@ -819,7 +821,7 @@ wk_clientserviceread(_wk *web, wk_client *client)
|
819
|
821
|
sbuf_add(hbuf,ptr,strlen(ptr)+1);
|
820
|
822
|
ptr+=strlen(ptr)+1;
|
821
|
823
|
/* protocol */
|
822
|
|
- uri->path=sbuf_ptrunused(hbuf);
|
|
824
|
+ uri->protocol=sbuf_ptrunused(hbuf);
|
823
|
825
|
sbuf_add(hbuf,ptr,strlen(ptr)+1);
|
824
|
826
|
ptr+=strlen(ptr)+1;
|
825
|
827
|
/* headers */
|