]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/patches/iptables-1.4.14-ipp2p-0.8.2-ipfire.patch
Merge remote-tracking branch 'pmueller/temp-cleanup-orphaned-items' into next
[people/pmueller/ipfire-2.x.git] / src / patches / iptables-1.4.14-ipp2p-0.8.2-ipfire.patch
diff --git a/src/patches/iptables-1.4.14-ipp2p-0.8.2-ipfire.patch b/src/patches/iptables-1.4.14-ipp2p-0.8.2-ipfire.patch
deleted file mode 100644 (file)
index 9a11eb5..0000000
+++ /dev/null
@@ -1,481 +0,0 @@
-diff -Naur iptables-1.4.6.org/extensions/.ipp2p-test iptables-1.4.6/extensions/.ipp2p-test
---- iptables-1.4.6.org/extensions/.ipp2p-test  1970-01-01 01:00:00.000000000 +0100
-+++ iptables-1.4.6/extensions/.ipp2p-test      2010-02-13 20:02:52.000000000 +0100
-@@ -0,0 +1,2 @@
-+#! /bin/sh
-+[ -f $KERNEL_DIR/include/linux/netfilter_ipv4/ipt_ipp2p.h ] && echo ipp2p
-diff -Naur iptables-1.4.6.org/extensions/libipt_ipp2p.c iptables-1.4.6/extensions/libipt_ipp2p.c
---- iptables-1.4.6.org/extensions/libipt_ipp2p.c       1970-01-01 01:00:00.000000000 +0100
-+++ iptables-1.4.6/extensions/libipt_ipp2p.c   2010-02-13 20:02:52.000000000 +0100
-@@ -0,0 +1,424 @@
-+#include <stdio.h>
-+#include <netdb.h>
-+#include <string.h>
-+#include <stdlib.h>
-+#include <getopt.h>
-+#include <ctype.h>
-+
-+#include <iptables.h>
-+
-+#include <linux/netfilter_ipv4/ipt_ipp2p.h>
-+
-+#ifndef XTABLES_VERSION
-+#define XTABLES_VERSION IPTABLES_VERSION
-+#endif
-+
-+#ifdef IPT_LIB_DIR
-+#define xtables_target iptables_target
-+#define xtables_register_target register_target
-+#endif
-+
-+static void
-+help(void)
-+{
-+    printf(
-+    "IPP2P v%s options:\n"
-+    " --ipp2p Grab all known p2p packets\n"
-+    " --edk           [TCP&UDP]       All known eDonkey/eMule/Overnet packets\n"
-+    " --dc            [TCP]           All known Direct Connect packets\n"
-+    " --kazaa [TCP&UDP]       All known KaZaA packets\n"
-+    " --gnu           [TCP&UDP]       All known Gnutella packets\n"
-+    " --bit           [TCP&UDP]       All known BitTorrent packets\n"
-+    " --apple [TCP]           All known AppleJuice packets\n"
-+    " --winmx [TCP]           All known WinMX\n"
-+    " --soul          [TCP]           All known SoulSeek\n"
-+    " --ares          [TCP]           All known Ares\n\n"
-+    " EXPERIMENTAL protocols (please send feedback to: ipp2p@ipp2p.org) :\n"
-+    " --mute          [TCP]           All known Mute packets\n"
-+    " --waste [TCP]           All known Waste packets\n"
-+    " --xdcc          [TCP]           All known XDCC packets (only xdcc login)\n\n"
-+    " DEBUG SUPPPORT, use only if you know why\n"
-+    " --debug         Generate kernel debug output, THIS WILL SLOW DOWN THE FILTER\n"
-+    "\nNote that the follwing options will have the same meaning:\n"
-+    " '--ipp2p' is equal to '--edk --dc --kazaa --gnu --bit --apple --winmx --soul --ares'\n"
-+    "\nIPP2P was intended for TCP only. Due to increasing usage of UDP we needed to change this.\n"
-+    "You can now use -p udp to search UDP packets only or without -p switch to search UDP and TCP packets.\n"
-+    "\nSee README included with this package for more details or visit http://www.ipp2p.org\n"
-+    "\nExamples:\n"
-+    " iptables -A FORWARD -m ipp2p --ipp2p -j MARK --set-mark 0x01\n"
-+    " iptables -A FORWARD -p udp -m ipp2p --kazaa --bit -j DROP\n"
-+    " iptables -A FORWARD -p tcp -m ipp2p --edk --soul -j DROP\n\n"
-+    , IPP2P_VERSION);
-+}
-+
-+static struct option opts[] = {
-+        { "ipp2p", 0, 0, '1' },
-+        { "edk", 0, 0, '2' }, 
-+      { "dc", 0, 0, '7' },
-+      { "gnu", 0, 0, '9' },
-+      { "kazaa", 0, 0, 'a' },
-+      { "bit", 0, 0, 'b' },
-+      { "apple", 0, 0, 'c' }, 
-+      { "soul", 0, 0, 'd' },  
-+      { "winmx", 0, 0, 'e' }, 
-+      { "ares", 0, 0, 'f' },
-+      { "mute", 0, 0, 'g' },
-+      { "waste", 0, 0, 'h' },
-+      { "xdcc", 0, 0, 'i' },
-+      { "debug", 0, 0, 'j' },
-+        {0}
-+};
-+
-+
-+static void
-+#ifdef _XTABLES_H
-+init(struct xt_entry_match *m)
-+#else
-+init(struct ipt_entry_match *t, unsigned int *nfcache)
-+#endif
-+{
-+    struct ipt_p2p_info *info = (struct ipt_p2p_info *)m->data;
-+
-+#ifndef _XTABLES_H
-+    *nfcache |= NFC_UNKNOWN;
-+#endif
-+
-+    /*init the module with default values*/
-+    info->cmd = 0;
-+    info->debug = 0;
-+
-+}
-+
-+
-+static int
-+parse(int c, char **argv, int invert, unsigned int *flags,
-+#ifdef _XTABLES_H
-+      const void *entry, struct xt_entry_match **match)
-+#else
-+      const struct ipt_entry *entry, unsigned int *nfcache, struct ipt_entry_match **match)
-+#endif
-+{
-+    struct ipt_p2p_info *info = (struct ipt_p2p_info *)(*match)->data;
-+    
-+    switch (c) {
-+      case '1':               /*cmd: ipp2p*/
-+          if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P)
-+                  xtables_error(PARAMETER_PROBLEM,
-+                              "ipp2p: `--ipp2p' may only be "
-+                              "specified once!");
-+
-+/*        if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA)
-+                  xtables_error(PARAMETER_PROBLEM,
-+                              "ipp2p: `--ipp2p-data' may only be "
-+                              "specified alone!");
-+*/
-+
-+          if ((*flags) != 0)
-+                  xtables_error(PARAMETER_PROBLEM,
-+                              "ipp2p: `--ipp2p' may only be "
-+                              "specified alone!");
-+          if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+          *flags += SHORT_HAND_IPP2P;
-+          info->cmd = *flags;
-+          break;
-+          
-+      case '2':               /*cmd: edk*/
-+          if ((*flags & IPP2P_EDK) == IPP2P_EDK)
-+                  xtables_error(PARAMETER_PROBLEM,
-+                              "ipp2p: `--edk' may only be "
-+                              "specified once");
-+          if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P)
-+                  xtables_error(PARAMETER_PROBLEM,
-+                              "ipp2p: `--ipp2p' may only be "
-+                              "specified alone!");
-+/*        if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA)
-+                  xtables_error(PARAMETER_PROBLEM,
-+                              "ipp2p: `--ipp2p-data' may only be "
-+                              "specified alone!");*/
-+            if ((*flags & IPP2P_DATA_EDK) == IPP2P_DATA_EDK)
-+            xtables_error(PARAMETER_PROBLEM,
-+                                "ipp2p: use `--edk' OR `--edk-data' but not both of them!");
-+          if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+          *flags += IPP2P_EDK;
-+          info->cmd = *flags;     
-+          break;
-+
-+
-+      case '7':               /*cmd: dc*/
-+            if ((*flags & IPP2P_DC) == IPP2P_DC)
-+            xtables_error(PARAMETER_PROBLEM,
-+                                "ipp2p: `--dc' may only be "
-+                                "specified once!");
-+          if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P)
-+                  xtables_error(PARAMETER_PROBLEM,
-+                              "ipp2p: `--ipp2p' may only be "
-+                              "specified alone!");
-+/*        if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA)
-+                  xtables_error(PARAMETER_PROBLEM,
-+                              "ipp2p: `--ipp2p-data' may only be "
-+                              "specified alone!");*/
-+            if ((*flags & IPP2P_DATA_DC) == IPP2P_DATA_DC)
-+            xtables_error(PARAMETER_PROBLEM,
-+                                "ipp2p: use `--dc' OR `--dc-data' but not both of them!");
-+          if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+            *flags += IPP2P_DC;
-+          info->cmd = *flags;
-+          break;
-+
-+
-+      case '9':               /*cmd: gnu*/
-+            if ((*flags & IPP2P_GNU) == IPP2P_GNU)
-+            xtables_error(PARAMETER_PROBLEM,
-+                                "ipp2p: `--gnu' may only be "
-+                                "specified once!");
-+/*        if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA)
-+                  xtables_error(PARAMETER_PROBLEM,
-+                              "ipp2p: `--ipp2p-data' may only be "
-+                              "specified alone!");*/
-+          if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P)
-+                  xtables_error(PARAMETER_PROBLEM,
-+                              "ipp2p: `--ipp2p' may only be "
-+                              "specified alone!");
-+            if ((*flags & IPP2P_DATA_GNU) == IPP2P_DATA_GNU)
-+            xtables_error(PARAMETER_PROBLEM,
-+                                "ipp2p: use `--gnu' OR `--gnu-data' but not both of them!");
-+          if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+            *flags += IPP2P_GNU;
-+          info->cmd = *flags;
-+          break;
-+
-+      case 'a':               /*cmd: kazaa*/
-+            if ((*flags & IPP2P_KAZAA) == IPP2P_KAZAA)
-+            xtables_error(PARAMETER_PROBLEM,
-+                                "ipp2p: `--kazaa' may only be "
-+                                "specified once!");
-+/*        if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA)
-+                  xtables_error(PARAMETER_PROBLEM,
-+                              "ipp2p: `--ipp2p-data' may only be "
-+                              "specified alone!");*/
-+          if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P)
-+                  xtables_error(PARAMETER_PROBLEM,
-+                              "ipp2p: `--ipp2p' may only be "
-+                              "specified alone!");
-+            if ((*flags & IPP2P_DATA_KAZAA) == IPP2P_DATA_KAZAA)
-+            xtables_error(PARAMETER_PROBLEM,
-+                                "ipp2p: use `--kazaa' OR `--kazaa-data' but not both of them!");
-+          if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+            *flags += IPP2P_KAZAA;
-+          info->cmd = *flags;
-+          break;                                                                                                                                                                                                                      
-+
-+      case 'b':               /*cmd: bit*/
-+            if ((*flags & IPP2P_BIT) == IPP2P_BIT)
-+            xtables_error(PARAMETER_PROBLEM,
-+                                "ipp2p: `--bit' may only be "
-+                                "specified once!");
-+          if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P)
-+                  xtables_error(PARAMETER_PROBLEM,
-+                              "ipp2p: `--ipp2p' may only be "
-+                              "specified alone!");
-+          if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+            *flags += IPP2P_BIT;
-+          info->cmd = *flags;
-+          break;                                                                                                                                                                                                                      
-+
-+      case 'c':               /*cmd: apple*/
-+            if ((*flags & IPP2P_APPLE) == IPP2P_APPLE)
-+            xtables_error(PARAMETER_PROBLEM,
-+                                "ipp2p: `--apple' may only be "
-+                                "specified once!");
-+          if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P)
-+                  xtables_error(PARAMETER_PROBLEM,
-+                              "ipp2p: `--ipp2p' may only be "
-+                              "specified alone!");
-+          if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+            *flags += IPP2P_APPLE;
-+          info->cmd = *flags;
-+          break;                                                                                                                                                                                                                      
-+
-+
-+      case 'd':               /*cmd: soul*/
-+            if ((*flags & IPP2P_SOUL) == IPP2P_SOUL)
-+            xtables_error(PARAMETER_PROBLEM,
-+                                "ipp2p: `--soul' may only be "
-+                                "specified once!");
-+          if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P)
-+                  xtables_error(PARAMETER_PROBLEM,
-+                              "ipp2p: `--ipp2p' may only be "
-+                              "specified alone!");
-+          if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+            *flags += IPP2P_SOUL;
-+          info->cmd = *flags;
-+          break;                                                                                                                                                                                                                      
-+
-+
-+      case 'e':               /*cmd: winmx*/
-+            if ((*flags & IPP2P_WINMX) == IPP2P_WINMX)
-+            xtables_error(PARAMETER_PROBLEM,
-+                                "ipp2p: `--winmx' may only be "
-+                                "specified once!");
-+          if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P)
-+                  xtables_error(PARAMETER_PROBLEM,
-+                              "ipp2p: `--ipp2p' may only be "
-+                              "specified alone!");
-+          if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+            *flags += IPP2P_WINMX;
-+          info->cmd = *flags;
-+          break;                                                                                                                                                                                                                      
-+
-+      case 'f':               /*cmd: ares*/
-+            if ((*flags & IPP2P_ARES) == IPP2P_ARES)
-+            xtables_error(PARAMETER_PROBLEM,
-+                                "ipp2p: `--ares' may only be "
-+                                "specified once!");
-+          if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P)
-+                  xtables_error(PARAMETER_PROBLEM,
-+                              "ipp2p: `--ipp2p' may only be "
-+                              "specified alone!");
-+          if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+            *flags += IPP2P_ARES;
-+          info->cmd = *flags;
-+          break;                                                                                                                                                                                                                      
-+      
-+      case 'g':               /*cmd: mute*/
-+            if ((*flags & IPP2P_MUTE) == IPP2P_MUTE)
-+            xtables_error(PARAMETER_PROBLEM,
-+                                "ipp2p: `--mute' may only be "
-+                                "specified once!");
-+          if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+            *flags += IPP2P_MUTE;
-+          info->cmd = *flags;
-+          break;                                                                                                                                                                                                                      
-+      case 'h':               /*cmd: waste*/
-+            if ((*flags & IPP2P_WASTE) == IPP2P_WASTE)
-+            xtables_error(PARAMETER_PROBLEM,
-+                                "ipp2p: `--waste' may only be "
-+                                "specified once!");
-+          if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+            *flags += IPP2P_WASTE;
-+          info->cmd = *flags;
-+          break;                                                                                                                                                                                                                      
-+      case 'i':               /*cmd: xdcc*/
-+            if ((*flags & IPP2P_XDCC) == IPP2P_XDCC)
-+            xtables_error(PARAMETER_PROBLEM,
-+                                "ipp2p: `--ares' may only be "
-+                                "specified once!");
-+          if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+            *flags += IPP2P_XDCC;
-+          info->cmd = *flags;
-+          break;                                                                                                                                                                                                                      
-+
-+      case 'j':               /*cmd: debug*/
-+          if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+          info->debug = 1;
-+          break;                                                                                                                                                                                                                      
-+
-+      default:
-+//            xtables_error(PARAMETER_PROBLEM,
-+//        "\nipp2p-parameter problem: for ipp2p usage type: iptables -m ipp2p --help\n");
-+          return 0;
-+    }
-+    return 1;
-+}
-+
-+
-+static void
-+final_check(unsigned int flags)
-+{
-+    if (!flags)
-+            xtables_error(PARAMETER_PROBLEM,
-+          "\nipp2p-parameter problem: for ipp2p usage type: iptables -m ipp2p --help\n");
-+}
-+
-+static void
-+#ifdef _XTABLES_H
-+print(const void *ip,
-+      const struct xt_entry_match *match,
-+#else
-+print(const struct ipt_ip *ip,
-+      const struct ipt_entry_match *match,
-+#endif
-+      int numeric)
-+{
-+    struct ipt_p2p_info *info = (struct ipt_p2p_info *)match->data;
-+    
-+    printf("ipp2p v%s", IPP2P_VERSION);
-+    if ((info->cmd & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) printf(" --ipp2p");
-+//    if ((info->cmd & SHORT_HAND_DATA) == SHORT_HAND_DATA) printf(" --ipp2p-data");
-+    if ((info->cmd & IPP2P_KAZAA) == IPP2P_KAZAA) printf(" --kazaa");
-+//    if ((info->cmd & IPP2P_DATA_KAZAA) == IPP2P_DATA_KAZAA) printf(" --kazaa-data");
-+//    if ((info->cmd & IPP2P_DATA_GNU) == IPP2P_DATA_GNU) printf(" --gnu-data");
-+    if ((info->cmd & IPP2P_GNU) == IPP2P_GNU) printf(" --gnu");
-+    if ((info->cmd & IPP2P_EDK) == IPP2P_EDK) printf(" --edk");
-+//    if ((info->cmd & IPP2P_DATA_EDK) == IPP2P_DATA_EDK) printf(" --edk-data");
-+//    if ((info->cmd & IPP2P_DATA_DC) == IPP2P_DATA_DC) printf(" --dc-data");
-+    if ((info->cmd & IPP2P_DC) == IPP2P_DC) printf(" --dc");
-+    if ((info->cmd & IPP2P_BIT) == IPP2P_BIT) printf(" --bit");
-+    if ((info->cmd & IPP2P_APPLE) == IPP2P_APPLE) printf(" --apple");
-+    if ((info->cmd & IPP2P_SOUL) == IPP2P_SOUL) printf(" --soul");
-+    if ((info->cmd & IPP2P_WINMX) == IPP2P_WINMX) printf(" --winmx");
-+    if ((info->cmd & IPP2P_ARES) == IPP2P_ARES) printf(" --ares");
-+    if ((info->cmd & IPP2P_MUTE) == IPP2P_MUTE) printf(" --mute");
-+    if ((info->cmd & IPP2P_WASTE) == IPP2P_WASTE) printf(" --waste");
-+    if ((info->cmd & IPP2P_XDCC) == IPP2P_XDCC) printf(" --xdcc");
-+    if (info->debug != 0) printf(" --debug");
-+    printf(" ");
-+}
-+
-+static void
-+#ifdef _XTABLES_H
-+save(const void *ip,
-+     const struct xt_entry_match *match)
-+#else
-+save(const struct ipt_ip *ip,
-+     const struct ipt_entry_match *match)
-+#endif
-+{
-+    struct ipt_p2p_info *info = (struct ipt_p2p_info *)match->data;
-+    
-+    if ((info->cmd & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) printf("--ipp2p ");
-+//    if ((info->cmd & SHORT_HAND_DATA) == SHORT_HAND_DATA) printf("--ipp2p-data ");
-+    if ((info->cmd & IPP2P_KAZAA) == IPP2P_KAZAA) printf("--kazaa ");
-+//    if ((info->cmd & IPP2P_DATA_KAZAA) == IPP2P_DATA_KAZAA) printf("--kazaa-data ");
-+//    if ((info->cmd & IPP2P_DATA_GNU) == IPP2P_DATA_GNU) printf("--gnu-data ");
-+    if ((info->cmd & IPP2P_GNU) == IPP2P_GNU) printf("--gnu ");
-+    if ((info->cmd & IPP2P_EDK) == IPP2P_EDK) printf("--edk ");
-+//    if ((info->cmd & IPP2P_DATA_EDK) == IPP2P_DATA_EDK) printf("--edk-data ");
-+//    if ((info->cmd & IPP2P_DATA_DC) == IPP2P_DATA_DC) printf("--dc-data ");
-+    if ((info->cmd & IPP2P_DC) == IPP2P_DC) printf("--dc ");
-+    if ((info->cmd & IPP2P_BIT) == IPP2P_BIT) printf("--bit ");
-+    if ((info->cmd & IPP2P_APPLE) == IPP2P_APPLE) printf("--apple ");
-+    if ((info->cmd & IPP2P_SOUL) == IPP2P_SOUL) printf("--soul ");
-+    if ((info->cmd & IPP2P_WINMX) == IPP2P_WINMX) printf("--winmx ");
-+    if ((info->cmd & IPP2P_ARES) == IPP2P_ARES) printf("--ares ");
-+    if ((info->cmd & IPP2P_MUTE) == IPP2P_MUTE) printf(" --mute");
-+    if ((info->cmd & IPP2P_WASTE) == IPP2P_WASTE) printf(" --waste");
-+    if ((info->cmd & IPP2P_XDCC) == IPP2P_XDCC) printf(" --xdcc");
-+    if (info->debug != 0) printf("--debug ");
-+}
-+
-+              
-+static 
-+struct xtables_match ipp2p= 
-+{ 
-+    .next           = NULL,
-+    .name           = "ipp2p",
-+    .version        = XTABLES_VERSION,
-+    .size           = XT_ALIGN(sizeof(struct ipt_p2p_info)),
-+    .userspacesize  = XT_ALIGN(sizeof(struct ipt_p2p_info)),
-+    .help           = &help,
-+    .init           = &init,
-+    .parse          = &parse,
-+    .final_check    = &final_check,
-+    .print          = &print,
-+    .save           = &save,
-+    .extra_opts     = opts
-+};
-+                                          
-+
-+
-+void _init(void)
-+{
-+    xtables_register_match(&ipp2p);
-+}
-+
-diff -Naur iptables-1.4.6.org/extensions/libipt_ipp2p.man iptables-1.4.6/extensions/libipt_ipp2p.man
---- iptables-1.4.6.org/extensions/libipt_ipp2p.man     1970-01-01 01:00:00.000000000 +0100
-+++ iptables-1.4.6/extensions/libipt_ipp2p.man 2010-02-13 20:02:52.000000000 +0100
-@@ -0,0 +1,43 @@
-+This module matches certain packets in P2P flows. It is not
-+designed to match all packets belonging to a P2P connection - 
-+use IPP2P together with CONNMARK for this purpose. Also visit
-+http://www.ipp2p.org for detailed information.
-+
-+Use it together with -p tcp or -p udp to search these protocols
-+only or without -p switch to search packets of both protocols.
-+
-+IPP2P provides the following options:
-+.TP
-+.B "--edk "
-+Matches as many eDonkey/eMule packets as possible.
-+.TP
-+.B "--kazaa "
-+Matches as many KaZaA packets as possible.
-+.TP
-+.B "--gnu "
-+Matches as many Gnutella packets as possible.
-+.TP
-+.B "--dc "
-+Matches as many Direct Connect packets as possible.
-+.TP
-+.B "--bit "
-+Matches BitTorrent packets.
-+.TP
-+.B "--apple "
-+Matches AppleJuice packets.
-+.TP
-+.B "--soul "
-+Matches some SoulSeek packets. Considered as beta, use careful!
-+.TP
-+.B "--winmx "
-+Matches some WinMX packets. Considered as beta, use careful!
-+.TP
-+.B "--ares "
-+Matches Ares and AresLite packets. Use together with -j DROP only.
-+.TP
-+.B "--ipp2p "
-+Short hand for: --edk --kazaa --gnu --dc
-+.TP
-+.B "--debug "
-+Prints some information about each hit into kernel logfile. May 
-+produce huge logfiles so beware!