Can we make pipefds[0] in netsnmp_callback_transport() as non-blocking fds.?

"Pamidipati Suresh-G20238" <[email protected]>
Newsgroups gmane.network.net-snmp.user
Message-ID <[email protected]>
Hi All,
 
We are using Net-snmp-5.2.2 as Agentx subagent and master agent.
 
In Subagent, we are observing that "select()" returns with a read-fd
set, but a subsequent "read()" call on that fd is getting blocked. The
fd-pair being used here, is created using the "pipe()" call. 
 
We observed that read() call is blocked at line no 194 in
netsnmp_callback_recv() function of snmpCallbackDomain.c file. Following
is the code snippet.
 
    188     DEBUGMSGTL(("transport_callback", "hook_recv enter\n"));
    189
    190     while (rc < 0) {
    191 #ifdef WIN32
    192         rc = recv(mystuff->pipefds[0], newbuf, 1, 0);
    193 #else
    194         rc = read(mystuff->pipefds[0], newbuf, 1);
    195 #endif
    196         if (rc < 0 && errno != EINTR) {
    197             break;
    198         }
    199     }
    200

We have seen this problem in Montavista linux CGE - 4.0. 
 
After going through the Net-snmp code, we found that pipefds created
using pipe() call are not set as non-blocking fds. 
Please let us know if we change the pipefds[0] as non-blocking fds as
follows, will there be any impact in the functionality of Subagent and
Master agent.
 
netsnmp_transport *
netsnmp_callback_transport(int to)
{
int enable_nbio;
. . . 
. . .
    rc = pipe(mydata->pipefds);
    ioctl(mydata->pipefds[0], FIONBIO, &enable_nbio);
.  . . 
. . . 
}
 
Any information on this will be really helpful. 
 
Thanks,
Suresh.

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

_______________________________________________
Net-snmp-users mailing list
[email protected]
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.