// got back response from SNMPv1 agent - process it int transaction::handle_input (ACE_HANDLE) { // OS allocates iovec_.iov_base ptr and len delete [] (char*) receive_iovec_.iov_base; reset_receive_buffer(receive_iovec_); int rc = session_.recv(&receive_iovec_, receive_addr_, 0); if (rc == -1) { delete [] (char*) receive_iovec_.iov_base; reset_receive_buffer(receive_iovec_); if (result_) result_->result(this, SNMP_CLASS_RESOURCE_UNAVAIL); return SNMP_CLASS_RESOURCE_UNAVAIL; } if (result_) result_->result(this, rc); return 0; }
transaction::transaction(const Pdu& pdu, const UdpTarget& target, ACE_SOCK_Dgram& io): result_(0), wp_(pdu,target), params_(target), session_(io) { // last step, convert address (get ride of this once we have merged address UdpAddress udp; target.get_address(udp); // via string conversion "dotted-quad:port" ACE_INET_Addr tmp(udp); addr_ = tmp; reset_receive_buffer(receive_iovec_); }
transaction::transaction(ACE_SOCK_Dgram& io) : result_(0), session_(io) { reset_receive_buffer(receive_iovec_); }