1261190Sgshapiro/* 2261190Sgshapiro * Copyright (c) 2013 Proofpoint, Inc. and its suppliers. 3261190Sgshapiro * All rights reserved. 4261190Sgshapiro * 5261190Sgshapiro * By using this file, you agree to the terms and conditions set 6261190Sgshapiro * forth in the LICENSE file which can be found at the top level of 7261190Sgshapiro * the sendmail distribution. 8261190Sgshapiro */ 9261190Sgshapiro 10261190Sgshapiro#include <sm/gen.h> 11266692SgshapiroSM_IDSTR(id, "@(#)$Id: t-inet6_ntop.c,v 1.2 2013-11-22 20:51:43 ca Exp $") 12261190Sgshapiro 13261190Sgshapiro#include <sm/conf.h> 14261190Sgshapiro#if NETINET6 15261190Sgshapiro#include <sm/io.h> 16261190Sgshapiro#include <sm/test.h> 17261190Sgshapiro#include <sm/string.h> 18261190Sgshapiro#include <sys/socket.h> 19261190Sgshapiro#include <netinet/in.h> 20261190Sgshapiro#include <arpa/inet.h> 21261190Sgshapiro 22261190Sgshapirostatic char *ipv6f[] = { 23261190Sgshapiro "1234:5678:9abc:def0:fedc:dead:f00f:101", 24261190Sgshapiro "1080:0:0:0:8:800:200c:417a", 25261190Sgshapiro "ff01:0:0:0:0:0:0:43", 26261190Sgshapiro "0:0:0:0:0:0:0:1", 27261190Sgshapiro "1:0:0:0:0:0:0:1", 28261190Sgshapiro "0:1:0:0:0:0:0:1", 29261190Sgshapiro "0:0:1:0:0:0:0:1", 30261190Sgshapiro "0:0:0:1:0:0:0:1", 31261190Sgshapiro "0:0:0:0:1:0:0:1", 32261190Sgshapiro "0:0:0:0:0:1:0:1", 33261190Sgshapiro "0:0:0:0:0:0:1:1", 34261190Sgshapiro "1:a:b:c:d:e:f:9", 35261190Sgshapiro "0:0:0:0:0:0:0:0", 36261190Sgshapiro NULL 37261190Sgshapiro}; 38261190Sgshapiro 39261190Sgshapirostatic void 40261190Sgshapirotest() 41261190Sgshapiro{ 42261190Sgshapiro int i, r; 43261190Sgshapiro struct sockaddr_in6 addr; 44261190Sgshapiro char *ip, *ipf, ipv6str[INET6_ADDRSTRLEN]; 45261190Sgshapiro 46261190Sgshapiro for (i = 0; (ip = ipv6f[i]) != NULL; i++) { 47261190Sgshapiro r = inet_pton(AF_INET6, ip, &addr.sin6_addr); 48261190Sgshapiro SM_TEST(r == 1); 49261190Sgshapiro ipf = sm_inet6_ntop(&addr.sin6_addr, ipv6str, sizeof(ipv6str)); 50261190Sgshapiro SM_TEST(ipf != NULL); 51261190Sgshapiro SM_TEST(strcmp(ipf, ip) == 0); 52261190Sgshapiro } 53261190Sgshapiro} 54261190Sgshapiro 55261190Sgshapiroint 56261190Sgshapiromain(argc, argv) 57261190Sgshapiro int argc; 58261190Sgshapiro char **argv; 59261190Sgshapiro{ 60261190Sgshapiro sm_test_begin(argc, argv, "test inet6_ntop"); 61261190Sgshapiro test(); 62261190Sgshapiro return sm_test_end(); 63261190Sgshapiro} 64261190Sgshapiro#else /* NETINET6 */ 65261190Sgshapiro 66261190Sgshapiroint 67261190Sgshapiromain(argc, argv) 68261190Sgshapiro int argc; 69261190Sgshapiro char **argv; 70261190Sgshapiro{ 71261190Sgshapiro return 0; 72261190Sgshapiro} 73261190Sgshapiro#endif /* NETINET6 */ 74