/
usr
/
include
/
bind9
/
isc
/
/usr/include/bind9/isc
mkdir
upload
Name
Size
Mode
Actions
aes.h
1015
0644
edit
dl
rm
align.h
569
0644
edit
dl
rm
app.h
7139
0644
edit
dl
rm
assertions.h
2227
0644
edit
dl
rm
astack.h
1137
0644
edit
dl
rm
atomic.h
3082
0644
edit
dl
rm
backtrace.h
3894
0644
edit
dl
rm
barrier.h
1052
0644
edit
dl
rm
base32.h
4453
0644
edit
dl
rm
base64.h
2865
0644
edit
dl
rm
bind9.h
829
0644
edit
dl
rm
buffer.h
30625
0644
edit
dl
rm
bufferlist.h
1453
0644
edit
dl
rm
cmocka.h
1383
0644
edit
dl
rm
commandline.h
1711
0644
edit
dl
rm
condition.h
1914
0644
edit
dl
rm
counter.h
1922
0644
edit
dl
rm
crc64.h
998
0644
edit
dl
rm
deprecated.h
662
0644
edit
dl
rm
dir.h
1545
0644
edit
dl
rm
endian.h
4868
0644
edit
dl
rm
errno.h
659
0644
edit
dl
rm
errno2result.h
901
0644
edit
dl
rm
error.h
1434
0644
edit
dl
rm
event.h
3442
0644
edit
dl
rm
eventclass.h
1442
0644
edit
dl
rm
file.h
11669
0644
edit
dl
rm
formatcheck.h
940
0644
edit
dl
rm
fsaccess.h
7453
0644
edit
dl
rm
fuzz.h
593
0644
edit
dl
rm
hash.h
1649
0644
edit
dl
rm
heap.h
5263
0644
edit
dl
rm
hex.h
2805
0644
edit
dl
rm
hmac.h
3970
0644
edit
dl
rm
hp.h
4588
0644
edit
dl
rm
ht.h
4485
0644
edit
dl
rm
httpd.h
2291
0644
edit
dl
rm
interfaceiter.h
3141
0644
edit
dl
rm
iterated_hash.h
933
0644
edit
dl
rm
lang.h
686
0644
edit
dl
rm
lex.h
10004
0644
edit
dl
rm
lfsr.h
2955
0644
edit
dl
rm
lib.h
1155
0644
edit
dl
rm
likely.h
868
0644
edit
dl
rm
list.h
8085
0644
edit
dl
rm
log.h
26497
0644
edit
dl
rm
magic.h
999
0644
edit
dl
rm
managers.h
776
0644
edit
dl
rm
md.h
5760
0644
edit
dl
rm
mem.h
18086
0644
edit
dl
rm
meminfo.h
710
0644
edit
dl
rm
mutex.h
4178
0644
edit
dl
rm
mutexatomic.h
9790
0644
edit
dl
rm
mutexblock.h
1162
0644
edit
dl
rm
net.h
8564
0644
edit
dl
rm
netaddr.h
4786
0644
edit
dl
rm
netdb.h
860
0644
edit
dl
rm
netmgr.h
15732
0644
edit
dl
rm
netscope.h
966
0644
edit
dl
rm
nonce.h
743
0644
edit
dl
rm
offset.h
687
0644
edit
dl
rm
once.h
767
0644
edit
dl
rm
os.h
765
0644
edit
dl
rm
parseint.h
1541
0644
edit
dl
rm
platform.h
1859
0644
edit
dl
rm
pool.h
3491
0644
edit
dl
rm
portset.h
3294
0644
edit
dl
rm
print.h
680
0644
edit
dl
rm
queue.h
1337
0644
edit
dl
rm
quota.h
3560
0644
edit
dl
rm
radix.h
7019
0644
edit
dl
rm
random.h
1482
0644
edit
dl
rm
ratelimiter.h
3492
0644
edit
dl
rm
refcount.h
5103
0644
edit
dl
rm
regex.h
767
0644
edit
dl
rm
region.h
2234
0644
edit
dl
rm
resource.h
2860
0644
edit
dl
rm
result.h
5580
0644
edit
dl
rm
resultclass.h
1597
0644
edit
dl
rm
rwlock.h
2535
0644
edit
dl
rm
safe.h
1145
0644
edit
dl
rm
serial.h
1367
0644
edit
dl
rm
siphash.h
916
0644
edit
dl
rm
sockaddr.h
6275
0644
edit
dl
rm
socket.h
24120
0644
edit
dl
rm
stat.h
803
0644
edit
dl
rm
stats.h
6689
0644
edit
dl
rm
stdatomic.h
9116
0644
edit
dl
rm
stdio.h
1728
0644
edit
dl
rm
stdtime.h
1392
0644
edit
dl
rm
strerr.h
575
0644
edit
dl
rm
string.h
851
0644
edit
dl
rm
symtab.h
4325
0644
edit
dl
rm
syslog.h
843
0644
edit
dl
rm
task.h
17126
0644
edit
dl
rm
taskpool.h
3281
0644
edit
dl
rm
thread.h
1908
0644
edit
dl
rm
time.h
11106
0644
edit
dl
rm
timer.h
7961
0644
edit
dl
rm
tm.h
894
0644
edit
dl
rm
types.h
5854
0644
edit
dl
rm
url.h
2681
0644
edit
dl
rm
utf8.h
928
0644
edit
dl
rm
util.h
14291
0644
edit
dl
rm
version.h
499
0644
edit
dl
rm
Edit:
/usr/include/bind9/isc/net.h
(8564B)
/* * Copyright (C) Internet Systems Consortium, Inc. ("ISC") * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, you can obtain one at https://mozilla.org/MPL/2.0/. * * See the COPYRIGHT file distributed with this work for additional * information regarding copyright ownership. */ #ifndef ISC_NET_H #define ISC_NET_H 1 /***** ***** Module Info *****/ /*! \file * \brief * Basic Networking Types * * This module is responsible for defining the following basic networking * types: * *\li struct in_addr *\li struct in6_addr *\li struct in6_pktinfo *\li struct sockaddr *\li struct sockaddr_in *\li struct sockaddr_in6 *\li struct sockaddr_storage *\li in_port_t * * It ensures that the AF_ and PF_ macros are defined. * * It declares ntoh[sl]() and hton[sl](). * * It declares inet_ntop(), and inet_pton(). * * It ensures that #INADDR_LOOPBACK, #INADDR_ANY, #IN6ADDR_ANY_INIT, * IN6ADDR_V4MAPPED_INIT, in6addr_any, and in6addr_loopback are available. * * It ensures that IN_MULTICAST() is available to check for multicast * addresses. * * MP: *\li No impact. * * Reliability: *\li No anticipated impact. * * Resources: *\li N/A. * * Security: *\li No anticipated impact. * * Standards: *\li BSD Socket API *\li RFC2553 */ /*** *** Imports. ***/ #include <inttypes.h> #include <isc/lang.h> #include <isc/platform.h> #include <isc/types.h> #include <arpa/inet.h> /* Contractual promise. */ #include <net/if.h> #include <netinet/in.h> /* Contractual promise. */ #include <sys/socket.h> /* Contractual promise. */ #include <sys/types.h> #ifndef IN6ADDR_LOOPBACK_INIT #ifdef s6_addr /*% IPv6 address loopback init */ #define IN6ADDR_LOOPBACK_INIT \ { \ { \ { \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 \ } \ } \ } #else /* ifdef s6_addr */ #define IN6ADDR_LOOPBACK_INIT \ { \ { \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 \ } \ } #endif /* ifdef s6_addr */ #endif /* ifndef IN6ADDR_LOOPBACK_INIT */ #ifndef IN6ADDR_V4MAPPED_INIT #ifdef s6_addr /*% IPv6 v4mapped prefix init */ #define IN6ADDR_V4MAPPED_INIT \ { \ { \ { \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0, \ 0, 0, 0 \ } \ } \ } #else /* ifdef s6_addr */ #define IN6ADDR_V4MAPPED_INIT \ { \ { \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0, 0, 0, 0 \ } \ } #endif /* ifdef s6_addr */ #endif /* ifndef IN6ADDR_V4MAPPED_INIT */ #ifndef IN6_IS_ADDR_V4MAPPED /*% Is IPv6 address V4 mapped? */ #define IN6_IS_ADDR_V4MAPPED(x) \ (memcmp((x)->s6_addr, in6addr_any.s6_addr, 10) == 0 && \ (x)->s6_addr[10] == 0xff && (x)->s6_addr[11] == 0xff) #endif /* ifndef IN6_IS_ADDR_V4MAPPED */ #ifndef IN6_IS_ADDR_V4COMPAT /*% Is IPv6 address V4 compatible? */ #define IN6_IS_ADDR_V4COMPAT(x) \ (memcmp((x)->s6_addr, in6addr_any.s6_addr, 12) == 0 && \ ((x)->s6_addr[12] != 0 || (x)->s6_addr[13] != 0 || \ (x)->s6_addr[14] != 0 || \ ((x)->s6_addr[15] != 0 && (x)->s6_addr[15] != 1))) #endif /* ifndef IN6_IS_ADDR_V4COMPAT */ #ifndef IN6_IS_ADDR_MULTICAST /*% Is IPv6 address multicast? */ #define IN6_IS_ADDR_MULTICAST(a) ((a)->s6_addr[0] == 0xff) #endif /* ifndef IN6_IS_ADDR_MULTICAST */ #ifndef IN6_IS_ADDR_LINKLOCAL /*% Is IPv6 address linklocal? */ #define IN6_IS_ADDR_LINKLOCAL(a) \ (((a)->s6_addr[0] == 0xfe) && (((a)->s6_addr[1] & 0xc0) == 0x80)) #endif /* ifndef IN6_IS_ADDR_LINKLOCAL */ #ifndef IN6_IS_ADDR_SITELOCAL /*% is IPv6 address sitelocal? */ #define IN6_IS_ADDR_SITELOCAL(a) \ (((a)->s6_addr[0] == 0xfe) && (((a)->s6_addr[1] & 0xc0) == 0xc0)) #endif /* ifndef IN6_IS_ADDR_SITELOCAL */ #ifndef IN6_IS_ADDR_LOOPBACK /*% is IPv6 address loopback? */ #define IN6_IS_ADDR_LOOPBACK(x) \ (memcmp((x)->s6_addr, in6addr_loopback.s6_addr, 16) == 0) #endif /* ifndef IN6_IS_ADDR_LOOPBACK */ #ifndef AF_INET6 /*% IPv6 */ #define AF_INET6 99 #endif /* ifndef AF_INET6 */ #ifndef PF_INET6 /*% IPv6 */ #define PF_INET6 AF_INET6 #endif /* ifndef PF_INET6 */ #ifndef INADDR_ANY /*% inaddr any */ #define INADDR_ANY 0x00000000UL #endif /* ifndef INADDR_ANY */ #ifndef INADDR_LOOPBACK /*% inaddr loopback */ #define INADDR_LOOPBACK 0x7f000001UL #endif /* ifndef INADDR_LOOPBACK */ #ifndef MSG_TRUNC /*% * If this system does not have MSG_TRUNC (as returned from recvmsg()) * ISC_PLATFORM_RECVOVERFLOW will be defined. This will enable the MSG_TRUNC * faking code in socket.c. */ #define ISC_PLATFORM_RECVOVERFLOW #endif /* ifndef MSG_TRUNC */ /*% IP address. */ #define ISC__IPADDR(x) ((uint32_t)htonl((uint32_t)(x))) /*% Is IP address multicast? */ #define ISC_IPADDR_ISMULTICAST(i) \ (((uint32_t)(i)&ISC__IPADDR(0xf0000000)) == ISC__IPADDR(0xe0000000)) #define ISC_IPADDR_ISEXPERIMENTAL(i) \ (((uint32_t)(i)&ISC__IPADDR(0xf0000000)) == ISC__IPADDR(0xf0000000)) /*** *** Functions. ***/ ISC_LANG_BEGINDECLS isc_result_t isc_net_probeipv4(void); /*%< * Check if the system's kernel supports IPv4. * * Returns: * *\li #ISC_R_SUCCESS IPv4 is supported. *\li #ISC_R_NOTFOUND IPv4 is not supported. *\li #ISC_R_DISABLED IPv4 is disabled. *\li #ISC_R_UNEXPECTED */ isc_result_t isc_net_probeipv6(void); /*%< * Check if the system's kernel supports IPv6. * * Returns: * *\li #ISC_R_SUCCESS IPv6 is supported. *\li #ISC_R_NOTFOUND IPv6 is not supported. *\li #ISC_R_DISABLED IPv6 is disabled. *\li #ISC_R_UNEXPECTED */ isc_result_t isc_net_probe_ipv6only(void); /*%< * Check if the system's kernel supports the IPV6_V6ONLY socket option. * * Returns: * *\li #ISC_R_SUCCESS the option is supported for both TCP and UDP. *\li #ISC_R_NOTFOUND IPv6 itself or the option is not supported. *\li #ISC_R_UNEXPECTED */ isc_result_t isc_net_probe_ipv6pktinfo(void); /* * Check if the system's kernel supports the IPV6_(RECV)PKTINFO socket option * for UDP sockets. * * Returns: * * \li #ISC_R_SUCCESS the option is supported. * \li #ISC_R_NOTFOUND IPv6 itself or the option is not supported. * \li #ISC_R_UNEXPECTED */ void isc_net_disableipv4(void); void isc_net_disableipv6(void); void isc_net_enableipv4(void); void isc_net_enableipv6(void); isc_result_t isc_net_probeunix(void); /* * Returns whether UNIX domain sockets are supported. */ #define ISC_NET_DSCPRECVV4 0x01 /* Can receive sent DSCP value IPv4 */ #define ISC_NET_DSCPRECVV6 0x02 /* Can receive sent DSCP value IPv6 */ #define ISC_NET_DSCPSETV4 0x04 /* Can set DSCP on socket IPv4 */ #define ISC_NET_DSCPSETV6 0x08 /* Can set DSCP on socket IPv6 */ #define ISC_NET_DSCPPKTV4 0x10 /* Can set DSCP on per packet IPv4 */ #define ISC_NET_DSCPPKTV6 0x20 /* Can set DSCP on per packet IPv6 */ #define ISC_NET_DSCPALL 0x3f /* All valid flags */ unsigned int isc_net_probedscp(void); /*%< * Probe the level of DSCP support. */ isc_result_t isc_net_getudpportrange(int af, in_port_t *low, in_port_t *high); /*%< * Returns system's default range of ephemeral UDP ports, if defined. * If the range is not available or unknown, ISC_NET_PORTRANGELOW and * ISC_NET_PORTRANGEHIGH will be returned. * * Requires: * *\li 'low' and 'high' must be non NULL. * * Returns: * *\li *low and *high will be the ports specifying the low and high ends of * the range. */ ISC_LANG_ENDDECLS #endif /* ISC_NET_H */
Save
cmd:
run