]> git.ipfire.org Git - thirdparty/squid.git/blame - src/snmpx/Request.cc
Amos requests
[thirdparty/squid.git] / src / snmpx / Request.cc
CommitLineData
51ea0904
CT
1/*
2 * $Id$
3 *
4 * DEBUG: section 49 SNMP Interface
5 *
6 */
7
8#include "config.h"
9#include "ipc/Messages.h"
10#include "ipc/TypedMsgHdr.h"
11#include "snmpx/Request.h"
12
13
14Snmp::Request::Request(int aRequestorId, unsigned int aRequestId,
15 const Pdu& aPdu, const Session& aSession,
16 int aFd, const Ip::Address& anAddress):
17 Ipc::Request(aRequestorId, aRequestId),
18 pdu(aPdu), session(aSession), fd(aFd), address(anAddress)
19{
20}
21
22Snmp::Request::Request(const Request& request):
23 Ipc::Request(request.requestorId, request.requestId),
24 pdu(request.pdu), session(request.session),
25 fd(request.fd), address(request.address)
26{
27}
28
29Snmp::Request::Request(const Ipc::TypedMsgHdr& msg):
30 Ipc::Request(0, 0)
31{
32 msg.checkType(Ipc::mtSnmpRequest);
33 msg.getPod(requestorId);
34 msg.getPod(requestId);
35 pdu.unpack(msg);
36 session.unpack(msg);
37 msg.getPod(address);
38
39 fd = msg.getFd();
40}
41
42void
43Snmp::Request::pack(Ipc::TypedMsgHdr& msg) const
44{
45 msg.setType(Ipc::mtSnmpRequest);
46 msg.putPod(requestorId);
47 msg.putPod(requestId);
48 pdu.pack(msg);
49 session.pack(msg);
50 msg.putPod(address);
51
52 msg.putFd(fd);
53}
54
55Ipc::Request::Pointer
56Snmp::Request::clone() const
57{
58 return new Request(*this);
59}