More logging added

This commit is contained in:
ArvidNorr 2013-01-18 10:24:25 +01:00
parent ffc7e7ff27
commit 975d44e99f
8 changed files with 71 additions and 44 deletions

1
.gitignore vendored
View File

@ -36,3 +36,4 @@ xrdp-sessvc
xrdp-sestest xrdp-sestest
xrdp-dis xrdp-dis
xrdp/xrdp xrdp/xrdp
/build/

View File

@ -60,6 +60,7 @@
#include "os_calls.h" #include "os_calls.h"
#include "arch.h" #include "arch.h"
#include "log.h"
/* for clearenv() */ /* for clearenv() */
#if defined(_WIN32) #if defined(_WIN32)
@ -493,6 +494,7 @@ g_tcp_local_socket(void)
void APP_CC void APP_CC
g_tcp_close(int sck) g_tcp_close(int sck)
{ {
char ip[256] ;
if (sck == 0) if (sck == 0)
{ {
return; return;
@ -501,6 +503,8 @@ g_tcp_close(int sck)
#if defined(_WIN32) #if defined(_WIN32)
closesocket(sck); closesocket(sck);
#else #else
g_write_ip_address(sck,ip,256);
log_message(LOG_LEVEL_INFO,"An established connection closed to endpoint: %s", ip);
close(sck); close(sck);
#endif #endif
} }
@ -636,6 +640,8 @@ g_tcp_listen(int sck)
int APP_CC int APP_CC
g_tcp_accept(int sck) g_tcp_accept(int sck)
{ {
int ret ;
char ipAddr[256] ;
struct sockaddr_in s; struct sockaddr_in s;
#if defined(_WIN32) #if defined(_WIN32)
signed int i; signed int i;
@ -645,7 +651,14 @@ g_tcp_accept(int sck)
i = sizeof(struct sockaddr_in); i = sizeof(struct sockaddr_in);
memset(&s, 0, i); memset(&s, 0, i);
return accept(sck, (struct sockaddr *)&s, &i); ret = accept(sck, (struct sockaddr *)&s, &i);
if(ret>0)
{
snprintf(ipAddr,256,"A connection received from: %s port %d"
,inet_ntoa(s.sin_addr),ntohs(s.sin_port));
log_message(LOG_LEVEL_INFO,ipAddr);
}
return ret ;
} }
/*****************************************************************************/ /*****************************************************************************/

View File

@ -19,6 +19,7 @@
*/ */
#include "libxrdp.h" #include "libxrdp.h"
#include "log.h"
/*****************************************************************************/ /*****************************************************************************/
struct xrdp_mcs *APP_CC struct xrdp_mcs *APP_CC
@ -146,12 +147,12 @@ xrdp_mcs_recv(struct xrdp_mcs *self, struct stream *s, int *chan)
{ {
in_uint16_be(s, userid); in_uint16_be(s, userid);
in_uint16_be(s, chanid); in_uint16_be(s, chanid);
g_writeln("channel join request received %d:%d", userid, chanid); log_message(LOG_LEVEL_DEBUG,"MCS_CJRQ - channel join request received");
DEBUG(("xrdp_mcs_recv adding channel %4.4x", chanid)); DEBUG(("xrdp_mcs_recv adding channel %4.4x", chanid));
if (xrdp_mcs_send_cjcf(self, userid, chanid) != 0) if (xrdp_mcs_send_cjcf(self, userid, chanid) != 0)
{ {
g_writeln("Non handled error from xrdp_mcs_send_cjcf") ; log_message(LOG_LEVEL_ERROR,"Non handled error from xrdp_mcs_send_cjcf") ;
} }
continue; continue;
@ -163,7 +164,7 @@ xrdp_mcs_recv(struct xrdp_mcs *self, struct stream *s, int *chan)
} }
else else
{ {
g_writeln("Recieved an unhandled appid:%d", appid); log_message(LOG_LEVEL_DEBUG,"Recieved an unhandled appid:%d",appid);
} }
break; break;

View File

@ -19,6 +19,7 @@
*/ */
#include "xrdp.h" #include "xrdp.h"
#include "log.h"
/*****************************************************************************/ /*****************************************************************************/
struct xrdp_cache *APP_CC struct xrdp_cache *APP_CC
@ -224,7 +225,7 @@ xrdp_cache_add_bitmap(struct xrdp_cache *self, struct xrdp_bitmap *bitmap,
} }
else else
{ {
g_writeln("error in xrdp_cache_add_bitmap, too big(%d)", bmp_size); log_message(LOG_LEVEL_ERROR,"error in xrdp_cache_add_bitmap, too big(%d)", bmp_size);
} }
/* look for oldest */ /* look for oldest */

View File

@ -37,6 +37,7 @@
*/ */
#include "xrdp.h" #include "xrdp.h"
#include "log.h"
#if 0 /* not used */ #if 0 /* not used */
static char w_char[] = static char w_char[] =
@ -80,8 +81,8 @@ xrdp_font_create(struct xrdp_wm *wm)
if (!g_file_exist(file_path)) if (!g_file_exist(file_path))
{ {
g_writeln("xrdp_font_create: error font file [%s] does not exist", log_message(LOG_LEVEL_ERROR,"xrdp_font_create: error font file [%s] does not exist",
file_path); file_path);
return 0; return 0;
} }
@ -89,8 +90,8 @@ xrdp_font_create(struct xrdp_wm *wm)
if (file_size < 1) if (file_size < 1)
{ {
g_writeln("xrdp_font_create: error reading font from file [%s]", log_message(LOG_LEVEL_ERROR,"xrdp_font_create: error reading font from file [%s]",
file_path); file_path);
return 0; return 0;
} }
@ -134,9 +135,9 @@ xrdp_font_create(struct xrdp_wm *wm)
if (datasize < 0 || datasize > 512) if (datasize < 0 || datasize > 512)
{ {
/* shouldn't happen */ /* shouldn't happen */
g_writeln("error in xrdp_font_create, datasize wrong"); log_message(LOG_LEVEL_ERROR,"error in xrdp_font_create, datasize wrong");
g_writeln("width %d height %d datasize %d index %d", log_message(LOG_LEVEL_DEBUG,"width %d height %d datasize %d index %d",
f->width, f->height, datasize, index); f->width, f->height, datasize, index);
break; break;
} }
@ -147,7 +148,7 @@ xrdp_font_create(struct xrdp_wm *wm)
} }
else else
{ {
g_writeln("error in xrdp_font_create"); log_message(LOG_LEVEL_ERROR,"error in xrdp_font_create");
} }
index++; index++;

