Browse Source

libplugin: allow u32 options

travis-debug
darosior 5 years ago
committed by Rusty Russell
parent
commit
902edf56e6
  1. 19
      plugins/libplugin.c
  2. 1
      plugins/libplugin.h

19
plugins/libplugin.c

@ -797,6 +797,25 @@ char *u64_option(const char *arg, u64 *i)
return NULL;
}
char *u32_option(const char *arg, u32 *i)
{
char *endp;
u64 n;
errno = 0;
n = strtoul(arg, &endp, 0);
if (*endp || !arg[0])
return tal_fmt(NULL, "'%s' is not a number", arg);
if (errno)
return tal_fmt(NULL, "'%s' is out of range", arg);
*i = n;
if (*i != n)
return tal_fmt(NULL, "'%s' is too large (overflow)", arg);
return NULL;
}
char *charp_option(const char *arg, char **p)
{
*p = tal_strdup(NULL, arg);

1
plugins/libplugin.h

@ -234,6 +234,7 @@ void plugin_log(struct plugin *p, enum log_level l, const char *fmt, ...) PRINTF
/* Standard helpers */
char *u64_option(const char *arg, u64 *i);
char *u32_option(const char *arg, u32 *i);
char *charp_option(const char *arg, char **p);
/* The main plugin runner: append with 0 or more plugin_option(), then NULL. */

Loading…
Cancel
Save