summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-11-29libsystemd-bus: sd_bus_request_name: fix return value for kdbusDaniel Mack
kdbus returns -EALREADY if the requesting connection is already the owner of a name, and -EEXIST if the name already exists and the connection is not able to take it over. Also, n->flags needs a translation as well to match the SD_BUS_* enum values.
2013-11-29libsystemd-bus: kernel: add sd_bus_kernel_translate_request_name_flagsDaniel Mack
Flags used to request a name from kdbus are not identical to what DBus and sd_bus use internally. Introduce a simple function to do the translation for us. It's factored out to a separate function so the dbus-driver instance can make use of it as well.
2013-11-29libsystemd-bus: make sd_bus_list_names return all connections, including ↵Daniel Mack
unique names
2013-11-29libsystemd-bus: add kdbus support for sd_bus_list_names()Daniel Mack
kdbus will tell us the minimum buffer size it needs in case the default 8kb buffer doesn't suffice.
2013-11-29libsystemd-bus: bring definitions in sync with kdbusDaniel Mack
In particular, KDBUS_ITEM_NEXT is now called KDBUS_PART_NEXT, and KDBUS_ITEM_FOREACH was renamed to KDBUS_PART_FOREACH and takes one more argument to make it more flexible.
2013-11-29bus: when turning a buffer into a sd_bus_message avoid creating zero-length ↵Lennart Poettering
parts
2013-11-29Revert "build-sys: avoid warnings from assert_cc"Lennart Poettering
This reverts commit f1a1264d13b31b9f5521f482d9a5a9d78da55efb. We can turn this off with a pragma only on old gcc. Newer gcc doesn't need this, so let's not turn this off for everybody.
2013-11-29bus: creds - ignore EINVAL when acessing the (inactive) LSM /proc interfaceKay Sievers
2013-11-29bus: Add KDBUS_MSG_SRC_NAMES to bus_kernel_make_message() functionLukasz Skalski
2013-11-28busctl: drop bus driver name from list of servicesLennart Poettering
2013-11-28bus: merge sd_bus_get_owner() and sd_bus_get_owner_creds() into one callLennart Poettering
Since the backing ioctl for this on kdbus is the same we retain atomicity this way.
2013-11-28Remove some unused variablesZbigniew Jędrzejewski-Szmek
2013-11-28build-sys: use C99Zbigniew Jędrzejewski-Szmek
We already use various constructs, so let's just admit that we're using C99.
2013-11-28virt: split detect_vm into separate functionsZbigniew Jędrzejewski-Szmek
It didn't build on arm. Let's simplify it a bit by splitting x86 specific parts out, which should also make things easier when arm virtualization support is added.
2013-11-28build-sys: make multi-seat-x optionalZbigniew Jędrzejewski-Szmek
At some point it should become disabled by default. http://lists.freedesktop.org/archives/systemd-devel/2013-November/014869.html
2013-11-28core: fix SetUnitPropertiesMarc-Antoine Perennou
2013-11-28Revert "link-config: match length for kernel commandline option"Tom Gundersen
This reverts commit da66338e17f4df04d9d7cc22ec971b416d57761e. It is superseeded by 70f75a523b16ad495a7791d595ee3eececf75953
2013-11-28clean up TODOLennart Poettering
2013-11-28bus: add new sd_bus_creds object to encapsulate process credentialsLennart Poettering
This way we can unify handling of credentials that are attached to messages, or can be queried for bus name owners or connection peers. This also adds the ability to extend incomplete credential information with data from /proc, Also, provide a convenience call that will automatically determine the most appropriate credential object for an incoming message, by using the the attached information if possible, the sending name information if available and otherwise the peer's credentials.
2013-11-28util: fix handling of trailing whitespace in split_quoted()Lennart Poettering
Inspired by a patch by Lukas Nykryn.
2013-11-28man: move socket-proxyd man page to section 8, since it is not in the $PATHLennart Poettering
2013-11-28man: get rid of shell script example in systemd-socket-proxyd man pageLennart Poettering
2013-11-28Revert "socket-proxyd: Add --listener option for listener/destination pairs."Lennart Poettering
This reverts commit adcf4c81c58511b67644e17fa743d1729d3c9ccf. We have a better solution for the problem of making two processes run in the same namespace, and --listener is not needed hence and should be dropped. Conflicts: man/systemd-socket-proxyd.xml
2013-11-28logind: remove unused session->closing fieldDavid Herrmann
This field is always false, drop it. If you want a reliable way to get session state, call session_get_state(). Testing for any flags directly doesn't work currently so don't pretend it would.
2013-11-28logind: require VTs on seat0 and forbid elsewhereDavid Herrmann
Sessions on seat0 must pass us a vtnr, otherwise, you shouldn't try attaching it to seat0. For seats without VTs, we do the exact opposite: we forbid VTs. There can be odd situations if the session-files contain invalid combinations. However, we try to keep sessions alive and restore state as good as possible.
2013-11-28logind: make VT numbers unsignedDavid Herrmann
Fix the whole code to use "unsigned int" for vtnr. 0 is an invalid vtnr so we don't need negative numbers at all. Note that most code already assumes it's unsigned so in case there's a negative vtnr, our code may, under special circumstances, silently break. So this patch makes sure all sources of vtnrs verify the validity. Also note that the dbus api already uses unsigned ints.
2013-11-28networkd: fix several Address entries in [Network] sectionTom Gundersen
2013-11-28event: allow EPOLLET as event flagDavid Herrmann
EPOLLET enables edge-triggered mode (see epoll(7) for more). For most use-cases, level-triggered is just fine, but for master-TTYs we need edge-triggered to catch EPOLLHUP. master-TTYs signal EPOLLHUP if no client is connected, but a client may connect some time later (same happens during vhangup(2)). However, epoll doesn't allow masking EPOLLHUP so it's signaled constantly. To avoid this, edge-triggered mode is needed.
2013-11-28logind: mute/restore VT on behalf of session controllersDavid Herrmann
If a session process calls TakeControl(), we now put the VT into KD_GRAPHICS+K_OFF mode. This way, the new session controller can solely rely on the logind-dbus API to manage the session. Once the controller exits or calls ReleaseControl(), we restore the VT. We also restore it, if we lost a controller during crash/restart (but only if there really *was* a controller previously). Note that we also must put the VT into VT_PROCESS mode. We want VT_AUTO semantics, but VT_AUTO+KD_GRAPHICS actually disables *all* VT switches (who came up with that great idea?). Hence, we set VT_PROCESS for logind but acknowledge *all* requests immediately. If a compositor wants custom VT setups, they can still get this by *first* calling TakeControl() and afterwards setting up the VT. logind doesn't touch the VT during controller runtime, only during setup/teardown. This is actually what weston already does.
2013-11-28logind: restore session-controller after crashDavid Herrmann
We now save the unique bus-name of a session-controller as CONTROLLER=%s in the session files. This allows us to restore the controller after a crash or restart. Note that we test whether the name is still valid (dbus guarantees that the name is unique as long as the machine is up and running). If it is, we know that the controller still exists and can safely restore it. Our dbus-name-tracking guarantees that we're notified once it exits. Also note that session-devices are *not* restored. We have no way to know which devices where used before the crash. We could store all these on disk, too, or mark them via udev. However, this seems to be rather cumbersome. Instead, we expect controllers to listen for NewSession signals for their own session. This is sent on session_load() and they can then re-request all devices. The only race I could find is if logind crashes, then the session controller tries calling ReleaseControl() (which will fail as logind is down) but keeps the bus-connection valid for other independent requests. If logind is restarted, it will restore the old controller and thus block the session. However, this seems unlikely for several reasons: - The ReleaseControl() call must occur exactly in the timespan where logind is dead. - A process which calls ReleaseControl() usually closes the bus-connection afterwards. Especially if ReleaseControl() fails, the process should notice that something is wrong and close the bus. - A process calling ReleaseControl() usually exits afterwards. There may be any cleanup pending, but other than that, usual compositors exit. - If a session-controller calls ReleaseControl(), a session is usually considered closing. There is no known use-case where we hand-over session-control in a single session. So we don't care whether the controller is locked afterwards. So this seems negligible.
2013-11-28logind: ignore failing close() on session-devicesDavid Herrmann
Unfortunately, close() on a revoked/removed character-device fails with ENODEV. I tried tracking this down in the kernel, but couldn't figure out were exactly it comes from. However, can be easily reproduced with: fd = open("/dev/input/event0", O_RDWR); ioctl(fd, EVIOCREVOKE, 0); r = close(fd); A second close on @fd would return EBADF so the close is actually valid. We simply ignore close() errors for all session-devices as their access may be revoked asynchronously, or the device might get unplugged. We use close_nointr() in case anyone ever looks at the return value (or anyone runs "grep 'close(' -r src/" to find broken close() calls). Fixes: systemd-logind[31992]: Assertion 'close_nointr(fd) == 0' failed at src/shared/util.c:185, function close_nointr_nofail(). Aborting.
2013-11-28bus: add bus_name_has_owner() helperDavid Herrmann
Small helper to run a synchronous "NameHasOwner" request on the dbus-daemon.
2013-11-28login: revert lazy session-activation on non-VT seatsDavid Herrmann
Existing applications like gdm already depend on new sessions to get immediately activated on seats without VTs. Fixes a bug reported as: [systemd-devel] systemd 208:trouble with inactive user sessions at non-seat0 seats This patch restores the original behavior. We either need to add a new flag for session-creation or some other heuristic to avoid activating new sessions in the future.
2013-11-28build-sys: avoid warnings from assert_ccZbigniew Jędrzejewski-Szmek
2013-11-28po: install translationsZbigniew Jędrzejewski-Szmek
2013-11-28catalog,po: add Russian translationSergey Ptashnick
2013-11-28catalog: fix typos in the French translationSylvain Plantefeve
2013-11-28bus: update kdbus.h and always subscribe to KDBUS_HELLO_ATTACH_NAMESKay Sievers
2013-11-28automount: log info about triggering processKay Sievers
2013-11-28core: initialize variableKay Sievers
2013-11-27TODO: add sd-rtnl itemsTom Gundersen
2013-11-27Revert "socket-proxyd: Add --listener option for listener/destination pairs."Lennart Poettering
This reverts commit adcf4c81c58511b67644e17fa743d1729d3c9ccf. We have a better solution for the problem of making two processes run in the same namespace, and --listener is not needed hence and should be dropped. Conflicts: man/systemd-socket-proxyd.xml
2013-11-27namespace: comment typo fixLennart Poettering
2013-11-27bus: properly handle if we get disconnected during HELLO phaseLennart Poettering
2013-11-27service: add the ability for units to join other unit's PrivateNetwork= and ↵Lennart Poettering
PrivateTmp= namespaces
2013-11-27TODO: add dbus runtime depedencyTom Gundersen
2013-11-27networkd: Initialize variable to NULLPatrik Flykt
If any number of arguments are given, _cleanup_manager_free_ is used with unitialized memory causing a crash.
2013-11-27TODO: remove dbus requirementKay Sievers
2013-11-27updates for TODO and READMELukasz Skalski
* library support for setns() system call was added to glibc version 2.14 (setns() call is use in src/machine/machinectl.c and src/libsystemd-bus-container.c) * utf8 validation call are already exported (via sd-utf8.c file) - commit - 369c583b3fb3d672ef469d53141e274ec9d2e8a7
2013-11-27logind: log which process is delaying suspend and not closing locksLennart Poettering