Code Review
/
ric-plt
/
lib
/
rmr.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Eliminate the SI receive buffer length requirement
[ric-plt/lib/rmr.git]
/
src
/
rmr
/
si
/
src
/
si95
/
sipoll.c
diff --git
a/src/rmr/si/src/si95/sipoll.c
b/src/rmr/si/src/si95/sipoll.c
index
0ecca66
..
8c28977
100644
(file)
--- a/
src/rmr/si/src/si95/sipoll.c
+++ b/
src/rmr/si/src/si95/sipoll.c
@@
-53,7
+53,7
@@
extern int SIpoll( struct ginfo_blk *gptr, int msdelay )
char ibuf[1025];
int i; // loop index
struct tp_blk *tpptr; // pointer at tp stuff
char ibuf[1025];
int i; // loop index
struct tp_blk *tpptr; // pointer at tp stuff
- struct tp_blk *nextone; // pointer at next block to process
+ struct tp_blk *nextone
= NULL
; // pointer at next block to process
int pstat; // poll status
int kstat; // keyboard status
struct timeval delay; // delay to use on select call
int pstat; // poll status
int kstat; // keyboard status
struct timeval delay; // delay to use on select call
@@
-120,9
+120,9
@@
extern int SIpoll( struct ginfo_blk *gptr, int msdelay )
}
// for( tpptr = gptr->tplist; tpptr != NULL; tpptr = tpptr->next )
}
// for( tpptr = gptr->tplist; tpptr != NULL; tpptr = tpptr->next )
- for( tpptr = gptr->tplist; tpptr != NULL; tpptr = nextone )
- {
- nextone = tpptr->next; // prevent coredump if we delete the session
+ tpptr = gptr->tplist;
+
while( tpptr != NULL )
{
+ nextone = tpptr->next; // allow for a delete in loop
if( tpptr->squeue != NULL && (FD_ISSET( tpptr->fd, &gptr->writefds )) )
SIsend( gptr, tpptr ); // send if clear to send
if( tpptr->squeue != NULL && (FD_ISSET( tpptr->fd, &gptr->writefds )) )
SIsend( gptr, tpptr ); // send if clear to send
@@
-180,6
+180,8
@@
extern int SIpoll( struct ginfo_blk *gptr, int msdelay )
}
} // end tcp read
} // end if event on this fd
}
} // end tcp read
} // end if event on this fd
+
+ tpptr = nextone;
} // end for each fd in the list
} // end if not in shutdown
} // end for each fd in the list
} // end if not in shutdown