...
|
...
|
@@ -35,7 +35,8 @@ main(int argc, char *argv[])
|
35
|
35
|
char id[MAXIDSIZE];
|
36
|
36
|
int fd,n;
|
37
|
37
|
char *ptr;
|
38
|
|
- char *host,port;
|
|
38
|
+ char *host;
|
|
39
|
+ int port;
|
39
|
40
|
long hostsize;
|
40
|
41
|
int socket;
|
41
|
42
|
sbuf *c2s,*s2c;
|
...
|
...
|
@@ -103,7 +104,7 @@ main(int argc, char *argv[])
|
103
|
104
|
continue;
|
104
|
105
|
nreadfds=sselect_getread(ssel,readfds,sizeof(readfds)/sizeof(readfds[1]));
|
105
|
106
|
nwritefds=sselect_getwrite(ssel,writefds,sizeof(writefds)/sizeof(writefds[1]));
|
106
|
|
- for(i=0;i<nreadfds;i++) {
|
|
107
|
+ for(i=0;i<nreadfds && i<(sizeof(readfds)/sizeof(readfds[0]));i++) {
|
107
|
108
|
if(readfds[i]==INFD && sbuf_count(c2s)<BUFSIZE) {
|
108
|
109
|
if((queued=sock_queued(readfds[i]))==0) {
|
109
|
110
|
forcedexit=1;
|
...
|
...
|
@@ -121,7 +122,7 @@ main(int argc, char *argv[])
|
121
|
122
|
sbuf_fill(s2c,socket,queued);
|
122
|
123
|
}
|
123
|
124
|
}
|
124
|
|
- for(i=0;i<nwritefds;i++) {
|
|
125
|
+ for(i=0;i<nwritefds && i<(sizeof(writefds)/sizeof(writefds[0]));i++) {
|
125
|
126
|
if(writefds[i]==OUTFD && sbuf_count(s2c)>0)
|
126
|
127
|
sbuf_send(s2c,OUTFD,sbuf_count(s2c));
|
127
|
128
|
if(writefds[i]==socket && sbuf_count(c2s)>0)
|