summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* make polkit optional and use RBAC on SolarisBrian Cameron2008-01-282-1/+77
| | | | | | | | | | | | | | | | This patch makes polkit an optional dependency. If present it builds with it. If not, polkit support is disabled. This patch also adds a --enable-rbac-shutdown=<key> option. If set, then ConsoleKit will allow shutdown/reboot if the user has the RBAC key authorization defined. For example, since the GDM GUI program runs as the "gdm" user, setting the key for the "gdm" user allows the login program to shutdown and reboot via ConsoleKit. Also this patch modifies the tools/solaris/ck-system-restart and tools/solaris/ck-system-stop scripts to call "/sbin/init 6" and "/sbin/init 5", which are the right commands for Solaris.
* fixes for solarisBrian Cameron2008-01-282-2/+3
| | | | | | | | | | Fixes two bugs I found in the code. The first is that we need some NULL protection around the g_strdup_printf where we build CK_SESSION_X11_DISPLAY to avoid a crash. Second, I noticed a bug in the ck_unix_pid_get_hash function where we weren't parsing the data right and causing the hash to not get set properly.
* add session-type filtering to ck-historyWilliam Jon McCann2008-01-281-0/+2
|
* try to activate x11-display-device not only display-deviceWilliam Jon McCann2008-01-281-2/+5
|
* be a little smarter about how we compute the number of usersWilliam Jon McCann2008-01-231-2/+94
|
* history should log to /var/log not /var/runWilliam Jon McCann2008-01-232-2/+2
|
* actually register the error type with dbusWilliam Jon McCann2008-01-231-0/+1
|
* add GetSessions method to Manager interfaceWilliam Jon McCann2008-01-233-0/+31
|
* add error type to managerWilliam Jon McCann2008-01-232-1/+27
|
* initial stop/restart supportWilliam Jon McCann2008-01-223-59/+624
| | | | | | Add Stop and Restart methods to the Manager object. We'll rename the Manager object to System in the near future. Use libpolkit to determine authorization.
* use VT_GETSTATE and tty0 to identify a console_ioctl on linuxPeter Jones2007-12-081-4/+9
| | | | | | | | | | | | | ConsoleKit tries to find a valid fd it can issue VT_WAITACTIVE against by iterating across a file list and issuing ioctl(fd, KDGKBTYPE, &arg), then checking the return value. Not all console devices support this ioctl, so in some cases it never finds a valid file descriptor to use, and from then on never marks any session active. We probably ought to be using something like VT_GETSTATE instead of a keyboard ioctl, but that's not sufficient to fix it. One fix that seems to work, though I'm not completely sure if it's the best answer, is to add /dev/tty0 to the list of files to try before /dev/console.
* dump session leader infoWilliam Jon McCann2007-10-222-3/+21
|
* error out if unknown options are passed on command lineWilliam Jon McCann2007-10-221-2/+9
|
* move session leader stuff into a separate classWilliam Jon McCann2007-10-224-377/+762
| | | | This will make it easier to dump/restore.
* try to handle log rotationWilliam Jon McCann2007-10-221-8/+45
|
* add support for reporting from logrotated filesWilliam Jon McCann2007-10-221-1/+8
|
* add last mode, filtering by user/seat; shorten logged idsWilliam Jon McCann2007-10-211-10/+24
|
* use AC_GNU_SOURCE instead of #defineWilliam Jon McCann2007-10-181-2/+0
|
* add a basic ck-history commandWilliam Jon McCann2007-10-177-600/+1262
| | | | | Refactor some event logging code to share with ck-history. At the moment the command only prints the events.
* add event logging capabilityWilliam Jon McCann2007-10-165-6/+1430
| | | | | | | | This adds the ability to log events to a history file. One idea is to be able to provide wtmp like functionality. The next step is to add a seat-aware "last" command. This will be very useful for creating graphical logins that remember the most recent/frequent logins.
* maintain a file with the dump of the local databaseDavid Zeuthen2007-10-106-7/+330
| | | | | | | | This feature is useful for programs wanting to read the database without going through the D-Bus interface. This is sometimes desirable when both performance and runtime dependencies are important. For security reasons the file is only readable for the super user.
* remove session/seat from list before signalingWilliam Jon McCann2007-10-102-19/+66
| | | | | | We should remove the session or seat from the lists before calling out or emitting a signal. We steal from the lists and then unref the objects when the signal is complete.
* add a way to synchronously run programs on session add/remove/activity_changeDavid Zeuthen2007-10-045-0/+318
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for running programs when 1. A session is added 2. A session is removed 3. The activity of a session changes Executables with the suffix .ck in the directories $sysconfdir/ConsoleKit/run-session.d (typically /etc/ConsoleKit/run-session.d) and $libdir/ConsoleKit/run-session.d (typically /usr/lib/ConsoleKit/run-session.d) will be run on each event. The former directory is meant to be used for the system administrator and the latter is meant to be used by programs. Only when all programs in these directories have run, ConsoleKit will resume event processing and e.g. broadcast the event on the system message bus. Hence, this new mechanism can be used to safely (e.g. without race conditions) perform operations on certain resources before programs in the desktop session are told they may use them. The obvious example here is managing ACL's on /dev such that certain device nodes are only available to users in local and active sessions. The environment of the program launched is the environment that the ConsoleKit daemon was launched with and also the following variables (variables tagged with [*] may not be set). CK_SESSION_ID CK_SESSION_TYPE CK_SESSION_SEAT_ID CK_SESSION_USER_UID CK_SESSION_DISPLAY_DEVICE [*] CK_SESSION_X11_DISPLAY_DEVICE [*] CK_SESSION_X11_DISPLAY [*] CK_SESSION_REMOTE_HOST_NAME [*] CK_SESSION_IS_ACTIVE CK_SESSION_IS_LOCAL corresponding to the properties of a Session object in question. Each program is passed exactly one parameter that can assume one of the following values: - session_active_changed: is_active changed - session_added: the session was added - session_removed: the session was removed As a safety hatch, there is a timeout of 15 seconds for each program; if it hasn't exited within 15 seconds, the daemon will send it a SIGTERM signal, and move on to the next program. The daemon is still responsive when the program is running - this is to ensure that the program itself can call into the org.freedesktop.ConsoleKit service.
* don't use VT_GETSTATE when VT is unavailableBrian Cameron2007-09-191-0/+10
|
* try to make things work for systems that don't support VT_ACTIVATE etcWilliam Jon McCann2007-09-191-4/+23
|
* fix FreeBSD issues translating VT numbers to devicesJoe Marcus Clarke2007-08-291-8/+14
| | | | | | | In FreeBSD the device number is always one less than the VT number (e.g. VT 1 is /dev/ttyv0). Account for this. Also, fix up reading console entries from /etc/ttys, and make sure the full TTY device name is returned for a given process stat.
* untabifyWilliam Jon McCann2007-08-285-22/+22
|
* fix some compiler warnings, untabifyWilliam Jon McCann2007-08-282-115/+81
| | | | Based on patch from Joe Marcus Clarke
* move some of the freebsd specific stuff into sysdepsWilliam Jon McCann2007-08-277-90/+229
|
* Add support for FreeBSDJoe Marcus Clarke2007-08-261-0/+4
| | | | | | Allow this test to properly determine the current tty device. Signed-off-by: Florent Thoumie <flz@FreeBSD.org>
* Add ck-sysdeps-freebsd.c to the list of dist sourcesJoe Marcus Clarke2007-08-261-0/+1
| | | | | | | Fix make dist by making sure ck-sysdeps-freebsd.c is available on all platforms. Signed-off-by: Florent Thoumie <flz@FreeBSD.org>
* Restore copyright.Florent Thoumie2007-08-251-0/+1
| | | | | | | | | Restore copyright in ck-sysdeps-freebsd.c since Marcus "used a lot of the existing functions". Submitted by: marcus Signed-off-by: Florent Thoumie <flz@FreeBSD.org>
* Some more fixes, Now test-vt-monitor works correctly.Florent Thoumie2007-08-252-16/+33
| | | | | | Submitted by: marcus Signed-off-by: Florent Thoumie <flz@FreeBSD.org>
* Add FreeBSD native backend (untested)Florent Thoumie2007-08-252-419/+174
| | | | | | | | | | - Add Marcus' FreeBSD backend for ConsoleKit. Compiles fine but test-vt-monitor doesn't seem to work correctly. - Remove TODO entry. Submitted by: marcus Signed-off-by: Florent Thoumie <flz@FreeBSD.org>
* First attempt a making ConsoleKit work on FreeBSDFlorent Thoumie2007-08-254-2/+679
| | | | | | | | - Add some ifdef's to make the code compile. - Add ck-sysdeps-freebsd.c, based on the Linux version, which means it's using linprocfs right now. Signed-off-by: Florent Thoumie <flz@FreeBSD.org>
* more build fixes for solarisBrian Cameron2007-08-222-3/+11
|
* abstract out the tty device basename stuffWilliam Jon McCann2007-08-214-13/+80
|
* more solaris supportWilliam Jon McCann2007-08-215-43/+136
| | | | based on patch from Brian Cameron.
* display the current vtWilliam Jon McCann2007-08-171-0/+12
|
* add test-vt-monitorWilliam Jon McCann2007-08-171-0/+1
|
* add a vt monitor test, move getfd to sysdeps, add a check for the root userWilliam Jon McCann2007-08-178-112/+230
|
* a few fixes for peer cred stuffWilliam Jon McCann2007-08-171-6/+20
|
* move peercred stuff into sysdeps. add solaris support.William Jon McCann2007-08-163-0/+92
|
* move all proc stuff into ck-sysdepsWilliam Jon McCann2007-08-166-135/+137
|
* make a lt library for proc stuffWilliam Jon McCann2007-08-141-14/+25
|
* make sure the device is a console and add some instructionsWilliam Jon McCann2007-08-141-0/+44
|
* don't bail if /proc/self/fd/0 is not a linkWilliam Jon McCann2007-08-141-2/+1
|
* add some solaris supportWilliam Jon McCann2007-08-143-3/+350
| | | | Based on a patch from Brian Cameron.
* don't use PERROR if not availableWilliam Jon McCann2007-08-071-1/+7
|
* don't use stderr or stdout as variable namesWilliam Jon McCann2007-08-071-11/+11
|