read config file

This commit is contained in:
jsorg71 2009-09-06 05:58:26 +00:00
parent 52af655800
commit dc26b98025
1 changed files with 56 additions and 5 deletions

View File

@ -26,6 +26,9 @@
#include "sound.h"
#include "clipboard.h"
#include "devredir.h"
#include "list.h"
#include "file.h"
#include "file_loc.h"
static struct trans* g_lis_trans = 0;
static struct trans* g_con_trans = 0;
@ -38,6 +41,8 @@ static int g_rdpdr_index = -1;
static tbus g_term_event = 0;
static tbus g_thread_done_event = 0;
static int g_use_unix_socket = 0;
int g_display_num = 0;
int g_cliprdr_chan_id = -1; /* cliprdr */
int g_rdpsnd_chan_id = -1; /* rdpsnd */
@ -394,20 +399,28 @@ my_trans_conn_in(struct trans* trans, struct trans* new_trans)
static int APP_CC
setup_listen(void)
{
char text[256];
char port[256];
int error;
if (g_lis_trans != 0)
{
trans_delete(g_lis_trans);
}
g_lis_trans = trans_create(2, 8192, 8192);
if (g_use_unix_socket)
{
g_lis_trans = trans_create(2, 8192, 8192);
g_snprintf(port, 255, "/tmp/xrdp_chansrv_socket_%d", 7200 + g_display_num);
}
else
{
g_lis_trans = trans_create(1, 8192, 8192);
g_snprintf(port, 255, "%d", 7200 + g_display_num);
}
g_lis_trans->trans_conn_in = my_trans_conn_in;
g_snprintf(text, 255, "/tmp/xrdp_chansrv_socket_%d", 7200 + g_display_num);
error = trans_listen(g_lis_trans, text);
error = trans_listen(g_lis_trans, port);
if (error != 0)
{
LOG(0, ("setup_listen: trans_listen failed"));
LOG(0, ("setup_listen: trans_listen failed for port %s", port));
return 1;
}
return 0;
@ -570,6 +583,43 @@ main_cleanup(void)
return 0;
}
/*****************************************************************************/
static int APP_CC
read_ini(void)
{
char filename[256];
struct list* names;
struct list* values;
char* name;
char* value;
int index;
names = list_create();
names->auto_free = 1;
values = list_create();
values->auto_free = 1;
g_use_unix_socket = 0;
g_snprintf(filename, 255, "%s/sesman.ini", XRDP_CFG_PATH);
if (file_by_name_read_section(filename, "Globals", names, values) == 0)
{
for (index = 0; index < names->count; index++)
{
name = (char*)list_get_item(names, index);
value = (char*)list_get_item(values, index);
if (g_strcasecmp(name, "ListenAddress") == 0)
{
if (g_strcasecmp(value, "127.0.0.1") == 0)
{
g_use_unix_socket = 1;
}
}
}
}
list_delete(names);
list_delete(values);
return 0;
}
/*****************************************************************************/
int DEFAULT_CC
main(int argc, char** argv)
@ -579,6 +629,7 @@ main(int argc, char** argv)
char* display_text;
g_init(); /* os_calls */
read_ini();
pid = g_getpid();
LOG(1, ("main: app started pid %d(0x%8.8x)", pid, pid));
g_signal_kill(term_signal_handler); /* SIGKILL */