本文整理汇总了C++中Pdu::set_type方法的典型用法代码示例。如果您正苦于以下问题:C++ Pdu::set_type方法的具体用法?C++ Pdu::set_type怎么用?C++ Pdu::set_type使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pdu
的用法示例。
在下文中一共展示了Pdu::set_type方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: respond
int sagent::respond(Pdu& pdu,UdpTarget& tgt)
{
pdu.set_type(sNMP_PDU_RESPONSE);
transaction tr(pdu, tgt, iv_snmp_session_);
tr.send();
return 0;
}
示例2: get_pdu
// return a pdu from a buffer
int wpdu::get_pdu(Pdu& pdu, snmp_version& version)
{
if (iovec_.iov_len == 0)
return -1; // NO DATA
snmp_pdu *raw_pdu;
raw_pdu = cmu_snmp::pdu_create(0);
if (!raw_pdu) {
return SNMP_CLASS_RESOURCE_UNAVAIL;
}
// max value a client can send us - TODO: replace this with an
// api to get actual string length
int status = cmu_snmp::parse( raw_pdu, (unsigned char *)iovec_.iov_base,
community_name, comm_len,
version, iovec_.iov_len);
if (status != 0)
return SNMP_CLASS_INTERNAL_ERROR;
community_name[comm_len] = 0; // set null based on returned length
set_request_id( &pdu, raw_pdu->reqid);
set_error_status( &pdu, (int) raw_pdu->errstat);
set_error_index( &pdu, (int) raw_pdu->errindex);
pdu.set_type( raw_pdu->command);
if (restore_vbs(pdu, raw_pdu)) {
cmu_snmp::free_pdu(raw_pdu);
return SNMP_CLASS_INTERNAL_ERROR;
}
cmu_snmp::free_pdu(raw_pdu);
return 0;
}
示例3: set
int Snmp::set( Pdu &pdu, UdpTarget &target, Snmp_Result * cb)
{
ACE_TRACE("Snmp::set");
int rc;
if ((rc = validate_args(pdu, target)) != 0)
return rc;
pdu.set_type( sNMP_PDU_SET);
check_default_port(target);
return run_transaction(pdu, target, cb);
}
示例4: trap
// one way, best of luck, non-confirmed alert
int Snmp::trap( Pdu &pdu, UdpTarget &target)
{
ACE_TRACE("Snmp::trap");
int rc;
if ((rc = validate_args(pdu, target)) != 0)
return rc;
pdu.set_type( sNMP_PDU_V1TRAP);
check_default_port(target, DEF_TRAP_PORT);
// 2. write request to agent
transaction trans(pdu, target, iv_snmp_session_);
if (trans.send() > 0) // expect number of bytes sent on
return 0;
last_transaction_status_ = SNMP_CLASS_INTERNAL_ERROR;
return -1;
}
示例5: unload
// unload the data into SNMP++ objects
int SnmpMessage::unload(Pdu &pdu, // Pdu object
OctetStr &community, // community object
snmp_version &version, // SNMP version #
OctetStr *engine_id, // optional v3
OctetStr *security_name, // optional v3
long int *security_model,
UdpAddress *from_addr,
Snmp *snmp_session)
{
pdu.clear();
if (!valid_flag)
return SNMP_CLASS_INVALID;
snmp_pdu *raw_pdu;
raw_pdu = snmp_pdu_create(0); // do a "snmp_free_pdu( raw_pdu)" before return
int status;
#ifdef _SNMPv3
OctetStr context_engine_id;
OctetStr context_name;
long int security_level = SNMP_SECURITY_LEVEL_NOAUTH_NOPRIV;
if ((security_model) && (security_name) && (engine_id) && (snmp_session)) {
status = v3MP::I->snmp_parse(snmp_session, raw_pdu,
databuff, (int)bufflen, *engine_id,
*security_name, context_engine_id, context_name,
security_level, *security_model, version, *from_addr);
if (status != SNMPv3_MP_OK) {
pdu.set_request_id( raw_pdu->reqid);
pdu.set_type( raw_pdu->command);
snmp_free_pdu( raw_pdu);
return status;
}
pdu.set_context_engine_id(context_engine_id);
pdu.set_context_name(context_name);
pdu.set_security_level(security_level);
pdu.set_message_id(raw_pdu->msgid);
pdu.set_maxsize_scopedpdu(raw_pdu->maxsize_scopedpdu);
}
else {
#endif
unsigned char community_name[MAX_LEN_COMMUNITY + 1];
int community_len = MAX_LEN_COMMUNITY + 1;
status = snmp_parse(raw_pdu, databuff, (int) bufflen,
community_name, community_len, version);
if (status != SNMP_CLASS_SUCCESS) {
snmp_free_pdu(raw_pdu);
return status;
}
community.set_data( community_name, community_len);
#ifdef _SNMPv3
}
#endif
// load up the SNMP++ variables
pdu.set_request_id(raw_pdu->reqid);
pdu.set_error_status((int) raw_pdu->errstat);
pdu.set_error_index((int) raw_pdu->errindex);
pdu.set_type( raw_pdu->command);
// deal with traps a little different
if ( raw_pdu->command == sNMP_PDU_V1TRAP) {
// timestamp
TimeTicks timestamp;
timestamp = raw_pdu->time;
pdu.set_notify_timestamp( timestamp);
// set the agent address
IpAddress agent_addr(inet_ntoa(raw_pdu->agent_addr.sin_addr));
if (agent_addr != "0.0.0.0")
{
pdu.set_v1_trap_address(agent_addr);
LOG_BEGIN(DEBUG_LOG | 4);
LOG("SNMPMessage: Trap address of received v1 trap");
LOG(agent_addr.get_printable());
LOG_END;
}
// set enterprise, notifyid
Oid enterprise;
if (raw_pdu->enterprise_length >0) {
for (int i=0; i< raw_pdu->enterprise_length; i++) {
enterprise += (int) (raw_pdu->enterprise[i]);
}
pdu.set_notify_enterprise(enterprise);
}
switch (raw_pdu->trap_type) {
case 0:
pdu.set_notify_id(coldStart);
break;
case 1:
pdu.set_notify_id(warmStart);
break;
//.........这里部分代码省略.........