libpcap: Fix build when PACKAGECONFIG ipv6 is not enabled
Add patches provided upstream [1] by Fabio Berton to fix error:
> ./gencode.c: In function 'pcap_compile':
> ./gencode.c:693:8: error: 'compiler_state_t {aka struct _compiler_state}' has no member named 'ai'
>   cstate.ai = NULL;
>         ^
> ./gencode.c: In function 'gen_gateway':
> ./gencode.c:4914:13: error: 'cstate' undeclared (first use in this function)
>    bpf_error(cstate, "direction applied to 'gateway'");
>              ^
[1] https://github.com/the-tcpdump-group/libpcap/pull/541
Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
Tested-by: Zefir Kurtisi <zefir.kurtisi@neratec.com>
			
			
This commit is contained in:
		 Zefir Kurtisi
					Zefir Kurtisi
				
			
				
					committed by
					
						 Felix Fietkau
						Felix Fietkau
					
				
			
			
				
	
			
			
			 Felix Fietkau
						Felix Fietkau
					
				
			
						parent
						
							ea9b71e5b1
						
					
				
				
					commit
					16725e2db0
				
			| @@ -0,0 +1,41 @@ | |||||||
|  | From 64aa033a061c43fc15c711f2490ae41d23b868c3 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Fabio Berton <fabio.berton@ossystems.com.br> | ||||||
|  | Date: Thu, 17 Nov 2016 09:44:42 -0200 | ||||||
|  | Subject: [PATCH 1/2] Fix compiler_state_t.ai usage when INET6 is not defined | ||||||
|  | Organization: O.S. Systems Software LTDA. | ||||||
|  |  | ||||||
|  | Fix error: | ||||||
|  |  | ||||||
|  | / | ||||||
|  | | ../libpcap-1.8.1/gencode.c: In function 'pcap_compile': | ||||||
|  | | ../libpcap-1.8.1/gencode.c:693:8: error: 'compiler_state_t | ||||||
|  | | {aka struct _compiler_state}' has no member named 'ai' | ||||||
|  | |   cstate.ai = NULL; | ||||||
|  | \ | ||||||
|  |  | ||||||
|  | Upstream-Status: Submitted [1] | ||||||
|  |  | ||||||
|  | [1] https://github.com/the-tcpdump-group/libpcap/pull/541 | ||||||
|  |  | ||||||
|  | Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br> | ||||||
|  | --- | ||||||
|  |  gencode.c | 2 ++ | ||||||
|  |  1 file changed, 2 insertions(+) | ||||||
|  |  | ||||||
|  | diff --git a/gencode.c b/gencode.c | ||||||
|  | index a887f27..e103c70 100644 | ||||||
|  | --- a/gencode.c | ||||||
|  | +++ b/gencode.c | ||||||
|  | @@ -690,7 +690,9 @@ pcap_compile(pcap_t *p, struct bpf_program *program, | ||||||
|  |  	} | ||||||
|  |  	initchunks(&cstate); | ||||||
|  |  	cstate.no_optimize = 0; | ||||||
|  | +#ifdef INET6 | ||||||
|  |  	cstate.ai = NULL; | ||||||
|  | +#endif | ||||||
|  |  	cstate.ic.root = NULL; | ||||||
|  |  	cstate.ic.cur_mark = 0; | ||||||
|  |  	cstate.bpf_pcap = p; | ||||||
|  | --  | ||||||
|  | 2.1.4 | ||||||
|  |  | ||||||
| @@ -0,0 +1,67 @@ | |||||||
|  | From 50ec0a088d5924a8305b2d70dcba71b0942dee1a Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Fabio Berton <fabio.berton@ossystems.com.br> | ||||||
|  | Date: Thu, 17 Nov 2016 09:47:29 -0200 | ||||||
|  | Subject: [PATCH 2/2] Add missing compiler_state_t parameter | ||||||
|  | Organization: O.S. Systems Software LTDA. | ||||||
|  |  | ||||||
|  | Fix error: | ||||||
|  |  | ||||||
|  | / | ||||||
|  | |../libpcap-1.8.1/gencode.c: In function 'gen_gateway': | ||||||
|  | |../libpcap-1.8.1/gencode.c:4914:13: error: 'cstate' undeclared | ||||||
|  | | (first use in this function) | ||||||
|  | |    bpf_error(cstate, "direction applied to 'gateway'"); | ||||||
|  | \ | ||||||
|  |  | ||||||
|  | Upstream-Status: Submitted [1] | ||||||
|  |  | ||||||
|  | [1] https://github.com/the-tcpdump-group/libpcap/pull/541 | ||||||
|  |  | ||||||
|  | Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br> | ||||||
|  | --- | ||||||
|  |  gencode.c | 15 ++++++++------- | ||||||
|  |  1 file changed, 8 insertions(+), 7 deletions(-) | ||||||
|  |  | ||||||
|  | diff --git a/gencode.c b/gencode.c | ||||||
|  | index e103c70..f07c0be 100644 | ||||||
|  | --- a/gencode.c | ||||||
|  | +++ b/gencode.c | ||||||
|  | @@ -523,7 +523,7 @@ static struct block *gen_host6(compiler_state_t *, struct in6_addr *, | ||||||
|  |      struct in6_addr *, int, int, int); | ||||||
|  |  #endif | ||||||
|  |  #ifndef INET6 | ||||||
|  | -static struct block *gen_gateway(const u_char *, bpf_u_int32 **, int, int); | ||||||
|  | +static struct block *gen_gateway(compiler_state_t *, const u_char *, bpf_u_int32 **, int, int); | ||||||
|  |  #endif | ||||||
|  |  static struct block *gen_ipfrag(compiler_state_t *); | ||||||
|  |  static struct block *gen_portatom(compiler_state_t *, int, bpf_int32); | ||||||
|  | @@ -4904,11 +4904,12 @@ gen_host6(compiler_state_t *cstate, struct in6_addr *addr, | ||||||
|  |   | ||||||
|  |  #ifndef INET6 | ||||||
|  |  static struct block * | ||||||
|  | -gen_gateway(eaddr, alist, proto, dir) | ||||||
|  | -	const u_char *eaddr; | ||||||
|  | -	bpf_u_int32 **alist; | ||||||
|  | -	int proto; | ||||||
|  | -	int dir; | ||||||
|  | +gen_gateway(cstate, eaddr, alist, proto, dir) | ||||||
|  | +    compiler_state_t *cstate; | ||||||
|  | +    const u_char *eaddr; | ||||||
|  | +    bpf_u_int32 **alist; | ||||||
|  | +    int proto; | ||||||
|  | +    int dir; | ||||||
|  |  { | ||||||
|  |  	struct block *b0, *b1, *tmp; | ||||||
|  |   | ||||||
|  | @@ -6472,7 +6473,7 @@ gen_scode(compiler_state_t *cstate, const char *name, struct qual q) | ||||||
|  |  		alist = pcap_nametoaddr(name); | ||||||
|  |  		if (alist == NULL || *alist == NULL) | ||||||
|  |  			bpf_error(cstate, "unknown host '%s'", name); | ||||||
|  | -		b = gen_gateway(eaddr, alist, proto, dir); | ||||||
|  | +		b = gen_gateway(cstate, eaddr, alist, proto, dir); | ||||||
|  |  		free(eaddr); | ||||||
|  |  		return b; | ||||||
|  |  #else | ||||||
|  | --  | ||||||
|  | 2.1.4 | ||||||
|  |  | ||||||
		Reference in New Issue
	
	Block a user