summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-08-05networkd: serialize the private optionsAlex Crawford
Save the private options along side the rest of the options in the lease files.
2015-08-05networkd: add private options to lease structAlex Crawford
This stores private-zone DHCP options inside of their respective DHCP lease. These options aren't used by networkd (what would it do with them?), but saving them will allow other programs to query the values. To improve performance, the options are stored in ascending order by tag.
2015-08-04networkd: add DHCP options for private zoneAlex Crawford
2015-08-04basic: add LIST_INSERT_BEFOREAlex Crawford
Similar in function to LIST_INSERT_AFTER, this will insert a new element into the list before the specified position. If the specified position is NULL, the element is added as the tail of the list.
2015-08-04Merge pull request #850 from ssahani/dhcpDaniel Mack
networkd: DHCP fix CID 1315105
2015-08-04networkd: DHCP fix CID 1315105Susant Sahani
CID 1315105: Resource leaks (RESOURCE_LEAK) /src/libsystemd-network/sd-dhcp-server.c: 800 in dhcp_server_handle_message() *** CID 1315105: Resource leaks (RESOURCE_LEAK) /src/libsystemd-network/sd-dhcp-server.c: 800 in
2015-08-04Update bugtracker addressZbigniew Jędrzejewski-Szmek
2015-08-03Merge pull request #845 from poettering/terminal-o-nonblockDaniel Mack
add O_NONBLOCK to terminal handling
2015-08-03tree-wide: convert some more mfree() candidatesDaniel Mack
2015-08-03terminal-util: no real reason to assert on O_CREATLennart Poettering
That's just handle this as a normal error.
2015-08-03terminal-util: cast a couple of ioctl()s to voidLennart Poettering
2015-08-03terminal-util: when resetting terminals, don't wait for carrierLennart Poettering
In case of non-CLOCAL lines (i.e. those with carrier detect configured) we shouldnt wait for a carrier if all we try to do is reset the TTY. Hence, whenever we open such a TTY pass O_NONBLOCK. Note that we continue to open ttys we intend to write to without O_ONBLOCK, we only add it in cases we invoke ioctl()s or other terminal operations without reading or writing to the device. Fixes #835.
2015-08-03Merge pull request #844 from poettering/clock-boottime2Tom Gundersen
tree-wide: convert bootchart and lldp code to use clock_boottime_or_m…
2015-08-03Merge pull request #843 from poettering/clock-boottimeTom Gundersen
sd-event: make sure sd_event_now() cannot fail
2015-08-03tree-wide: convert bootchart and lldp code to use clock_boottime_or_monotonic()Lennart Poettering
We should avoid using CLOCK_BOOTTIME directly unless we actually can sensible distuingish it from CLOCK_MONOTONIC. CLOCK_BOOTTIME is only fully feature on very recent Linux kernels, hence we should stick to a fallback logic, which is already available in the clock_boottime_or_monotonic() call.
2015-08-03Merge pull request #840 from ↵Lennart Poettering
systemd-mailing-devs/1438566907-9544-1-git-send-email-wangkefeng.wang@huawei.com logind: add standard gpio power button support
2015-08-03sd-event: make sure sd_event_now() cannot failLennart Poettering
Previously, if the event loop never ran before sd_event_now() would fail. With this change it will instead fall back to invoking now(). This way, the function cannot fail anymore, except for programming error when invoking it with wrong parameters. This takes into account the fact that many callers did not handle the error condition correctly, and if the callers did, then they kept simply invoking now() as fall back on their own. Hence let's shorten the code using this call, and make things more robust, and let's just fall back to now() internally. Whether now() is used or the cache timestamp may still be detected via the return value of sd_event_now(). If > 0 is returned, then the fall back to now() was used, if == 0 is returned, then the cached value was returned. This patch also simplifies many of the invocations of sd_event_now(): the manual fall back to now() can be removed. Also, in cases where the call is invoked withing void functions we can now protect the invocation via assert_se(), acknowledging the fact that the call cannot fail anymore except for programming errors with the parameters. This change is inspired by #841.
2015-08-03Merge pull request #841 from teg/resolved-exponential-resendDaniel Mack
resolved: exponential backoff of packet resend
2015-08-03resolved: transaction - increase number of retry attemptsTom Gundersen
With the exponential backoff, we can perform more requests in the same amount of time, so bump this a bit. In case of large RTT this may be necessary in order not to regress, and in case of large packet-loss it will make us more robust. The latter is particularly relevant once we start probing for features (and hence may see packet-loss until we settle on the right feature level).
2015-08-03resolved: transaction - exponentially increase retry timeoutsTom Gundersen
Rather than fixing this to 5s for unicast DNS and 1s for LLMNR, start at a tenth of those values and increase exponentially until the old values are reached. For LLMNR the recommended timeout for IEEE802 networks (which basically means all of the ones we care about) is 100ms, so that should be uncontroversial. For unicast DNS I have found no recommended value. However, it seems vastly more likely that hitting a 500ms timeout is casued by a packet loss, rather than the RTT genuinely being greater than 500ms, so taking this as a startnig value seems reasonable to me. In the common case this greatly reduces the latency due to normal packet loss. Moreover, once we get support for probing for features, this means that we can send more packets before degrading the feature level whilst still allowing us to settle on the correct feature level in a reasonable timeframe. The timeouts are tracked per server (or per scope for the multicast protocols), and once a server (or scope) receives a successfull package the timeout is reset. We also track the largest RTT for the given server/scope, and always start our timouts at twice the largest observed RTT.
2015-08-03resolved: cache - use clock_boottime_or_monotonic()Tom Gundersen
We cannot rely on CLOCK_BOOTTIME being supported by the kernel, so fallack to CLOCK_MONOTONIC if the former is not supported.
2015-08-03Merge pull request #837 from ssahani/dhcpDaniel Mack
networkd: fix neworkd crash
2015-08-03logind: add standard gpio power button supportKefeng Wang
Many boards like hisilicon D02 board use standard gpio key to power down system. A description of gpio-key in dts shown below, gpio_keys { compatible = "gpio-keys"; #address-cells = <1>; #size-cells = <0>; pwrbutton { label = "Power Button"; gpios = <&porta 8 1>; linux,code = <116>; // KEY_POWER, used by SC System Power Down }; }; -bash-4.3# udevadm info -a /dev/input/event3 Udevadm info starts with the device specified by the devpath and then walks up the chain of parent devices. It prints for every device found, all possible attributes in the udev rules key format. A rule to match, can be composed by the attributes of the device and the attributes from one single parent device. looking at device '/devices/platform/gpio_keys/input/input3/event3': KERNEL=="event3" SUBSYSTEM=="input" DRIVER=="" looking at parent device '/devices/platform/gpio_keys/input/input3': KERNELS=="input3" SUBSYSTEMS=="input" DRIVERS=="" ATTRS{name}=="gpio_keys" ATTRS{phys}=="gpio-keys/input0" ATTRS{uniq}=="" ATTRS{properties}=="0" looking at parent device '/devices/platform/gpio_keys': KERNELS=="gpio_keys" SUBSYSTEMS=="platform" DRIVERS=="gpio-keys" ATTRS{keys}=="116" ATTRS{switches}=="" ATTRS{driver_override}=="(null)" ATTRS{disabled_keys}=="" ATTRS{disabled_switches}=="" looking at parent device '/devices/platform': KERNELS=="platform" SUBSYSTEMS=="" DRIVERS==""
2015-08-02Merge pull request #836 from mbiebl/man-fix-typo-systemd-fsckDaniel Mack
man: fix typo in systemd-fsck@
2015-08-02man: fix typo in systemd-fsck@Michael Biebl
2015-08-02Merge pull request #834 from namhyung/sdbus-cleanup-v2David Herrmann
sd-bus: Small cleanups (v2)
2015-08-02sd-bus: cleanup bus_reset_parsed_address()Namhyung Kim
Both strv_free() and mfree() return NULL pointer after free.
2015-08-02sd-bus: use mfree() in bus_reset_queues()Namhyung Kim
Recently mfree() was introduced to reduce work of tedious free + reset pointers. Use it in bus_reset_queues() too.
2015-08-02sd-bus: cleanup bus_close_fds()Namhyung Kim
The safe_close() already checks the fd and returns -1.
2015-08-02networkd: fix neworkd crashSusant Sahani
fix issue #827 hostname should be init to NULL.
2015-08-01Merge pull request #822 from hobbitalastair/masterDaniel Mack
hwdb: add resolution information for Dell Vostro 1510 touchpad
2015-08-01hwdb: add resolution information for Dell Vostro 1510 touchpadAlastair Hughes
Dell Vostro 1510, AlpsPS/2 ALPS GlidePoint touchpad. Relevant issue: #763
2015-07-31Merge pull request #813 from dvdhrm/bus-clientLennart Poettering
busctl: make sure --address connects as bus-client
2015-07-31Merge pull request #812 from zonque/testDavid Herrmann
Add some more tests
2015-07-31Merge pull request #814 from dvdhrm/mfreeDaniel Mack
tree-wide: introduce mfree()
2015-07-31Merge pull request #815 from poettering/coding-style-forDaniel Mack
CODING_STYLE: say that "for (;;)" is better than "while (1)"
2015-07-31busctl: make sure --address connects as bus-clientDavid Herrmann
There is really no reason to use `busctl` to connect to legacy private bus endpoints. Fix this and make sure `busctl --address=unix:path=/foo` works!
2015-07-31CODING_STYLE: say that "for (;;)" is better than "while (1)"Lennart Poettering
2015-07-31test-socket-util: add test for in_addr_is_null()Daniel Mack
2015-07-31test-util: add more testsDaniel Mack
Add tests for safe_ato[iu]16() and some more unbase32hexmem() torture.
2015-07-31test: add test for static listsDaniel Mack
Test af-list and arphdr-list.
2015-07-31tree-wide: introduce mfree()David Herrmann
Pretty trivial helper which wraps free() but returns NULL, so we can simplify this: free(foobar); foobar = NULL; to this: foobar = mfree(foobar);
2015-07-31Merge pull request #811 from namhyung/busctl-misc-v2Daniel Mack
busctl: Misc cleanups and a fix (v2)
2015-07-31Merge pull request #810 from mamikk/bitmap-fixes-v2Daniel Mack
Bitmap fixes v2
2015-08-01busctl: fix assertion failure on --size optionNamhyung Kim
Using --size option triggers an assert failure below because parse_size() requires the second argument, base, being either 1000 or 1024. As it's for a packet size, it'd be better using IEC binary suffix (base 1024) IMHO. $ busctl --size 2048 Assertion 'base == 1000 || base == 1024' failed at src/basic/util.c:2222, function parse_size(). Aborting. Aborted (core dumped)
2015-08-01busctl: add missing description of --size optionNamhyung Kim
The size option was to specify maximum captured patch length but was missing its description in the command line help. Add it.
2015-08-01busctl: add and use strcmp_ptr()Namhyung Kim
In member_compare_func(), it compares interface, type and name of members. But as it can contain NULL pointer, it needs to check them before calling strcmp(). So make it as a separate strcmp_ptr function (named after streq_ptr) so that it can be used by others. Also let streq_ptr() to use it in order to make the code simpler.
2015-07-31hwdb: Update database of Bluetooth company identifiersMarcel Holtmann
2015-07-31bitmap: make bitmap_clear free the bitmap arrayMartin Mikkelsen
Given two bitmaps and the following code: Bitmap *a = bitmap_new(), *b = bitmap_new(); bitmap_set(a, 1); bitmap_clear(a); bitmap_set(a, 0); bitmap_set(b, 0); These two bitmaps should now have the same bits set and they should be equal but bitmap_equal() will return false in this case because while bitmap_clear() resets the number of elements in the array it does not clear the array and bitmap_set() expects the array to be cleared. GREEDY_REALLOC0 looks at the allocated size and not the actual size so it does not clear any memory. Fix this by freeing the allocated memory and resetting the whole Bitmap to an initial state in bitmap_clear(). This also adds test code for this issue.
2015-07-31bitmap: fix bitmap_equal on bitmaps with unset bitsMartin Mikkelsen
Given two bitmaps and the following code: Bitmap *a = bitmap_new(), *b = bitmap_new(); bitmap_set(a, 0); bitmap_unset(a, 0); These two bitmaps should now have the same bits set and they should be equal but bitmap_equal() will return false in this case because the bitmaps array in a is larger because of the bit which was previously set. Fix this by comparing only the bits which exists in both bitmaps and then check that the rest of the bits (if any) is all zero. This also adds test code for this issue.