summaryrefslogtreecommitdiff
path: root/src/libsystemd
AgeCommit message (Collapse)Author
2014-08-04bus: always explicitly close bus from main programsLennart Poettering
Since b5eca3a2059f9399d1dc52cbcf9698674c4b1cf0 we don't attempt to GC busses anymore when unsent messages remain that keep their reference, when they otherwise are not referenced anymore. This means that if we explicitly want connections to go away, we need to close them. With this change we will no do so explicitly wherver we connect to the bus from a main program (and thus know when the bus connection should go away), or when we create a private bus connection, that really should go away after our use. This fixes connection leaks in the NSS and PAM modules.
2014-08-03Unify parse_argv styleZbigniew Jędrzejewski-Szmek
getopt is usually good at printing out a nice error message when commandline options are invalid. It distinguishes between an unknown option and a known option with a missing arg. It is better to let it do its job and not use opterr=0 unless we actually want to suppress messages. So remove opterr=0 in the few places where it wasn't really useful. When an error in options is encountered, we should not print a lengthy help() and overwhelm the user, when we know precisely what is wrong with the commandline. In addition, since help() prints to stdout, it should not be used except when requested with -h or --help. Also, simplify things here and there.
2014-07-31kdbus: update headerKay Sievers
2014-07-31Always prefer our headers to system headersZbigniew Jędrzejewski-Szmek
In practice this shouldn't make much difference, but sometimes our headers might be newer, and we want to test them.
2014-07-31Reject invalid quoted stringsZbigniew Jędrzejewski-Szmek
String which ended in an unfinished quote were accepted, potentially with bad memory accesses. Reject anything which ends in a unfished quote, or contains non-whitespace characters right after the closing quote. _FOREACH_WORD now returns the invalid character in *state. But this return value is not checked anywhere yet. Also, make 'word' and 'state' variables const pointers, and rename 'w' to 'word' in various places. Things are easier to read if the same name is used consistently. mbiebl_> am I correct that something like this doesn't work mbiebl_> ExecStart=/usr/bin/encfs --extpass='/bin/systemd-ask-passwd "Unlock EncFS"' mbiebl_> systemd seems to strip of the quotes mbiebl_> systemctl status shows mbiebl_> ExecStart=/usr/bin/encfs --extpass='/bin/systemd-ask-password Unlock EncFS $RootDir $MountPoint mbiebl_> which is pretty weird
2014-07-29time-util: add and use USEC/NSEC_INFINIYKay Sievers
2014-07-26Print kdbus path when opening failsZbigniew Jędrzejewski-Szmek
This makes it easier to debug what is going on.
2014-07-24sd-event: add support for CLOCK_BOOTTIMETom Gundersen
This requires a very recent kernel (3.15), so care should be taken when using this functionality.
2014-07-23networkd: set route protocolDan Williams
All routes added by networkd are currently set RTPROT_BOOT, which according to the kernel means "Route installed during boot" (rtnetlink.h). But this is not always the case as networkd changes routing after boot too. Since the kernel gives more detailed protocols, use them. With this patch, user-configured static routes now use RTPROT_STATIC (which they are) and DHCP routes use RTPROT_DHCP. There is no define for IPv4LL yet, so those are installed as RTPROT_STATIC (though perhaps RTPROT_RA is better?). [tomegun: fixup src/network/networkd-link.c:972:33: error: too few arguments to function 'route_new_dynamic']
2014-07-21sd-rtnl: uncomment bond rtnl constantsSusant Sahani
2014-07-18change type for address family to "int"Lennart Poettering
Let's settle on a single type for all address family values, even if UNIX is very inconsitent on the precise type otherwise. Given that socket() is the primary entrypoint for the sockets API, and that uses "int", and "int" is relatively simple and generic, we settle on "int" for this.
2014-07-18sd-rtnl: make string returned by sd_rtnl_message_read_string() constLennart Poettering
2014-07-17sd-login: always use "indices" as plural of "index"Lennart Poettering
So far both "indexes" and "indices" was used. Let's clean this up, and stick to indices, since it appears to be used more frequently.
2014-07-16test-tables: add new entriesZbigniew Jędrzejewski-Szmek
One missing string found. A few things had to be moved around to make it possible to test them.
2014-07-11sd-event: don't require a signal event source to be enabled for the child ↵Lennart Poettering
event source to work
2014-07-11sd-event: always call epoll_ctl() on mask-updates if edge-triggeredDavid Herrmann
A call to sd_event_source_set_io_events() skipps calling into the kernel if the new event-mask matches the old one. This is safe for level-triggered sources as the kernel moves them onto the ready-list automatically if events change. However, edge-triggered sources might not be on the ready-list even though events are present. A call to sd_event_source_set_io_events() with EPOLLET set might thus be used to just move the io-source onto the ready-list so the next poll will return it again. This is very useful to avoid starvation in priority-based event queues. Imagine a read() loop on an edge-triggered fd. If we cannot read data fast enough to drain the receive queue, we might decide to skip reading for now and schedule it for later. On edge-triggered io-sources we have to make sure it's put on the ready-list so the next dispatch-round will return it again if it's still the highest priority task. We could make sd-event handle edge-triggered sources directly and allow marking them ready again. However, it's much simpler to let the kernel do that for now via EPOLL_CTL_MOD.
2014-07-11endian: explicitly include endian.h wherever we want to use __BYTE_ORDERLennart Poettering
2014-07-11nss-mymachines: add new NSS module for automatically resolving addresses of ↵Lennart Poettering
all local containers
2014-07-11build-sys: export sd_path APIsLennart Poettering
2014-07-10libsystemd: make use of our common sockaddr_union everywhereLennart Poettering
2014-07-10shared: split out in_addr related calls from socket-util.[ch] into its ↵Lennart Poettering
private in-addr-util.[ch] These are enough calls for a new file, and they are sufficiently different from the sockaddr-related calls, hence let's split this out.
2014-07-10nss-myhostname: move local address listing logic into shared, so that we can ↵Lennart Poettering
make use of it from machined
2014-07-10event: pull in sd-event.h from event-util.hLennart Poettering
2014-07-03sd-path: add missing headerUmut Tezduyar Lindskog
2014-07-03shared: rename ARCH_TUPLE to LIB_ARCH_TUPLELennart Poettering
This is really just about library locations, hence clarify that we don't assume this to be anything but that.
2014-07-03sd-login: use the same code for verfiying machine names everywhereLennart Poettering
2014-07-03bus: close a bus that failed to connectLennart Poettering
2014-07-03sd-bus: support connecting to remote hosts, directly into containersLennart Poettering
systemctl -H root@foobar:waldi will now show a list of services running on container "waldi" on host "foobar", using "root" for authenticating at "foobar". Since entereing a container requires priviliges, this will only work correctly for root logins.
2014-07-02sd-bus: when an event loop terminates, explicitly close the busLennart Poettering
This makes sure we actually release the bus and all the messages it references.
2014-07-02bus: drop bus/message GC logicLennart Poettering
When a caller drops all references to a bus and its messages while the messages where still queue, this causes the bus to reference the messages, and the messages to reference the bus, without anybody else keeping a reference, which is something we so far considered a leak, and tried to fix with a GC logic that would recognize cases like this, and drop the reference. This GC logic has been broken sofar, and remained unfixed. This commit removes it altogther, replacing it with nothing. The rationale is that simply because all refs to the bus have been dropped its queued messages should *still* be written to the bus, even if the caller doesn't retain any reference to either bus nor message. This means it was actually wrong to attempt to clean up the bus in this case. The proper way how applications should handle this is by explicitly invoking sd_bus_close(), when they want busses to go away. This is probably want they want to do anyway to avoid getting spurious callbacks after they stopped using a bus.
2014-07-02path: add new "systemd-path" utility for querying paths described in ↵Lennart Poettering
file-hierarchy(7) This new tool is based on "sd-path", a new (so far unexported) API for libsystemd, that can hopefully grow into a workable API covering /opt and more one day.
2014-07-01networkd: netdev - add dummy supportTom Gundersen
2014-06-18socket-util: introduce in_addr_union similar to sockaddr_union and make use ↵Lennart Poettering
of it everywhere
2014-06-16sd-rtnl: add support for vxlan rtnl attributesSusant Sahani
This patch adds vxlan rtnl attributes to sd-rtnl
2014-06-11build-sys: update library versionsLennart Poettering
2014-06-06sd-bus: don't allow creating message objects that are not attached to a busLennart Poettering
It seems unnecessary to support this, and we rather should avoid allowing this at all, so that people don't program against this sloppily and we end up remarshalling all the time...
2014-06-05sd-daemon: introduce sd_pid_notify() and sd_pid_notifyf()Lennart Poettering
sd_pid_notify() operates like sd_notify(), however operates on a different PID (for example the parent PID of a process). Make use of this in systemd-notify, so that message are sent from the PID specified with --pid= rather than the usually shortlived PID of systemd-notify itself. This should increase the likelyhood that PID 1 can identify the cgroup that the notification message was sent from properly.
2014-06-05bus: make use of sd_bus_try_close() in exit-on-idle servicesLennart Poettering
2014-06-05sd-event: restore correct timeout behaviourLennart Poettering
2014-06-05kdbus: when uploading bus name policy, resolve users/groups out-of-processLennart Poettering
It's not safe invoking NSS from PID 1, hence fork off worker processes that upload the policy into the kernel for busnames.
2014-06-02networkd: introduce vti tunnelSusant Sahani
This patch enables vti tunnel support. example conf: file : vti.netdev [NetDev] Name=vti-tun Kind=vti MTUBytes=1480 [Tunnel] Local=X.X.X.X Remote=X.X.X.X file: vti.network [Match] Name=em1 [Network] Tunnel=vti-tun TODO: Add more attributes for vti tunnel IFLA_VTI_IKEY IFLA_VTI_OKEY
2014-06-02networkd: introduce gre tunnelSusant Sahani
This patch enables gre tunnel support. example conf: file : gre.netdev [NetDev] Name=gre-tun Kind=gre MTUBytes=1480 [Tunnel] Local=X.X.X.X Remote=X.X.X.X file: gre.network [Match] Name=em1 [Network] Tunnel=gre-tun TODO: Add more attributes for gre tunnel IFLA_GRE_IFLAGS IFLA_GRE_IFLAGS IFLA_GRE_IKEY IFLA_GRE_OKEY
2014-05-24timedated: refuse manual system time updates when automatic timesync is enabledKay Sievers
2014-05-22cgroups: simplify CPUQuota= logicLennart Poettering
Only accept cpu quota values in percentages, get rid of period definition. It's not clear whether the CFS period controllable per-cgroup even has a future in the kernel, hence let's simplify all this, hardcode the period to 100ms and only accept percentage based quota values.
2014-05-19sd-login: add C API to query primary session of a userLennart Poettering
2014-05-18machined: add logic to query IP addresses of containersLennart Poettering
2014-05-16bus: fix unitialized variable access in error pathZbigniew Jędrzejewski-Szmek
2014-05-15sd-bus: make sure we properly handle NULL callback functionsLennart Poettering
2014-05-15sd-bus: fix an assert when running in kdbus modeLennart Poettering
2014-05-15resolve: fix copy/paste errorLennart Poettering