]> git.sesse.net Git - vlc/commitdiff
* src/misc/httpd.c: ipv6 win32 fix.
authorGildas Bazin <gbazin@videolan.org>
Mon, 19 Jul 2004 09:46:06 +0000 (09:46 +0000)
committerGildas Bazin <gbazin@videolan.org>
Mon, 19 Jul 2004 09:46:06 +0000 (09:46 +0000)
src/misc/httpd.c

index f9663a160373fcab7ab291ffdb3e0278e5d1ddea..92f7ddd2c6feacc03886573e587a8f5b39ad402d 100644 (file)
 #   endif
 #endif
 
+#if defined(WIN32)
+static const struct in6_addr in6addr_any = {{IN6ADDR_ANY_INIT}};
+#endif
+
 #if 0
 typedef struct httpd_t          httpd_t;
 
@@ -999,37 +1003,35 @@ httpd_host_t *httpd_HostNew( vlc_object_t *p_this, char *psz_host, int i_port )
 #ifdef AF_INET6
             if( httpd->host[i]->sock.ss_family == AF_INET6 )
             {
-                    const struct sockaddr_in6 *p_hsock, *p_sock;
-        
-                    p_hsock = (const struct sockaddr_in6 *)&httpd->host[i]->sock;
-                    p_sock = (const struct sockaddr_in6 *)res->ai_addr;
-
-                    if( memcmp( &p_hsock->sin6_addr, &in6addr_any,
-                                sizeof( struct in6_addr ) ) &&
-                        ( p_sock->sin6_family != AF_INET6 ||
-                          memcmp( &p_hsock->sin6_addr, &p_sock->sin6_addr,
-                                  sizeof( struct in6_addr ) ) ) )
-                        continue; /* does not match */
+                const struct sockaddr_in6 *p_hsock, *p_sock;
+
+                p_hsock = (const struct sockaddr_in6 *)&httpd->host[i]->sock;
+                p_sock = (const struct sockaddr_in6 *)res->ai_addr;
+
+                if( memcmp( &p_hsock->sin6_addr, &in6addr_any,
+                            sizeof( struct in6_addr ) ) &&
+                            ( p_sock->sin6_family != AF_INET6 ||
+                              memcmp( &p_hsock->sin6_addr, &p_sock->sin6_addr,
+                                      sizeof( struct in6_addr ) ) ) )
+                    continue; /* does not match */
             }
-            else
-            if( res->ai_family == PF_INET6 )
+            else if( res->ai_family == PF_INET6 )
                 continue;
             else
 #endif
             if( httpd->host[i]->sock.ss_family == AF_INET )
             {
-                    const struct sockaddr_in *p_hsock, *p_sock;
-        
-                    p_hsock = (const struct sockaddr_in *)&httpd->host[i]->sock;
-                    p_sock = (const struct sockaddr_in *)res->ai_addr;
+                const struct sockaddr_in *p_hsock, *p_sock;
+
+                p_hsock = (const struct sockaddr_in *)&httpd->host[i]->sock;
+                p_sock = (const struct sockaddr_in *)res->ai_addr;
 
-                    if( p_hsock->sin_addr.s_addr != INADDR_ANY &&
-                        ( p_sock->sin_family != AF_INET ||
-                          p_hsock->sin_addr.s_addr != p_sock->sin_addr.s_addr ) )
-                        continue; /* does not match */
+                if( p_hsock->sin_addr.s_addr != INADDR_ANY &&
+                    ( p_sock->sin_family != AF_INET ||
+                      p_hsock->sin_addr.s_addr != p_sock->sin_addr.s_addr ) )
+                    continue; /* does not match */
             }
-            else
-            if( res->ai_family == PF_INET )
+            else if( res->ai_family == PF_INET )
                 continue;
             else
             {
@@ -1487,7 +1489,8 @@ char* httpd_ClientIP( httpd_client_t *cl )
     }
     
     return strdup( &sz_ip[1] );
-#else        
+
+#else
     /* FIXME not thread safe */
     return strdup( inet_ntoa( ((const struct sockaddr_in *)&cl->sock)->sin_addr ) );
 #endif