summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author/C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=pablo/emailAddress=pablo@netfilter.org </C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=pablo/emailAddress=pablo@netfilter.org>2007-01-31 02:37:41 +0000
committer/C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=pablo/emailAddress=pablo@netfilter.org </C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=pablo/emailAddress=pablo@netfilter.org>2007-01-31 02:37:41 +0000
commit68246b6cc6c35956d24047ecdc24e119f7b6774c (patch)
treedd675641d7380ecfe52d081a077c259cbc43f2fd
parente8f466f0d0c93e0898faaaaaf3baeb0b71319c1c (diff)
interface index to name API (Eric Leblond)
-rw-r--r--include/libnetfilter_queue/libnetfilter_queue.h9
-rw-r--r--src/libnetfilter_queue.c28
2 files changed, 37 insertions, 0 deletions
diff --git a/include/libnetfilter_queue/libnetfilter_queue.h b/include/libnetfilter_queue/libnetfilter_queue.h
index e6a8991..6695c3d 100644
--- a/include/libnetfilter_queue/libnetfilter_queue.h
+++ b/include/libnetfilter_queue/libnetfilter_queue.h
@@ -80,6 +80,15 @@ extern u_int32_t nfq_get_physindev(struct nfq_data *nfad);
extern u_int32_t nfq_get_outdev(struct nfq_data *nfad);
extern u_int32_t nfq_get_physoutdev(struct nfq_data *nfad);
+extern int nfq_get_indev_name(struct nlif_handle *nlif_handle,
+ struct nfq_data *nfad, char *name);
+extern int nfq_get_physindev_name(struct nlif_handle *nlif_handle,
+ struct nfq_data *nfad, char *name);
+extern int nfq_get_outdev_name(struct nlif_handle *nlif_handle,
+ struct nfq_data *nfad, char *name);
+extern int nfq_get_physoutdev_name(struct nlif_handle *nlif_handle,
+ struct nfq_data *nfad, char *name);
+
extern struct nfqnl_msg_packet_hw *nfq_get_packet_hw(struct nfq_data *nfad);
/* return -1 if problem, length otherwise */
diff --git a/src/libnetfilter_queue.c b/src/libnetfilter_queue.c
index c7bce9e..ef638d6 100644
--- a/src/libnetfilter_queue.c
+++ b/src/libnetfilter_queue.c
@@ -419,6 +419,34 @@ u_int32_t nfq_get_physoutdev(struct nfq_data *nfad)
return ntohl(nfnl_get_data(nfad->data, NFQA_IFINDEX_PHYSOUTDEV, u_int32_t));
}
+int nfq_get_indev_name(struct nlif_handle *nlif_handle,
+ struct nfq_data *nfad, char *name)
+{
+ u_int32_t ifindex = nfq_get_indev(nfad);
+ return nlif_index2name(nlif_handle, ifindex, name);
+}
+
+int nfq_get_physindev_name(struct nlif_handle *nlif_handle,
+ struct nfq_data *nfad, char *name)
+{
+ u_int32_t ifindex = nfq_get_physindev(nfad);
+ return nlif_index2name(nlif_handle, ifindex, name);
+}
+
+int nfq_get_outdev_name(struct nlif_handle *nlif_handle,
+ struct nfq_data *nfad, char *name)
+{
+ u_int32_t ifindex = nfq_get_outdev(nfad);
+ return nlif_index2name(nlif_handle, ifindex, name);
+}
+
+int nfq_get_physoutdev_name(struct nlif_handle *nlif_handle,
+ struct nfq_data *nfad, char *name)
+{
+ u_int32_t ifindex = nfq_get_physoutdev(nfad);
+ return nlif_index2name(nlif_handle, ifindex, name);
+}
+
struct nfqnl_msg_packet_hw *nfq_get_packet_hw(struct nfq_data *nfad)
{
return nfnl_get_pointer_to_data(nfad->data, NFQA_HWADDR,