summaryrefslogtreecommitdiff
path: root/src/libsystemd
AgeCommit message (Collapse)Author
2014-04-21silence warningsThomas Hindoe Paaboel Andersen
2014-04-20sd-rtnl: log when queues are exhaustedTom Gundersen
2014-04-19sd-rtnl: socet_read_message - make sure we only shrink the partial rqueue ↵Tom Gundersen
when processing multi-part message
2014-04-19sd-rtnl: message - expose DUMP flag in the apiTom Gundersen
2014-04-19sd-rtnl: add multi-part message testTom Gundersen
2014-04-19sd-rtnl: message - concatenate multi-part messages from different packetsTom Gundersen
2014-04-19sd-rtnl: message - don't put NULL message on rqueueTom Gundersen
If nothing interesting was receieved we should not put anything on the queue.
2014-04-19sd-rtnl: message - make room for all pending messages, not just the firstTom Gundersen
Also, don't actually read any of the message when peeking, just get its length.
2014-04-14sd-rtnl: message_addr - allow dumping of messagesTom Gundersen
2014-04-14sd-rtnl: socket_read - use a read bufferTom Gundersen
Rather than allocating/freeing memory for each message read, keep a global read buffer in the rtnl object. Also, rather than using a fixed size, peek at the pending message header to get the message size and reallocate as necessary.
2014-04-14sd-rtnl: multi-part message - store as linked-list rather than independent ↵Tom Gundersen
messages This means the API can stay the same as for single-part messages by simply passing the head message around. Unrefing the head of the linked list unrefs the whole list.
2014-04-14sd-rtnl: message_addr - expose a few more gettersTom Gundersen
2014-04-13build-sys: add Makefile symlinkLennart Poettering
2014-04-11sd-rtnl: use SO_PASSCREDTom Gundersen
This unifies the socket handling with other sd-* libraries.
2014-04-10bus: catch up with kdbus changes (ABI break)Kay Sievers
2014-04-10bus: update kdbus.hKay Sievers
2014-04-10sd-rtnl: don't drop multi-part messagesTom Gundersen
We still only return the first message part in callback/synchronous calls.
2014-04-10sd-rtnl: use GREEDY_REALLOC for message queuesTom Gundersen
2014-04-05build-sys: add newly used if_link.h defines to missing.hZbigniew Jędrzejewski-Szmek
Reported-by: Arnaud Gaboury <arnaud.gaboury@gmail.com>
2014-04-03sd-rtnl: fix broken test cases and add support for tunnelSusant Sahani
This patch fixes the broken test-cases for sd-rtnl and add support for ipip and sit tunnel. [tomegun: minor fixups]
2014-04-03networkd: smooth transition from ipv4ll to dhcp addressUmut Tezduyar Lindskog
Currently when both ipv4ll and dhcp are enabled, ipv4ll address (if one has been claimed) is removed when dhcp address is aquired. This is not the best thing to do since there might be clients unaware of the removal trying to communicate. This patch provides a smooth transition between ipv4ll and dhcp. If ipv4ll address was claimed [1] before dhcp, address is marked as deprecated. Deprecated address is still a valid address and packets can be received on it but address cannot be selected as a source address. If dhcp lease cannot be extended, then ipv4ll address is marked as valid again. [1] If there is no collision, claiming IPv4LL takes between 4 to 7 seconds.
2014-03-31sd-rtnl: modernize a bitTom Gundersen
2014-03-31doc: fix items' names in PORTING-DBUS1Lukasz Skalski
2014-03-31sd-rtnl: fix off-by-oneSteven Siloti
Also fix type parameter passed to new0
2014-03-29sd-rtnl: types - hook up bond typesTom Gundersen
Reported by Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
2014-03-29sd-rtnl: message - fix clang compile warningTom Gundersen
2014-03-28sd-rtnl: message - don't log about out-of-range attribute typesTom Gundersen
We will easily get these when running on newer kernels. However, we can safely ignore them as we anyway don't know what to do with them.
2014-03-28sd-rtnl: rework rtnl type systemTom Gundersen
Use a static table with all the typing information, rather than repeated switch statements. This should make it a lot simpler to add new types. We need to keep all the type info to be able to create containers without exposing their implementation details to the users of the library. As a freebee we verify the types of appended/read attributes. The API is extended to nicely deal with unions of container types.
2014-03-28sd-rtnl: message - fix memory leakTom Gundersen
2014-03-28sd-rtnl: message - don't reference associated rtnl objectTom Gundersen
The object is not currently used, so just drop the refenence. If/when we end up using the object in the future, we must make sure to deal with possible mutual references between rtnl busses and their queued messages; as is done in sd-bus.
2014-03-27silence warningsThomas Hindoe Paaboel Andersen
2014-03-25sd-rtnl: add support for tunnel attributesSusant Sahani
Added support for tunneling netlink attrributes (ipip, gre, sit). These works with kernel module ipip, gre and sit . The test cases are moved to a separate file and manual test as well because they require respective kernel modules as well.
2014-03-25sd-rtnl: message - don't try to enter unsupported containersTom Gundersen
Currently we only support containers in RTM_*LINK messages. Reported-by: "Thomas H.P. Andersen <phomes@gmail.com>"
2014-03-25sd-event: don't accidentally turn of watchdog timer event if we determine 0Lennart Poettering
2014-03-24sd-event: initialization perturbation value right before we use itLennart Poettering
That way, we don't forget to initialize it when the watchdog is initialized before all event sources.
2014-03-24sd-daemon: fix incorrect variable accessLennart Poettering
2014-03-24networkd: fix a couple of memory leaksLennart Poettering
2014-03-24sd-rtnl: tests - drop redundant testsTom Gundersen
These tests were both broken and redundant, so let's drop them.
2014-03-24build-sys: add makefile linkLennart Poettering
2014-03-24sd-rtnl: message parsing - log when ignoring message attributesTom Gundersen
2014-03-24sd-rtnl: add sd_rtnl_message_enter_container()Tom Gundersen
Extend rta_offset_tb into a stack of offset tables, one for each parent of the current container, and make sd_rtnl_message_{enter,exit}_container() pop/push to this stack. Also make sd_rtnl_message_rewind() parse the top-level container, and use this when reading a message from the socket. This changes the API by dropping the now redundant sd_rtnl_message_read() method.
2014-03-24sd-bus: invert bus->is_kernel check in sd_bus_get_peer_creds()Daniel Mack
The bug was introducted in a3d59cd1 ("sd-bus: don't use assert_return() to check for disconnected bus connections")
2014-03-24util: replace close_pipe() with new safe_close_pair()Lennart Poettering
safe_close_pair() is more like safe_close(), except that it handles pairs of fds, and doesn't make and misleading allusion, as it works similarly well for socketpairs() as for pipe()s...
2014-03-24sd-event: rework API to support CLOCK_REALTIME_ALARM and ↵Lennart Poettering
CLOCK_BOOTTIME_ALARM, too
2014-03-23sd-rtnl: message - protect against SEGFAULT when reading messagesTom Gundersen
Make sure the returned data fits the datatype we requested. Otherwise return -EIO. Also fix a broken test that this exposed.
2014-03-23sd-rtnl: message - don't skip parts of message when parsingTom Gundersen
If a message type occurs repeatedly let the last one win. Also, don't skip type == MAX. Based on patch from: Susant Sahani <susant@redhat.com>
2014-03-22sd-bus: mark sd_bus_unref() as broken regarding self-refsDavid Herrmann
If you allocate a message with bus==NULL and then unref the main bus, it will free your message underneath and your program will go boom! To fix that, we really need to figure out what the semantics for self-references (m->bus) should be and when/where/what accesses are actually allowed. Same is true for the pseudo-thread-safety we employ..
2014-03-22sd-bus: add note about sd_bus_unref() recursionDavid Herrmann
In sd_bus_unref() we check for self-reference loops and destruct our queues in case we're the only reference holders. However, we do _not_ modify our own ref-count, thus effectively causing the message-destructions to enter with the same reference count as we did. The only reason this doesn't cause an endless recursion (or trigger assert(m->n_ref > 0) in sd_bus_message_unref()) is the fact that we decrease queue-counters _before_ calling _unref(). That's not obvious at all, so add a big fat note in bus_reset_queues() to everyone touching that code.
2014-03-22sd-rtnl: fix self-reference leaksDavid Herrmann
Like sd-bus, sd-rtnl can have self-references through queued messages. In particular, each queued message has the following self-ref loop: rtnl->wqueue[i]->rtnl == rtnl Same is true for "rqueue". When sd_rtnl_unref() gets called, we must therefore make sure we correctly consider each self-reference when deciding to destroy the object. For each queued message, there _might_ be one ref. However, rtnl-messages can be created _without_ a bus-reference, therefore we need to verify the actually required ref-count. Once we know exactly how many self-refs exist, and we verified none of the queued messages has external references, we can destruct the object. We must immediately drop our own reference, then flush all queues and destroy the bus object. Otherwise, each sd_rtnl_message_unref() call would recurse into the same destruction logic as they enter with the same rtnl-refcnt. Note: We really should verify _all_ queued messages have m->rtnl set to the bus they're queued on. If that's given, we can change: if (REFCNT_GET(rtnl->n_ref) <= refs) to if (REFCNT_GET(rtnl->n_ref) == refs) and thus avoid recalculating the required refs for each message we remove from the queue during destruction.
2014-03-19sd-bus: don't use assert_return() to check for disconnected bus connectionsLennart Poettering
A terminated connection is a runtime error and not a developer mistake, hence don't use assert_return() to check for it.