summaryrefslogtreecommitdiff
path: root/src/shared
AgeCommit message (Collapse)Author
2014-08-22core: add support for a configurable system-wide start-up timeoutLennart Poettering
When this system-wide start-up timeout is hit we execute one of the failure actions already implemented for services that fail. This should not only be useful on embedded devices, but also on laptops which have the power-button reachable when the lid is closed. This devices, when in a backpack might get powered on by accident due to the easily reachable power button. We want to make sure that the system turns itself off if it starts up due this after a while. When the system manages to fully start-up logind will suspend the machine by default if the lid is closed. However, in some cases we don't even get as far as logind, and the boot hangs much earlier, for example because we ask for a LUKS password that nobody ever enters. Yeah, this is a real-life problem on my Yoga 13, which has one of those easily accessible power buttons, even if the device is closed.
2014-08-22missing.h: add a cpp warning for __NR_memfd_create on MIPSDaniel Mack
2014-08-22missing.h: add fake __NR_memfd_create for MIPSDaniel Mack
We don't have the correct __NR_memfd_create syscall number yet, so set it to 0xffffffff for now to prevent compile time errors.
2014-08-22shared: add MAXSIZE() and use it in resolvedDavid Herrmann
The MAXSIZE() macro takes two types and returns the size of the larger one. It is much simpler to use than MAX(sizeof(A), sizeof(B)) and also avoids any compiler-extensions, unlike CONST_MAX() and MAX() (which are needed to avoid evaluating arguments more than once). This was suggested by Daniele Nicolodi <daniele@grinta.net>. Also make resolved use this macro instead of CONST_MAX(). This enhances readability quite a bit.
2014-08-21install: simplify usage of _cleanup_ macrosLennart Poettering
2014-08-21service,strv: introduce strv_find_startswith() and make use of itLennart Poettering
Unlike strv_find_prefix() the new call will return a pointer to the suffix of the item we found, instead of the whole item. This is more closer inline with what startswith() does, and allows us to simplify a couple of invocations.
2014-08-21util: make asynchronous_close() really work like an asynchronous version of ↵Lennart Poettering
safe_close() Save/restore errno, like we do in safe_close(). And don't fork a thread if the parameter is already negative.
2014-08-21util: simplify close_nointr() a bitLennart Poettering
2014-08-21util: change return value of startswith() to non-constLennart Poettering
This way we can use it on non-const strings, and don't end up with a const'ified result. This is similar to libc's strstr() which also takes a const string but returns a non-const one.
2014-08-20util: return after freeing all members of arrayLukas Nykryn
2014-08-20systemctl: fail in the case that no unit files were foundLukas Nykryn
Previously systemctl died with message -bash-4.2# systemctl --root /rawhi list-unit-files (src/systemctl/systemctl.c:868) Out of memory. in the case that no unit files were found in the --root or the directory did not exist. So lets return ENOENT in the case that --root does not exist and empty list in the case that there are no unit files.
2014-08-20indentation/spurious whitespace fixesLennart Poettering
2014-08-19memfd: escape the comm field we get from PR_GET_NAME, but assume everything ↵Lennart Poettering
else is proper UTF8
2014-08-19memfd: skip utf-8 escaping if we use a name that was passed inDaniel Mack
If a name was passed in as function argument, trust it, and don't do utf-8 encoding for them. Callers are obliged to check the names themselves, and escape them in case they use anything they got from the outside world.
2014-08-19memfd: reduce name escaping logic to utf-8 checksDaniel Mack
As memfds are now created by proper kernel API, and not by our functions, we can't rely on names being escaped/unescaped according to our current logic. Thus, the only safe way is to remove the escaping and when reading names, just escape names that are not properly encoded in UTF-8. Also, remove assert(name) lines from the memfd creation functions, as we explictly allow name to be NULL.
2014-08-19memfd: simplify APILennart Poettering
Now, that the memfd stuff is not exported anymore, we can simplify a few things: Use assert() instead of assert_return(), since this is used internally only, and we should be less permissive then. No need to pass an allocated fd back by call-by-reference, we can just directly return it.
2014-08-19Revert "socket: introduce SELinuxLabelViaNet option"Lennart Poettering
This reverts commit cf8bd44339b00330fdbc91041d6731ba8aba9fec. Needs more discussion on the mailing list.
2014-08-19tmpfiles: add new 'r' line type to add UIDs/GIDs to the pool to allocate ↵Lennart Poettering
UIDs/GIDs from This way we can guarantee a limited amount of compatibility with login.defs, by generate an appopriate "r" line out of it, on package installation.
2014-08-19socket: introduce SELinuxLabelViaNet optionMichal Sekletar
This makes possible to spawn service instances triggered by socket with MLS/MCS SELinux labels which are created based on information provided by connected peer. Implementation of label_get_child_label derived from xinetd. Reviewed-by: Paul Moore <pmoore@redhat.com>
2014-08-19util: remove unused FOREACH_WORD_SEPARATOR_QUOTEDLennart Poettering
2014-08-19sysusers: add another column to sysusers files for the home directoryLennart Poettering
2014-08-19hashmap: try to use the existing 64bit hash functions for dev_t if it is 64bitLennart Poettering
2014-08-18util: try to be a bit more NFS compatible when checking whether an FS is ↵Lennart Poettering
writable https://bugs.freedesktop.org/show_bug.cgi?id=81169
2014-08-18memfd: internalize functions, drop sd_memfd typeDaniel Mack
Remove the sd_ prefix from internal functions and get rid of the sd_memfd type. As a memfd is now just a native file descriptor, we can get rid of our own wrapper type, and also use close() and dup() on them directly.
2014-08-18memfd: use _cleanup_ if applicableDavid Herrmann
We now have a sd_memfd_freep helper, use it if applicable.
2014-08-18memfd: map unsealed files as MAP_SHAREDDavid Herrmann
We need to map sealed files as MAP_PRIVATE so far as the kernel treats MAP_SHARED as writable mapping (you can run mprotect(PROT_WRITE) at any time on those). However, unsealed files must be mapped as MAP_SHARED. Otherwise, we never end up writing to the real file.
2014-08-18memfd: disallow importing memfds without sealingDavid Herrmann
We use memfds for sealing. Lets not bother with memfds created without MFD_ALLOW_SEALING for now. They're equivalent to random shmem files, so don't bother treating them as sealable memfds.
2014-08-18memfd: don't open kdbus for memfdDavid Herrmann
No reason to open /dev/kdbus/control if we want memfds. memfd_create() is always available.
2014-08-18memfd: internalize headerDavid Herrmann
Fix the memfd.h header to use handy features like #pragma, cleanup-funcs and util.h. Also drop the EXTERN-C macros.
2014-08-18memfd: fix memfd_create() syscall wrapperDaniel Mack
Unlike earlier versions, the syscall only takes 2 arguments in its final version, not 3.
2014-08-18memfd: move code from public library to src/sharedDaniel Mack
Don't expose generic kernel API via libsystemd, but keep the code internal for our own usage.
2014-08-17kdbus: switch over to generic memfd implementation (ABI+API break)Daniel Mack
2014-08-16sd-bus,log: remove unused variablesThomas Hindoe Paaboel Andersen
2014-08-15main,log: parse the log related kernel command line parameters at one place ↵Lennart Poettering
only, and for all tools Previously, we ended up parsing some of them three times: in main.c when processing the kernel cmdline, in main.c when processing the process cmdline (only for containers), and in log.c again. Let's streamline this, and only parse them in log.c In PID 1 also make sure we parse "quiet" first, and then override this with the more specific checks in log.c
2014-08-15main: minor code modernization for initializing the consoleLennart Poettering
2014-08-15macro: add CONST_MAX() macroDavid Herrmann
The CONST_MAX() macro is similar to MAX(), but verifies that both arguments have the same type and are constant expressions. Furthermore, the result of CONST_MAX() is again a constant-expression. CONST_MAX() avoids any statement-expressions and other non-trivial expression-types. This avoids rather arbitrary restrictions in both GCC and LLVM, which both either fail with statement-expressions inside type-declarations or statement-expressions inside static-const initializations. If anybody knows how to circumvent this, please feel free to unify CONST_MAX() and MAX().
2014-08-15macro: const'ify MIN/MAX/... macrosDavid Herrmann
We must add 'const' to local variables in statement-expressions to guarantee that the macros can produce constant-expressions if given such. GCC seems to ignore this, but LLVM/clang requires it (understandably).
2014-08-15util: make is_localhost() check for 'localdomain' too, so that we can use it ↵Lennart Poettering
for both validating domains and host names
2014-08-15util: never use ether_ntoa(), since it formats with %x, not %02x, which ↵Lennart Poettering
makes ethernet addresses look funny
2014-08-15cgroup: never try to create files in cgroupfs, only open them for writingLennart Poettering
This should have the benefit that cg_set_attribute() returns ENOENT instead of EACCESS when we use it for non-existing attributes.
2014-08-15core: Refuse mount on symlinkTimofey Titovets
2014-08-14core: move status line ellipsation to 50% of the lineLennart Poettering
http://lists.freedesktop.org/archives/systemd-devel/2014-July/021591.html
2014-08-13util: allow strappenda to take any number of argsDave Reisner
This makes strappenda3 redundant, so we remove its usage and definition. Add a few tests along the way for sanity.
2014-08-14timer: order OnCalendar units after timer-sync.target if DefaultDependencies=noTobias Geerinckx-Rice
Avoids triggering timers prematurely on systems with significantly inaccurate clocks, or some embedded platforms that lack one entirely.
2014-08-13resolved: skip IPv6 LLMNR if IPv6 is not availableLennart Poettering
2014-08-12timesyncd: move the generic sockaddr_equal() call to socket-util.hLennart Poettering
2014-08-12networkd: expose a global list of DNS and NTP servers in the state fileLennart Poettering
2014-08-12networkd: add minimal client tool "networkd" to query network statusLennart Poettering
In the long run this should become a full fledged client to networkd (but not before networkd learns bus support). For now, just pull interesting data out of networkd, udev, and rtnl and present it to the user, in a simple but useful output.
2014-08-11networkd: monopolize in_addr utility functions in shared/in-addr-util.hLennart Poettering
Primarily, this means we get rid of net_parse_inaddr(), and replace it everywhere with in_addr_from_string() and in_addr_from_string_auto(). These functions do not clobber the callers arguments on failure, which is more close to our usual coding style.
2014-08-11log: never ever log to syslog from PID 1, log to the journal againLennart Poettering
We don't support journal-less systems anyway, so let's avoid the confusion.