summaryrefslogtreecommitdiff
path: root/fd.c
diff options
context:
space:
mode:
Diffstat (limited to 'fd.c')
-rw-r--r--fd.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/fd.c b/fd.c
index a9f6d4f..d07d3a3 100644
--- a/fd.c
+++ b/fd.c
@@ -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;