# --- T2-COPYRIGHT-NOTE-BEGIN ---
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
# 
# T2 SDE: package/.../ebtables/gcc4.patch
# Copyright (C) 2004 - 2005 The T2 SDE Project
# 
# More information can be found in the files COPYING and README.
# 
# This patch file is dual-licensed. It is available under the license the
# patched project is licensed under, as long as it is an OpenSource license
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
# of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
# --- T2-COPYRIGHT-NOTE-END ---
diff -Nur ebtables-v2.0.6.orig/extensions/ebt_ip.c ebtables-v2.0.6/extensions/ebt_ip.c
--- ebtables-v2.0.6.orig/extensions/ebt_ip.c	2003-11-02 20:22:56.000000000 +0200
+++ ebtables-v2.0.6/extensions/ebt_ip.c	2005-11-01 18:48:56.000000000 +0200
@@ -244,6 +244,7 @@
 	struct ebt_ip_info *ipinfo = (struct ebt_ip_info *)(*match)->data;
 	char *end;
 	long int i;
+	unsigned char j;
 
 	switch (c) {
 	case IP_SOURCE:
@@ -313,7 +314,7 @@
 			ipinfo->invflags |= EBT_IP_PROTO;
 		if (optind > argc)
 			print_error("Missing IP protocol argument");
-		(unsigned char) i = strtoul(argv[optind - 1], &end, 10);
+		j = strtoul(argv[optind - 1], &end, 10);
 		if (*end != '\0') {
 			struct protoent *pe;
 
@@ -324,7 +325,7 @@
 				     argv[optind - 1]);
 			ipinfo->protocol = pe->p_proto;
 		} else {
-			ipinfo->protocol = (unsigned char) i;
+			ipinfo->protocol = j;
 		}
 		ipinfo->bitmask |= EBT_IP_PROTO;
 		break;
diff -Nur ebtables-v2.0.6.orig/extensions/ebt_limit.c ebtables-v2.0.6/extensions/ebt_limit.c
--- ebtables-v2.0.6.orig/extensions/ebt_limit.c	2003-11-02 20:22:56.000000000 +0200
+++ ebtables-v2.0.6/extensions/ebt_limit.c	2005-11-01 18:48:56.000000000 +0200
@@ -203,15 +203,15 @@
 
 static struct ebt_u_match limit_match =
 {
-	.name		EBT_LIMIT_MATCH,
-	.size		sizeof(struct ebt_limit_info),
-	.help		print_help,
-	.init		init,
-	.parse		parse,
-	.final_check	final_check,
-	.print		print,
-	.compare	compare,
-	.extra_ops	opts,
+	.name	=	EBT_LIMIT_MATCH,
+	.size	=	sizeof(struct ebt_limit_info),
+	.help	=	print_help,
+	.init	=	init,
+	.parse	=	parse,
+	.final_check =	final_check,
+	.print	=	print,
+	.compare =	compare,
+	.extra_ops =	opts,
 };
 
 static void _init(void) __attribute((constructor));
diff -Nur ebtables-v2.0.6.orig/extensions/ebt_vlan.c ebtables-v2.0.6/extensions/ebt_vlan.c
--- ebtables-v2.0.6.orig/extensions/ebt_vlan.c	2003-11-02 20:22:56.000000000 +0200
+++ ebtables-v2.0.6/extensions/ebt_vlan.c	2005-11-01 18:48:56.000000000 +0200
@@ -135,14 +135,16 @@
 	    (struct ebt_vlan_info *) (*match)->data;
 	char *end;
 	struct ebt_vlan_info local;
+	unsigned short id, encap;
+	unsigned char prio;
 
 	switch (c) {
 	case VLAN_ID:
 		check_option(flags, OPT_VLAN_ID);
 		CHECK_INV_FLAG(EBT_VLAN_ID);
 		CHECK_IF_MISSING_VALUE;
-		(unsigned short) local.id =
-		    strtoul(argv[optind - 1], &end, 10);
+		id = strtoul(argv[optind - 1], &end, 10);
+		local.id = (uint16_t) id;
 		CHECK_RANGE(local.id > 4094 || *end != '\0');
 		vlaninfo->id = local.id;
 		SET_BITMASK(EBT_VLAN_ID);
@@ -152,8 +154,8 @@
 		check_option(flags, OPT_VLAN_PRIO);
 		CHECK_INV_FLAG(EBT_VLAN_PRIO);
 		CHECK_IF_MISSING_VALUE;
-		(unsigned char) local.prio =
-		    strtoul(argv[optind - 1], &end, 10);
+		prio = strtoul(argv[optind - 1], &end, 10);
+		local.prio = (uint8_t) prio;
 		CHECK_RANGE(local.prio >= 8 || *end != '\0');
 		vlaninfo->prio = local.prio;
 		SET_BITMASK(EBT_VLAN_PRIO);
@@ -163,8 +165,8 @@
 		check_option(flags, OPT_VLAN_ENCAP);
 		CHECK_INV_FLAG(EBT_VLAN_ENCAP);
 		CHECK_IF_MISSING_VALUE;
-		(unsigned short) local.encap =
-		    strtoul(argv[optind - 1], &end, 16);
+		encap = strtoul(argv[optind - 1], &end, 16);
+		local.encap = (uint16_t) encap;
 		if (*end != '\0') {
 			ethent = getethertypebyname(argv[optind - 1]);
 			if (ethent == NULL)