diff options
Diffstat (limited to 'fd.c')
-rw-r--r-- | fd.c | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -136,6 +136,14 @@ InitializeFD(void) /* ************************************************************ */ +const char * +GetPeerInfo(FD fd) +{ + return FDD[fd].peer_info; +} + +/* ************************************************************ */ + void UsingFD(FD fd, void (*Handler) (int), @@ -152,6 +160,7 @@ UsingFD(FD fd, #ifdef USE_XTRANS FDD[fd].trans_conn = trans_conn; #endif + FDD[fd].peer_info = ReadPeerInfo(fd); if (Handler == NULL) FD_CLR(fd, &ReadDescriptors); /* clear fd bit */ else @@ -180,6 +189,9 @@ NotUsingFD(FD fd) FDD[fd].Busy = false; FD_CLR(fd, &ReadDescriptors); /* clear fd bit */ + free(FDD[fd].peer_info); + FDD[fd].peer_info = NULL; + while (!FDD[HighestFD].Busy && HighestFD > 0) HighestFD -= 1; |