Commit dfeef5d8 authored by Martin Mareš's avatar Martin Mareš

Implemented ip_pton()

parent a3afae58
......@@ -49,5 +49,6 @@
char *ip_ntop(ip_addr a, char *);
char *ip_ntox(ip_addr a, char *);
int ip_pton(char *a, ip_addr *o);
#endif
......@@ -8,6 +8,9 @@
#ifndef IPV6
#include <string.h>
#include <stdlib.h>
#include "nest/bird.h"
#include "lib/ip.h"
#include "lib/string.h"
......@@ -65,4 +68,29 @@ ipv4_class_mask(u32 a)
return m;
}
int
ip_pton(char *a, ip_addr *o)
{
int i,j;
unsigned long int l;
u32 ia = 0;
i=4;
while (i--)
{
char *d, *c = strchr(a, '.');
if (!c != !i)
return 0;
if (c)
*c++ = 0;
l = strtoul(a, &d, 10);
if (d && *d || l > 255)
return 0;
ia = (ia << 8) | l;
a = c;
}
*o = ipa_from_u32(ia);
return 1;
}
#endif
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment