diff options
-rw-r--r-- | accel-pppd/extra/ippool.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/accel-pppd/extra/ippool.c b/accel-pppd/extra/ippool.c index 7a91cf43..6ba2b5df 100644 --- a/accel-pppd/extra/ippool.c +++ b/accel-pppd/extra/ippool.c @@ -100,10 +100,20 @@ struct ippool_t *find_pool(char *name, int create) static void parse_gw_ip_address(const char *val) { + char addr[17]; + char *ptr; + if (!val) return; - conf_gw_ip_address = inet_addr(val); + ptr = strchr(val, '/'); + if (ptr) { + memcpy(addr, val, ptr - val); + addr[ptr - val] = 0; + conf_gw_ip_address = inet_addr(addr); + } + else + conf_gw_ip_address = inet_addr(val); } //parses ranges like x.x.x.x/mask |