Re: Getting listening port number while processing request
Teus Benschop <[email protected]> Wed, 8 May 2024 10:42:02 +0200
| Newsgroups | gmane.network.net-snmp.devel |
|---|---|
| Message-ID | <CAFueZ4y7DpjamqbC2XT=8H1OSM0nYyypSLCk=bHh1jy+B_jg0w@mail.gmail.com> |
--0000000000007cece20617ed4714 Content-Type: multipart/alternative; boundary="0000000000007cece10617ed4712" --0000000000007cece10617ed4712 Content-Type: text/plain; charset="UTF-8" On Wed, 3 Apr 2024 at 18:45, Bart Van Assche <[email protected]> wrote: > I think this is the callchain for registering the ports that the agent > listens on: > > init_master_agent() > netsnmp_agent_listen_on() > netsnmp_transport_open_server() > netsnmp_register_agent_nsap() > netsnmp_sess_config_transport() > snmp_add() > snmp_sess_add_ex() > transport->f_setup_session() > > One possible approach is to implement the .f_setup_session() callback in > the TCP transport and to make it copy the port information from the > transport into the session. > > > Hi Bart, The possible approach that is suggested appears to work very well. I have implemented the f_setup_session() callback in the snmpTCPBaseDomain.h/.c files. This callback obtains the port number and copies that into the session object. Then from the session object, the local_port is available while processing the SNMP requests. I am happy it works and that we can use this local_port in our software, that is so helpful. The patch with the above modification is attached. It would be so great if this patch can make it in the official tarball of Net-SNMP. Thank you for the suggestions and all the help all along. Regards, Teus --0000000000007cece10617ed4712 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon= t-size:small"><br></div></div><div class=3D"gmail_quote"><div dir=3D"ltr" c= lass=3D"gmail_attr">On Wed, 3 Apr 2024 at 18:45, Bart Van Assche <<a hre= f=3D"mailto:[email protected]">[email protected]</a>> wrote:<br></div>= <blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-= left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);p= adding-left:1ex"><u></u> =20 =20 =20 <div> <div>I think this is the callchain for registering the ports that the agent listens on:<br></div> <p><font face=3D"monospace">init_master_agent()<br> =C2=A0 netsnmp_agent_listen_on()<br> =C2=A0=C2=A0=C2=A0 netsnmp_transport_open_server()<br> =C2=A0=C2=A0=C2=A0 netsnmp_register_agent_nsap()<br> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 netsnmp_sess_config_transport()<br> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 snmp_add()<br> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 snmp_sess_add_ex()<br> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 transport-&g= t;f_setup_session()<br> </font></p> <p>One possible approach is to implement the .f_setup_session() callback in the TCP transport and to make it copy the port information from the transport into the session.</p> <p><br></p></div></blockquote><div style=3D"font-size:small" class=3D"g= mail_default">Hi Bart,</div><div style=3D"font-size:small" class=3D"gmail_d= efault"><br></div><div style=3D"font-size:small" class=3D"gmail_default">Th= e possible approach that is suggested appears to work very well.</div><div = style=3D"font-size:small" class=3D"gmail_default"><br></div><div style=3D"f= ont-size:small" class=3D"gmail_default">I have implemented the f_setup_sess= ion() callback in the=C2=A0snmpTCPBaseDomain.h/.c files.</div><div style=3D= "font-size:small" class=3D"gmail_default">This callback obtains the port nu= mber and copies that into the session object.</div><div style=3D"font-size:= small" class=3D"gmail_default">Then from the session object, the local_port= is available while processing the SNMP requests.</div><div style=3D"font-s= ize:small" class=3D"gmail_default">I am happy it works and that we can use = this local_port in our software, that is so helpful.</div><div style=3D"fon= t-size:small" class=3D"gmail_default"><br></div><div style=3D"font-size:sma= ll" class=3D"gmail_default">The patch with the above modification is attach= ed.</div><div style=3D"font-size:small" class=3D"gmail_default">It would be= so great if this patch can make it in the official tarball of Net-SNMP.</d= iv><div style=3D"font-size:small" class=3D"gmail_default"><br></div><div st= yle=3D"font-size:small" class=3D"gmail_default">Thank you for the suggestio= ns and all the help all along.</div><div style=3D"font-size:small" class=3D= "gmail_default"><br></div><div style=3D"font-size:small" class=3D"gmail_def= ault">Regards,</div><div style=3D"font-size:small" class=3D"gmail_default">= <br></div><div style=3D"font-size:small" class=3D"gmail_default">Teus</div>= <div style=3D"font-size:small" class=3D"gmail_default"><br></div><div style= =3D"font-size:small" class=3D"gmail_default"><br></div></div></div> --0000000000007cece10617ed4712-- --0000000000007cece20617ed4714 Content-Type: application/octet-stream; name="local_tcp_port.patch" Content-Disposition: attachment; filename="local_tcp_port.patch" Content-Transfer-Encoding: base64 Content-ID: <f_lvxkka770> X-Attachment-Id: f_lvxkka770 ZGlmZiAtcnVOIG5ldHNubXAtb3JpZy9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUEJh c2VEb21haW4uaCBuZXRzbm1wL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQQmFzZURv bWFpbi5oCi0tLSBuZXRzbm1wLW9yaWcvaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BC YXNlRG9tYWluLmgJMjAyNC0wNS0wNyAwNzoyMzoyNS4zOTU3MDM5NjkgKzAyMDAKKysrIG5ldHNu bXAvaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BCYXNlRG9tYWluLmgJMjAyNC0wNS0w NyAxNDowNzo0OC4xMjQ5NDY0NTUgKzAyMDAKQEAgLTE0LDYgKzE0LDggQEAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdm9pZCAqKm9wYXF1ZSwgaW50ICpvbGVuZ3RoKTsKICAgICBpbnQg bmV0c25tcF90Y3BiYXNlX3NlbmQobmV0c25tcF90cmFuc3BvcnQgKnQsIGNvbnN0IHZvaWQgKmJ1 ZiwgaW50IHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKipvcGFxdWUs IGludCAqb2xlbmd0aCk7CisgICAgaW50IG5ldHNubXBfdGNwYmFzZV9zZXNzaW9uX2luaXQoc3Ry dWN0IG5ldHNubXBfdHJhbnNwb3J0X3MgKiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3Qgc25tcF9zZXNzaW9uICpzZXNzKTsKICAgICAgICAgCiAjaWZkZWYgX19j cGx1c3BsdXMKIH0KCmRpZmYgLXJ1TiBuZXRzbm1wLW9yaWcvc25tcGxpYi90cmFuc3BvcnRzL3Nu bXBUQ1BCYXNlRG9tYWluLmMgbmV0c25tcC9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUEJhc2VE b21haW4uYwotLS0gbmV0c25tcC1vcmlnL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQQmFzZURv bWFpbi5jCTIwMjQtMDUtMDcgMDc6MjM6MjUuNDI3NzAzNjg3ICswMjAwCisrKyBuZXRzbm1wL3Nu bXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQQmFzZURvbWFpbi5jCTIwMjQtMDUtMDcgMTQ6MDc6NDgu MTU2OTQ2MjY4ICswMjAwCkBAIC0xMDQsMyArMTA0LDIzIEBACiAgICAgfQogICAgIHJldHVybiBy YzsKIH0KKworCitpbnQgbmV0c25tcF90Y3BiYXNlX3Nlc3Npb25faW5pdChzdHJ1Y3QgbmV0c25t cF90cmFuc3BvcnRfcyAqdHJhbnNwb3J0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IHNubXBfc2Vzc2lvbiAqc2VzcykgeworICAgIGlmICghc2VzcykgeworICAgICAg ICBERUJVR01TR1RMKCgibmV0c25tcF90Y3BiYXNlIiwgIkNhbm5vdCBnZXQgbG9jYWwgcG9ydCBu dW1iZXIgYmVjYXVzZSB0aGUgc2Vzc2lvbiBpcyBOVUxMXG4iKSk7CisgICAgICAgIHJldHVybiBT Tk1QRVJSX1NVQ0NFU1M7CisgICAgfQorICAgIAorICAgIHN0cnVjdCBzb2NrYWRkcl9pbiBzaW47 CisgICAgc29ja2xlbl90IGxlbiA9IHNpemVvZihzaW4pOworICAgIGlmIChnZXRzb2NrbmFtZSh0 cmFuc3BvcnQtPnNvY2ssIChzdHJ1Y3Qgc29ja2FkZHIgKikmc2luLCAmbGVuKSA9PSAtMSkKKyAg ICAgICAgREVCVUdNU0dUTCgoIm5ldHNubXBfdGNwYmFzZSIsICJnZXRzb2NrbmFtZSBlcnJvciAl c1xuIiwgc3RyZXJyb3IoZXJybm8pKSk7CisgICAgZWxzZQorICAgICAgICBzZXNzLT5sb2NhbF9w b3J0ID0gbnRvaHMoc2luLnNpbl9wb3J0KTsKKyAgICAKKyAgICBERUJVR01TR1RMKCgibmV0c25t cF90Y3BiYXNlIiwgImxvY2FsIHBvcnQgbnVtYmVyICVkXG4iLCBzZXNzLT5sb2NhbF9wb3J0KSk7 CisgICAgCisgICAgcmV0dXJuIFNOTVBFUlJfU1VDQ0VTUzsKK30KCmRpZmYgLXJ1TiBuZXRzbm1w LW9yaWcvc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYyBuZXRzbm1wL3NubXBsaWIv dHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmMKLS0tIG5ldHNubXAtb3JpZy9zbm1wbGliL3RyYW5z cG9ydHMvc25tcFRDUERvbWFpbi5jCTIwMjQtMDUtMDcgMDc6MjM6MjUuNDI3NzAzNjg3ICswMjAw CisrKyBuZXRzbm1wL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmMJMjAyNC0wNS0w NyAxNDowNzo0OC4xNTY5NDYyNjggKzAyMDAKQEAgLTI5Niw2ICsyOTYsNyBAQAogICAgIHQtPmZf c2VuZCAgICAgPSBuZXRzbm1wX3RjcGJhc2Vfc2VuZDsKICAgICB0LT5mX2Nsb3NlICAgID0gbmV0 c25tcF9zb2NrZXRiYXNlX2Nsb3NlOwogICAgIHQtPmZfYWNjZXB0ICAgPSBuZXRzbm1wX3RjcF9h Y2NlcHQ7CisgICAgdC0+Zl9zZXR1cF9zZXNzaW9uID0gbmV0c25tcF90Y3BiYXNlX3Nlc3Npb25f aW5pdDsKICAgICB0LT5mX2ZtdGFkZHIgID0gbmV0c25tcF90Y3BfZm10YWRkcjsKICAgICB0LT5m X2dldF90YWRkciA9IG5ldHNubXBfaXB2NF9nZXRfdGFkZHI7CiAK --0000000000007cece20617ed4714 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline --0000000000007cece20617ed4714 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Net-snmp-coders mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/net-snmp-coders --0000000000007cece20617ed4714--