cvs: php4 /main network.c

From: Date: Sun, 03 Sep 2000 09:30:41 +0000
Subject: cvs: php4 /main network.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-1511@lists.php.net to get a copy of this message
venaas Sun Sep 3 02:30:41 2000 EDT Added files: /php4/main network.c Log: Network related functions, only for internal use by other PHP code. Tries to hide the details of address families/protocols, and to reduce duplication of code. Index: php4/main/network.c +++ php4/main/network.c /* +----------------------------------------------------------------------+ | PHP version 4.0 | +----------------------------------------------------------------------+ | Copyright (c) 1997, 1998, 1999, 2000 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 2.02 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | | available at through the world-wide-web at | | http://www.php.net/license/2_02.txt. | | If you did not receive a copy of the PHP license and are unable to | | obtain it through the world-wide-web, please send a note to | | license@php.net so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Authors: Stig Venaas <venaas@uninett.no> | +----------------------------------------------------------------------+ */ /* $Id: network.c,v 1.1 2000/09/03 09:30:41 venaas Exp $ */ #ifdef PHP_WIN32 #include <windows.h> #include <winsock.h> #define O_RDONLY _O_RDONLY #include "win32/param.h" #else #include <sys/param.h> #endif #include <sys/types.h> #if HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif #ifndef PHP_WIN32 #include <netinet/in.h> #include <netdb.h> #include <arpa/inet.h> #endif #ifdef PHP_WIN32 #undef AF_UNIX #endif #if defined(AF_UNIX) #include <sys/un.h> #endif #ifdef PHP_WIN32 # define SOCK_ERR INVALID_SOCKET # define SOCK_CONN_ERR SOCKET_ERROR #else # define SOCK_ERR -1 # define SOCK_CONN_ERR -1 #endif /* Copied lookup_hostname, will be replaced */ /* * Converts a host name to an IP address. */ static int my_lookup_hostname(const char *addr, struct in_addr *in) { struct hostent *host_info; if (!inet_aton(addr, in)) { /* XXX NOT THREAD SAFE */ host_info = gethostbyname(addr); if (host_info == 0) { /* Error: unknown host */ return -1; } *in = *((struct in_addr *) host_info->h_addr); } return 0; } /* * Creates a socket of type socktype and connects to the given host and * port, returns the created socket on success, else returns -1. */ int hostconnect(char *host, int port, int socktype) { int s; struct sockaddr_in sa; if (my_lookup_hostname(host, &sa.sin_addr)) return -1; s = socket(PF_INET, socktype, 0); if (s == SOCK_ERR) return -1; sa.sin_family = AF_INET; sa.sin_port = htons(port); if (connect(s, (struct sockaddr *) &sa, sizeof(sa)) == SOCK_CONN_ERR) { close (s); return -1; } return s; } /* * Local variables: * tab-width: 8 * c-basic-offset: 8 * End: */

« previous php.cvs (#1511) next »