diff options
author | Přemysl Janouch <p.janouch@gmail.com> | 2014-07-13 05:56:30 +0200 |
---|---|---|
committer | Přemysl Janouch <p.janouch@gmail.com> | 2014-07-13 05:56:30 +0200 |
commit | 03ec980f269c8222eaeeb3bbae8c3cab20595bfd (patch) | |
tree | 25246d529543e24dc60050f267181c23fa92ba54 | |
parent | 51909edc767966cd677cb65a8c8ca978a97ec655 (diff) | |
download | xK-03ec980f269c8222eaeeb3bbae8c3cab20595bfd.tar.gz xK-03ec980f269c8222eaeeb3bbae8c3cab20595bfd.tar.xz xK-03ec980f269c8222eaeeb3bbae8c3cab20595bfd.zip |
Add a strtoul() wrapper
-rw-r--r-- | src/common.c | 9 | ||||
-rw-r--r-- | src/zyklonb.c | 6 |
2 files changed, 11 insertions, 4 deletions
diff --git a/src/common.c b/src/common.c index fcb9742..8ec6646 100644 --- a/src/common.c +++ b/src/common.c @@ -1418,6 +1418,15 @@ set_boolean_if_valid (bool *out, const char *s) } static bool +xstrtoul (unsigned long *out, const char *s, int base) +{ + char *end; + errno = 0; + *out = strtoul (s, &end, base); + return errno == 0 && !*end && end != s; +} + +static bool read_line (FILE *fp, struct str *s) { int c; diff --git a/src/zyklonb.c b/src/zyklonb.c index a57b8c4..3d8d388 100644 --- a/src/zyklonb.c +++ b/src/zyklonb.c @@ -1418,10 +1418,8 @@ irc_try_reconnect (struct bot_context *ctx) const char *delay_str = str_map_find (&ctx->config, "reconnect_delay"); hard_assert (delay_str != NULL); // We have a default value for this - char *end_ptr; - errno = 0; - long delay = strtol (delay_str, &end_ptr, 10); - if (errno != 0 || end_ptr == delay_str || *end_ptr) + unsigned long delay; + if (!xstrtoul (&delay, delay_str, 10)) { print_error ("invalid configuration value for `%s'", "reconnect_delay"); |