};
#define IPQ_MAXERR IPQ_ERR_PROTOCOL
-/*struct ipq_errmap_t
+struct ipq_errmap_t
{
int errcode;
char *message;
{ IPQ_ERR_RECVBUF, "Receive buffer size invalid"},
{ IPQ_ERR_TIMEOUT, "Timeout"},
{ IPQ_ERR_PROTOCOL, "Invalid protocol specified"}
-};*/
+};
static int ipq_errno = IPQ_ERR_NONE;
-static ssize_t ipq_netlink_sendto(const struct ipq_handle *h,
+static ssize_t ipq_netlink_sendto(const struct ipq_handle *h,
const void *msg, size_t len);
static ssize_t ipq_netlink_recvfrom(const struct ipq_handle *h,
return status;
}
//-----------------------------------------------------------------------------
-/*static char *ipq_strerror(int errcode)
+static char *ipq_strerror(int errcode)
{
if (errcode < 0 || errcode > IPQ_MAXERR)
errcode = IPQ_ERR_IMPL;
return ipq_errmap[errcode].message;
-}*/
+}
/****************************************************************************
*
ipq_peer_msg_t pm;
char s[FAKE_ARRAY_SIZE];
} req;
-
+
memset(&req, 0, sizeof(req));
req.nlh.nlmsg_len = NLMSG_LENGTH(sizeof(req)-FAKE_ARRAY_SIZE);
req.nlh.nlmsg_flags = NLM_F_REQUEST;
return((struct nlmsghdr*)buf)->nlmsg_type;
}
//-----------------------------------------------------------------------------
-int ipq_get_msgerr(const unsigned char *buf)
-{
- struct nlmsghdr *h = (struct nlmsghdr *)buf;
- struct nlmsgerr *err = (struct nlmsgerr*)NLMSG_DATA(h);
- return -err->error;
-}
-//-----------------------------------------------------------------------------
ipq_packet_msg_t *ipq_get_packet(const unsigned char *buf)
{
return(ipq_packet_msg_t *)(NLMSG_DATA((struct nlmsghdr *)(buf)));
return ipq_netlink_sendmsg(h, &msg, 0);
}
//-----------------------------------------------------------------------------
-/* Not implemented yet */
-int ipq_ctl(const struct ipq_handle __attribute__((unused)) * handle, int __attribute__((unused)) request, ...)
-{
- return 1;
-}
-//-----------------------------------------------------------------------------
-/*char *ipq_errstr(void)
+char *ipq_errstr(void)
{
return ipq_strerror(ipq_errno);
-}*/
+}
//-----------------------------------------------------------------------------
/*void ipq_perror(const char *s)
{