]> git.sesse.net Git - vlc/blobdiff - src/network/io.c
Qt: hide record button when the record access-filter is not present
[vlc] / src / network / io.c
index 0491c3992bdcbc34561684257a3083b019928793..a463569356247deed7cf23a43c7b4e7130baec2e 100644 (file)
@@ -216,7 +216,7 @@ int *net_Listen (vlc_object_t *p_this, const char *psz_host,
         {
             net_Close (fd);
 #if !defined(WIN32) && !defined(UNDER_CE)
-            fd = rootwrap_bind (ptr->ai_family, ptr->ai_socktype,
+            fd = rootwrap_bind (ptr->ai_family, socktype,
                                 protocol ?: ptr->ai_protocol, ptr->ai_addr,
                                 ptr->ai_addrlen);
             if (fd != -1)
@@ -539,9 +539,11 @@ ssize_t __net_vaPrintf( vlc_object_t *p_this, int fd, const v_socket_t *p_vs,
                         const char *psz_fmt, va_list args )
 {
     char    *psz;
-    int     i_size, i_ret;
+    int      i_ret;
 
-    i_size = vasprintf( &psz, psz_fmt, args );
+    int i_size = vasprintf( &psz, psz_fmt, args );
+    if( i_size == -1 )
+        return -1;
     i_ret = __net_Write( p_this, fd, p_vs, (uint8_t *)psz, i_size ) < i_size
         ? -1 : i_size;
     free( psz );
@@ -549,130 +551,6 @@ ssize_t __net_vaPrintf( vlc_object_t *p_this, int fd, const v_socket_t *p_vs,
     return i_ret;
 }
 
-
-/*****************************************************************************
- * inet_pton replacement for obsolete and/or crap operating systems
- *****************************************************************************/
-int vlc_inet_pton(int af, const char *src, void *dst)
-{
-#ifndef HAVE_INET_PTON
-# ifdef WIN32
-    /* As we already know, Microsoft always go its own way, so even if they do
-     * provide IPv6, they don't provide the API. */
-    struct sockaddr_storage addr;
-    int len = sizeof( addr );
-
-    /* Damn it, they didn't even put LPCSTR for the firs parameter!!! */
-#ifdef UNICODE
-    wchar_t *workaround_for_ill_designed_api =
-        malloc( MAX_PATH * sizeof(wchar_t) );
-    mbstowcs( workaround_for_ill_designed_api, src, MAX_PATH );
-    workaround_for_ill_designed_api[MAX_PATH-1] = 0;
-#else
-    char *workaround_for_ill_designed_api = strdup( src );
-#endif
-
-    if( WSAStringToAddress( workaround_for_ill_designed_api, af, NULL,
-                             (LPSOCKADDR)&addr, &len ) )
-    {
-        free( workaround_for_ill_designed_api );
-        return -1;
-    }
-    free( workaround_for_ill_designed_api );
-
-    switch( af )
-    {
-        case AF_INET6:
-            memcpy( dst, &((struct sockaddr_in6 *)&addr)->sin6_addr, 16 );
-            break;
-
-        case AF_INET:
-            memcpy( dst, &((struct sockaddr_in *)&addr)->sin_addr, 4 );
-            break;
-
-        default:
-            WSASetLastError( WSAEAFNOSUPPORT );
-            return -1;
-    }
-# else
-    /* Assume IPv6 is not supported. */
-    /* Would be safer and more simpler to use inet_aton() but it is most
-     * likely not provided either. */
-    uint32_t ipv4;
-
-    if( af != AF_INET )
-    {
-        errno = EAFNOSUPPORT;
-        return -1;
-    }
-
-    ipv4 = inet_addr( src );
-    if( ipv4 == INADDR_NONE )
-        return -1;
-
-    memcpy( dst, &ipv4, 4 );
-# endif /* WIN32 */
-    return 0;
-#else /* HAVE_INET_PTON */
-    return inet_pton( af, src, dst );
-#endif /* HAVE_INET_PTON */
-}
-
-const char *vlc_inet_ntop(int af, const void * src,
-                               char * dst, socklen_t cnt)
-{
-#ifndef HAVE_INET_NTOP
-#ifdef WIN32
-    switch( af )
-    {
-#ifdef AF_INET6
-        case AF_INET6:
-            {
-                struct sockaddr_in6 addr;
-                memset(&addr, 0, sizeof(addr));
-                addr.sin6_family = AF_INET6;
-                addr.sin6_addr = *((struct in6_addr*)src);
-                if( 0 == WSAAddressToStringA((LPSOCKADDR)&addr,
-                                             sizeof(struct sockaddr_in6),
-                                             NULL, dst, &cnt) )
-                {
-                    dst[cnt] = '\0';
-                    return dst;
-                }
-                errno = WSAGetLastError();
-                return NULL;
-
-            }
-
-#endif
-        case AF_INET:
-            {
-                struct sockaddr_in addr;
-                memset(&addr, 0, sizeof(addr));
-                addr.sin_family = AF_INET;
-                addr.sin_addr = *((struct in_addr*)src);
-                if( 0 == WSAAddressToStringA((LPSOCKADDR)&addr,
-                                             sizeof(struct sockaddr_in),
-                                             NULL, dst, &cnt) )
-                {
-                    dst[cnt] = '\0';
-                    return dst;
-                }
-                errno = WSAGetLastError();
-                return NULL;
-
-            }
-    }
-    errno = EAFNOSUPPORT;
-    return NULL;
-#else /* WIN32 */
-    return NULL;
-#endif /* WIN32 */
-#else /* HAVE_INET_NTOP */
-    return inet_ntop( af, src, dst, cnt );
-#endif /* HAVE_INET_NTOP */
-}
-
 #ifdef WIN32
     /* vlc_sendmsg, vlc_recvmsg Defined in winsock.c */
 #else /* !WIN32 */