summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-12-13bus: rework how we attach fds to event loopsLennart Poettering
When trying a couple of addresses one after the other, make sure to reattach the fds to the event loop.
2013-12-13event: add ability to change fd of an active event sourceLennart Poettering
2013-12-13event: allow to query userdata and watchdog stateLennart Poettering
2013-12-12man: add another nspawn exampleZbigniew Jędrzejewski-Szmek
Taken from https://bugs.freedesktop.org/show_bug.cgi?id=68369.
2013-12-13event: when unreffing an event source from its own handler, detach fd from epollLennart Poettering
The pattern of unreffing an IO event source and then closing its fd is frequently seen in even source callbacks. Previously this likely resultet in us removing the fd from the epoll after it was closed which is problematic, since while we were dispatching we always kept an extra reference to event source objects because we might still need it later.
2013-12-13event: be more conservative when returning errors from event handler callbacksLennart Poettering
We really should return errors from event handlers if we have a continous problem and don't know any other solution.
2013-12-13git: update .gitignoreLennart Poettering
2013-12-13namespace: include boot id in private tmp directoriesLennart Poettering
This way it is easy to only exclude directories from the current boot from automatic clean up in /var/tmp. Also, pick a longer name for the directories so that are globs in tmp.conf can be simpler yet equally accurate.
2013-12-13event: rework sd-event exit logicLennart Poettering
With this change a failing event source handler will not cause the entire event loop to fail. Instead, we just disable the specific event source, log a message at debug level and go on. This also introduces a new concept of "exit code" which can be stored in the event loop and is returned by sd_event_loop(). We also rename "quit" to "exit" everywhere else. Altogether this should make things more robus and keep errors local while still providing a way to return event loop errors in a clear way.
2013-12-13bus: fix make checkLennart Poettering
2013-12-13bus: properly parse NameOwnerChanged messages when caller explicitly wants ↵Lennart Poettering
to match against names coming/going
2013-12-13man: update sd_bus_request_name() man pageLennart Poettering
2013-12-13bus: make sure exit-on-idle logic works on kdbus systems that do not ↵Lennart Poettering
generate NameLost
2013-12-13bus: fix parsing of matches against empty stringsLennart Poettering
2013-12-12scan-build: silence some warningsThomas Hindoe Paaboel Andersen
test-fileio/test-strv: Use the streq_ptr to make build-scan not worry about passing in a null to a nonnull function. test-dhcp-option: Prevent a theoretical null pointer dereference
2013-12-12bus: fix rewind logicLennart Poettering
2013-12-12service: process watchdog timeouts with lowest priorityLennart Poettering
2013-12-12bus: remove explicit activator-specific flags, the kdbus supports it nowKay Sievers
2013-12-12bus: update kdbus.hKay Sievers
2013-12-12bus: always pass valid timeout to kdbusLennart Poettering
2013-12-12bus: enforce endianess and marshalling for messages we sendLennart Poettering
2013-12-12timedatectl: work with old timedatedShawn Landden
Which does have TimeUSec. Should we specifically check for this method instead of assuming time=0 means it doesn't exist? Before: shawn@debian-T61:~/git/systemd$ ./timedatectl Local time: Wed 1969-12-31 16:00:00 PST Universal time: Thu 1970-01-01 00:00:00 UTC RTC time: n/a Timezone: America/Los_Angeles (PST, -0800) NTP enabled: n/a NTP synchronized: no RTC in local TZ: no DST active: no Last DST change: DST ended at Sun 1969-10-26 01:59:59 PDT Sun 1969-10-26 01:00:00 PST Next DST change: DST begins (the clock jumps one hour forward) at Sun 1970-04-26 01:59:59 PST Sun 1970-04-26 03:00:00 PDT After: shawn@debian-T61:~/git/systemd$ ./timedatectl Local time: Wed 2013-12-11 14:03:21 PST Universal time: Wed 2013-12-11 22:03:21 UTC RTC time: n/a Timezone: America/Los_Angeles (PST, -0800) NTP enabled: n/a NTP synchronized: no RTC in local TZ: no DST active: no Last DST change: DST ended at Sun 2013-11-03 01:59:59 PDT Sun 2013-11-03 01:00:00 PST Next DST change: DST begins (the clock jumps one hour forward) at Sun 2014-03-09 01:59:59 PST Sun 2014-03-09 03:00:00 PDT
2013-12-12build-sys: use internal library for dhcp client testsZbigniew Jędrzejewski-Szmek
Also clean up AM_CFLAGS in a few places.
2013-12-12dhcp: Add function to free DHCP client dataPatrik Flykt
2013-12-12dhcp: Add notification callbackPatrik Flykt
Define a notification callback and events for stopping and client lease expiry. Add functions to fetch IP parameters from a lease.
2013-12-12dhcp: Compute expire, T1 and T2 timersPatrik Flykt
Compute the default T1 and T2 timer values if they were not set by the DHCP server. Verify that the values are reasonable.
2013-12-12dhcp: Process DHCP Ack/Nak messagePatrik Flykt
Process a DHCP Ack/Nak in much the same way as an DHCP Offer. Factor out header verification and process options sent. Add notification functionality with discrete values for the outcome of the DHCP Ack/ Nak processing.
2013-12-12dhcp: Add maximum message size optionPatrik Flykt
Add maximum message size option to keep some DHCP server implementations from sending too big messages. See ConnMan commit 0c5c862749c05193cf4c513628328c6db02b5222.
2013-12-12dhcp: Send DHCP Request to acquire an IP addressPatrik Flykt
Create and send a DHCP Request message reusing already existing parts of the code. This causes factoring out IP and UDP header creation and moving next timeout calculation to be done every time in the timer callback function independent of DHCP state. Also add an exponential part to the timer calculation, bail out if there are errors while resending the DHCP message for the sixth or more times.
2013-12-12dhcp: Handle received DHCP Offer messagePatrik Flykt
Create a function for handling the full IP, UDP and DHCP packet and tie it to the main loop. Verify IP and UDP headers and checksum. Creat a new lease structure with using the values supplied in the DHCP message. Free the lease structure when client is stopped. Split out socket handling into a creation and a sending part. As a result modify the test code.
2013-12-12dhcp: Add timeout and main loop supportPatrik Flykt
Require a main loop to be set when creating a DHCP client. Set up a timer to resend DHCP Discover messages and add a 0-2 second delay to the timeout value. Move to state Selecting after successful sending of a Discover message.
2013-12-12build: Add dependency on libsystemd-bus needed for main loopPatrik Flykt
2013-12-12dhcp: Add function to stop the DHCP clientPatrik Flykt
The client is stopped and brought back to its initial state.
2013-12-12dhcp: Support seconds elapsed since start of DHCP negotiationPatrik Flykt
It was noticed by Grant Erickson in ConnMan commit 95e15c09350acf58d4707056ae2614570883ef66 that: "Certain DHCP servers, such as that implemented in Mac OS X (< 10.7) for its "Internet Sharing" feature, refuse to issue a DHCP lease to clients that have not set a non-zero value in their DISCOVER or REQUEST packets."
2013-12-12dhcp: Add test for discover DHCP packet creationPatrik Flykt
Set a fake MAC address and emulate raw packet sending. When the buffer containing the Discover message is received, check selected IP and UDP headers and compute IP header and UDP message checksums. Also send the DHCP message for option parsing and expect a successful outcome.
2013-12-12build: Add libsystemd-dhcpPatrik Flykt
2013-12-12dhcp: Add DHCP discover sendingPatrik Flykt
On starting the client, use the supplied interface mac address and create a transaction id. Puzzle together an IP/UDP/DHCP Discover message, compute checksums and send it out as a raw packet. Create an additional function that constructs default options common to all DHCP messages. Set the DHCP Client ID option as noticed by Grant Erickson in ConnMan commit b18d9798b3a0ae46ed87d6d2be8d5a474bf3ab1e: "Some Internet gateways and Wi-Fi access points are unhappy when the DHCPv4 client-id option (61) is missing and will refuse to issue a DHCP lease."
2013-12-12dhcp: Add function for sending a raw packetPatrik Flykt
Open a packet socket, create a link level header, send packet and close socket. Adding it to a separate file makes testing of the DHCP sending much easier, as the test program can supply any socket to the DHCP client code.
2013-12-12shared: Add struct sockaddr_ll to sockaddr_unionPatrik Flykt
2013-12-12dhcp: Add test function for computing checksumPatrik Flykt
2013-12-12dhcp: Add option append testsPatrik Flykt
Add checks for invalid lengths and parameters when using the option appending function. Add also checks for adding options, see to it that the resulting array is identical to the array of options added.
2013-12-12dhcp: Add tests for DHCP options, file and sname fieldsPatrik Flykt
Add a structure describing the DHCP file, sname and trailing options fields. Create a messge holding these fields and call the internal option parsing function. In the test callback function verify that only regular options are passed and figure out which part of the DHCP message is the one that is being processed. As the test program knows the full contents of the test options in the test structure, skip all non-regular fields and verify that the option provided to the callback indeed is the one expected. Check also if non-regular option fields are to be ignored in the end of the option field as the callback is not called again and the final check when the whole message has been processed needs to be successful. Add a boolean flag for pretty-printing, anticipate there will be a nice option to toggle it in the future.
2013-12-12build: Add DHCP option testPatrik Flykt
2013-12-12dhcp: Add buffer length and invalid cookie tests for DHCP optionsPatrik Flykt
Create an initial simple test program for these two cases.
2013-12-12dhcp: Add option appending and parsingPatrik Flykt
Add functions to append and parse DHCP options. Not all options are passed to the callback function, the ones not exposed are pad, end, message type and overload. If indicated by the overload option, file and sname fields will be examined for more options. The option functions are internal to DHCP, add a new header files for interal function prototypes.
2013-12-12build: Add initial build supportPatrik Flykt
The client test program is the only one to be built so far.
2013-12-12dhcp: Add test for DHCP client initialization and parameter settingPatrik Flykt
2013-12-12dhcp: Add DHCP client initializationPatrik Flykt
Provide functionality for initializing a DHCP client struct, setting interface index, last used address and additional options to request. On initialization the most useful options are added by default.
2013-12-12dhcp: Add DHCP protocol structures and initial definesPatrik Flykt
Create a new directory to host DHCP components.
2013-12-12log: protect errno when we use assert_return()Lennart Poettering