View File

@ -39,7 +39,7 @@ xrdp_listen_create_pro_done(struct xrdp_listen *self)
if (self->pro_done_event == 0) if (self->pro_done_event == 0)
{ {
g_writeln("Failure creating pro_done_event"); log_message(LOG_LEVEL_ERROR,"Failure creating pro_done_event");
} }
return 0; return 0;
@ -64,7 +64,7 @@ xrdp_listen_create(void)
if (self->listen_trans == 0) if (self->listen_trans == 0)
{ {
g_writeln("xrdp_listen_create: trans_create failed"); log_message(LOG_LEVEL_ERROR,"xrdp_listen_create: trans_create failed");
} }
return self; return self;
@ -326,7 +326,7 @@ xrdp_listen_main_loop(struct xrdp_listen *self)
&tcp_nodelay, &tcp_keepalive, &tcp_nodelay, &tcp_keepalive,
self->startup_params) != 0) self->startup_params) != 0)
{ {
g_writeln("xrdp_listen_main_loop: xrdp_listen_get_port failed"); log_message(LOG_LEVEL_ERROR,"xrdp_listen_main_loop: xrdp_listen_get_port failed");
self->status = -1; self->status = -1;
return 1; return 1;
} }
@ -340,7 +340,7 @@ xrdp_listen_main_loop(struct xrdp_listen *self)
{ {
if (g_tcp_set_no_delay(self->listen_trans->sck)) if (g_tcp_set_no_delay(self->listen_trans->sck))
{ {
g_writeln("Error setting tcp_nodelay"); log_message(LOG_LEVEL_ERROR,"Error setting tcp_nodelay");
} }
} }
@ -348,7 +348,7 @@ xrdp_listen_main_loop(struct xrdp_listen *self)
{ {
if (g_tcp_set_keepalive(self->listen_trans->sck)) if (g_tcp_set_keepalive(self->listen_trans->sck))
{ {
g_writeln("Error setting tcp_keepalive"); log_message(LOG_LEVEL_ERROR,"Error setting tcp_keepalive");
} }
} }
@ -373,7 +373,7 @@ xrdp_listen_main_loop(struct xrdp_listen *self)
if (trans_get_wait_objs(self->listen_trans, robjs, if (trans_get_wait_objs(self->listen_trans, robjs,
&robjs_count) != 0) &robjs_count) != 0)
{ {
g_writeln("Listening socket is in wrong state we " log_message(LOG_LEVEL_ERROR,"Listening socket is in wrong state we "
"terminate listener"); "terminate listener");
break; break;
} }
@ -454,7 +454,7 @@ xrdp_listen_main_loop(struct xrdp_listen *self)
} }
else else
{ {
g_writeln("xrdp_listen_main_loop: listen error, possible port " log_message(LOG_LEVEL_ERROR,"xrdp_listen_main_loop: listen error, possible port "
"already in use"); "already in use");
} }

