libipt_ACCOUNT, ipt_ACCOUNT: (tomj) implemented handle usage, free all handles and...
[libipt_ACCOUNT] / src / ipt_ACCOUNT_cl.h
index de275e6..b167f1d 100644 (file)
@@ -1,20 +1,20 @@
+/***************************************************************************
+ *   Copyright (C) 2004 by Intra2net AG                                    *
+ *   opensource@intra2net.com                                              *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU Lesser General Public License           *
+ *   version 2.1 as published by the Free Software Foundation;             *
+ *                                                                         *
+ ***************************************************************************/
 #ifndef _ipt_ACCOUNT_cl_H
 #define _ipt_ACCOUNT_cl_H
 
-// TODO: Path needs fixing
-#include "../ipt_ACCOUNT.h"
+#include <linux/netfilter_ipv4/ipt_ACCOUNT.h>
 
-// TODO: Move these to the ip_tables.h
-#define IPT_BASE_CTL           64      /* base for firewall socket options */
-#define IPT_SO_SET_ACCOUNT_HANDLE_FREE (IPT_BASE_CTL + 3)
-#define IPT_SO_SET_ACCOUNT_MAX         IPT_SO_SET_ACCOUNT_HANDLE_FREE
-
-#define IPT_SO_GET_ACCOUNT_PREPARE_READ (IPT_BASE_CTL + 3)
-#define IPT_SO_GET_ACCOUNT_PREPARE_READ_FLUSH (IPT_BASE_CTL + 4)
-#define IPT_SO_GET_ACCOUNT_GET_DATA (IPT_BASE_CTL + 5)
-#define IPT_SO_GET_ACCOUNT_MAX      IPT_SO_GET_ACCOUNT_GET_DATA
-
-#define IPT_ACCOUNT_MIN_BUFSIZE 4096    /* Don't set this below the size of struct ipt_account_handle_sockopt */
+/* Don't set this below the size of struct ipt_account_handle_sockopt */
+#define IPT_ACCOUNT_MIN_BUFSIZE 4096
 
 struct ipt_ACCOUNT_context
 {
@@ -28,13 +28,27 @@ struct ipt_ACCOUNT_context
     char *error_str;
 };
 
-int ipt_ACCOUNT_init(struct ipt_ACCOUNT_context *ctx);
-void ipt_ACCOUNT_deinit(struct ipt_ACCOUNT_context *ctx);
+#ifdef __cplusplus
+extern "C" {
+#endif
 
-int ipt_ACCOUNT_read_entries(struct ipt_ACCOUNT_context *ctx, char *table, char dont_flush);
-struct ipt_account_handle_ip *ipt_ACCOUNT_get_next_entry(struct ipt_ACCOUNT_context *ctx);
-/* ipt_ACCOUNT_free_entries is for internal use only function as this library
-   is constructed to be used in a loop -> Don't allocate memory all the time.
-   The data buffer is freed on deinit() */
+    int ipt_ACCOUNT_init(struct ipt_ACCOUNT_context *ctx);
+    void ipt_ACCOUNT_deinit(struct ipt_ACCOUNT_context *ctx);
+    
+    int ipt_ACCOUNT_read_entries(struct ipt_ACCOUNT_context *ctx, char *table, char dont_flush);
+    struct ipt_account_handle_ip *ipt_ACCOUNT_get_next_entry(struct ipt_ACCOUNT_context *ctx);
+    /* ipt_ACCOUNT_free_entries is for internal use only function as this library
+    is constructed to be used in a loop -> Don't allocate memory all the time.
+    The data buffer is freed on deinit() */
+    
+    int ipt_ACCOUNT_get_handle_usage(struct ipt_ACCOUNT_context *ctx);
+    int ipt_ACCOUNT_free_all_handles(struct ipt_ACCOUNT_context *ctx);
+    int ipt_ACCOUNT_get_table_names(struct ipt_ACCOUNT_context *ctx);
+    char *ipt_ACCOUNT_get_next_name(struct ipt_ACCOUNT_context *ctx);
 
+#ifdef __cplusplus
+}
+#endif
+   
+   
 #endif