+/***************************************************************************
+ * 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; *
+ * *
+ ***************************************************************************/
+
#include <sys/types.h>
#include <sys/socket.h>
-#include <netinet/in.h>
#include <ipt_ACCOUNT_cl.h>
return rtn;
}
-
-char *addr_to_dotted(unsigned int addr)
-{
- static char buf[20];
- const unsigned char *bytep;
-
- bytep = (const unsigned char *) &addr;
- sprintf(buf, "%d.%d.%d.%d", bytep[0], bytep[1], bytep[2], bytep[3]);
- return buf;
-}
-
-int main(void)
-{
- struct ipt_ACCOUNT_context ctx;
- struct ipt_account_handle_ip *entry;
- int i;
-
- if(ipt_ACCOUNT_init(&ctx))
- {
- printf("Init failed: %s\n", ctx.error_str);
- exit (-1);
- }
-
- for (i = 0; i < 3; i++)
- {
- printf("Run #%d\n", i);
-
- // Get entries from table test
- if (ipt_ACCOUNT_read_entries(&ctx, "test", 0))
- {
- printf("Read failed: %s\n", ctx.error_str);
- ipt_ACCOUNT_deinit(&ctx);
- exit (-1);
- }
-
- // Output and free entries
- while ((entry = ipt_ACCOUNT_get_next_entry(&ctx)) != NULL)
- {
- printf("IP: %s SRC packets: %u bytes: %u DST packets: %u bytes: %u\n",
- addr_to_dotted(entry->ip), entry->src_packets, entry->src_bytes, entry->dst_packets, entry->dst_bytes);
- }
- sleep(1);
- }
-
- ipt_ACCOUNT_deinit(&ctx);
- exit (0);
-}
+/***************************************************************************
+ * 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"
-
-// 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
+#include <netinet/in.h>
+#include <linux/if.h>
+#include <linux/netfilter_ipv4/ip_tables.h>
+#include <linux/netfilter_ipv4/ipt_ACCOUNT.h>
#define IPT_ACCOUNT_MIN_BUFSIZE 4096 /* Don't set this below the size of struct ipt_account_handle_sockopt */