summaryrefslogtreecommitdiff
path: root/src/sp_config.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sp_config.c')
-rw-r--r--src/sp_config.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/sp_config.c b/src/sp_config.c
index ed41a6a..46742c4 100644
--- a/src/sp_config.c
+++ b/src/sp_config.c
@@ -213,6 +213,21 @@ SP_PARSEKW_FN(parse_uint) {
213 return ret; 213 return ret;
214} 214}
215 215
216SP_PARSEKW_FN(parse_ulong) {
217 int ret = SP_PARSER_SUCCESS;
218 SP_PARSE_ARG(value);
219
220 char *endptr;
221 errno = 0;
222 *(u_long*)retval = (u_long)strtoul(ZSTR_VAL(value), &endptr, 10);
223 if (errno != 0 || !endptr || endptr == ZSTR_VAL(value)) {
224 sp_log_err("config", "Failed to parse arg '%s' of `%s` on line %zu", ZSTR_VAL(value), token, kw->lineno);
225 ret = SP_PARSER_ERROR;
226 }
227 zend_string_release(value);
228 return ret;
229}
230
216SP_PARSEKW_FN(parse_cidr) { 231SP_PARSEKW_FN(parse_cidr) {
217 CHECK_DUPLICATE_KEYWORD(retval); 232 CHECK_DUPLICATE_KEYWORD(retval);
218 SP_PARSE_ARG(value); 233 SP_PARSE_ARG(value);