+static int
+_inet_net_pton(int af, char *prefix, void *addr)
+{
+ const char *dlm = "/";
+ char *s, *sp;
+ int ret, depth;
+ unsigned int max_depth;
+
+ if ((prefix == NULL) || (addr == NULL))
+ return -EINVAL;
+
+ s = strtok_r(prefix, dlm, &sp);
+ if (s == NULL)
+ return -EINVAL;
+
+ ret = inet_pton(af, s, addr);
+ if (ret != 1)
+ return -errno;
+
+ s = strtok_r(NULL, dlm, &sp);
+ max_depth = (af == AF_INET) ? 32 : 128;
+ GET_CB_FIELD(s, depth, 0, max_depth, 0);
+
+ return depth;
+}
+