-static int sig_num(const char *sig)
-{
- unsigned int signum;
-
- if (lxc_safe_uint(sig, &signum) < 0)
- return -1;
-
- return signum;
-}
-
-static int rt_sig_num(const char *signame)
-{
- int rtmax = 0, sig_n = 0;
-
- if (strncasecmp(signame, "max-", 4) == 0) {
- rtmax = 1;
- }
-
- signame += 4;
- if (!isdigit(*signame))
- return -1;
-
- sig_n = sig_num(signame);
- sig_n = rtmax ? SIGRTMAX - sig_n : SIGRTMIN + sig_n;
- if (sig_n > SIGRTMAX || sig_n < SIGRTMIN)
- return -1;
-
- return sig_n;
-}
-
-static int sig_parse(const char *signame)
-{
- size_t n;
-
- if (isdigit(*signame)) {
- return sig_num(signame);
- } else if (strncasecmp(signame, "sig", 3) == 0) {
- signame += 3;
- if (strncasecmp(signame, "rt", 2) == 0)
- return rt_sig_num(signame + 2);
- for (n = 0; n < sizeof(signames) / sizeof((signames)[0]); n++) {
- if (strcasecmp(signames[n].name, signame) == 0)
- return signames[n].num;
- }
- }
-
- return -1;
-}
-