]> git.sesse.net Git - vlc/blobdiff - src/misc/httpd.c
- Add httpd_ServerIP() to obtain HTTP server's IP used with a given client
[vlc] / src / misc / httpd.c
index 6109ce5ce36ad3440edad4ace642358810e431a6..7c33d54a1cb9e7f77a517d761c1f1bb4c79acab4 100644 (file)
@@ -1329,20 +1329,14 @@ void httpd_ClientModeBidir( httpd_client_t *cl )
     cl->i_mode   = HTTPD_CLIENT_BIDIR;
 }
 
-char* httpd_ClientIP( httpd_client_t *cl )
+char* httpd_ClientIP( httpd_client_t *cl, char *psz_ip )
 {
-    int i;
-    char *psz_ip = malloc( NI_MAXNUMERICHOST );
-
-    if( psz_ip == NULL )
-        return NULL;
-
-    i = vlc_getnameinfo( (const struct sockaddr *)&cl->sock, cl->i_sock_size,
-                         psz_ip, NI_MAXNUMERICHOST, NULL, NI_NUMERICHOST );
-    if( i )
-        return NULL;
+    return net_GetPeerAddress( cl->fd, psz_ip, NULL ) ? NULL : psz_ip;
+}
 
-    return psz_ip;
+char* httpd_ServerIP( httpd_client_t *cl, char *psz_ip )
+{
+    return net_GetSockAddress( cl->fd, psz_ip, NULL ) ? NULL : psz_ip;
 }
 
 static void httpd_ClientClean( httpd_client_t *cl )