non-modified payload arguments are pointer-to-const
[platform/upstream/libnetfilter_queue.git] / include / libnetfilter_queue / libnetfilter_queue.h
index d017e40..2e2ca8b 100644 (file)
 
 #include <libnetfilter_queue/linux_nfnetlink_queue.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct nfq_handle;
 struct nfq_q_handle;
 struct nfq_data;
@@ -32,6 +36,7 @@ typedef int  nfq_callback(struct nfq_q_handle *gh, struct nfgenmsg *nfmsg,
 
 
 extern struct nfq_handle *nfq_open(void);
+extern struct nfq_handle *nfq_open_nfnl(struct nfnl_handle *nfnlh);
 extern int nfq_close(struct nfq_handle *h);
 
 extern int nfq_bind_pf(struct nfq_handle *h, u_int16_t pf);
@@ -48,18 +53,29 @@ extern int nfq_handle_packet(struct nfq_handle *h, char *buf, int len);
 extern int nfq_set_mode(struct nfq_q_handle *qh,
                          u_int8_t mode, unsigned int len);
 
+int nfq_set_queue_maxlen(struct nfq_q_handle *qh,
+                       u_int32_t queuelen);
+
 extern int nfq_set_verdict(struct nfq_q_handle *qh,
                             u_int32_t id,
                             u_int32_t verdict,
                             u_int32_t data_len,
-                            unsigned char *buf);
-
-extern int nfq_set_verdict_mark(struct nfq_q_handle *qh, 
-                                 u_int32_t id,
-                                 u_int32_t verdict, 
-                                 u_int32_t mark,
-                                 u_int32_t datalen,
-                                 unsigned char *buf);
+                            const unsigned char *buf);
+
+extern int nfq_set_verdict2(struct nfq_q_handle *qh,
+                           u_int32_t id,
+                           u_int32_t verdict, 
+                           u_int32_t mark,
+                           u_int32_t datalen,
+                           const unsigned char *buf);
+
+extern __attribute__((deprecated))
+int nfq_set_verdict_mark(struct nfq_q_handle *qh, 
+                        u_int32_t id,
+                        u_int32_t verdict, 
+                        u_int32_t mark,
+                        u_int32_t datalen,
+                        const unsigned char *buf);
 
 /* message parsing function */
 
@@ -76,11 +92,22 @@ 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 */
 extern int nfq_get_payload(struct nfq_data *nfad, char **data);
 
-
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
 
 #endif /* __LIBNFQNETLINK_H */