summaryrefslogtreecommitdiff
path: root/daemon
Commit message (Collapse)AuthorAgeFilesLines
* Save root window to pixmap at _XROOTPMAP_IDRay Strode2012-02-073-0/+81
| | | | | This combined with starting the X server with -nr will give us a nice fade transition when g-s-d starts
* server: invoke X with the systemd multi seat X wrapper if necessaryLennart Poettering2012-02-071-1/+49
| | | | | | | | | | | systemd 39 and newer provide a small wrapper for X which works around the fact that XOrg upstream currently support multi-seat hotplug for displays. Let's make use of this as a stop-gap until this feature is added to XOrg upstream. This code tries to be as defensive as possible and makes use of the wrapper only if the system as actually booted with systemd, the wrapper is available and we actually use a seat != "seat0".
* server: pass seat id to serverLennart Poettering2012-02-075-4/+46
| | | | | | | | | When we spawn a new X server, let's pass the seat id to it via the "-seat" parameter, which has been available since a while in upstream Xorg. -seat causes the X server to only make use of hardware that is assigned to the seat specified, and leave all other hardware untouched.
* local-display-factory: subscribe to new seats being created and removedLennart Poettering2012-02-072-16/+224
| | | | | | logind will notify us when ever a new seat becomes available in the system, or an existing seat is removed. We simply create a new display for each seat showing up and remove a display when a seat goes away.
* pam: pass XDG_SEAT env var into PAM to inform PAM modules about seat idLennart Poettering2012-02-072-0/+35
| | | | | | | | | This optionally replaces the current CK session registration logic with support for passing seat information to pam_systemd (and hence rely on pam_systemd's session registration). With this patch applied we can register sessions in systemd and in CK with the same binary.
* slave: pass seat id from product/simple slave to worker, via the direct sessionLennart Poettering2012-02-077-1/+81
| | | | | | | | | | | | | | | Pass seat id from product and simple slave to the direct sessions created by it (along with the other display meta data we pass already). Pass seat id from session to worker (via D-Bus) along with the other display meta data. We need the seat information for the PAM conversation (later patch) hence we need to pass it from the slaves down to the workers. (Note that the seat ID has always been passed from the display to the slave, we just need to pass it on the worker now, so that the chain is complete: display → slave → session → worker)
* build-sys: make CK support optionalLennart Poettering2012-02-071-2/+6
|
* slave: add native systemd implementations of locking/session activationLennart Poettering2012-02-072-14/+242
|
* welcome-session: get rid of register-ck-session property since it is unusedLennart Poettering2012-02-074-32/+1
| | | | | Nothing was using register-ck-session and it has no effect, hence let's get rid of this dead code.
* slave: whitespace cleanupLennart Poettering2012-02-071-2/+2
|
* xdmcp: fix a compile warningRay Strode2011-12-221-2/+2
|
* daemon: don't every SIGKILL childrenRay Strode2011-12-221-1/+1
| | | | | | | | | | | There's no situation where it's the right thing to do. The children of the daemon are responsible for themselves. If they don't go away when asked we shouldn't second guess them, we just need to ignore them. This means we may end up with zombie children if those children have bugs, but it's better than prematurely killing them if they're slow.
* daemon: correct XDMCP misspellingRay Strode2011-11-031-2/+2
| | | | | | It's spelled XDMCP not XMDCP https://bugzilla.gnome.org/show_bug.cgi?id=663338
* daemon: remove translation markers from xdmcp warningsRay Strode2011-11-031-34/+34
| | | | | | They're warnings the user won't see without snooping. They are hardly intelligible as it is and shouldn't be translated, so they're easy to google.
* worker: don't block SIGTERMRay Strode2011-10-241-1/+0
| | | | | | If the slave tells us to go away, we should go away, not wait a PAM module decides to let us get back to the main loop.
* daemon: Don't emit session-exited when non-authenticated worker failsRay Strode2011-10-241-9/+14
| | | | | | | | | | | | | | | | Sometimes PAM modules are finicky and don't die when you tell them to. Instead they fail some seconds later. If a user successfully logs in with one stack and another stack is being troublesome, then we'll get notified about it finishing up after the user is already logged in. When that happens, we erroneously assume the stack finishing is the stack the user's session is running on and then proceed to log the user out. This commit makes us be a little more careful about our bookkeeping so we can ignore failures from slow PAM modules.
* daemon: additional fix for legacy auth compatibility layerVincent Untz2011-10-071-1/+1
| | | | | | g_str_has_prefix() was misused. https://bugzilla.gnome.org/show_bug.cgi?id=658451
* daemon: fix the legacy auth compatibility layerRay Strode2011-10-051-4/+4
| | | | | | | | | | | | | | In commit f91f017071ffa5f5999e6c2e2c0929e290482932 I introduced a translation layer that keeps compatibility for distros who build with --disable-split-authentication. The commit was somewhat faulty, though. I made some last minute clean ups to the patch before committing that I didn't fully test. Those cleanups resulted in the pam service name getting improperly translated and broke the compatibility layer the commit introduced. https://bugzilla.gnome.org/show_bug.cgi?id=658451
* daemon: add better unified authentication compatibilityRay Strode2011-09-192-2/+56
| | | | | | | | | | | | | The daemon and fallback greeter support --disable-split-authentication, but the new shiny greeter doesn't. This posed a problem for distributions that want to use the new shiny greeter (in an albeit degraded mode) but don't yet have support at the system level for split authentication. This commit adds a small amount of goo to make the split authentication pam service names translate to the unified pam service name and thus give the shell greeter a level of compatibility with --disable-split-authentication.
* daemon: set initial keyboard layout before starting serverRay Strode2011-09-174-0/+56
| | | | | | | | | | If we don't do this magic incantation then the keyboard layout selector won't work until the user hits some key on their keyboard. Since we have to do this incantation anyway, this commit also gives preferential treatment to the "us" keyboard layout. This makes sense to do because most usernames and passwords are ascii.
* daemon: fix autologinRay Strode2011-09-131-21/+32
| | | | | | | | | | | | | In commit 6849f6f3b8a199bed5427b8d6f1e2dedbe035d6c the code was changed to stop the greeter asynchronously and start the session following its completion. Autologin doesn't have a greeter though, so this broke it. This commit fixes autologin. https://bugzilla.gnome.org/show_bug.cgi?id=658899
* gdm-slave: fix double dbus_error_init()Lennart Poettering2011-09-111-2/+0
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=655380
* gdm-slave: fix memory leakLennart Poettering2011-09-111-0/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=655380
* daemon: don't hard code session nameRay Strode2011-09-091-1/+1
| | | | | | | | Right now we hard code the session to gdm-shell which prevents users from forcing fallback. This commit changes gnome-session to load the session from settings, and changes the default in settings to gdm-shell.
* daemon: stop greeter session not greeter workerRay Strode2011-09-094-41/+85
| | | | | | | | | | | | | | | | | | | | Since changing the greeter to run in its own PAM session, we've started killing the worker process instead of the session process right before the user's session is started. This is wrong, because it means we don't give the greeter session time to kill itself in an orderly way before we rip away its session bus. This commit changes the welcome session stop function to kill the pid of the welcome session instead of the pid of its worker parent. This change requires reinstrumenting all callers of gdm_welcome_session_stop to not free the session until the "stopped" signal following gdm_welcome_session_stop. https://bugzilla.gnome.org/show_bug.cgi?id=658481
* daemon: don't forcible kill pam after 3 secondsRay Strode2011-09-094-41/+111
| | | | | | | | Right now when stopping a conversation we give it 3 seconds to die and then kill kill kill. This commit changes the killing to be asynchronous and not time out until absolutely necessary.
* daemon: fix consolekit registrationRay Strode2011-09-062-0/+22
| | | | | | | | | | | | | | ioni pointed out on IRC, that since commit 647cad5bf59a4ff3776ba1ae5cda6b1aaaa1cfb2 the greeter session isn't getting fully registered with consolekit and so udev acls weren't being properly applied. This commit passes the tty to the worker process so that it can be used for registration. It also passes hostname, merely for completeness.
* daemon: run greeter in its own distinct sessionRay Strode2011-08-306-363/+577
| | | | | | | | | | | | | | Right now before launching the greeter, we create this little ad hoc session that only runs through some of the OS machinery for session registration. This means not only is there duplicate code with GDMs real session handling functions, but the greeter is potentially running in an incomplete session. This commit, inspired by the work of Lennart and Kay, changes GDM to run its greeter session through a session worker just like any other session.
* daemon: s/-d/--debug/Ray Strode2011-08-301-1/+1
| | | | gnome-session takes a --debug argument not -d
* data: add shell sessionRay Strode2011-08-261-1/+1
| | | | | This commit changes gdm to first try running gnome-shell in --gdm-mode and fallback to the existing way.
* daemon: Tweak gnome-session command line argumentsRay Strode2011-08-261-1/+1
| | | | | | | Start with --failsafe to prevent unnecessary and unwanted autostart files from getting processed. Start with --debug since it's useful for debugging.
* daemon: Plug XDMCP chooser leakOlivier Fourdan2011-08-081-0/+14
| | | | | | | | | | | The GDM chooser will leak a file descriptor for the auth file each time the chooser is restarted. This commit plugs the leak in a similar way to commit 0c34aa7949bc24a2a8b3217cefb3c978b892591b but for the chooser instead of remote greeters.
* common: don't tank on criticalsRay Strode2011-06-286-12/+0
| | | | | | | | | | | | | | Tiny (or not so tiny) bugs in components below GDM in the stack can lead to critical warnings. In development releases, GDM by default will crash when encountering a critical warning. Losing the login screen is a big deal. We shouldn't automatically subject our users to "can't log in" in order to highlight bugs in development releases. This commit removes fatal criticals by default.
* greeter-server: implement stop functionRay Strode2011-06-241-0/+7
| | | | | The stop function was previously just empty, which led to litter in /tmp.
* daemon: use gnome-session session files instead of autostartRay Strode2011-06-202-3/+12
| | | | | | | | | | | | | | | Before we were doing some sort of weird hybrid thing with a session file and an autostart directory that wasn't that much different than just having an autostart directory by itself. Now we fully define the session component list from the session file, and merely provide a pool of new candidate desktop files to select that sessoin from. This modernizes how we use gnome-session and as a side-effect enables us the ability to have fallback sessions (which will be important when defaulting to a shell based greeter later).
* daemon: drop if 0'd codeRay Strode2011-06-201-5/+0
|
* daemon: build fixRay Strode2011-06-201-0/+1
| | | | Add variable declaration.
* Revert some commitsRay Strode2011-06-178-136/+38
| | | | | | | | | | | | I had some inprogress changes in my local tree when when git bz applying the patches on bug 618047. Those unfinished changes got interleaved into the commits, creating a bit of a mess. Also, bug 618047 has been reopened. This commit reverts those changes for now until.
* daemon: drop some fluff codeRay Strode2011-06-1522-568/+36
| | | | | | | There's a bit of needless boilerplate and dead code just sort of sitting around in various places. This commit cleans things up a bit.
* daemon: drop static-factory-display stuffRay Strode2011-06-156-303/+0
| | | | | It's not used. If we need it later we can bring it back from history.
* daemon: clean up greeter when unusedRay Strode2011-06-152-6/+17
| | | | | | | | | | | | | | | | | | | | | | When user switching GDM needs to show a transient greeter for the user to pick a name from the list and jump to that session. After the user has been jumped to the selected session we don't really have a use for the greeter session. Historically, we've kept it around anyway, though, because X by default jumps back to the VT it started on when it exits, and we don't want the user to get thrown to an empty VT after they log out. This commit changes X to get started with the "-novtswitch" option, so that it doesn't do the undesirable switch-on-exit thing. This allows us to clean up the useless greeter following user switches. Based on work by Josselin Mouette <joss@debian.org> https://bugzilla.gnome.org/show_bug.cgi?id=618047
* daemon: share display respawn logic betewen static and transient displaysRay Strode2011-06-151-22/+21
| | | | | | | | | | | | | | | Right now we ignore transient displays after they're created. We make no attempt to clean them up from the display store or put the user on a login screen when their display ends or anything like that. This commit changes the display factory to monitor transient display status in much the same way it monitors static display status. Note for static displays we always respawn when finishing, where as with transient displays either die quietly, jump to an existing login display, or respawn. https://bugzilla.gnome.org/show_bug.cgi?id=618047
* daemon: parameterize create_displayRay Strode2011-06-151-14/+16
| | | | | | | | | | | | | There's some logic in create_display and friends, that would be good to reuse for transient displays. This commit adds a type argument to create_display to say what kind of display to create. Right now it only supports the one type it's always supported, but that will change in a follow up commit. https://bugzilla.gnome.org/show_bug.cgi?id=618047
* daemon: add switch-on-finish property to displayRay Strode2011-06-155-0/+86
| | | | | | | | | | | | | | | | | | | When a display exits, sometimes it's desirable to jump to a login screen. This depends if the display is transient or not, and also whether the display is hosting an already logged in session or not. This commit adds a property to the display object that says whether a switch should happen or not. Note the code to actually perform the switch will get added in a follow up commit. Based on work by Josselin Mouette <joss@debian.org> https://bugzilla.gnome.org/show_bug.cgi?id=618047
* common: drop custom marshaller gooRay Strode2011-06-133-16/+13
| | | | | | We live in a modern society where phones look like something from Inspector Gadget and signal marshalling is no longer something to waste goo credits on.
* daemon: stop sending back the saved session name after the user setup is doneGary Ching-Pang Lin2011-06-131-0/+12
| | | | | | | | | The greeter needs not to know the saved session after the user settings are loaded successfully. Sending back the saved session name could potentially form an infinite loop between the daemon and the greeter. https://bugzilla.gnome.org/show_bug.cgi?id=569039
* daemon: don't set LANG to empty valueRay Strode2011-06-131-6/+12
| | | | | | This makes PAM not set it to a proper value later. https://bugzilla.gnome.org/show_bug.cgi?id=649413
* daemon: Distinguish "pam module failed" from "authentication failed"Ray Strode2011-06-139-35/+132
| | | | | | | | If pam_start() fails, that suggests the configured service stack is failing independent of the user account. This commit exposes that failure as "service unavailable" instead of "authentication failed".
* daemon: Store multiple conversations in the sessionRay Strode2011-06-1312-434/+1249
| | | | | | We keep multiple conversations in the session now, keyed off of which PAM service is at the other end. Much of the guts still only operate on the first conversation added though.
* daemon,greeter: Make greeter/autologin session initiate PAM conversationRay Strode2011-06-134-7/+92
| | | | | | | | | | | | | Now the greeter (and also the autologin code) has to say what PAM stack it wants the slave to run. When that stack is ready, we emit the Ready signal as before, but now the Ready signal carries a string argument saying which service is ready to converse. When we support multiple PAM stacks, the greeter will call StartConversation for each stack, and will keep the UI associated with each stack disabled until the Ready signals come back one-by-one.