Edit File by line
/home/barbar84/public_h.../wp-conte.../plugins/sujqvwi/ShExBy/shex_roo.../usr/include/bind9/isc
File: net.h
/*
[0] Fix | Delete
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
[1] Fix | Delete
*
[2] Fix | Delete
* This Source Code Form is subject to the terms of the Mozilla Public
[3] Fix | Delete
* License, v. 2.0. If a copy of the MPL was not distributed with this
[4] Fix | Delete
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
[5] Fix | Delete
*
[6] Fix | Delete
* See the COPYRIGHT file distributed with this work for additional
[7] Fix | Delete
* information regarding copyright ownership.
[8] Fix | Delete
*/
[9] Fix | Delete
[10] Fix | Delete
[11] Fix | Delete
#ifndef ISC_NET_H
[12] Fix | Delete
#define ISC_NET_H 1
[13] Fix | Delete
[14] Fix | Delete
/*****
[15] Fix | Delete
***** Module Info
[16] Fix | Delete
*****/
[17] Fix | Delete
[18] Fix | Delete
/*! \file
[19] Fix | Delete
* \brief
[20] Fix | Delete
* Basic Networking Types
[21] Fix | Delete
*
[22] Fix | Delete
* This module is responsible for defining the following basic networking
[23] Fix | Delete
* types:
[24] Fix | Delete
*
[25] Fix | Delete
*\li struct in_addr
[26] Fix | Delete
*\li struct in6_addr
[27] Fix | Delete
*\li struct in6_pktinfo
[28] Fix | Delete
*\li struct sockaddr
[29] Fix | Delete
*\li struct sockaddr_in
[30] Fix | Delete
*\li struct sockaddr_in6
[31] Fix | Delete
*\li struct sockaddr_storage
[32] Fix | Delete
*\li in_port_t
[33] Fix | Delete
*
[34] Fix | Delete
* It ensures that the AF_ and PF_ macros are defined.
[35] Fix | Delete
*
[36] Fix | Delete
* It declares ntoh[sl]() and hton[sl]().
[37] Fix | Delete
*
[38] Fix | Delete
* It declares inet_aton(), inet_ntop(), and inet_pton().
[39] Fix | Delete
*
[40] Fix | Delete
* It ensures that #INADDR_LOOPBACK, #INADDR_ANY, #IN6ADDR_ANY_INIT,
[41] Fix | Delete
* IN6ADDR_V4MAPPED_INIT, in6addr_any, and in6addr_loopback are available.
[42] Fix | Delete
*
[43] Fix | Delete
* It ensures that IN_MULTICAST() is available to check for multicast
[44] Fix | Delete
* addresses.
[45] Fix | Delete
*
[46] Fix | Delete
* MP:
[47] Fix | Delete
*\li No impact.
[48] Fix | Delete
*
[49] Fix | Delete
* Reliability:
[50] Fix | Delete
*\li No anticipated impact.
[51] Fix | Delete
*
[52] Fix | Delete
* Resources:
[53] Fix | Delete
*\li N/A.
[54] Fix | Delete
*
[55] Fix | Delete
* Security:
[56] Fix | Delete
*\li No anticipated impact.
[57] Fix | Delete
*
[58] Fix | Delete
* Standards:
[59] Fix | Delete
*\li BSD Socket API
[60] Fix | Delete
*\li RFC2553
[61] Fix | Delete
*/
[62] Fix | Delete
[63] Fix | Delete
/***
[64] Fix | Delete
*** Imports.
[65] Fix | Delete
***/
[66] Fix | Delete
#include <isc/platform.h>
[67] Fix | Delete
[68] Fix | Delete
#include <inttypes.h>
[69] Fix | Delete
[70] Fix | Delete
#include <sys/types.h>
[71] Fix | Delete
#include <sys/socket.h> /* Contractual promise. */
[72] Fix | Delete
[73] Fix | Delete
#include <net/if.h>
[74] Fix | Delete
[75] Fix | Delete
#include <netinet/in.h> /* Contractual promise. */
[76] Fix | Delete
#include <arpa/inet.h> /* Contractual promise. */
[77] Fix | Delete
#ifdef ISC_PLATFORM_NEEDNETINETIN6H
[78] Fix | Delete
#include <netinet/in6.h> /* Required on UnixWare. */
[79] Fix | Delete
#endif
[80] Fix | Delete
#ifdef ISC_PLATFORM_NEEDNETINET6IN6H
[81] Fix | Delete
#include <netinet6/in6.h> /* Required on BSD/OS for in6_pktinfo. */
[82] Fix | Delete
#endif
[83] Fix | Delete
[84] Fix | Delete
#ifndef ISC_PLATFORM_HAVEIPV6
[85] Fix | Delete
#include <isc/ipv6.h> /* Contractual promise. */
[86] Fix | Delete
#endif
[87] Fix | Delete
[88] Fix | Delete
#include <isc/lang.h>
[89] Fix | Delete
#include <isc/types.h>
[90] Fix | Delete
[91] Fix | Delete
#ifdef ISC_PLATFORM_HAVEINADDR6
[92] Fix | Delete
#define in6_addr in_addr6 /*%< Required for pre RFC2133 implementations. */
[93] Fix | Delete
#endif
[94] Fix | Delete
[95] Fix | Delete
#ifdef ISC_PLATFORM_HAVEIPV6
[96] Fix | Delete
#ifndef IN6ADDR_ANY_INIT
[97] Fix | Delete
#ifdef s6_addr
[98] Fix | Delete
/*%
[99] Fix | Delete
* Required for some pre RFC2133 implementations.
[100] Fix | Delete
* IN6ADDR_ANY_INIT and IN6ADDR_LOOPBACK_INIT were added in
[101] Fix | Delete
* draft-ietf-ipngwg-bsd-api-04.txt or draft-ietf-ipngwg-bsd-api-05.txt.
[102] Fix | Delete
* If 's6_addr' is defined then assume that there is a union and three
[103] Fix | Delete
* levels otherwise assume two levels required.
[104] Fix | Delete
*/
[105] Fix | Delete
#define IN6ADDR_ANY_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } }
[106] Fix | Delete
#else
[107] Fix | Delete
#define IN6ADDR_ANY_INIT { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } }
[108] Fix | Delete
#endif
[109] Fix | Delete
#endif
[110] Fix | Delete
[111] Fix | Delete
#ifndef IN6ADDR_LOOPBACK_INIT
[112] Fix | Delete
#ifdef s6_addr
[113] Fix | Delete
/*% IPv6 address loopback init */
[114] Fix | Delete
#define IN6ADDR_LOOPBACK_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } }
[115] Fix | Delete
#else
[116] Fix | Delete
#define IN6ADDR_LOOPBACK_INIT { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } }
[117] Fix | Delete
#endif
[118] Fix | Delete
#endif
[119] Fix | Delete
[120] Fix | Delete
#ifndef IN6ADDR_V4MAPPED_INIT
[121] Fix | Delete
#ifdef s6_addr
[122] Fix | Delete
/*% IPv6 v4mapped prefix init */
[123] Fix | Delete
#define IN6ADDR_V4MAPPED_INIT { { { 0,0,0,0,0,0,0,0,0,0,0xff,0xff,0,0,0,0 } } }
[124] Fix | Delete
#else
[125] Fix | Delete
#define IN6ADDR_V4MAPPED_INIT { { 0,0,0,0,0,0,0,0,0,0,0xff,0xff,0,0,0,0 } }
[126] Fix | Delete
#endif
[127] Fix | Delete
#endif
[128] Fix | Delete
[129] Fix | Delete
#ifndef IN6_IS_ADDR_V4MAPPED
[130] Fix | Delete
/*% Is IPv6 address V4 mapped? */
[131] Fix | Delete
#define IN6_IS_ADDR_V4MAPPED(x) \
[132] Fix | Delete
(memcmp((x)->s6_addr, in6addr_any.s6_addr, 10) == 0 && \
[133] Fix | Delete
(x)->s6_addr[10] == 0xff && (x)->s6_addr[11] == 0xff)
[134] Fix | Delete
#endif
[135] Fix | Delete
[136] Fix | Delete
#ifndef IN6_IS_ADDR_V4COMPAT
[137] Fix | Delete
/*% Is IPv6 address V4 compatible? */
[138] Fix | Delete
#define IN6_IS_ADDR_V4COMPAT(x) \
[139] Fix | Delete
(memcmp((x)->s6_addr, in6addr_any.s6_addr, 12) == 0 && \
[140] Fix | Delete
((x)->s6_addr[12] != 0 || (x)->s6_addr[13] != 0 || \
[141] Fix | Delete
(x)->s6_addr[14] != 0 || \
[142] Fix | Delete
((x)->s6_addr[15] != 0 && (x)->s6_addr[15] != 1)))
[143] Fix | Delete
#endif
[144] Fix | Delete
[145] Fix | Delete
#ifndef IN6_IS_ADDR_MULTICAST
[146] Fix | Delete
/*% Is IPv6 address multicast? */
[147] Fix | Delete
#define IN6_IS_ADDR_MULTICAST(a) ((a)->s6_addr[0] == 0xff)
[148] Fix | Delete
#endif
[149] Fix | Delete
[150] Fix | Delete
#ifndef IN6_IS_ADDR_LINKLOCAL
[151] Fix | Delete
/*% Is IPv6 address linklocal? */
[152] Fix | Delete
#define IN6_IS_ADDR_LINKLOCAL(a) \
[153] Fix | Delete
(((a)->s6_addr[0] == 0xfe) && (((a)->s6_addr[1] & 0xc0) == 0x80))
[154] Fix | Delete
#endif
[155] Fix | Delete
[156] Fix | Delete
#ifndef IN6_IS_ADDR_SITELOCAL
[157] Fix | Delete
/*% is IPv6 address sitelocal? */
[158] Fix | Delete
#define IN6_IS_ADDR_SITELOCAL(a) \
[159] Fix | Delete
(((a)->s6_addr[0] == 0xfe) && (((a)->s6_addr[1] & 0xc0) == 0xc0))
[160] Fix | Delete
#endif
[161] Fix | Delete
[162] Fix | Delete
[163] Fix | Delete
#ifndef IN6_IS_ADDR_LOOPBACK
[164] Fix | Delete
/*% is IPv6 address loopback? */
[165] Fix | Delete
#define IN6_IS_ADDR_LOOPBACK(x) \
[166] Fix | Delete
(memcmp((x)->s6_addr, in6addr_loopback.s6_addr, 16) == 0)
[167] Fix | Delete
#endif
[168] Fix | Delete
#endif
[169] Fix | Delete
[170] Fix | Delete
#ifndef AF_INET6
[171] Fix | Delete
/*% IPv6 */
[172] Fix | Delete
#define AF_INET6 99
[173] Fix | Delete
#endif
[174] Fix | Delete
[175] Fix | Delete
#ifndef PF_INET6
[176] Fix | Delete
/*% IPv6 */
[177] Fix | Delete
#define PF_INET6 AF_INET6
[178] Fix | Delete
#endif
[179] Fix | Delete
[180] Fix | Delete
#ifndef INADDR_ANY
[181] Fix | Delete
/*% inaddr any */
[182] Fix | Delete
#define INADDR_ANY 0x00000000UL
[183] Fix | Delete
#endif
[184] Fix | Delete
[185] Fix | Delete
#ifndef INADDR_LOOPBACK
[186] Fix | Delete
/*% inaddr loopback */
[187] Fix | Delete
#define INADDR_LOOPBACK 0x7f000001UL
[188] Fix | Delete
#endif
[189] Fix | Delete
[190] Fix | Delete
#ifndef ISC_PLATFORM_HAVEIN6PKTINFO
[191] Fix | Delete
/*% IPv6 packet info */
[192] Fix | Delete
struct in6_pktinfo {
[193] Fix | Delete
struct in6_addr ipi6_addr; /*%< src/dst IPv6 address */
[194] Fix | Delete
unsigned int ipi6_ifindex; /*%< send/recv interface index */
[195] Fix | Delete
};
[196] Fix | Delete
#endif
[197] Fix | Delete
[198] Fix | Delete
[199] Fix | Delete
#ifndef ISC_PLATFORM_HAVESOCKADDRSTORAGE
[200] Fix | Delete
#define _SS_MAXSIZE 128
[201] Fix | Delete
#define _SS_ALIGNSIZE (sizeof (uint64_t))
[202] Fix | Delete
#ifdef ISC_PLATFORM_HAVESALEN
[203] Fix | Delete
#define _SS_PAD1SIZE (_SS_ALIGNSIZE - (2 * sizeof(uint8_t)))
[204] Fix | Delete
#define _SS_PAD2SIZE (_SS_MAXSIZE - (_SS_ALIGNSIZE + _SS_PAD1SIZE \
[205] Fix | Delete
+ 2 * sizeof(uint8_t)))
[206] Fix | Delete
#else
[207] Fix | Delete
#define _SS_PAD1SIZE (_SS_ALIGNSIZE - sizeof(uint16_t))
[208] Fix | Delete
#define _SS_PAD2SIZE (_SS_MAXSIZE - (_SS_ALIGNSIZE + _SS_PAD1SIZE \
[209] Fix | Delete
+ sizeof(uint16_t)))
[210] Fix | Delete
#endif
[211] Fix | Delete
[212] Fix | Delete
struct sockaddr_storage {
[213] Fix | Delete
#ifdef ISC_PLATFORM_HAVESALEN
[214] Fix | Delete
uint8_t ss_len;
[215] Fix | Delete
uint8_t ss_family;
[216] Fix | Delete
#else
[217] Fix | Delete
uint16_t ss_family;
[218] Fix | Delete
#endif
[219] Fix | Delete
char __ss_pad1[_SS_PAD1SIZE];
[220] Fix | Delete
uint64_t __ss_align; /* field to force desired structure */
[221] Fix | Delete
char __ss_pad2[_SS_PAD2SIZE];
[222] Fix | Delete
};
[223] Fix | Delete
#endif
[224] Fix | Delete
[225] Fix | Delete
#if defined(ISC_PLATFORM_HAVEIPV6) && defined(ISC_PLATFORM_NEEDIN6ADDRANY)
[226] Fix | Delete
extern const struct in6_addr isc_net_in6addrany;
[227] Fix | Delete
/*%
[228] Fix | Delete
* Cope with a missing in6addr_any and in6addr_loopback.
[229] Fix | Delete
*/
[230] Fix | Delete
#define in6addr_any isc_net_in6addrany
[231] Fix | Delete
#endif
[232] Fix | Delete
[233] Fix | Delete
#if defined(ISC_PLATFORM_HAVEIPV6) && defined(ISC_PLATFORM_NEEDIN6ADDRLOOPBACK)
[234] Fix | Delete
extern const struct in6_addr isc_net_in6addrloop;
[235] Fix | Delete
#define in6addr_loopback isc_net_in6addrloop
[236] Fix | Delete
#endif
[237] Fix | Delete
[238] Fix | Delete
#ifdef ISC_PLATFORM_FIXIN6ISADDR
[239] Fix | Delete
#undef IN6_IS_ADDR_GEOGRAPHIC
[240] Fix | Delete
/*!
[241] Fix | Delete
* \brief
[242] Fix | Delete
* Fix UnixWare 7.1.1's broken IN6_IS_ADDR_* definitions.
[243] Fix | Delete
*/
[244] Fix | Delete
#define IN6_IS_ADDR_GEOGRAPHIC(a) (((a)->S6_un.S6_l[0] & 0xE0) == 0x80)
[245] Fix | Delete
#undef IN6_IS_ADDR_IPX
[246] Fix | Delete
#define IN6_IS_ADDR_IPX(a) (((a)->S6_un.S6_l[0] & 0xFE) == 0x04)
[247] Fix | Delete
#undef IN6_IS_ADDR_LINKLOCAL
[248] Fix | Delete
#define IN6_IS_ADDR_LINKLOCAL(a) (((a)->S6_un.S6_l[0] & 0xC0FF) == 0x80FE)
[249] Fix | Delete
#undef IN6_IS_ADDR_MULTICAST
[250] Fix | Delete
#define IN6_IS_ADDR_MULTICAST(a) (((a)->S6_un.S6_l[0] & 0xFF) == 0xFF)
[251] Fix | Delete
#undef IN6_IS_ADDR_NSAP
[252] Fix | Delete
#define IN6_IS_ADDR_NSAP(a) (((a)->S6_un.S6_l[0] & 0xFE) == 0x02)
[253] Fix | Delete
#undef IN6_IS_ADDR_PROVIDER
[254] Fix | Delete
#define IN6_IS_ADDR_PROVIDER(a) (((a)->S6_un.S6_l[0] & 0xE0) == 0x40)
[255] Fix | Delete
#undef IN6_IS_ADDR_SITELOCAL
[256] Fix | Delete
#define IN6_IS_ADDR_SITELOCAL(a) (((a)->S6_un.S6_l[0] & 0xC0FF) == 0xC0FE)
[257] Fix | Delete
#endif /* ISC_PLATFORM_FIXIN6ISADDR */
[258] Fix | Delete
[259] Fix | Delete
#ifdef ISC_PLATFORM_NEEDPORTT
[260] Fix | Delete
/*%
[261] Fix | Delete
* Ensure type in_port_t is defined.
[262] Fix | Delete
*/
[263] Fix | Delete
typedef uint16_t in_port_t;
[264] Fix | Delete
#endif
[265] Fix | Delete
[266] Fix | Delete
#ifndef MSG_TRUNC
[267] Fix | Delete
/*%
[268] Fix | Delete
* If this system does not have MSG_TRUNC (as returned from recvmsg())
[269] Fix | Delete
* ISC_PLATFORM_RECVOVERFLOW will be defined. This will enable the MSG_TRUNC
[270] Fix | Delete
* faking code in socket.c.
[271] Fix | Delete
*/
[272] Fix | Delete
#define ISC_PLATFORM_RECVOVERFLOW
[273] Fix | Delete
#endif
[274] Fix | Delete
[275] Fix | Delete
/*% IP address. */
[276] Fix | Delete
#define ISC__IPADDR(x) ((uint32_t)htonl((uint32_t)(x)))
[277] Fix | Delete
[278] Fix | Delete
/*% Is IP address multicast? */
[279] Fix | Delete
#define ISC_IPADDR_ISMULTICAST(i) \
[280] Fix | Delete
(((uint32_t)(i) & ISC__IPADDR(0xf0000000)) \
[281] Fix | Delete
== ISC__IPADDR(0xe0000000))
[282] Fix | Delete
[283] Fix | Delete
#define ISC_IPADDR_ISEXPERIMENTAL(i) \
[284] Fix | Delete
(((uint32_t)(i) & ISC__IPADDR(0xf0000000)) \
[285] Fix | Delete
== ISC__IPADDR(0xf0000000))
[286] Fix | Delete
[287] Fix | Delete
/***
[288] Fix | Delete
*** Functions.
[289] Fix | Delete
***/
[290] Fix | Delete
[291] Fix | Delete
ISC_LANG_BEGINDECLS
[292] Fix | Delete
[293] Fix | Delete
isc_result_t
[294] Fix | Delete
isc_net_probeipv4(void);
[295] Fix | Delete
/*%<
[296] Fix | Delete
* Check if the system's kernel supports IPv4.
[297] Fix | Delete
*
[298] Fix | Delete
* Returns:
[299] Fix | Delete
*
[300] Fix | Delete
*\li #ISC_R_SUCCESS IPv4 is supported.
[301] Fix | Delete
*\li #ISC_R_NOTFOUND IPv4 is not supported.
[302] Fix | Delete
*\li #ISC_R_DISABLED IPv4 is disabled.
[303] Fix | Delete
*\li #ISC_R_UNEXPECTED
[304] Fix | Delete
*/
[305] Fix | Delete
[306] Fix | Delete
isc_result_t
[307] Fix | Delete
isc_net_probeipv6(void);
[308] Fix | Delete
/*%<
[309] Fix | Delete
* Check if the system's kernel supports IPv6.
[310] Fix | Delete
*
[311] Fix | Delete
* Returns:
[312] Fix | Delete
*
[313] Fix | Delete
*\li #ISC_R_SUCCESS IPv6 is supported.
[314] Fix | Delete
*\li #ISC_R_NOTFOUND IPv6 is not supported.
[315] Fix | Delete
*\li #ISC_R_DISABLED IPv6 is disabled.
[316] Fix | Delete
*\li #ISC_R_UNEXPECTED
[317] Fix | Delete
*/
[318] Fix | Delete
[319] Fix | Delete
isc_result_t
[320] Fix | Delete
isc_net_probe_ipv6only(void);
[321] Fix | Delete
/*%<
[322] Fix | Delete
* Check if the system's kernel supports the IPV6_V6ONLY socket option.
[323] Fix | Delete
*
[324] Fix | Delete
* Returns:
[325] Fix | Delete
*
[326] Fix | Delete
*\li #ISC_R_SUCCESS the option is supported for both TCP and UDP.
[327] Fix | Delete
*\li #ISC_R_NOTFOUND IPv6 itself or the option is not supported.
[328] Fix | Delete
*\li #ISC_R_UNEXPECTED
[329] Fix | Delete
*/
[330] Fix | Delete
[331] Fix | Delete
isc_result_t
[332] Fix | Delete
isc_net_probe_ipv6pktinfo(void);
[333] Fix | Delete
/*
[334] Fix | Delete
* Check if the system's kernel supports the IPV6_(RECV)PKTINFO socket option
[335] Fix | Delete
* for UDP sockets.
[336] Fix | Delete
*
[337] Fix | Delete
* Returns:
[338] Fix | Delete
*
[339] Fix | Delete
* \li #ISC_R_SUCCESS the option is supported.
[340] Fix | Delete
* \li #ISC_R_NOTFOUND IPv6 itself or the option is not supported.
[341] Fix | Delete
* \li #ISC_R_UNEXPECTED
[342] Fix | Delete
*/
[343] Fix | Delete
[344] Fix | Delete
void
[345] Fix | Delete
isc_net_disableipv4(void);
[346] Fix | Delete
[347] Fix | Delete
void
[348] Fix | Delete
isc_net_disableipv6(void);
[349] Fix | Delete
[350] Fix | Delete
void
[351] Fix | Delete
isc_net_enableipv4(void);
[352] Fix | Delete
[353] Fix | Delete
void
[354] Fix | Delete
isc_net_enableipv6(void);
[355] Fix | Delete
[356] Fix | Delete
isc_result_t
[357] Fix | Delete
isc_net_probeunix(void);
[358] Fix | Delete
/*
[359] Fix | Delete
* Returns whether UNIX domain sockets are supported.
[360] Fix | Delete
*/
[361] Fix | Delete
[362] Fix | Delete
#define ISC_NET_DSCPRECVV4 0x01 /* Can receive sent DSCP value IPv4 */
[363] Fix | Delete
#define ISC_NET_DSCPRECVV6 0x02 /* Can receive sent DSCP value IPv6 */
[364] Fix | Delete
#define ISC_NET_DSCPSETV4 0x04 /* Can set DSCP on socket IPv4 */
[365] Fix | Delete
#define ISC_NET_DSCPSETV6 0x08 /* Can set DSCP on socket IPv6 */
[366] Fix | Delete
#define ISC_NET_DSCPPKTV4 0x10 /* Can set DSCP on per packet IPv4 */
[367] Fix | Delete
#define ISC_NET_DSCPPKTV6 0x20 /* Can set DSCP on per packet IPv6 */
[368] Fix | Delete
#define ISC_NET_DSCPALL 0x3f /* All valid flags */
[369] Fix | Delete
[370] Fix | Delete
unsigned int
[371] Fix | Delete
isc_net_probedscp(void);
[372] Fix | Delete
/*%<
[373] Fix | Delete
* Probe the level of DSCP support.
[374] Fix | Delete
*/
[375] Fix | Delete
[376] Fix | Delete
[377] Fix | Delete
isc_result_t
[378] Fix | Delete
isc_net_getudpportrange(int af, in_port_t *low, in_port_t *high);
[379] Fix | Delete
/*%<
[380] Fix | Delete
* Returns system's default range of ephemeral UDP ports, if defined.
[381] Fix | Delete
* If the range is not available or unknown, ISC_NET_PORTRANGELOW and
[382] Fix | Delete
* ISC_NET_PORTRANGEHIGH will be returned.
[383] Fix | Delete
*
[384] Fix | Delete
* Requires:
[385] Fix | Delete
*
[386] Fix | Delete
*\li 'low' and 'high' must be non NULL.
[387] Fix | Delete
*
[388] Fix | Delete
* Returns:
[389] Fix | Delete
*
[390] Fix | Delete
*\li *low and *high will be the ports specifying the low and high ends of
[391] Fix | Delete
* the range.
[392] Fix | Delete
*/
[393] Fix | Delete
[394] Fix | Delete
#ifdef ISC_PLATFORM_NEEDNTOP
[395] Fix | Delete
const char *
[396] Fix | Delete
isc_net_ntop(int af, const void *src, char *dst, size_t size);
[397] Fix | Delete
#undef inet_ntop
[398] Fix | Delete
#define inet_ntop isc_net_ntop
[399] Fix | Delete
#endif
[400] Fix | Delete
[401] Fix | Delete
#ifdef ISC_PLATFORM_NEEDPTON
[402] Fix | Delete
int
[403] Fix | Delete
isc_net_pton(int af, const char *src, void *dst);
[404] Fix | Delete
#undef inet_pton
[405] Fix | Delete
#define inet_pton isc_net_pton
[406] Fix | Delete
#endif
[407] Fix | Delete
[408] Fix | Delete
int
[409] Fix | Delete
isc_net_aton(const char *cp, struct in_addr *addr);
[410] Fix | Delete
#undef inet_aton
[411] Fix | Delete
#define inet_aton isc_net_aton
[412] Fix | Delete
[413] Fix | Delete
ISC_LANG_ENDDECLS
[414] Fix | Delete
[415] Fix | Delete
#endif /* ISC_NET_H */
[416] Fix | Delete
[417] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function