wez Fri Feb 28 16:03:37 2003 EDT
Modified files:
/php4/ext/ftp ftp.c ftp.h
/php4/ext/standard streamsfuncs.c
/php4/main network.c php_network.h
/php4/main/streams xp_socket.c
/php4/win32 select.c
Log:
Tidy up stupid signed/unsigned issues with win32 by introducing a php_socket_t
typedef.
Index: php4/ext/ftp/ftp.c
diff -u php4/ext/ftp/ftp.c:1.82 php4/ext/ftp/ftp.c:1.83
--- php4/ext/ftp/ftp.c:1.82 Fri Feb 28 14:53:19 2003
+++ php4/ext/ftp/ftp.c Fri Feb 28 16:03:35 2003
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: ftp.c,v 1.82 2003/02/28 19:53:19 wez Exp $ */
+/* $Id: ftp.c,v 1.83 2003/02/28 21:03:35 wez Exp $ */
#include "php.h"
@@ -86,9 +86,9 @@
const char *args);
/* wrapper around send/recv to handle timeouts */
-static int my_send(ftpbuf_t *ftp, int s, void *buf, size_t len);
-static int my_recv(ftpbuf_t *ftp, int s, void *buf, size_t len);
-static int my_accept(ftpbuf_t *ftp, int s, struct sockaddr *addr,
+static int my_send(ftpbuf_t *ftp, php_socket_t s, void *buf, size_t len);
+static int my_recv(ftpbuf_t *ftp, php_socket_t s, void *buf, size_t len);
+static int my_accept(ftpbuf_t *ftp, php_socket_t s, struct sockaddr *addr,
int *addrlen);
/* reads a line the socket , returns true on success, false on error */
@@ -1173,7 +1173,7 @@
/* {{{ my_send
*/
int
-my_send(ftpbuf_t *ftp, int s, void *buf, size_t len)
+my_send(ftpbuf_t *ftp, php_socket_t s, void *buf, size_t len)
{
fd_set write_set;
struct timeval tv;
@@ -1225,7 +1225,7 @@
/* {{{ my_recv
*/
int
-my_recv(ftpbuf_t *ftp, int s, void *buf, size_t len)
+my_recv(ftpbuf_t *ftp, php_socket_t s, void *buf, size_t len)
{
fd_set read_set;
struct timeval tv;
@@ -1265,7 +1265,7 @@
/* {{{ data_available
*/
int
-data_available(ftpbuf_t *ftp, int s)
+data_available(ftpbuf_t *ftp, php_socket_t s)
{
fd_set read_set;
struct timeval tv;
@@ -1292,7 +1292,7 @@
/* {{{ data_writeable
*/
int
-data_writeable(ftpbuf_t *ftp, int s)
+data_writeable(ftpbuf_t *ftp, php_socket_t s)
{
fd_set write_set;
struct timeval tv;
@@ -1320,7 +1320,7 @@
/* {{{ my_accept
*/
int
-my_accept(ftpbuf_t *ftp, int s, struct sockaddr *addr, int *addrlen)
+my_accept(ftpbuf_t *ftp, php_socket_t s, struct sockaddr *addr, int *addrlen)
{
fd_set accept_set;
struct timeval tv;
Index: php4/ext/ftp/ftp.h
diff -u php4/ext/ftp/ftp.h:1.36 php4/ext/ftp/ftp.h:1.37
--- php4/ext/ftp/ftp.h:1.36 Thu Jan 30 23:54:57 2003
+++ php4/ext/ftp/ftp.h Fri Feb 28 16:03:35 2003
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: ftp.h,v 1.36 2003/01/31 04:54:57 pollita Exp $ */
+/* $Id: ftp.h,v 1.37 2003/02/28 21:03:35 wez Exp $ */
#ifndef FTP_H
#define FTP_H
@@ -46,7 +46,7 @@
typedef struct databuf
{
int listener; /* listener socket */
- int fd; /* data connection */
+ php_socket_t fd; /* data connection */
ftptype_t type; /* transfer type */
char buf[FTP_BUFSIZE]; /* data buffer */
#if HAVE_OPENSSL_EXT
@@ -57,7 +57,7 @@
typedef struct ftpbuf
{
- int fd; /* control connection */
+ php_socket_t fd; /* control connection */
php_sockaddr_storage localaddr; /* local address */
int resp; /* last response code */
char inbuf[FTP_BUFSIZE]; /* last response text */
Index: php4/ext/standard/streamsfuncs.c
diff -u php4/ext/standard/streamsfuncs.c:1.2 php4/ext/standard/streamsfuncs.c:1.3
--- php4/ext/standard/streamsfuncs.c:1.2 Fri Feb 28 14:53:20 2003
+++ php4/ext/standard/streamsfuncs.c Fri Feb 28 16:03:35 2003
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: streamsfuncs.c,v 1.2 2003/02/28 19:53:20 wez Exp $ */
+/* $Id: streamsfuncs.c,v 1.3 2003/02/28 21:03:35 wez Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -28,10 +28,13 @@
#include "ext/standard/basic_functions.h"
#include "php_ini.h"
#include "streamsfuncs.h"
-
+#include "php_network.h"
+#include "php_string.h"
#ifndef PHP_WIN32
#define php_select(m, r, w, e, t) select(m, r, w, e, t)
+#else
+#include "win32/select.h"
#endif
static php_stream_context *decode_context_param(zval *contextresource TSRMLS_DC);
@@ -342,11 +345,11 @@
/* }}} */
/* {{{ stream_select related functions */
-static int stream_array_to_fd_set(zval *stream_array, fd_set *fds, int *max_fd
TSRMLS_DC)
+static int stream_array_to_fd_set(zval *stream_array, fd_set *fds, php_socket_t
*max_fd TSRMLS_DC)
{
zval **elem;
php_stream *stream;
- int this_fd;
+ php_socket_t this_fd;
if (Z_TYPE_P(stream_array) != IS_ARRAY) {
return 0;
Index: php4/main/network.c
diff -u php4/main/network.c:1.94 php4/main/network.c:1.95
--- php4/main/network.c:1.94 Fri Feb 28 14:53:21 2003
+++ php4/main/network.c Fri Feb 28 16:03:36 2003
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: network.c,v 1.94 2003/02/28 19:53:21 wez Exp $ */
+/* $Id: network.c,v 1.95 2003/02/28 21:03:36 wez Exp $ */
/*#define DEBUG_MAIN_NETWORK 1*/
@@ -280,7 +280,7 @@
* enable non-blocking mode on the socket.
* */
/* {{{ php_network_connect_socket */
-PHPAPI int php_network_connect_socket(int sockfd,
+PHPAPI int php_network_connect_socket(php_socket_t sockfd,
const struct sockaddr *addr,
socklen_t addrlen,
int asynchronous,
@@ -341,7 +341,7 @@
BSD-derived systems set errno correctly
Solaris returns -1 from getsockopt in case of error
*/
- if (getsockopt(sockfd, SOL_SOCKET, SO_ERROR, &error, &len) < 0) {
+ if (getsockopt(sockfd, SOL_SOCKET, SO_ERROR, (char*)&error, &len) < 0)
{
ret = -1;
}
} else {
@@ -393,11 +393,12 @@
* Returns the bound socket, or -1 on failure.
* */
/* {{{ php_network_bind_socket_to_local_addr */
-int php_network_bind_socket_to_local_addr(const char *host, unsigned port,
+php_socket_t php_network_bind_socket_to_local_addr(const char *host, unsigned port,
int socktype, char **error_string, int *error_code
TSRMLS_DC)
{
- int num_addrs, sock, n, err = 0;
+ int num_addrs, n, err = 0;
+ php_socket_t sock;
struct sockaddr **sal, **psal, *sa;
socklen_t socklen;
@@ -442,7 +443,7 @@
#ifdef SO_REUSEADDR
{
int val = 1;
- setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &val,
sizeof(val));
+ setsockopt(sock, SOL_SOCKET, SO_REUSEADDR,
(char*)&val, sizeof(val));
}
#endif
@@ -543,7 +544,7 @@
}
}
-PHPAPI int php_network_get_peer_name(int sock,
+PHPAPI int php_network_get_peer_name(php_socket_t sock,
char **textaddr, long *textaddrlen,
struct sockaddr **addr,
socklen_t *addrlen
@@ -562,7 +563,7 @@
return -1;
}
-PHPAPI int php_network_get_sock_name(int sock,
+PHPAPI int php_network_get_sock_name(php_socket_t sock,
char **textaddr, long *textaddrlen,
struct sockaddr **addr,
socklen_t *addrlen
@@ -592,7 +593,7 @@
* */
/* {{{ php_network_accept_incoming */
-PHPAPI int php_network_accept_incoming(int srvsock,
+PHPAPI php_socket_t php_network_accept_incoming(php_socket_t srvsock,
char **textaddr, long *textaddrlen,
struct sockaddr **addr,
socklen_t *addrlen,
@@ -601,7 +602,7 @@
int *error_code
TSRMLS_DC)
{
- int clisock = -1;
+ php_socket_t clisock = -1;
fd_set rset;
int error, n;
php_sockaddr_storage sa;
@@ -651,12 +652,13 @@
* */
/* {{{ php_network_connect_socket_to_host */
-int php_network_connect_socket_to_host(const char *host, unsigned short port,
+php_socket_t php_network_connect_socket_to_host(const char *host, unsigned short port,
int socktype, int asynchronous, struct timeval *timeout, char
**error_string,
int *error_code
TSRMLS_DC)
{
- int num_addrs, sock, n, fatal = 0;
+ int num_addrs, n, fatal = 0;
+ php_socket_t sock;
struct sockaddr **sal, **psal, *sa;
struct timeval working_timeout;
socklen_t socklen;
@@ -865,7 +867,7 @@
/* }}} */
/* deprecated */
-PHPAPI php_stream *_php_stream_sock_open_from_socket(int socket, const char
*persistent_id STREAMS_DC TSRMLS_DC)
+PHPAPI php_stream *_php_stream_sock_open_from_socket(php_socket_t socket, const char
*persistent_id STREAMS_DC TSRMLS_DC)
{
php_stream *stream;
php_netstream_data_t *sock;
Index: php4/main/php_network.h
diff -u php4/main/php_network.h:1.42 php4/main/php_network.h:1.43
--- php4/main/php_network.h:1.42 Fri Feb 28 14:53:21 2003
+++ php4/main/php_network.h Fri Feb 28 16:03:36 2003
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_network.h,v 1.42 2003/02/28 19:53:21 wez Exp $ */
+/* $Id: php_network.h,v 1.43 2003/02/28 21:03:36 wez Exp $ */
#ifndef _PHP_NETWORK_H
#define _PHP_NETWORK_H
@@ -81,6 +81,12 @@
#endif
#ifdef PHP_WIN32
+typedef SOCKET php_socket_t;
+#else
+typedef int php_socket_t;
+#endif
+
+#ifdef PHP_WIN32
# define SOCK_ERR INVALID_SOCKET
# define SOCK_CONN_ERR SOCKET_ERROR
# define SOCK_RECV_ERR SOCKET_ERROR
@@ -106,12 +112,12 @@
} php_sockaddr_storage;
#endif
-PHPAPI int php_network_connect_socket_to_host(const char *host, unsigned short port,
+PHPAPI php_socket_t php_network_connect_socket_to_host(const char *host, unsigned
short port,
int socktype, int asynchronous, struct timeval *timeout, char
**error_string,
int *error_code
TSRMLS_DC);
-PHPAPI int php_network_connect_socket(int sockfd,
+PHPAPI int php_network_connect_socket(php_socket_t sockfd,
const struct sockaddr *addr,
socklen_t addrlen,
int asynchronous,
@@ -122,11 +128,11 @@
#define php_connect_nonb(sock, addr, addrlen, timeout) \
php_network_connect_socket((sock), (addr), (addrlen), 0, (timeout), NULL, NULL)
-PHPAPI int php_network_bind_socket_to_local_addr(const char *host, unsigned port,
+PHPAPI php_socket_t php_network_bind_socket_to_local_addr(const char *host, unsigned
port,
int socktype, char **error_string, int *error_code
TSRMLS_DC);
-PHPAPI int php_network_accept_incoming(int srvsock,
+PHPAPI php_socket_t php_network_accept_incoming(php_socket_t srvsock,
char **textaddr, long *textaddrlen,
struct sockaddr **addr,
socklen_t *addrlen,
@@ -135,13 +141,13 @@
int *error_code
TSRMLS_DC);
-PHPAPI int php_network_get_sock_name(int sock,
+PHPAPI int php_network_get_sock_name(php_socket_t sock,
char **textaddr, long *textaddrlen,
struct sockaddr **addr,
socklen_t *addrlen
TSRMLS_DC);
-PHPAPI int php_network_get_peer_name(int sock,
+PHPAPI int php_network_get_peer_name(php_socket_t sock,
char **textaddr, long *textaddrlen,
struct sockaddr **addr,
socklen_t *addrlen
@@ -150,8 +156,9 @@
void php_any_addr(int family, php_sockaddr_storage *addr, unsigned short port);
int php_sockaddr_size(php_sockaddr_storage *addr);
+
struct _php_netstream_data_t {
- int socket;
+ php_socket_t socket;
char is_blocked;
struct timeval timeout;
char timeout_event;
@@ -162,7 +169,7 @@
extern php_stream_ops php_stream_generic_socket_ops;
#define PHP_STREAM_IS_SOCKET (&php_stream_socket_ops)
-PHPAPI php_stream *_php_stream_sock_open_from_socket(int socket, const char
*persistent_id STREAMS_DC TSRMLS_DC );
+PHPAPI php_stream *_php_stream_sock_open_from_socket(php_socket_t socket, const char
*persistent_id STREAMS_DC TSRMLS_DC );
/* open a connection to a host using php_hostconnect and return a stream */
PHPAPI php_stream *_php_stream_sock_open_host(const char *host, unsigned short port,
int socktype, struct timeval *timeout, const char *persistent_id
STREAMS_DC TSRMLS_DC);
Index: php4/main/streams/xp_socket.c
diff -u php4/main/streams/xp_socket.c:1.4 php4/main/streams/xp_socket.c:1.5
--- php4/main/streams/xp_socket.c:1.4 Fri Feb 28 14:53:21 2003
+++ php4/main/streams/xp_socket.c Fri Feb 28 16:03:36 2003
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: xp_socket.c,v 1.4 2003/02/28 19:53:21 wez Exp $ */
+/* $Id: xp_socket.c,v 1.5 2003/02/28 21:03:36 wez Exp $ */
#include "php.h"
#include "ext/standard/file.h"
@@ -422,7 +422,8 @@
php_stream_xport_param *xparam TSRMLS_DC)
{
char *host = NULL;
- int portno, err;
+ int portno;
+ int err;
int ret;
#ifdef AF_UNIX
@@ -441,7 +442,7 @@
parse_unix_address(xparam, &unix_addr TSRMLS_CC);
ret = php_network_connect_socket(sock->socket,
- (const struct sockaddr *)&unix_addr, sizeof(unix_addr),
+ (const struct sockaddr *)&unix_addr,
(socklen_t)sizeof(unix_addr),
xparam->op == STREAM_XPORT_OP_CONNECT_ASYNC,
xparam->inputs.timeout,
xparam->want_errortext ? &xparam->outputs.error_text :
NULL,
&err);
@@ -465,7 +466,8 @@
sock->socket = php_network_connect_socket_to_host(host, portno,
stream->ops == &php_stream_udp_socket_ops ? SOCK_DGRAM :
SOCK_STREAM,
xparam->op == STREAM_XPORT_OP_CONNECT_ASYNC,
- xparam->inputs.timeout, xparam->want_errortext ?
&xparam->outputs.error_text : NULL,
+ xparam->inputs.timeout,
+ xparam->want_errortext ? &xparam->outputs.error_text : NULL,
&err
TSRMLS_CC);
Index: php4/win32/select.c
diff -u php4/win32/select.c:1.2 php4/win32/select.c:1.3
--- php4/win32/select.c:1.2 Thu Feb 27 17:43:51 2003
+++ php4/win32/select.c Fri Feb 28 16:03:36 2003
@@ -17,20 +17,22 @@
*/
#include "php.h"
+#include "php_network.h"
-/* $Id: select.c,v 1.2 2003/02/27 22:43:51 wez Exp $ */
+/* $Id: select.c,v 1.3 2003/02/28 21:03:36 wez Exp $ */
/* Win32 select() will only work with sockets, so we roll our own implementation that
will
* get the OS file handle from regular fd's and sockets and then use
WaitForMultipleObjects().
* This implementation is not as feature-full as posix select, but it works for our
purposes
*/
-PHPAPI int php_select(int max_fd, fd_set *rfds, fd_set *wfds, fd_set *efds, struct
timeval *tv)
+PHPAPI int php_select(php_socket_t max_fd, fd_set *rfds, fd_set *wfds, fd_set *efds,
struct timeval *tv)
{
HANDLE *handles;
DWORD waitret;
DWORD ms_total;
- int i, f, s, fd_count = 0, sock_count = 0;
+ int f, s, fd_count = 0, sock_count = 0;
int retval;
+ php_socket_t i;
fd_set ard, awr, aex; /* active fd sets */
for (i = 0; i < max_fd; i++) {
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php