fix to save() and restore() functions of ah/esp match.
diff --git a/extensions/libipt_esp.c b/extensions/libipt_esp.c
index 8890ff7..8804495 100644
--- a/extensions/libipt_esp.c
+++ b/extensions/libipt_esp.c
@@ -91,7 +91,7 @@
case '1':
if (*flags & ESP_SPI)
exit_error(PARAMETER_PROBLEM,
- "Only one `--spi' allowed");
+ "Only one `--espspi' allowed");
check_inverse(optarg, &invert, &optind, 0);
parse_esp_spis(argv[optind-1], espinfo->spis);
if (invert)
@@ -152,17 +152,17 @@
{
const struct ipt_esp *espinfo = (struct ipt_esp *)match->data;
- if (espinfo->spis[0] != 0
- && espinfo->spis[1] != 0xFFFFFFFF) {
- if (espinfo->invflags & IPT_ESP_INV_SPI)
- printf("! ");
+ if (!(espinfo->spis[0] == 0
+ && espinfo->spis[1] == 0xFFFFFFFF)) {
+ printf("--espspi %s",
+ (espinfo->invflags & IPT_ESP_INV_SPI) ? "! " : "");
if (espinfo->spis[0]
!= espinfo->spis[1])
- printf("--spi %u-%u ",
+ printf("%u:%u ",
espinfo->spis[0],
espinfo->spis[1]);
else
- printf("--spi %u ",
+ printf("%u ",
espinfo->spis[0]);
}