91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

用net-snmp的c apis實現trap的接收,類似于snmptrapd工具的實現,但是更為簡單。

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?




int??????netsnmp_running?=?1;

/************************************************************************
**?
**?
************************************************************************/

int?snmp_input(int?op?netsnmp_session?*session?int?reqid?netsnmp_pdu?*pdu?void?*magic)
{
????printf(“We?got?a?trap:\n“);
????struct?variable_list?*vars;
????for(vars?=?pdu->variables;?vars;?vars?=?vars->next_variable)
????{
????????print_variable(vars->name?vars->name_length?vars);
????}
????return?1;
}

static?int?pre_parse(netsnmp_session?*?session?netsnmp_transport?*transport
??????????void?*transport_data?int?transport_data_length)
{
return?1;
}

static?netsnmp_session?*snmptrapd_add_session(netsnmp_transport?*t)
{
????netsnmp_session?sess?*session?=?&sess?*rc?=?NULL;

????snmp_sess_init(session);
????session->peername?=?SNMP_DEFAULT_PEERNAME;??/*?Original?code?had?NULL?here?*/
????session->version?=?SNMP_DEFAULT_VERSION;
????session->community_len?=?SNMP_DEFAULT_COMMUNITY_LEN;
????session->retries?=?SNMP_DEFAULT_RETRIES;
????session->timeout?=?SNMP_DEFAULT_TIMEOUT;
????session->callback?=?snmp_input;
????session->callback_magic?=?(void?*)?t;
????session->authenticator?=?NULL;
????sess.isAuthoritative?=?SNMP_SESS_UNKNOWNAUTH;

????rc?=?snmp_add(session?t?pre_parse?NULL);
????if?(rc?==?NULL)
{
????????snmp_sess_perror(“snmptrapd“?session);
????}
????return?rc;
}

static?void?snmptrapd_close_sessions(netsnmp_session?*?sess_list)
{
????netsnmp_session?*s?=?NULL?*next?=?NULL;

????for?(s?=?sess_list;?s?!=?NULL;?s?=?next)
{
????????next?=?s->next;
????????snmp_close(s);
????}
}

static?void?snmptrapd_main_loop(void)
{
int count?numfds?block;
fd_set readfdswritefdsexceptfds;
struct?timeval??timeout?*tvp;

printf(“snmptrapd_main_loop\n“);

while?(netsnmp_running)
{
numfds?=?0;
FD_ZERO(&readfds);
FD_ZERO(&writefds);
FD_ZERO(&exceptfds);
block?=?0;
tvp?=?&timeout;
timerclear(tvp);
tvp->tv_sec?=?5;
snmp_select_info(&numfds?&readfds?tvp?&block);
if?(block?==?1)
{
tvp?=?NULL;?????????/*?block?without?timeout?*/
}

#ifndef?NETSNMP_FEATURE_REMOVE_FD_EVENT_MANAGER
netsnmp_external_event_info(&numfds?&readfds?&writefds?&exceptfds);
#endif?/*?NETSNMP_FEATURE_REMOVE_FD_EVENT_MANAGER?*/

count?=?select(numfds?&readfds?&writefds?&exceptfds?tvp);
printf(“count?=?%d\n“?count);
if?(count?>?0)
{
#ifndef?NETSNMP_FEATURE_REMOVE_FD_EVENT_MANAGER
netsnmp_dispatch_external_events(&count?&readfds?&writefds?&exceptfds);
#endif?/*?NETSNMP_FEATURE_REMOVE_FD_EVENT_MANAGER?*/

/*?If?there?are?any?more?events?after?external?events?then?try?SNMP?events.?*/
if?(count?>?0)
{
snmp_read(&readfds);
}
}
else?
{
switch?(count)

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????6725??2013-06-06?10:57??snmptrapd\snmptrapd-linux.c

?????文件???????7178??2013-06-06?10:49??snmptrapd\snmptrapd-windows.cpp

?????目錄??????????0??2013-06-09?10:44??snmptrapd

-----------?---------??----------?-----??----

????????????????13903????????????????????3


評論

共有 條評論