]> granicus.if.org Git - php/commitdiff
Misc sendto/recvfrom tweaks that have been pending here for a while...
authorWez Furlong <wez@php.net>
Sat, 31 Jul 2004 10:56:55 +0000 (10:56 +0000)
committerWez Furlong <wez@php.net>
Sat, 31 Jul 2004 10:56:55 +0000 (10:56 +0000)
main/streams/transports.c
main/streams/xp_socket.c

index 04a4eccfbd3baefdc02b65cadcaef22804e0c616..37e0757a5e5dafeb797e91507fcb4181f5f08904 100644 (file)
@@ -385,6 +385,7 @@ PHPAPI int php_stream_xport_recvfrom(php_stream *stream, char *buf, size_t bufle
        php_stream_xport_param param;
        int ret = 0;
        int recvd_len = 0;
+#if 0
        int oob;
 
        if (flags == 0 && addr == NULL) {
@@ -416,6 +417,7 @@ PHPAPI int php_stream_xport_recvfrom(php_stream *stream, char *buf, size_t bufle
                        return recvd_len;
                }
        }
+#endif
 
        /* otherwise, we are going to bypass the buffer */
        
@@ -453,9 +455,11 @@ PHPAPI int php_stream_xport_sendto(php_stream *stream, const char *buf, size_t b
        int ret = 0;
        int oob;
 
+#if 0
        if (flags == 0 && addr == NULL) {
                return php_stream_write(stream, buf, buflen);
        }
+#endif
        
        oob = (flags & STREAM_OOB) == STREAM_OOB;
 
index bcfa33b0255bdf913b3cb264cbe9d049827b7292..a669c7a2a0bc8f1138de6db678681e7fb53dfabd 100644 (file)
@@ -185,8 +185,11 @@ static int php_sockop_close(php_stream *stream, int close_handle TSRMLS_DC)
 
 static int php_sockop_flush(php_stream *stream TSRMLS_DC)
 {
+#if 0
        php_netstream_data_t *sock = (php_netstream_data_t*)stream->abstract;
        return fsync(sock->socket);
+#endif
+       return 0;
 }
 
 static int php_sockop_stat(php_stream *stream, php_stream_statbuf *ssb TSRMLS_DC)
@@ -195,6 +198,16 @@ static int php_sockop_stat(php_stream *stream, php_stream_statbuf *ssb TSRMLS_DC
        return fstat(sock->socket, &ssb->sb);
 }
 
+static inline int sock_sendto(php_netstream_data_t *sock, char *buf, size_t buflen, int flags,
+               struct sockaddr *addr, socklen_t addrlen
+               TSRMLS_DC)
+{
+       if (addr) {
+               return sendto(sock->socket, buf, buflen, flags, addr, addrlen);
+       }
+       return send(sock->socket, buf, buflen, flags);
+}
+
 static inline int sock_recvfrom(php_netstream_data_t *sock, char *buf, size_t buflen, int flags,
                char **textaddr, long *textaddrlen,
                struct sockaddr **addr, socklen_t *addrlen
@@ -314,7 +327,7 @@ static int php_sockop_set_option(php_stream *stream, int option, int value, void
                                        if ((xparam->inputs.flags & STREAM_OOB) == STREAM_OOB) {
                                                flags |= MSG_OOB;
                                        }
-                                       xparam->outputs.returncode = sendto(sock->socket,
+                                       xparam->outputs.returncode = sock_sendto(sock,
                                                        xparam->inputs.buf, xparam->inputs.buflen,
                                                        flags,
                                                        xparam->inputs.addr,