summaryrefslogtreecommitdiff
path: root/src/shared
AgeCommit message (Collapse)Author
2013-12-23bus: switch kdbus bloom filter over to SipHash (from MurmurHash3)Lennart Poettering
Let's try to standardize on a single non-cryptographic hash algorithm, and for that SipHash appears to be the best answer. With this change there are two other hash functions left in systemd: an older version of MurmurHash embedded into libudev for the bloom filters in udev messages (which is hard to update, given that the we probably should stay compatible with older versions of the library). And lookup3 in the journal files (which we could replace for new files, but which is probably not worth the work).
2013-12-23libudev: ship the original MurmurHash2.[ch] fileKay Sievers
2013-12-22Fix extraction of _SYSTEMD_USER_UNITZbigniew Jędrzejewski-Szmek
Units from user services underneath user@.service would not be detected properly.
2013-12-22shared: switch our hash table implementation over to SipHashLennart Poettering
SipHash appears to be the new gold standard for hashing smaller strings for hashtables these days, so let's make use of it.
2013-12-21util: remove union dirent_storageFlorian Weimer
2013-12-21conf-files: replace readdir_r with readdirFlorian Weimer
2013-12-21util: replace readdir_r with readdirFlorian Weimer
This fixes rm_rf_children_dangerous to detect errors during directory reading. Previously, it could dereference an uninitialized pointer.
2013-12-21install: replace readdir_r with readdirFlorian Weimer
The old code incorrectly assumed that readdir_r updates errno.
2013-12-20DEFAULT_PATH_SPLIT_USR macroShawn Landden
2013-12-20logging: reduce send timeout to something more sensibleZbigniew Jędrzejewski-Szmek
For a user, the timeout of 1 min per message seems equivalent to a hang. If journald cannot process a message from PID1 for 10 ms then something is significantly wrong. It's better to lose the message and continue.
2013-12-19def: lower exit-on-idle timeLennart Poettering
2013-12-18udevadm: modernizationZbigniew Jędrzejewski-Szmek
2013-12-18Revert "ptyfwd: make master terminal attributes raw, too"Lennart Poettering
This reverts commit e7d43b3cc30764138c90eaaf95d3d8f49e448890. This broke the console terminal when booting up a container, so let's not do this.
2013-12-18ptyfwd: make master terminal attributes raw, tooLennart Poettering
2013-12-18log: when we log to /dev/console and got disconnected (maybe due to vhangup) ↵Lennart Poettering
reconnect
2013-12-18log: don't reopen /dev/console each time we call log_open()Lennart Poettering
Instead, force reopen it only if we really really have to.
2013-12-18service: watch main pid even in final statesLennart Poettering
In some circumstances, for example when start-up times out we immediately jump into the final state, at which point we still should try to watch the main pid so that the SIGCHLD allows us to quickly move into dead state.
2013-12-18busctl: output a single sorted list of names, including activatable and ↵Lennart Poettering
activated
2013-12-17_noreturn_ --> noreturn for C11 compatShawn Landden
also define noreturn w/o <stdnoreturn.h>
2013-12-17util: no need for in_initrd() cache to be thread-localShawn Landden
the process only has one working directory, and a race is harmless
2013-12-17__thread --> thread_local for C11 compatShawn Landden
Also make thread_local available w/o including <threads.h>. (as the latter hasn't been implemented, but this part is trivial)
2013-12-17libsystemd-bus: true/false instead of yes/no in msg dumpLukasz Skalski
Due to this patch, message dump (for message which includes boolean type) is more consistent with dbus-send (which display true/false instead of yes/no for boolean). It's only simple 'cosmetics change'. ** For dbus-send ** dbus-send --system --dest=org.freedesktop.DBus --type=method_call --print-reply / org.freedesktop.DBus.NameHasOwner string:org.freedesktop.login1 method return sender=org.freedesktop.DBus -> dest=:1.97 reply_serial=2 boolean true ** For libsystemd-bus (without this patch) ** ‣ Type=method_call Endian=l Flags=0 Version=2 Serial=8 Destination=org.freedesktop.DBus Path=/org/freedesktop/DBus Interface=org.freedesktop.DBus Member=NameHasOwner MESSAGE "s" { STRING "org.freedesktop.login1"; }; ‣ Type=method_return Endian=l Flags=1 Version=2 Serial=51 ReplySerial=8 Sender=:1.59 Destination=:1.67 UniqueName=:1.59 WellKnownNames={org.freedesktop.DBus} MESSAGE "b" { BOOLEAN yes; }; For me true/false seems to be better readable than yes/no for BOOLEAN.
2013-12-16systemctl: highlight filenames in catZbigniew Jędrzejewski-Szmek
2013-12-17bus: when entering an existing namespace to connect to a container's system ↵Lennart Poettering
bus also switch over PID namespace This is necessary to ensure that kdbus can collect creds of the destination namespace when connecting.
2013-12-16util: try harder to increase the send/recv buffers of socketsLennart Poettering
If we have the priviliges we will try SO_SNDBUFFORCE/SO_RCVBUFFORCE and only fall back to SO_SNDBUF/SO_RCVBUF if that fails.
2013-12-16core: refuse doing %h, %s, %U specifier resolving in PID 1Lennart Poettering
These specifiers require NSS lookups to work, and we really shouldn't do them from PID 1 hence. With this change they are now only supported for user systemd instance, or when the configured user for a unit is root.
2013-12-15Fix a few signed/unsigned format string issuesZbigniew Jędrzejewski-Szmek
Since numbers involved are all small, behaviour was correct already. https://bugzilla.redhat.com/show_bug.cgi?id=1043304
2013-12-14util: port last code over to new namespace utility callsLennart Poettering
2013-12-14util: when joining a namespace make sure to reset all uids to 0 afterLennart Poettering
the transition
2013-12-14bus: when connecting to a container's kdbus instance, enter namespace firstLennart Poettering
Previously we'd open the connection in the originating namespace, which meant most peers of the bus would not be able to make sense of the PID/UID/... identity of us since we didn't exist in the namespace they run in. However they require this identity for privilege decisions, hence disallowing access to anything from the host. Instead, when connecting to a container, create a temporary subprocess, make it join the container's namespace and then connect from there to the kdbus instance. This is similar to how we do it for socket conections already. THis also unifies the namespacing code used by machinectl and the bus APIs.
2013-12-12shared: Add struct sockaddr_ll to sockaddr_unionPatrik Flykt
2013-12-12log: protect errno when we use assert_return()Lennart Poettering
2013-12-12shared: add missing includeMarc-Antoine Perennou
Needed for socketpair, recv
2013-12-11Do not log all assert_return failuresZbigniew Jędrzejewski-Szmek
% build/journalctl help Assertion 'match_is_valid(data, size)' failed at ../src/journal/sd-journal.c:227, function sd_journal_add_match(). Ignoring. Callers cannot be expect to check all arguments always.
2013-12-11journald: cache cgroup root path, instead of querying it on every incoming ↵Lennart Poettering
log message
2013-12-11journal: add ability to browse journals of running OS containersLennart Poettering
This adds the new library call sd_journal_open_container() and a new "-M" switch to journalctl. Particular care is taken that journalctl's "-b" switch resolves to the current boot ID of the container, not the host.
2013-12-11service: clean up watchdog logic a bitLennart Poettering
2013-12-11ptyfwd: Don't set the output prop of stdin, nor the input props of stdout.Luke Shumaker
It was calling cfmakeraw(3) on the properties for STDIN_FILENO; cfmakeraw sets both input and output properties. If (and only if) stdin and stdout are the same device is this correct. Otherwise, we must change only the input properties of stdin, and only the output properties of stdout.
2013-12-11ptyfwd: Set the size of the PTY base on the size of stdout, not stdin.Luke Shumaker
2013-12-10hashmap: make gcc shut up on old glibcs that lack getauxval()Lennart Poettering
2013-12-10util: check for overflow in greedy_realloc()Lennart Poettering
2013-12-10macro: log assertion at debug level in assert_return()Lennart Poettering
2013-12-06Get rid of our reimplementation of basenameZbigniew Jędrzejewski-Szmek
The only problem is that libgen.h #defines basename to point to it's own broken implementation instead of the GNU one. This can be fixed by #undefining basename.
2013-12-05util: fix misuse of memcmpYuxuan Shui
2013-12-03trivial coding style clean upsThomas Hindoe Paaboel Andersen
- Add space between if/for and the opening parentheses - Place the opening brace on same line as the function (not for udev) From the CODING_STYLE Try to use this: void foo() { } instead of this: void foo() { }
2013-12-03macro: better make IN_SET() macro use const arraysLennart Poettering
2013-12-03bus: add generator that turns old dbus1 activation files into .busname + ↵Lennart Poettering
.service units
2013-12-02bus: add .busname unit type to implement kdbus-style bus activationLennart Poettering
2013-12-02macro: add a macro to test whether a value is in a specified listLennart Poettering
Introduce IN_SET() macro to nicely check whether a value a is one of a few listed values. This makes writing this: if (a == 1 || a == 7 || a == 8 || a == 9) nicer, by allowing this: if (IN_SET(a, 1, 7, 8, 9)) This is particularly useful for state machine enums.
2013-12-01util: add greedy_realloc0()David Herrmann
Compared to greedy_realloc(), this sets all newly allocated memory to 0. As the old variant has been used a lot for string-handling, we avoid changing it as clearing memory is not needed there.