fix warnings, move some calls to os_calls

ulab-next-nosound
Jay Sorg 9 years ago
parent 38241f2a0b
commit 689ffe79d9

@ -2832,6 +2832,28 @@ g_setuid(int pid)
#endif #endif
} }
/*****************************************************************************/
int APP_CC
g_setsid(void)
{
#if defined(_WIN32)
return -1;
#else
return setsid();
#endif
}
/*****************************************************************************/
int APP_CC
g_setlogin(const char *name)
{
#ifdef BSD
return setlogin(name);
#else
return -1;
#endif
}
/*****************************************************************************/ /*****************************************************************************/
/* does not work in win32 /* does not work in win32
returns pid of process that exits or zero if signal occurred */ returns pid of process that exits or zero if signal occurred */

@ -156,6 +156,8 @@ int APP_CC g_initgroups(const char* user, int gid);
int APP_CC g_getuid(void); int APP_CC g_getuid(void);
int APP_CC g_getgid(void); int APP_CC g_getgid(void);
int APP_CC g_setuid(int pid); int APP_CC g_setuid(int pid);
int APP_CC g_setsid(void);
int APP_CC g_setlogin(const char *name);
int APP_CC g_waitchild(void); int APP_CC g_waitchild(void);
int APP_CC g_waitpid(int pid); int APP_CC g_waitpid(int pid);
void APP_CC g_clearenv(void); void APP_CC g_clearenv(void);

@ -136,7 +136,8 @@ int DEFAULT_CC
main(int argc, char **argv) main(int argc, char **argv)
{ {
int fd; int fd;
enum logReturns error; enum logReturns log_error;
int error;
int daemon = 1; int daemon = 1;
int pid; int pid;
char pid_s[32]; char pid_s[32];
@ -267,11 +268,11 @@ main(int argc, char **argv)
g_snprintf(cfg_file, 255, "%s/sesman.ini", XRDP_CFG_PATH); g_snprintf(cfg_file, 255, "%s/sesman.ini", XRDP_CFG_PATH);
/* starting logging subsystem */ /* starting logging subsystem */
error = log_start(cfg_file, "xrdp-sesman"); log_error = log_start(cfg_file, "xrdp-sesman");
if (error != LOG_STARTUP_OK) if (log_error != LOG_STARTUP_OK)
{ {
switch (error) switch (log_error)
{ {
case LOG_ERROR_MALLOC: case LOG_ERROR_MALLOC:
g_writeln("error on malloc. cannot start logging. quitting."); g_writeln("error on malloc. cannot start logging. quitting.");

@ -504,16 +504,17 @@ session_start_fork(int width, int height, int bpp, char *username,
* Create a new session and process group since the 4.4BSD * Create a new session and process group since the 4.4BSD
* setlogin() affects the entire process group * setlogin() affects the entire process group
*/ */
if (setsid() < 0) if (g_setsid() < 0)
{ {
log_message(LOG_LEVEL_ERROR, log_message(LOG_LEVEL_ERROR,
"setsid failed - pid %d", g_getpid()); "setsid failed - pid %d", g_getpid());
} }
if (setlogin(username) < 0) if (g_setlogin(username) < 0)
{ {
log_message(LOG_LEVEL_ERROR, log_message(LOG_LEVEL_ERROR,
"setlogin failed for user %s - pid %d", username, g_getpid()); "setlogin failed for user %s - pid %d", username,
g_getpid());
} }
} }

Loading…
Cancel
Save