View File

@ -62,7 +62,7 @@ xrdp_mm_sync_load(long param1, long param2)
static void APP_CC static void APP_CC
xrdp_mm_module_cleanup(struct xrdp_mm *self) xrdp_mm_module_cleanup(struct xrdp_mm *self)
{ {
g_writeln("xrdp_mm_module_cleanup"); log_message(LOG_LEVEL_DEBUG,"xrdp_mm_module_cleanup");
if (self->mod != 0) if (self->mod != 0)
{ {
@ -315,6 +315,7 @@ xrdp_mm_setup_mod1(struct xrdp_mm *self)
g_snprintf(text, 255, "error finding proc mod_init in %s, not a valid " g_snprintf(text, 255, "error finding proc mod_init in %s, not a valid "
"xrdp backend", lib); "xrdp backend", lib);
xrdp_wm_log_msg(self->wm, text); xrdp_wm_log_msg(self->wm, text);
log_message(LOG_LEVEL_ERROR,text);
} }
self->mod_init = (struct xrdp_mod * ( *)(void))func; self->mod_init = (struct xrdp_mod * ( *)(void))func;
@ -330,6 +331,7 @@ xrdp_mm_setup_mod1(struct xrdp_mm *self)
g_snprintf(text, 255, "error finding proc mod_exit in %s, not a valid " g_snprintf(text, 255, "error finding proc mod_exit in %s, not a valid "
"xrdp backend", lib); "xrdp backend", lib);
xrdp_wm_log_msg(self->wm, text); xrdp_wm_log_msg(self->wm, text);
log_message(LOG_LEVEL_ERROR,text);
} }
self->mod_exit = (int ( *)(struct xrdp_mod *))func; self->mod_exit = (int ( *)(struct xrdp_mod *))func;
@ -346,7 +348,7 @@ xrdp_mm_setup_mod1(struct xrdp_mm *self)
} }
else else
{ {
g_writeln("no mod_init or mod_exit address found"); log_message(LOG_LEVEL_ERROR,"no mod_init or mod_exit address found");
} }
} }
else else
@ -354,6 +356,7 @@ xrdp_mm_setup_mod1(struct xrdp_mm *self)
g_snprintf(text, 255, "error loading %s specified in xrdp.ini, please " g_snprintf(text, 255, "error loading %s specified in xrdp.ini, please "
"add a valid entry like lib=libxrdp-vnc.so or similar", lib); "add a valid entry like lib=libxrdp-vnc.so or similar", lib);
xrdp_wm_log_msg(self->wm, text); xrdp_wm_log_msg(self->wm, text);
log_message(LOG_LEVEL_ERROR,text);
return 1; return 1;
} }
@ -693,7 +696,7 @@ xrdp_mm_chan_process_msg(struct xrdp_mm *self, struct trans *trans,
rv = xrdp_mm_trans_process_channel_data(self, trans); rv = xrdp_mm_trans_process_channel_data(self, trans);
break; break;
default: default:
g_writeln("xrdp_mm_chan_process_msg: unknown id %d", id); log_message(LOG_LEVEL_ERROR,"xrdp_mm_chan_process_msg: unknown id %d", id);
break; break;
} }
@ -802,26 +805,27 @@ xrdp_mm_connect_chansrv(struct xrdp_mm *self, char *ip, char *port)
} }
g_sleep(1000); g_sleep(1000);
g_writeln("xrdp_mm_connect_chansrv: connect failed " log_message(LOG_LEVEL_ERROR,"xrdp_mm_connect_chansrv: connect failed "
"trying again..."); "trying again...");
} }
if (!(self->chan_trans_up)) if (!(self->chan_trans_up))
{ {
g_writeln("xrdp_mm_connect_chansrv: error in trans_connect " log_message(LOG_LEVEL_ERROR,"xrdp_mm_connect_chansrv: error in"
"chan"); "trans_connect chan");
} }
if (self->chan_trans_up) if (self->chan_trans_up)
{ {
if (xrdp_mm_chan_send_init(self) != 0) if (xrdp_mm_chan_send_init(self) != 0)
{ {
g_writeln("xrdp_mm_connect_chansrv: error in " log_message(LOG_LEVEL_ERROR,"xrdp_mm_connect_chansrv: error in "
"xrdp_mm_chan_send_init"); "xrdp_mm_chan_send_init");
} }
else else
{ {
g_writeln("xrdp_mm_connect_chansrv: chansrv connect successful"); log_message(LOG_LEVEL_DEBUG,"xrdp_mm_connect_chansrv: chansrv"
"connect successful");
} }
} }
@ -888,6 +892,8 @@ xrdp_mm_process_login_response(struct xrdp_mm *self, struct stream *s)
{ {
xrdp_wm_log_msg(self->wm, "xrdp_mm_process_login_response: " xrdp_wm_log_msg(self->wm, "xrdp_mm_process_login_response: "
"login failed"); "login failed");
log_message(LOG_LEVEL_INFO,"xrdp_mm_process_login_response: "
"login failed");
} }
cleanup_sesman_connection(self); cleanup_sesman_connection(self);
@ -983,7 +989,7 @@ xrdp_mm_process_channel_data(struct xrdp_mm *self, tbus param1, tbus param2,
if (total_length < length) if (total_length < length)
{ {
g_writeln("WARNING in xrdp_mm_process_channel_data(): total_len < length"); log_message(LOG_LEVEL_DEBUG,"WARNING in xrdp_mm_process_channel_data(): total_len < length");
total_length = length; total_length = length;
} }
@ -1045,7 +1051,7 @@ xrdp_mm_sesman_data_in(struct trans *trans)
break; break;
default: default:
xrdp_wm_log_msg(self->wm, "An undefined reply code was received from sesman"); xrdp_wm_log_msg(self->wm, "An undefined reply code was received from sesman");
g_writeln("Fatal xrdp_mm_sesman_data_in: unknown cmd code %d", code); log_message(LOG_LEVEL_ERROR,"Fatal xrdp_mm_sesman_data_in: unknown cmd code %d", code);
cleanup_sesman_connection(self); cleanup_sesman_connection(self);
break; break;
} }
@ -1362,6 +1368,7 @@ xrdp_mm_connect(struct xrdp_mm *self)
g_snprintf(errstr, 255, "Failure to connect to sesman: %s port: %s", g_snprintf(errstr, 255, "Failure to connect to sesman: %s port: %s",
ip, port); ip, port);
xrdp_wm_log_msg(self->wm, errstr); xrdp_wm_log_msg(self->wm, errstr);
log_message(LOG_LEVEL_ERROR,errstr);
trans_delete(self->sesman_trans); trans_delete(self->sesman_trans);
self->sesman_trans = 0; self->sesman_trans = 0;
self->sesman_trans_up = 0; self->sesman_trans_up = 0;
@ -1381,13 +1388,14 @@ xrdp_mm_connect(struct xrdp_mm *self)
{ {
/* connect error */ /* connect error */
g_snprintf(errstr, 255, "Failure to connect to: %s", ip); g_snprintf(errstr, 255, "Failure to connect to: %s", ip);
log_message(LOG_LEVEL_ERROR,errstr);
xrdp_wm_log_msg(self->wm, errstr); xrdp_wm_log_msg(self->wm, errstr);
rv = 1; /* failure */ rv = 1; /* failure */
} }
} }
else else
{ {
g_writeln("Failure setting up module"); log_message(LOG_LEVEL_ERROR,"Failure setting up module");
} }
if (self->wm->login_mode != 10) if (self->wm->login_mode != 10)
@ -1405,7 +1413,7 @@ xrdp_mm_connect(struct xrdp_mm *self)
xrdp_mm_connect_chansrv(self, "", chansrvport); xrdp_mm_connect_chansrv(self, "", chansrvport);
} }
g_writeln("returnvalue from xrdp_mm_connect %d", rv); log_message(LOG_LEVEL_DEBUG,"returnvalue from xrdp_mm_connect %d", rv);
return rv; return rv;
} }
@ -1957,7 +1965,7 @@ int read_allowed_channel_names(struct list *names, struct list *values)
} }
else else
{ {
g_writeln("Failure reading channel section of configuration"); log_message(LOG_LEVEL_ERROR,"Failure reading channel section of configuration");
} }
g_file_close(fd); g_file_close(fd);
@ -2037,7 +2045,7 @@ is_channel_enabled(char *inName, struct list *names, struct list *values)
reply = text2bool(val); reply = text2bool(val);
if (reply == 0) if (reply == 0)
{ {
g_writeln("This channel is disabled: %s", name); log_message(LOG_LEVEL_INFO,"This channel is disabled: %s", name);
} }
} }
@ -2091,7 +2099,7 @@ void init_channel_allowed(struct xrdp_wm *wm)
} }
else else
{ {
g_writeln("The following channel is not allowed: %s (%d)", channelname, index); log_message(LOG_LEVEL_INFO,"The following channel is not allowed: %s (%d)", channelname, index);
} }
index++; index++;
@ -2101,7 +2109,7 @@ void init_channel_allowed(struct xrdp_wm *wm)
} }
else else
{ {
g_writeln("Error reading channel section in inifile"); log_message(LOG_LEVEL_ERROR,"Error reading channel section in inifile");
} }
list_delete(names); list_delete(names);
@ -2226,7 +2234,7 @@ server_create_os_surface(struct xrdp_mod *mod, int rdpindex,
if (error != 0) if (error != 0)
{ {
g_writeln("server_create_os_surface: xrdp_cache_add_os_bitmap failed"); log_message(LOG_LEVEL_ERROR,"server_create_os_surface: xrdp_cache_add_os_bitmap failed");
return 1; return 1;
} }
@ -2277,7 +2285,7 @@ server_switch_os_surface(struct xrdp_mod *mod, int rdpindex)
} }
else else
{ {
g_writeln("server_switch_os_surface: error finding id %d", rdpindex); log_message(LOG_LEVEL_ERROR,"server_switch_os_surface: error finding id %d", rdpindex);
} }
return 0; return 0;
@ -2340,7 +2348,7 @@ server_paint_rect_os(struct xrdp_mod *mod, int x, int y, int cx, int cy,
} }
else else
{ {
g_writeln("server_paint_rect_os: error finding id %d", rdpindex); log_message(LOG_LEVEL_ERROR,"server_paint_rect_os: error finding id %d", rdpindex);
} }
return 0; return 0;

