Browse Source

Display IP of client in debug

pull/2/head
Clément Stenac 20 years ago
parent
commit
70e482eaea
  1. 33
      include/vlc_httpd.h
  2. 1
      include/vlc_objects.h
  3. 3
      src/misc/messages.c
  4. 6
      src/misc/objects.c
  5. 37
      src/network/httpd.c

33
include/vlc_httpd.h

@ -61,6 +61,39 @@ enum
HTTPD_MSG_MAX
};
/* each host run in his own thread */
struct httpd_host_t
{
VLC_COMMON_MEMBERS
httpd_t *httpd;
/* ref count */
int i_ref;
/* address/port and socket for listening at connections */
char *psz_hostname;
int i_port;
int *fd;
vlc_mutex_t lock;
/* all registered url (becarefull that 2 httpd_url_t could point at the same url)
* This will slow down the url research but make my live easier
* All url will have their cb trigger, but only the first one can answer
* */
int i_url;
httpd_url_t **url;
int i_client;
httpd_client_t **client;
/* TLS data */
tls_server_t *p_tls;
};
enum
{
HTTPD_PROTO_NONE,

1
include/vlc_objects.h

@ -61,6 +61,7 @@
#define VLC_OBJECT_XML (-27)
#define VLC_OBJECT_OSDMENU (-28)
#define VLC_OBJECT_STATS (-29)
#define VLC_OBJECT_HTTPD_HOST (-30)
#define VLC_OBJECT_GENERIC (-666)

3
src/misc/messages.c

@ -574,7 +574,8 @@ static void PrintMsg ( vlc_object_t * p_this, msg_item_t * p_item )
case VLC_OBJECT_VOUT: psz_object = "video output"; break;
case VLC_OBJECT_AOUT: psz_object = "audio output"; break;
case VLC_OBJECT_SOUT: psz_object = "stream output"; break;
case VLC_OBJECT_HTTPD: psz_object = "http daemon"; break;
case VLC_OBJECT_HTTPD: psz_object = "http server"; break;
case VLC_OBJECT_HTTPD_HOST: psz_object = "http server"; break;
case VLC_OBJECT_DIALOGS: psz_object = "dialogs provider"; break;
case VLC_OBJECT_VLM: psz_object = "vlm"; break;
case VLC_OBJECT_ANNOUNCE: psz_object = "announce handler"; break;

6
src/misc/objects.c

@ -182,7 +182,11 @@ void * __vlc_object_create( vlc_object_t *p_this, int i_type )
break;
case VLC_OBJECT_HTTPD:
i_size = sizeof( httpd_t );
psz_type = "http daemon";
psz_type = "http server";
break;
case VLC_OBJECT_HTTPD_HOST:
i_size = sizeof( httpd_host_t );
psz_type = "http server";
break;
case VLC_OBJECT_VLM:
i_size = sizeof( vlm_t );

37
src/network/httpd.c

@ -62,37 +62,6 @@
static void httpd_ClientClean( httpd_client_t *cl );
/* each host run in his own thread */
struct httpd_host_t
{
VLC_COMMON_MEMBERS
httpd_t *httpd;
/* ref count */
int i_ref;
/* address/port and socket for listening at connections */
char *psz_hostname;
int i_port;
int *fd;
vlc_mutex_t lock;
/* all registered url (becarefull that 2 httpd_url_t could point at the same url)
* This will slow down the url research but make my live easier
* All url will have their cb trigger, but only the first one can answer
* */
int i_url;
httpd_url_t **url;
int i_client;
httpd_client_t **client;
/* TLS data */
tls_server_t *p_tls;
};
struct httpd_url_t
{
httpd_host_t *host;
@ -1079,7 +1048,7 @@ httpd_host_t *httpd_TLSHostNew( vlc_object_t *p_this, const char *psz_hostname,
p_tls = NULL;
/* create the new host */
host = vlc_object_create( p_this, sizeof( httpd_host_t ) );
host = vlc_object_create( p_this, VLC_OBJECT_HTTPD_HOST );
host->httpd = httpd;
vlc_mutex_init( httpd, &host->lock );
host->i_ref = 1;
@ -2441,7 +2410,6 @@ static void httpd_HostThread( httpd_host_t *host )
struct sockaddr_storage sock;
fd = accept( fd, (struct sockaddr *)&sock, &i_sock_size );
msg_Info( host, "Accepting" );
if( fd >= 0 )
{
int i_state = 0;
@ -2480,11 +2448,14 @@ static void httpd_HostThread( httpd_host_t *host )
if( fd >= 0 )
{
httpd_client_t *cl;
char ip[NI_MAXNUMERICHOST];
stats_UpdateInteger( host, STATS_CLIENT_CONNECTIONS,
1, NULL );
stats_UpdateInteger( host, STATS_ACTIVE_CONNECTIONS, 1,
NULL );
cl = httpd_ClientNew( fd, &sock, i_sock_size, p_tls );
httpd_ClientIP( cl, ip );
msg_Dbg( host, "Connection from %s", ip );
p_tls = NULL;
vlc_mutex_lock( &host->lock );
TAB_APPEND( host->i_client, host->client, cl );

Loading…
Cancel
Save