⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 network.h

📁 samba最新软件
💻 H
字号:
#ifndef _system_network_h#define _system_network_h/*    Unix SMB/CIFS implementation.   networking system include wrappers   Copyright (C) Andrew Tridgell 2004   Copyright (C) Jelmer Vernooij 2007        ** NOTE! The following LGPL license applies to the replace     ** library. This does NOT imply that all of Samba is released     ** under the LGPL      This library is free software; you can redistribute it and/or   modify it under the terms of the GNU Lesser General Public   License as published by the Free Software Foundation; either   version 3 of the License, or (at your option) any later version.   This library is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   Lesser General Public License for more details.   You should have received a copy of the GNU Lesser General Public   License along with this library; if not, see <http://www.gnu.org/licenses/>.*/#ifndef LIBREPLACE_NETWORK_CHECKS#error "AC_LIBREPLACE_NETWORK_CHECKS missing in configure"#endif#ifdef HAVE_SYS_SOCKET_H#include <sys/socket.h>#endif#ifdef HAVE_UNIXSOCKET#include <sys/un.h>#endif#ifdef HAVE_NETINET_IN_H#include <netinet/in.h>#endif#ifdef HAVE_ARPA_INET_H#include <arpa/inet.h>#endif#ifdef HAVE_NETDB_H#include <netdb.h>#endif#ifdef HAVE_NETINET_TCP_H#include <netinet/tcp.h>#endif/* * The next three defines are needed to access the IPTOS_* options * on some systems. */#ifdef HAVE_NETINET_IN_SYSTM_H#include <netinet/in_systm.h>#endif#ifdef HAVE_NETINET_IN_IP_H#include <netinet/in_ip.h>#endif#ifdef HAVE_NETINET_IP_H#include <netinet/ip.h>#endif#ifdef HAVE_NET_IF_H#include <net/if.h>#endif#ifdef HAVE_UNISTD_H#include <unistd.h>#endif#ifdef HAVE_SYS_IOCTL_H#include <sys/ioctl.h>#endif#ifdef HAVE_STROPTS_H#include <stropts.h>#endif#ifndef HAVE_SOCKLEN_T#define HAVE_SOCKLEN_Ttypedef int socklen_t;#endif#if !defined (HAVE_INET_NTOA) || defined(REPLACE_INET_NTOA)/* define is in "replace.h" */char *rep_inet_ntoa(struct in_addr ip);#endif#ifndef HAVE_INET_PTON/* define is in "replace.h" */int rep_inet_pton(int af, const char *src, void *dst);#endif#ifndef HAVE_INET_NTOP/* define is in "replace.h" */const char *rep_inet_ntop(int af, const void *src, char *dst, socklen_t size);#endif#ifndef HAVE_INET_ATON/* define is in "replace.h" */int rep_inet_aton(const char *src, struct in_addr *dst);#endif#ifndef HAVE_CONNECT/* define is in "replace.h" */int rep_connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);#endif#ifndef HAVE_GETHOSTBYNAME/* define is in "replace.h" */struct hostent *rep_gethostbyname(const char *name);#endif#ifdef HAVE_IFADDRS_H#include <ifaddrs.h>#endif#ifndef HAVE_STRUCT_IFADDRSstruct ifaddrs {	struct ifaddrs   *ifa_next;         /* Pointer to next struct */	char             *ifa_name;         /* Interface name */	unsigned int     ifa_flags;         /* Interface flags */	struct sockaddr  *ifa_addr;         /* Interface address */	struct sockaddr  *ifa_netmask;      /* Interface netmask */#undef ifa_dstaddr	struct sockaddr  *ifa_dstaddr;      /* P2P interface destination */	void             *ifa_data;         /* Address specific data */};#endif#ifndef HAVE_GETIFADDRSint rep_getifaddrs(struct ifaddrs **);#endif#ifndef HAVE_FREEIFADDRSvoid rep_freeifaddrs(struct ifaddrs *);#endif#ifndef HAVE_SOCKETPAIR/* define is in "replace.h" */int rep_socketpair(int d, int type, int protocol, int sv[2]);#endif/* * Some systems have getaddrinfo but not the * defines needed to use it. *//* Various macros that ought to be in <netdb.h>, but might not be */#ifndef EAI_FAIL#define EAI_BADFLAGS	(-1)#define EAI_NONAME	(-2)#define EAI_AGAIN	(-3)#define EAI_FAIL	(-4)#define EAI_FAMILY	(-6)#define EAI_SOCKTYPE	(-7)#define EAI_SERVICE	(-8)#define EAI_MEMORY	(-10)#define EAI_SYSTEM	(-11)#endif   /* !EAI_FAIL */#ifndef AI_PASSIVE#define AI_PASSIVE	0x0001#endif#ifndef AI_CANONNAME#define AI_CANONNAME	0x0002#endif#ifndef AI_NUMERICHOST/* * some platforms don't support AI_NUMERICHOST; define as zero if using * the system version of getaddrinfo... */#if defined(HAVE_STRUCT_ADDRINFO) && defined(HAVE_GETADDRINFO)#define AI_NUMERICHOST	0#else#define AI_NUMERICHOST	0x0004#endif#endif#ifndef AI_ADDRCONFIG/* * logic copied from AI_NUMERICHOST */#if defined(HAVE_STRUCT_ADDRINFO) && defined(HAVE_GETADDRINFO)#define AI_ADDRCONFIG	0#else#define AI_ADDRCONFIG	0x0020#endif#endif#ifndef AI_NUMERICSERV/* * logic copied from AI_NUMERICHOST */#if defined(HAVE_STRUCT_ADDRINFO) && defined(HAVE_GETADDRINFO)#define AI_NUMERICSERV	0#else#define AI_NUMERICSERV	0x0400#endif#endif#ifndef NI_NUMERICHOST#define NI_NUMERICHOST	1#endif#ifndef NI_NUMERICSERV#define NI_NUMERICSERV	2#endif#ifndef NI_NOFQDN#define NI_NOFQDN	4#endif#ifndef NI_NAMEREQD#define NI_NAMEREQD 	8#endif#ifndef NI_DGRAM#define NI_DGRAM	16#endif#ifndef NI_MAXHOST#define NI_MAXHOST	1025#endif#ifndef NI_MAXSERV#define NI_MAXSERV	32#endif/* * glibc on linux doesn't seem to have MSG_WAITALL * defined. I think the kernel has it though.. */#ifndef MSG_WAITALL#define MSG_WAITALL 0#endif#ifndef INADDR_LOOPBACK#define INADDR_LOOPBACK 0x7f000001#endif#ifndef INADDR_NONE#define INADDR_NONE 0xffffffff#endif#ifndef EAFNOSUPPORT#define EAFNOSUPPORT EINVAL#endif#ifndef INET_ADDRSTRLEN#define INET_ADDRSTRLEN 16#endif#ifndef INET6_ADDRSTRLEN#define INET6_ADDRSTRLEN 46#endif#ifndef HOST_NAME_MAX#define HOST_NAME_MAX 256#endif#ifndef HAVE_SA_FAMILY_T#define HAVE_SA_FAMILY_Ttypedef unsigned short int sa_family_t;#endif#ifndef HAVE_STRUCT_SOCKADDR_STORAGE#define HAVE_STRUCT_SOCKADDR_STORAGE#ifdef HAVE_STRUCT_SOCKADDR_IN6#define sockaddr_storage sockaddr_in6#define ss_family sin6_family#define HAVE_SS_FAMILY 1#else#define sockaddr_storage sockaddr_in#define ss_family sin_family#define HAVE_SS_FAMILY 1#endif#endif#ifndef HAVE_SS_FAMILY#ifdef HAVE___SS_FAMILY#define ss_family __ss_family#define HAVE_SS_FAMILY 1#endif#endif#ifndef HAVE_STRUCT_ADDRINFO#define HAVE_STRUCT_ADDRINFOstruct addrinfo {	int			ai_flags;	int			ai_family;	int			ai_socktype;	int			ai_protocol;	socklen_t		ai_addrlen;	struct sockaddr 	*ai_addr;	char			*ai_canonname;	struct addrinfo		*ai_next;};#endif   /* HAVE_STRUCT_ADDRINFO */#if !defined(HAVE_GETADDRINFO)#include "getaddrinfo.h"#endif/* Needed for some systems that don't define it (Solaris). */#ifndef ifr_netmask#define ifr_netmask ifr_addr#endif#ifdef SOCKET_WRAPPER#ifndef SOCKET_WRAPPER_NOT_REPLACE#define SOCKET_WRAPPER_REPLACE#endif#include "lib/socket_wrapper/socket_wrapper.h"#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -