iptables: improve iptables listing output of xt_id match
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 48478
This commit is contained in:
		| @@ -1,5 +1,5 @@ | |||||||
| # | # | ||||||
| # Copyright (C) 2006-2013 OpenWrt.org | # Copyright (C) 2006-2016 OpenWrt.org | ||||||
| # | # | ||||||
| # This is free software, licensed under the GNU General Public License v2. | # This is free software, licensed under the GNU General Public License v2. | ||||||
| # See /LICENSE for more information. | # See /LICENSE for more information. | ||||||
| @@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/kernel.mk | |||||||
|  |  | ||||||
| PKG_NAME:=iptables | PKG_NAME:=iptables | ||||||
| PKG_VERSION:=1.4.21 | PKG_VERSION:=1.4.21 | ||||||
| PKG_RELEASE:=1 | PKG_RELEASE:=2 | ||||||
|  |  | ||||||
| PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 | PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 | ||||||
| PKG_SOURCE_URL:=http://www.netfilter.org/projects/iptables/files \ | PKG_SOURCE_URL:=http://www.netfilter.org/projects/iptables/files \ | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| --- /dev/null | --- /dev/null | ||||||
| +++ b/extensions/libxt_id.c | +++ b/extensions/libxt_id.c | ||||||
| @@ -0,0 +1,45 @@ | @@ -0,0 +1,55 @@ | ||||||
| +/* Shared library add-on to iptables to add id match support. */ | +/* Shared library add-on to iptables to add id match support. */ | ||||||
| + | + | ||||||
| +#include <stdio.h> | +#include <stdio.h> | ||||||
| @@ -22,13 +22,22 @@ | |||||||
| +	XTOPT_TABLEEND, | +	XTOPT_TABLEEND, | ||||||
| +}; | +}; | ||||||
| + | + | ||||||
|  | +static void | ||||||
|  | +id_print(const void *ip, const struct xt_entry_match *match, int numeric) | ||||||
|  | +{ | ||||||
|  | +	struct xt_id_info *idinfo = (void *)match->data; | ||||||
|  | + | ||||||
|  | +	printf(" ID:%08lx", idinfo->id); | ||||||
|  | +} | ||||||
|  | + | ||||||
|  | + | ||||||
| +/* Saves the union ipt_matchinfo in parsable form to stdout. */ | +/* Saves the union ipt_matchinfo in parsable form to stdout. */ | ||||||
| +static void | +static void | ||||||
| +id_save(const void *ip, const struct xt_entry_match *match) | +id_save(const void *ip, const struct xt_entry_match *match) | ||||||
| +{ | +{ | ||||||
| +	struct xt_id_info *idinfo = (void *)match->data; | +	struct xt_id_info *idinfo = (void *)match->data; | ||||||
| + | + | ||||||
| +	printf(" --id %lu", idinfo->id); | +	printf(" --id 0x%lx", idinfo->id); | ||||||
| +} | +} | ||||||
| + | + | ||||||
| +static struct xtables_match id_match = { | +static struct xtables_match id_match = { | ||||||
| @@ -37,6 +46,7 @@ | |||||||
| +	.version	= XTABLES_VERSION, | +	.version	= XTABLES_VERSION, | ||||||
| +	.size		= XT_ALIGN(sizeof(struct xt_id_info)), | +	.size		= XT_ALIGN(sizeof(struct xt_id_info)), | ||||||
| +	.userspacesize	= XT_ALIGN(sizeof(struct xt_id_info)), | +	.userspacesize	= XT_ALIGN(sizeof(struct xt_id_info)), | ||||||
|  | +	.print		= id_print, | ||||||
| +	.save 		= id_save, | +	.save 		= id_save, | ||||||
| +	.x6_parse	= xtables_option_parse, | +	.x6_parse	= xtables_option_parse, | ||||||
| +	.x6_options	= id_opts, | +	.x6_options	= id_opts, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Jo-Philipp Wich
					Jo-Philipp Wich