diff options
Diffstat (limited to 'xtables.c')
-rw-r--r-- | xtables.c | 37 |
1 files changed, 23 insertions, 14 deletions
@@ -44,6 +44,11 @@ #define PROC_SYS_MODPROBE "/proc/sys/kernel/modprobe" #endif +/** + * Program will set this to its own name. + */ +const char *xtables_program_name; + /* Search path for Xtables .so files */ static const char *xtables_libdir; @@ -529,23 +534,25 @@ void xtables_register_match(struct xtables_match *me) { struct xtables_match **i, *old; - if (strcmp(me->version, program_version) != 0) { - fprintf(stderr, "%s: match `%s' v%s (I'm v%s).\n", - program_name, me->name, me->version, program_version); + if (strcmp(me->version, XTABLES_VERSION) != 0) { + fprintf(stderr, "%s: match \"%s\" has version \"%s\", " + "but \"%s\" is required.\n", + xtables_program_name, me->name, + me->version, XTABLES_VERSION); exit(1); } /* Revision field stole a char from name. */ if (strlen(me->name) >= XT_FUNCTION_MAXNAMELEN-1) { fprintf(stderr, "%s: target `%s' has invalid name\n", - program_name, me->name); + xtables_program_name, me->name); exit(1); } if (me->family >= NPROTO) { fprintf(stderr, "%s: BUG: match %s has invalid protocol family\n", - program_name, me->name); + xtables_program_name, me->name); exit(1); } @@ -559,7 +566,7 @@ void xtables_register_match(struct xtables_match *me) old->family == me->family) { fprintf(stderr, "%s: match `%s' already registered.\n", - program_name, me->name); + xtables_program_name, me->name); exit(1); } @@ -583,7 +590,7 @@ void xtables_register_match(struct xtables_match *me) if (me->size != XT_ALIGN(me->size)) { fprintf(stderr, "%s: match `%s' has invalid size %u.\n", - program_name, me->name, (unsigned int)me->size); + xtables_program_name, me->name, (unsigned int)me->size); exit(1); } @@ -600,23 +607,25 @@ void xtables_register_target(struct xtables_target *me) { struct xtables_target *old; - if (strcmp(me->version, program_version) != 0) { - fprintf(stderr, "%s: target `%s' v%s (I'm v%s).\n", - program_name, me->name, me->version, program_version); + if (strcmp(me->version, XTABLES_VERSION) != 0) { + fprintf(stderr, "%s: target \"%s\" has version \"%s\", " + "but \"%s\" is required.\n", + xtables_program_name, me->name, + me->version, XTABLES_VERSION); exit(1); } /* Revision field stole a char from name. */ if (strlen(me->name) >= XT_FUNCTION_MAXNAMELEN-1) { fprintf(stderr, "%s: target `%s' has invalid name\n", - program_name, me->name); + xtables_program_name, me->name); exit(1); } if (me->family >= NPROTO) { fprintf(stderr, "%s: BUG: target %s has invalid protocol family\n", - program_name, me->name); + xtables_program_name, me->name); exit(1); } @@ -632,7 +641,7 @@ void xtables_register_target(struct xtables_target *me) old->family == me->family) { fprintf(stderr, "%s: target `%s' already registered.\n", - program_name, me->name); + xtables_program_name, me->name); exit(1); } @@ -656,7 +665,7 @@ void xtables_register_target(struct xtables_target *me) if (me->size != XT_ALIGN(me->size)) { fprintf(stderr, "%s: target `%s' has invalid size %u.\n", - program_name, me->name, (unsigned int)me->size); + xtables_program_name, me->name, (unsigned int)me->size); exit(1); } |