From 6bc04c0858604db82a57c7e55953a7d1c743b1fc Mon Sep 17 00:00:00 2001 From: Sterling Hughes Date: Fri, 17 Aug 2001 06:53:26 +0000 Subject: [PATCH] Clean up the function for the Zend API (php3, early php4 relics removed). Use PF_INET, instead of AF_INET, if present. remove some code enclosed in #if 0 ... #endif that made no sense --- ext/standard/fsock.c | 59 +++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 31 deletions(-) diff --git a/ext/standard/fsock.c b/ext/standard/fsock.c index abb46a2774..6a6998a315 100644 --- a/ext/standard/fsock.c +++ b/ext/standard/fsock.c @@ -62,6 +62,14 @@ #include #endif +#ifndef PF_INET +#define PF_INET AF_INET +#endif + +#ifndef PF_UNIX +#define PF_UNIX AF_UNIX +#endif + #include #include @@ -168,25 +176,25 @@ static void php_fsockopen(INTERNAL_FUNCTION_PARAMETERS, int persistent) { switch(arg_count) { case 5: convert_to_double_ex(args[4]); - conv = (unsigned long) ((*args[4])->value.dval * 1000000.0); + conv = (unsigned long) (Z_DVAL_PP(args[4]) * 1000000.0); timeout.tv_sec = conv / 1000000; timeout.tv_usec = conv % 1000000; /* fall-through */ case 4: - zval_dtor(*args[3]); + zval_ptr_dtor(args[3]); ZVAL_STRING(*args[3], "", 1); /* fall-through */ case 3: - zval_dtor(*args[2]); + zval_ptr_dtor(args[2]); ZVAL_LONG(*args[2], 0); break; } convert_to_string_ex(args[0]); convert_to_long_ex(args[1]); - portno = (unsigned short) (*args[1])->value.lval; + portno = (unsigned short) Z_LVAL_PP(args[1]); - key = emalloc((*args[0])->value.str.len + 10); - sprintf(key, "%s:%d", (*args[0])->value.str.val, portno); + key = emalloc(Z_STRLEN_PP(args[0]) + 10); + sprintf(key, "%s:%d", Z_STRVAL_PP(args[0]), portno); if (persistent && zend_hash_find(&FG(ht_fsock_keys), key, strlen(key) + 1, (void *) &sockp) == SUCCESS) { @@ -204,8 +212,7 @@ static void php_fsockopen(INTERNAL_FUNCTION_PARAMETERS, int persistent) { udp = 1; } - socketd = socket(AF_INET, udp ? SOCK_DGRAM : SOCK_STREAM, 0); - + socketd = socket(PF_INET, udp ? SOCK_DGRAM : SOCK_STREAM, 0); if (socketd == SOCK_ERR) { CLOSE_SOCK(1); RETURN_FALSE; @@ -213,22 +220,22 @@ static void php_fsockopen(INTERNAL_FUNCTION_PARAMETERS, int persistent) { server.sin_family = AF_INET; - if(php_lookup_hostname(udp ? &(*args[0])->value.str.val[6] : (*args[0])->value.str.val, &server.sin_addr)) { + if(php_lookup_hostname(udp ? &Z_STRVAL_PP(args[0])[6] : Z_STRVAL_PP(args[0]), &server.sin_addr)) { CLOSE_SOCK(1); RETURN_FALSE; } server.sin_port = htons(portno); - if (php_connect_nonb(socketd, (struct sockaddr *)&server, sizeof(server), &timeout) == SOCK_CONN_ERR) { + if (php_connect_nonb(socketd, (struct sockaddr *) &server, sizeof(server), &timeout) == SOCK_CONN_ERR) { CLOSE_SOCK(1); if (arg_count>2) { - zval_dtor(*args[2]); + zval_ptr_dtor(args[2]); ZVAL_LONG(*args[2], errno); } if (arg_count>3) { - zval_dtor(*args[3]); + zval_ptr_dtor(args[3]); ZVAL_STRING(*args[3], strerror(errno), 1); } RETURN_FALSE; @@ -237,24 +244,24 @@ static void php_fsockopen(INTERNAL_FUNCTION_PARAMETERS, int persistent) { } else { /* Unix domain socket. s->strval is socket name. */ struct sockaddr_un unix_addr; - socketd = socket(AF_UNIX, SOCK_STREAM, 0); + socketd = socket(PF_UNIX, SOCK_STREAM, 0); if (socketd == SOCK_ERR) { CLOSE_SOCK(1); RETURN_FALSE; } - memset(&unix_addr, (char)0, sizeof(unix_addr)); + memset(&unix_addr, 0, sizeof(unix_addr)); unix_addr.sun_family = AF_UNIX; - strlcpy(unix_addr.sun_path, (*args[0])->value.str.val, sizeof(unix_addr.sun_path)); + strlcpy(unix_addr.sun_path, Z_STRVAL_PP(args[0]), sizeof(unix_addr.sun_path)); if (php_connect_nonb(socketd, (struct sockaddr *) &unix_addr, sizeof(unix_addr), &timeout) == SOCK_CONN_ERR) { CLOSE_SOCK(1); if (arg_count>2) { - zval_dtor(*args[2]); + zval_ptr_dtor(args[2]); ZVAL_LONG(*args[2], errno); } if (arg_count>3) { - zval_dtor(*args[3]); + zval_ptr_dtor(args[3]); ZVAL_STRING(*args[3], strerror(errno), 1); } RETURN_FALSE; @@ -262,26 +269,16 @@ static void php_fsockopen(INTERNAL_FUNCTION_PARAMETERS, int persistent) { #endif /* AF_UNIX */ } -#if 0 - if ((fp = fdopen (socketd, "r+")) == NULL){ - RETURN_LONG(-6); /* FIXME */ - } - -#ifdef HAVE_SETVBUF - if ((setvbuf(fp, NULL, _IONBF, 0)) != 0){ - RETURN_LONG(-7); /* FIXME */ - } -#endif -#endif - - *sock=socketd; + *sock = socketd; if (persistent) { zend_hash_update(&FG(ht_fsock_keys), key, strlen(key) + 1, sock, sizeof(*sock), NULL); zend_hash_update(&FG(ht_fsock_socks), (char *) sock, sizeof(*sock), key, strlen(key) + 1, NULL); } - if(key) efree(key); + + if(key) + efree(key); ZEND_REGISTER_RESOURCE(return_value, sock, php_file_le_socket()); } -- 2.50.1