View File

@ -19,6 +19,7 @@
*/ */
#include "xrdp.h" #include "xrdp.h"
#include "log.h"
/*****************************************************************************/ /*****************************************************************************/
struct xrdp_wm *APP_CC struct xrdp_wm *APP_CC
@ -44,6 +45,7 @@ xrdp_wm_create(struct xrdp_process *owner,
pid = g_getpid(); pid = g_getpid();
g_snprintf(event_name, 255, "xrdp_%8.8x_wm_login_mode_event_%8.8x", g_snprintf(event_name, 255, "xrdp_%8.8x_wm_login_mode_event_%8.8x",
pid, owner->session_id); pid, owner->session_id);
log_message(LOG_LEVEL_DEBUG,event_name);
self->login_mode_event = g_create_wait_obj(event_name); self->login_mode_event = g_create_wait_obj(event_name);
self->painter = xrdp_painter_create(self, self->session); self->painter = xrdp_painter_create(self, self->session);
self->cache = xrdp_cache_create(self, self->session, self->client_info); self->cache = xrdp_cache_create(self, self->session, self->client_info);
@ -209,7 +211,7 @@ xrdp_wm_load_pointer(struct xrdp_wm *self, char *file_name, char *data,
if (!g_file_exist(file_name)) if (!g_file_exist(file_name))
{ {
g_writeln("xrdp_wm_load_pointer: error pointer file [%s] does not exist", log_message(LOG_LEVEL_ERROR,"xrdp_wm_load_pointer: error pointer file [%s] does not exist",
file_name); file_name);
return 1; return 1;
} }
@ -220,7 +222,7 @@ xrdp_wm_load_pointer(struct xrdp_wm *self, char *file_name, char *data,
if (fd < 1) if (fd < 1)
{ {
g_writeln("xrdp_wm_load_pointer: error loading pointer from file [%s]", log_message(LOG_LEVEL_ERROR,"xrdp_wm_load_pointer: error loading pointer from file [%s]",
file_name); file_name);
return 1; return 1;
} }
@ -456,7 +458,7 @@ xrdp_wm_load_static_colors_plus(struct xrdp_wm *self, char *autorun_name)
} }
else else
{ {
g_writeln("xrdp_wm_load_static_colors: Could not read xrdp.ini file %s", cfg_file); log_message(LOG_LEVEL_ERROR,"xrdp_wm_load_static_colors: Could not read xrdp.ini file %s", cfg_file);
} }
if (self->screen->bpp == 8) if (self->screen->bpp == 8)
@ -607,7 +609,7 @@ xrdp_wm_init(struct xrdp_wm *self)
} }
else else
{ {
g_writeln("xrdp_wm_init: Could not read xrdp.ini file %s", cfg_file); log_message(LOG_LEVEL_ERROR,"xrdp_wm_init: Could not read xrdp.ini file %s", cfg_file);
} }
} }
else else