From 4a7059686430f596810f0c83e4897154828fd352 Mon Sep 17 00:00:00 2001 From: Susant Sahani Date: Tue, 6 Dec 2016 16:51:45 +0530 Subject: [PATCH] core: introduce parse_ip_port (#4825) 1. Listed in TODO. 2. Tree wide replace safe_atou16 with parse_ip_port incase it's used for ports. --- src/basic/parse-util.c | 16 ++++++++++++++++ src/basic/parse-util.h | 2 ++ 2 files changed, 18 insertions(+) diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c index b1cad55e7..2daa797a5 100644 --- a/src/basic/parse-util.c +++ b/src/basic/parse-util.c @@ -582,3 +582,19 @@ int parse_nice(const char *p, int *ret) { return 0; } #endif // 0 + +int parse_ip_port(const char *s, uint16_t *ret) { + uint16_t l; + int r; + + r = safe_atou16(s, &l); + if (r < 0) + return r; + + if (l == 0) + return -EINVAL; + + *ret = (uint16_t) l; + + return 0; +} diff --git a/src/basic/parse-util.h b/src/basic/parse-util.h index 23b193743..2f6cfdbc5 100644 --- a/src/basic/parse-util.h +++ b/src/basic/parse-util.h @@ -114,3 +114,5 @@ int parse_percent(const char *p); #if 0 /// UNNEEDED by elogind int parse_nice(const char *p, int *ret); #endif // 0 + +int parse_ip_port(const char *s, uint16_t *ret); -- 2.30.2