--- snmplib/snmp_api.c.orig	2007-08-09 11:03:54.236898900 +0200
+++ snmplib/snmp_api.c	2007-08-09 11:22:08.144299300 +0200
@@ -1844,6 +1844,29 @@ create_user_from_session(netsnmp_session
 
 }                               /* end create_user_from_session() */
 
+int snmp_get_fd_for_session(struct snmp_session *sessp)
+{
+                             
+    struct session_list *slp;
+    int fd = 0;
+
+                              /*MTCRITICAL_RESOURCE */
+    snmp_res_lock(MT_LIBRARY_ID, MT_LIB_SESSION);
+    for (slp = Sessions; slp; slp = slp->next) {
+        if(slp->session == sessp) {
+            if (slp->transport != 0) {
+                fd = slp->transport->sock;
+            }
+            break;
+        }
+    }
+    snmp_res_unlock(MT_LIBRARY_ID, MT_LIB_SESSION);
+                              /*END MTCRITICAL_RESOURCE */
+
+    return fd;
+}
+
+
 /*
  *  Do a "deep free()" of a netsnmp_session.
  *
