Página 1 de 2 12 ÚltimoÚltimo
+ Responder ao Tópico



  1. ipp2p-0.8.2# make
    make -C /lib/modules/2.6.21.5-smp/build SUBDIRS=/usr/src/ipp2p-0.8.2 modules
    make[1]: Entering directory `/usr/src/linux-2.6.21.5'
    CC [M] /usr/src/ipp2p-0.8.2/ipt_ipp2p.o
    /usr/src/ipp2p-0.8.2/ipt_ipp2p.c:874: warning: initialization from incompatible pointer type
    Building modules, stage 2.
    MODPOST 1 modules
    CC /usr/src/ipp2p-0.8.2/ipt_ipp2p.mod.o
    LD [M] /usr/src/ipp2p-0.8.2/ipt_ipp2p.ko
    make[1]: Leaving directory `/usr/src/linux-2.6.21.5'
    gcc -O3 -Wall -DIPTABLES_VERSION=\"1.3.8\" -I/usr/src/iptables/include -fPIC -c libipt_ipp2p.c
    ld -shared -o libipt_ipp2p.so libipt_ipp2p.o

  2. tenta aplicar este patch que criei aqui.. tive o mesmo problema.. resolveu pra mim aqui.. meu kernel eh o 2.6.22.1

    Código :
    diff -Nru ipp2p-0.8.2.orig/ipt_ipp2p.c ipp2p-0.8.2/ipt_ipp2p.c
    --- ipp2p-0.8.2.orig/ipt_ipp2p.c        2006-09-27 12:52:00.000000000 +0300
    +++ ipp2p-0.8.2/ipt_ipp2p.c     2007-07-11 08:00:26.000000000 +0300
    @@ -2,9 +2,18 @@
     #include <linux/modversions.h>
     #endif
     #include <linux/module.h>
    -#include <linux/netfilter_ipv4/ip_tables.h>
     #include <linux/version.h>
    +
    +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)
    +#      include <linux/netfilter/x_tables.h>
    +#      define ipt_register_match xt_register_match
    +#      define ipt_unregister_match xt_unregister_match
    +#      define ipt_match xt_match
    +#else
    +#      include <linux/netfilter_ipv4/ip_tables.h>
     //#include <linux/netfilter_ipv4/ipt_ipp2p.h>
    +#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) */
    +
     #include "ipt_ipp2p.h"
     #include <net/tcp.h>
     #include <net/udp.h>
    @@ -748,7 +757,11 @@
     {
         const struct ipt_p2p_info *info = matchinfo;
         unsigned char  *haystack;
    +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
    +    struct iphdr *ip = ip_hdr(skb);
    +#else
         struct iphdr *ip = skb->nh.iph;
    +#endif
         int p2p_result = 0, i = 0;
     //    int head_len;
         int hlen = ntohs(ip->tot_len)-(ip->ihl*4); /*hlen = packet-data length*/
    @@ -831,7 +844,9 @@
                const struct ipt_ip *ip,
     #endif
               void *matchinfo,
    +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18)
               unsigned int matchsize,
    +#endif
               unsigned int hook_mask)
     {
             /* Must specify -p tcp */
    @@ -843,15 +858,6 @@
     }
     
     
    -// TODO: find out what this structure is for (scheme taken
    -// from kernel sources)
    -// content seems to have a length of 8 bytes
    -// (at least on my x86 machine)
    -struct ipp2p_match_info {
    -       long int dunno_what_this_is_for;
    -       long int i_also_dunno_what_this_is_for;
    -};
    -
     static struct ipt_match ipp2p_match = {
     #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
            { NULL, NULL },
    @@ -860,17 +866,16 @@
            &checkentry,
            NULL,
            THIS_MODULE
    -#endif
    -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17))
    +#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17)
            .name           = "ipp2p",
            .match          = &match,
            .checkentry     = &checkentry,
            .me             = THIS_MODULE,
    -#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,17)
    +#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,17) */
            .name           = "ipp2p",
            .match          = &match,
            .family         = AF_INET,
    -       .matchsize      = sizeof(struct ipp2p_match_info),
    +       .matchsize      = XT_ALIGN(sizeof(struct ipt_p2p_info)),
            .checkentry     = &checkentry,
            .me             = THIS_MODULE,
     #endif

    basta gravar em um arquivo.. e fazer

    patch -p1 < arquivo.patch



  3. Citação Postado originalmente por alexandrecorrea Ver Post
    tenta aplicar este patch que criei aqui.. tive o mesmo problema.. resolveu pra mim aqui.. meu kernel eh o 2.6.22.1

    Código :
    diff -Nru ipp2p-0.8.2.orig/ipt_ipp2p.c ipp2p-0.8.2/ipt_ipp2p.c
    --- ipp2p-0.8.2.orig/ipt_ipp2p.c        2006-09-27 12:52:00.000000000 +0300
    +++ ipp2p-0.8.2/ipt_ipp2p.c     2007-07-11 08:00:26.000000000 +0300
    @@ -2,9 +2,18 @@
     #include <linux/modversions.h>
     #endif
     #include <linux/module.h>
    -#include <linux/netfilter_ipv4/ip_tables.h>
     #include <linux/version.h>
    +
    +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)
    +#      include <linux/netfilter/x_tables.h>
    +#      define ipt_register_match xt_register_match
    +#      define ipt_unregister_match xt_unregister_match
    +#      define ipt_match xt_match
    +#else
    +#      include <linux/netfilter_ipv4/ip_tables.h>
     //#include <linux/netfilter_ipv4/ipt_ipp2p.h>
    +#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) */
    +
     #include "ipt_ipp2p.h"
     #include <net/tcp.h>
     #include <net/udp.h>
    @@ -748,7 +757,11 @@
     {
         const struct ipt_p2p_info *info = matchinfo;
         unsigned char  *haystack;
    +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
    +    struct iphdr *ip = ip_hdr(skb);
    +#else
         struct iphdr *ip = skb->nh.iph;
    +#endif
         int p2p_result = 0, i = 0;
     //    int head_len;
         int hlen = ntohs(ip->tot_len)-(ip->ihl*4); /*hlen = packet-data length*/
    @@ -831,7 +844,9 @@
                const struct ipt_ip *ip,
     #endif
               void *matchinfo,
    +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18)
               unsigned int matchsize,
    +#endif
               unsigned int hook_mask)
     {
             /* Must specify -p tcp */
    @@ -843,15 +858,6 @@
     }
     
     
    -// TODO: find out what this structure is for (scheme taken
    -// from kernel sources)
    -// content seems to have a length of 8 bytes
    -// (at least on my x86 machine)
    -struct ipp2p_match_info {
    -       long int dunno_what_this_is_for;
    -       long int i_also_dunno_what_this_is_for;
    -};
    -
     static struct ipt_match ipp2p_match = {
     #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
            { NULL, NULL },
    @@ -860,17 +866,16 @@
            &checkentry,
            NULL,
            THIS_MODULE
    -#endif
    -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17))
    +#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17)
            .name           = "ipp2p",
            .match          = &match,
            .checkentry     = &checkentry,
            .me             = THIS_MODULE,
    -#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,17)
    +#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,17) */
            .name           = "ipp2p",
            .match          = &match,
            .family         = AF_INET,
    -       .matchsize      = sizeof(struct ipp2p_match_info),
    +       .matchsize      = XT_ALIGN(sizeof(struct ipt_p2p_info)),
            .checkentry     = &checkentry,
            .me             = THIS_MODULE,
     #endif

    basta gravar em um arquivo.. e fazer

    patch -p1 < arquivo.patch

    Dentro da pasta do ipp2p, existe tais arquivos:
    #ls ipp2p-0.8.2
    COPYING Makefile Makefile_old Module.symvers README ipt_ipp2p.c ipt_ipp2p.h libipt_ipp2p.c

    Qual desses arquivos eu aplico sua patch??

    Ex: patch -p1 < ipt_ipp2p.c ??

    Depois de aplicar devo recompilar o kernel e depois compilar o ipp2p???

  4. nao.. o ipp2p roda sem necessidade de recompilar kernel.. eh um modulo apenas !!



  5. Citação Postado originalmente por alexandrecorrea Ver Post
    nao.. o ipp2p roda sem necessidade de recompilar kernel.. eh um modulo apenas !!
    O comando para aplicar sua patch é este:


    Ex: patch -p1 < ipt_ipp2p.c (o arquivo é este ?)


    #ls ipp2p-0.8.2
    COPYING Makefile Makefile_old Module.symvers README ipt_ipp2p.c ipt_ipp2p.h libipt_ipp2p.c






Tópicos Similares

  1. Respostas: 3
    Último Post: 30-12-2015, 10:39
  2. Respostas: 16
    Último Post: 07-07-2015, 01:18
  3. Como resolver este problema no apt-get
    Por gamaj1 no fórum Servidores de Rede
    Respostas: 6
    Último Post: 24-06-2010, 19:43
  4. Como resolver erro no youtube ?
    Por rikzz no fórum Redes
    Respostas: 5
    Último Post: 04-08-2008, 08:12
  5. Erro no fdlimid no dns, como configurar.
    Por webluc no fórum Servidores de Rede
    Respostas: 0
    Último Post: 08-10-2004, 10:11

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L