255e9bff6bea17aab6160037bd6965ca0e57db5dMark Andrews * Copyright (C) 1996-2005, 2007, 2013, 2014, 2016, 2017 Internet Systems Consortium, Inc. ("ISC")
255e9bff6bea17aab6160037bd6965ca0e57db5dMark Andrews * This Source Code Form is subject to the terms of the Mozilla Public
255e9bff6bea17aab6160037bd6965ca0e57db5dMark Andrews * License, v. 2.0. If a copy of the MPL was not distributed with this
255e9bff6bea17aab6160037bd6965ca0e57db5dMark Andrews * file, You can obtain one at http://mozilla.org/MPL/2.0/.
255e9bff6bea17aab6160037bd6965ca0e57db5dMark Andrews "$Id: inet_pton.c,v 1.19 2007/06/19 23:47:17 tbox Exp $";
255e9bff6bea17aab6160037bd6965ca0e57db5dMark Andrews#endif /* LIBC_SCCS and not lint */
255e9bff6bea17aab6160037bd6965ca0e57db5dMark Andrews/*% INT16 Size */
255e9bff6bea17aab6160037bd6965ca0e57db5dMark Andrews/*% IPv4 Address Size */
255e9bff6bea17aab6160037bd6965ca0e57db5dMark Andrews/*% IPv6 Address Size */
switch (af) {
case AF_INET:
case AF_INET6:
saw_digit = 0;
octets = 0;
if (!saw_digit) {
*++tp = 0;
saw_digit = 0;
seen_xdigits = 0;
val = 0;
if (!seen_xdigits) {
if (colonp)
seen_xdigits = 0;
val = 0;
seen_xdigits = 0;
if (seen_xdigits) {
colonp[n - i] = 0;