[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [E-devel] E CVS: apps/entrance raster
Enlightenment CVS wrote:
Enlightenment CVS committal
Author : raster
Project : e17
Module : apps/entrance
Dir : e17/apps/entrance/src/client
moe loging - and ACTUALLY work. executing entrance_login via bin/sh loses
child process info etc thus waitpit() will never wait for the x session. exe
directly ith no shell in between - and now its all happy.
ahh... i c.
Makes sense, I didn't even think of that, and that has been there for
quite a while... funky bug.
I'm going to device an elaborate plan to steal that UNIX programming
book that devilhorns has been reading lately... I need it seriously, so
i can be as bad-ass as our own raster :)
+/* no need to free - we are goign to exec ourselves and be replaced
if (shell) free(shell);
if (user) free(user);
oops... you're right there.
/* replace this process with a clean small one that just waits for its */
/* child to exit.. passed on the cmd-line */
- execl("/bin/sh", "/bin/sh", "-l", "-c", buf, NULL);
+ /* this causes entreance to reset - bad bad bad */
+ snprintf(pids, sizeof(pids), "%i", (int)pid);
+ snprintf(buf, sizeof(buf), "%s/%s/entrance_login", PACKAGE_LIB_DIR, PACKAGE);
+ if (e->config->auth == ENTRANCE_USE_PAM)
+ syslog(LOG_NOTICE, "Exec entrance login replacement: %s %s %s %s", buf, pids, pwent->pw_name, e->display);
+ execl(buf, buf, pids, pwent->pw_name, e->display, NULL);
+ syslog(LOG_NOTICE, "Exec entrance login replacement: %s %s", buf, pids);
+ execl(buf, buf, pids, NULL);
if (buf) free(buf);