1
0
mirror of https://github.com/systemd/systemd.git synced 2024-12-25 01:34:28 +03:00
Commit Graph

15130 Commits

Author SHA1 Message Date
Vladimir Panteleev
071e0b8b3a core: downgrade warning about duplicate device names again
Pull request #2412 seemed to have unintentionally reverted
5259bcf6a6, thus reintroducing
https://bugs.freedesktop.org/show_bug.cgi?id=90386.

This commit reverts that part of the commit, changing the
log level to debug again.
2016-04-07 23:48:29 +00:00
Zbigniew Jędrzejewski-Szmek
c8cf4dc1e5 lldp: replace if with assert_cc
LLDP_TX_HOLD or one of the other variables might be changed in the future
resulting in a silent error here if the if was just removed.

Replacement for #2983.
2016-04-07 14:29:59 -04:00
Zbigniew Jędrzejewski-Szmek
3c9117545f Merge pull request #2976 from martinpitt/udev-test-tags
Add tags tests to udev-test.pl
2016-04-06 19:45:24 -04:00
Martin Pitt
817ec8cc81 sd-device: Allocate enough room for tags string
Fix commit 1d88a2: We need to allocate another byte for building the "tags"
string, as we append an extra ':' and still need the NUL terminator.
2016-04-06 23:50:39 +02:00
Zbigniew Jędrzejewski-Szmek
7b792fa1a9 Merge pull request #2970 from msekletar/machine-id-prefix-roota
machine-id-setup: simplify by using prefix_roota
2016-04-06 07:58:05 -04:00
Martin Pitt
600101ca28 Merge pull request #2969 from evverx/udev-test-dont-rely-on-underlying-fs-2
tests: don't rely on the underlying fs in test-udev (v2)
2016-04-06 11:51:38 +02:00
Lennart Poettering
354362c46b Merge pull request #2968 from keszybz/journal-upload-watchdog-update-master
Journal upload watchdog update master
2016-04-06 10:50:46 +02:00
Lennart Poettering
d4337c15d5 Merge pull request #2944 from keszybz/man-coredump-sysctl
Man coredump sysctl
2016-04-06 10:49:52 +02:00
Lennart Poettering
056f0498fe Merge pull request #2947 from keszybz/test-nss
Add a test for nss modules and some related fixes
2016-04-06 10:48:55 +02:00
Lennart Poettering
382b56622a Merge pull request #2962 from keszybz/value-option
Add `--value` option to systemctl and loginctl to only print values
2016-04-06 10:47:37 +02:00
Lennart Poettering
d35da3ae6a Merge pull request #2961 from evverx/fix-activate-sigchld
activate: improve SIGCHLD handler
2016-04-06 10:46:47 +02:00
Michal Sekletar
f5e754e0d7 machine-id-setup: simplify by using prefix_roota 2016-04-06 09:55:24 +02:00
Evgeny Vereshchagin
21d9e3f339 tests: don't rely on the underlying fs in test-udev (v2)
* This reverts commit 646048b40a.
Let's test really big numbers again

* Don't be so brutal: use rmdir instead of rm -rf
As suggested https://github.com/systemd/systemd/pull/2966#issuecomment-205751680
2016-04-06 04:08:39 +00:00
Zbigniew Jędrzejewski-Szmek
82e4c2d656 nss-myhostname: remove dead test of variable that was not set 2016-04-05 23:19:56 -04:00
Zbigniew Jędrzejewski-Szmek
2abb5b3b10 test-nss: test the resolution of various names
nss-dns is also "tested". It should be almost always available,
and provides a reference for comparison.
2016-04-05 23:19:56 -04:00
Zbigniew Jędrzejewski-Szmek
8e98476e14 string-table: split long definitions 2016-04-05 23:19:56 -04:00
Zbigniew Jędrzejewski-Szmek
e138e7d7fc machinectl: indentation fix 2016-04-05 23:03:58 -04:00
Zbigniew Jędrzejewski-Szmek
855005230b machinectl: add --value option 2016-04-05 23:03:58 -04:00
Zbigniew Jędrzejewski-Szmek
e8ceb82e21 Merge pull request #2966 from evverx/udev-test-dont-rely-on-underlying-fs
tests: don't rely on underlying fs in udev-test, use tmpfs instead
2016-04-05 20:36:01 -04:00
Zbigniew Jędrzejewski-Szmek
0aa176a751 journal-upload: make watchdog state non-static
Also parse watchdog config when creating the Uploader object.
2016-04-05 20:28:56 -04:00
Klearchos Chaloulos
d79ca7a622 journal-upload: Update watchdog while in curl_easy_perform
It is observed that a combination of high log throughput, low I/O speed on journal remote side and many nodes uploading simultaneously caused the journal-upload process to dump core because of watchdog starvation. This is caused because journal-upload stays in curl_easy_perform(), because it cannot upload fast enough to reach the end of the journal. Currently journal-upload will return from curl_easy_perform() only when the end of the journal is reached. Therefore a check is added in journal_input_callback(), which will update the watchdog if the elapsed time since the start of the uploading process is greater than WATCHDOG_USEC/2.
2016-04-05 17:37:00 +03:00
Evgeny Vereshchagin
5488e52d28 activate: improve SIGCHLD handler
* Don't lose children exit codes

* Don't receive notification when child processes stop
Eliminates annoying "Child died"-messages:
$ ./systemd-socket-activate -l 2000 --inetd -a cat
^Z
[1]+  Stopped                 ./systemd-socket-activate -l 2000 --inetd -a cat

$ bg %1
[1]+ ./systemd-socket-activate -l 2000 --inetd -a cat &
Child 15657 died with code 20

$ ps u 15657
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
ubuntu   15657  0.0  0.0   4540   680 pts/2    S    00:34   0:00 cat

* Don't fail to reap some zombie children
Fixes
$ ./systemd-socket-activate -l 2000 --inetd -a cat &
$ for i in {1..1000}; do echo a | nc localhost 2000 & done
$ ps f
...
18235 pts/2    Ss     0:01 -bash
15849 pts/2    S      0:00  \_ ./systemd-socket-activate -l 2000 --inetd
-a cat
16081 pts/2    Z      0:00  |   \_ [cat] <defunct>
16381 pts/2    Z      0:00  |   \_ [cat] <defunct>
and many more zombies
...
2016-04-05 14:34:04 +00:00
Evgeny Vereshchagin
2ce8d27b1f tests: don't rely on underlying fs in udev-test, use tmpfs instead
Fixes: #457
2016-04-05 10:38:09 +00:00
Martin Pitt
89d0348220 polkit: don't start polkit agent when running as root
On the server side we already bypass the polkit checks if the caller is root
(see the sd_bus_query_sender_privilege() call in bus_verify_polkit_async()). So
there is no reason to invoke polkit when running
systemctl/machinectl/loginctl/timedatectl as root.

Fixes #2748
2016-04-05 12:18:55 +02:00
Martin Pitt
1d88a271a6 sd-device: fix crash if a device has many tags or devlinks
strjoina() is unsafe to be used in an unbounded loop as alloca() has no error
reporting. Thus devices with a large number of tags or devlinks trigger a
segfault in device_properties_prepare() due to overflowing the stack.

Rewrite the building of the "tags" and "devlinks" strings using
GREEDY_REALLOC() and strpcpy() to work with arbitrarily long strings. This also
avoids re-copying the entire string in each loop iteration.

Before this commit we always appended one final ":" to "tags". Change this to
start with an iniital ":" and for each tag append instead of prepend a ":".
This unifies what happens for the first and all subsequent tags so that we can
use a for loop.

Fixes #2954
2016-04-05 08:55:34 +02:00
Vinay Kulkarni
b7f71444c0 Address code-review items for pull-request #2890
1. Replace strtol with unhexchar, verified with valid and invalid DUID strings.
2. Fix logging to use log_syntax instead of log_error.
3. On error reading DUID, ignore read and preserve previous state.
4. Fix man-pages to use markup, remove options not yet implemented.
5. Remove spurious header line in new files.
2016-04-04 21:06:11 -07:00
Zbigniew Jędrzejewski-Szmek
f4046fe06f loginctl: add --value option 2016-04-04 22:41:49 -04:00
Zbigniew Jędrzejewski-Szmek
4f9a91055c systemctl: add --value option
With this option, systemctl will only print the rhs in show:
$ systemctl show -p Wants,After systemd-journald --value
systemd-journald.socket ...
systemd-journald-dev-log.socket ...

This is useful in scripts, because the need to call awk or similar
is removed.
2016-04-04 22:41:49 -04:00
Zbigniew Jędrzejewski-Szmek
77384fb0ed Merge pull request #2959 from keszybz/stop-resolving-localdomain
*.localdomain != localhost
2016-04-04 22:06:37 -04:00
David R. Hedges
63003524cb *.localdomain != localhost
".localdomain" is not a reserved suffix (or prefix). I'm not aware of any
product expecting *.localdomain to resolve to localhost, however I am aware of
at least one product that defaults to ".localdomain" as its DNS suffix provided
via DHCP (pfSense). This leads to unexpected results when attempting to access
a host that's offline (or a host that's online, when nsswitch.conf is
[mis-]configured to have myhostname ahead of DNS).

Operate on:
localhost (and localhost.)
*.localhost (and *.localhost.)
localhost.localdomain (and localhost.localdomain.)
*.localhost.localdomain (and *.localhost.localdomain.)

We should not cover:
*.localdomain (nor *.localdomain.)
localdomain (nor localdomain.)
2016-04-04 13:28:57 -04:00
Lennart Poettering
214e37fc04 run: add colon before printing started units
run: add colon before printing started units
2016-04-04 13:11:49 +02:00
Mike Gilbert
2944758ccd import: Preserve xattrs in tar files
Resolves #2908
2016-04-04 13:08:26 +02:00
Evgeny Vereshchagin
331fb4ca51 basic: fallback to fstatat if entry->d_type is DT_UNKNOWN
* tests-functions: improve FSTYPE-support

make clean setup FSTYPE=reiserfs is working fine now :)

* basic: fallback to fstatat if entry->d_type is DT_UNKNOWN

Fixes localectl on reiserfs:

-bash-4.3# mkdir -p /usr/lib/locale
-bash-4.3# stat -f /usr/lib/locale/
  File: "/usr/lib/locale/"
    ID: bdb0322715b5366e Namelen: 255     Type: reiserfs
Block size: 4096
Blocks: Total: 99835      Free: 60262      Available: 60262
Inodes: Total: 0          Free: 0
-bash-4.3# mkdir /usr/lib/locale/HeyHo
-bash-4.3# localectl list-locales --no-pager

-bash-4.3# mount -t tmpfs tmpfs /usr/lib/locale
-bash-4.3# mkdir /usr/lib/locale/HeyHo
-bash-4.3# localectl list-locales --no-pager
HeyHo
2016-04-04 13:07:56 +02:00
Iago López Galeiras
f3ea87af4f run: add colon before printing started units
In 110ceee58e we removed the period after
printing the started units. This makes copying the unit name easier but
results in improper English.

This adds a colon before printing the units, which makes the output
look better.
2016-04-04 11:28:14 +02:00
Zbigniew Jędrzejewski-Szmek
7e371b64fe Merge pull request #2931 from systemd/revert-2843-clock_boottime
Revert "time-util: fall back to CLOCK_MONOTONIC if CLOCK_BOOTTIME unsupported"
2016-04-02 20:55:24 -04:00
Zbigniew Jędrzejewski-Szmek
cf2d43e7f4 Move nss typedefs into nss-util.h
In preparation for subsequent changes.
2016-04-02 20:11:41 -04:00
Zbigniew Jędrzejewski-Szmek
68a9c7c4f0 nss-myhostname: trivial style fixes 2016-04-02 20:11:41 -04:00
Zbigniew Jędrzejewski-Szmek
8e170d2909 compress: fix gcc warnings about void* used in arithmetic
src/journal/compress.c: In function ‘compress_blob_lz4’:
src/journal/compress.c:115:49: warning: pointer of type ‘void *’ used in arithmetic [-Wpointer-arith]
         r = LZ4_compress_limitedOutput(src, dst + 8, src_size, (int) dst_alloc_size - 8);
                                                 ^
src/journal/compress.c: In function ‘decompress_blob_xz’:
src/journal/compress.c:179:35: warning: pointer of type ‘void *’ used in arithmetic [-Wpointer-arith]
                 s.next_out = *dst + used;
                                   ^
src/journal/compress.c: In function ‘decompress_blob_lz4’:
src/journal/compress.c:218:37: warning: pointer of type ‘void *’ used in arithmetic [-Wpointer-arith]
         r = LZ4_decompress_safe(src + 8, out, src_size - 8, size);
                                     ^
src/journal/compress.c: In function ‘decompress_startswith_xz’:
src/journal/compress.c:294:38: warning: pointer of type ‘void *’ used in arithmetic [-Wpointer-arith]
                 s.next_out = *buffer + *buffer_size - s.avail_out;
                                      ^
src/journal/compress.c:294:53: warning: pointer of type ‘void *’ used in arithmetic [-Wpointer-arith]
                 s.next_out = *buffer + *buffer_size - s.avail_out;
                                                     ^
src/journal/compress.c: In function ‘decompress_startswith_lz4’:
src/journal/compress.c:327:45: warning: pointer of type ‘void *’ used in arithmetic [-Wpointer-arith]
         r = LZ4_decompress_safe_partial(src + 8, *buffer, src_size - 8,
                                             ^

LZ4 and XZ functions use char* and unsigned char*, respectively,
so keep void* in our internal APIs and add casts.
2016-04-02 18:58:21 -04:00
Zbigniew Jędrzejewski-Szmek
d219849e60 basic/copy: remove unnecessary cast
Both types are unsigned, so the cast to the longer type is automatic.
2016-04-02 18:58:21 -04:00
Zbigniew Jędrzejewski-Szmek
7c2da2ca88 test-compress-benchmark: fix argument parsing on 32bit
The patch is not minimal, but a function to parse size_t is probably
going to come in handy in other places, so I think it's nicer to define
a proper parsing function than to open-code the cast.
2016-04-02 18:58:21 -04:00
Zbigniew Jędrzejewski-Szmek
1a112b5273 Add networkd-gperf.c to gitignore
For #2915.
2016-04-02 11:52:57 -04:00
Zbigniew Jędrzejewski-Szmek
e7f376c2e8 sd-lldp.h: remove double newline
For #2898.
2016-04-02 11:52:57 -04:00
Zbigniew Jędrzejewski-Szmek
0f8aeac255 coredumpctl: grammaro fix
Mentioned in #2901.
2016-04-02 11:35:08 -04:00
Zbigniew Jędrzejewski-Szmek
af640dca6e rpm triggers: add note about minimum supported version 2016-04-02 11:35:07 -04:00
Mantas Mikulėnas
a0bfc9c26a cryptsetup: do not 'fail' if trying to detach a nonexistent device
It could be that our .service is being stopped precisely because the
device already disappeared (e.g. due to a manual `cryptsetup close`, or
due to UDisks2 cleaning up).
2016-04-01 20:51:20 +02:00
Lennart Poettering
7aa610f149 Merge pull request #2937 from thom311/master
dhcp-identifier: handle too large duid_len argument in dhcp_validate_duid_len()
2016-04-01 18:27:23 +02:00
Lennart Poettering
2685875eb1 Merge pull request #2939 from bjne/read_only_bindmount
dont create bind-mount target when it exists
2016-04-01 18:25:34 +02:00
Bjørnar Ness
b97e83cb52 prevent systemd-nspawn from trying to create target
for bind-mounts when they already exist. This allows
bind-mounting over read-only files.
2016-04-01 17:31:55 +02:00
Thomas Haller
7908dd6730 dhcp-identifier: handle too long duid_len in dhcp_validate_duid_len()
Callers of dhcp_validate_duid_len() know that they must not pass
a zero duid_len. Thus asserting against that is appropriate.
On the other hand, they are not aware of the maximum allowed length
of a duid, as that is the reason why they call dhcp_validate_duid_len()
in the first place. So dhcp_validate_duid_len() should just signal a
regular error.

Thereby, change assert_return() to an assert() as this is an internal
function.
2016-04-01 15:03:27 +02:00
Martin Pitt
c6ba5b8069 systemctl: use correct printf macros for uint32
%u is a simple uint which might not be 32 bit on every platform. Use PRIu32
instead.
2016-04-01 14:21:35 +02:00
Martin Pitt
da8358c625 bus-util: Fix reading uint32 properties
Fix copy&paste bug in map_basic() to use the correct data type for
SD_BUS_TYPE_UINT32. Before we were copying the wrong 32 bits into the
destination pointer, resulting in complete garbage on big-endian systems.

Fixes #2927
2016-04-01 14:16:14 +02:00
Lennart Poettering
bdf19f8fb2 Revert "time-util: fall back to CLOCK_MONOTONIC if CLOCK_BOOTTIME unsupported" 2016-04-01 09:48:36 +02:00
Zbigniew Jędrzejewski-Szmek
1db30aeab1 Merge pull request #2915 from vinaykul/master 2016-03-31 00:52:23 -04:00
Vinay Kulkarni
413708d106 DHCP DUID, IAID configuration options 2016-03-30 16:33:55 -07:00
Lukas Nykryn
5d512d5442 core: improve error message when starting template without instance 2016-03-30 13:54:33 +02:00
Zbigniew Jędrzejewski-Szmek
ab19c9e457 Merge pull request #2898 from bengal/lldp-api
lldp: move public macros to sd-lldp.h and namespace them
2016-03-29 21:00:58 -04:00
Zbigniew Jędrzejewski-Szmek
1b81db7a66 Merge pull request #2903 from keszybz/cgroup2-v3
core: cgroup2 support
2016-03-29 20:25:00 -04:00
Evgeny Vereshchagin
5146c61928 core: ShutdownWatchdogSec=infinity disables the watchdog logic too
This is a follow-up for 947292eef
2016-03-29 11:13:55 +00:00
Daniel Mack
9081e5abab Merge pull request #2907 from evverx/runtime-watchdog-infinity
core: RuntimeWatchdogSec=infinity disables the watchdog logic
2016-03-29 10:35:52 +02:00
Daniel Mack
86a4231553 Merge pull request #2905 from keszybz/gcrypt-compilation
build-sys: fix build with libgrcypt disabled
2016-03-29 10:35:07 +02:00
Evgeny Vereshchagin
947292eef4 core: RuntimeWatchdogSec=infinity disables the watchdog logic 2016-03-28 17:17:32 +00:00
Biao Lu
f0634dd175 shared: fix a misspelling of "journalctl" 2016-03-29 01:46:04 +08:00
Zbigniew Jędrzejewski-Szmek
b68f10bf1f build-sys: fix build with libgrcypt disabled
- Move gcrypt.h include inside grcrypt-util.h.
- Allow gcrypt-util.[ch] to be compiled even without gcrypt.
This allows the logic in files using gcrypt to be simplified.

- Fix compilation of systemd-resolve without gcrypt.
systemd-resolved already supported that.

Fixes #2711.
2016-03-27 21:51:44 -04:00
Tejun Heo
e57051f542 core: update invoke_sigchld_event() to handle NULL ->sigchld_event()
After receiving SIGCHLD, one of the ways manager_dispatch_sigchld() maps the
now zombie $PID to its unit is through manager_get_unit_by_pid_cgroup() which
reads /proc/$PID/cgroup and looks up the unit associated with the cgroup path.

On non-unified cgroup hierarchies, a process is immediately migrated to the
root cgroup on death and the cgroup lookup would always have returned the unit
associated with it, making it rather pointless but safe.  On unified hierarchy,
a zombie remains associated with the cgroup that it was associated with at the
time of death and thus manager_get_unit_by_pid_cgroup() will look up the unit
properly.

However, by the time manager_dispatch_sigchld() is running, the original cgroup
may have become empty and it and its associated unit might already have been
removed.  If the cgroup path doesn't yield a match, manager_dispatch_sigchld()
keeps pruning the leaf component.  This means that the function may return a
slice unit for a pid and as a slice doesn't have ->sigchld_event() handler,
calling invoke_sigchld_event() on it causes a segfault.

This patch updates invoke_sigchld_event() so that it skips calling if the
handler is not set.
2016-03-26 12:06:06 -04:00
Tejun Heo
ab2c3861dc core: update populated event handling in unified hierarchy
Earlier during the development of unified hierarchy, the populated event was
reported through by the dedicated "cgroup.populated" file; however, the
interface was updated so that it's reported through the "populated" field of
"cgroup.events" file.  Update populated event handling logic accordingly.
2016-03-26 12:05:57 -04:00
Alban Crequy
099619957a cgroup2: use new fstype for unified hierarchy
Since Linux v4.4-rc1, __DEVEL__sane_behavior does not exist anymore and
is replaced by a new fstype "cgroup2".

With this patch, systemd no longer supports the old (unstable) way of
doing unified hierarchy with __DEVEL__sane_behavior and systemd now
requires Linux v4.4 for unified hierarchy.

Non-unified hierarchy is still the default and is unchanged by this
patch.

67e9c74b8a
2016-03-26 12:05:29 -04:00
Zbigniew Jędrzejewski-Szmek
09541e49eb Merge pull request #2887 from martinpitt/master
Fix logind crash if shutdown is called from a non-tty
2016-03-25 17:06:50 -04:00
Beniamino Galvani
6afa676780 lldp: move public macros to sd-lldp.h and namespace them
lldp.h contains definitions of LLDP types, subtypes and capabilities which
should be exposed in public headers. Get rid of the file and move those
definitions to sd-lldp.h with the SD_ prefix.
2016-03-24 16:41:48 +01:00
Martin Pitt
b4944d2df2 logind: fix crash when shutdown is not issued from a tty
It's possible that sd_bus_creds_get_tty() fails and thus
scheduled_shutdown_tty is NULL in method_schedule_shutdown().

Fix logind_wall_tty_filter() to get along with that, by showing the message on
all TTYs, instead of crashing in strcmp().

https://launchpad.net/bugs/1553040
2016-03-24 08:35:17 +01:00
Martin Pitt
b59f0ecd27 core: fix "stoppping" typo 2016-03-24 08:35:17 +01:00
Yu Watanabe
c86b2d8f73 localectl: align output of 'localectl status' command
If kernel command line options for locale are given,
the output of 'localectl status' command is not aligned,
for example,
=============
Warning: Settings on kernel command line override system locale settings in /etc/locale.conf.
  Command Line: LANG=C
   System Locale: LANG=C
       VC Keymap: n/a
      X11 Layout: n/a
=============
This commit fixes the alignment.
2016-03-24 10:58:38 +09:00
Yu Watanabe
a75db59cf7 localectl: remove unnecessary line break
If /etc/locale.conf is empty or does not exist, the output of
'localectl status' command includes an unnecessary line break
as follows:
=======================
   System Locale: n/a

       VC Keymap: n/a
      X11 Layout: n/a
=======================
This commit removes the line break after the system locale.
2016-03-24 10:53:00 +09:00
Daniel Mack
1eb963a32d Merge pull request #2885 from gbrikis/master
core: Fix path for opening ffs endpoint ep0
2016-03-23 19:48:26 +01:00
Georgia Brikis
27a6ea9163 core: Fix path for opening ffs endpoint ep0
usbffs_address_create() expects an absolute path to the file that is
supposed to be opened. The path specified only leads to the directory
containing the endpoint ep0 not the endpoint itself. This commit adds
the endpoints name to the path.
2016-03-23 17:47:45 +01:00
Iago López Galeiras
110ceee58e run: remove period when printing started units
If you start a unit with systemd-run you usually need its name to
inspect it or stop it. Removing the period makes copying the unit name
easier.
2016-03-23 15:45:32 +01:00
Daniel Mack
15cb891e15 Merge pull request #2886 from fbuihuu/systemctl-list-units-inactive-state
systemctl: no need to pass --all if inactive is explicitly requested …
2016-03-23 13:08:04 +01:00
Daniel Mack
51359d02d1 Merge pull request #2883 from keszybz/allow-boms
Ignore BOM in config files
2016-03-23 13:00:33 +01:00
Franck Bui
ebc962656c systemctl: no need to pass --all if inactive is explicitly requested in list-units
If list-units command is explicitly asked to show inactive units
by using '--state=inactive' option, there's no need to force the user
to pass '--all' option to include inactive units in the search in
this case.
2016-03-23 08:36:05 +01:00
Zbigniew Jędrzejewski-Szmek
9dd7ea9a7d Ignore BOM in config files
Fixes #2823.

Also remove unnecessary feof check.
2016-03-22 18:51:59 -04:00
Zbigniew Jędrzejewski-Szmek
944dedd302 Merge pull request #2844 from yarda/uaccess-3dprinters
Add support for 3D printers to uaccess (ID_3DPRINTER).
2016-03-22 11:00:20 -04:00
Jaroslav Škarvada
68ea57b21d Added support for 3D printers to uaccess (ID_MAKER_TOOL)
This is to support 3D printers, CNCs, laser cutters, 3D scanners, etc.
2016-03-22 14:09:23 +01:00
Daniel Mack
99d91109a6 Merge pull request #2880 from keszybz/more-tests
Add some simple tests for env_value_is_valid and env_assignment_is_valid
2016-03-22 10:23:12 +01:00
Zbigniew Jędrzejewski-Szmek
c4b3e434a7 Merge pull request #2879 from ronnychevalier/rc/test_execute_fix
test-execute: fix execution of AmbientCapabilities tests
2016-03-21 23:38:28 -04:00
Zbigniew Jędrzejewski-Szmek
afec45395f Revert "DHCP DUID and IAID configurability" 2016-03-21 18:24:24 -04:00
Zbigniew Jędrzejewski-Szmek
b8c83cfc1a test-env-util: test env_{value,assignment}_is_valid
Just to make sure everything works as expected in relation
to https://bugzilla.redhat.com/show_bug.cgi?id=1312384.
2016-03-21 16:49:42 -04:00
Zbigniew Jędrzejewski-Szmek
93515caebf tests: rename test-env-replace to test-env-util 2016-03-21 16:17:18 -04:00
Ronny Chevalier
34f5ff465f test-execute: fix execution of AmbientCapabilities tests
Wrong tests were executed
2016-03-21 18:48:12 +01:00
Martin Pitt
fa13cf9e21 test-copy: use correct data type for max_bytes
copy_bytes() and the comparisons in test_copy_bytes_regular_file() expect an
uint64_t, not a size_t. On 32 bit architectures the latter is 32 bit, leading
to truncation errors.

Fixes regression from commit 7a827fcb.
2016-03-21 14:58:30 +01:00
Daniel Mack
68de79d6a4 Merge pull request #2760 from ronnychevalier/rc/core_no_new_privileges_seccompv3
core: set NoNewPrivileges for seccomp if we don't have CAP_SYS_ADMIN
2016-03-21 12:57:43 +01:00
Daniel Mack
19180aadb5 Merge pull request #2826 from thom311/master
lldp: fix starting ttl timer for lldp neighbor
2016-03-21 12:44:38 +01:00
Daniel Mack
af6cd87d98 Merge pull request #2862 from evverx/nspawn-expose-ports-error
nspawn: don't run nspawn --port=... without libiptc support
2016-03-18 12:00:29 +01:00
Evgeny Vereshchagin
1c1ea21735 nspawn: don't run nspawn --port=... without libiptc support
We get
$ systemd-nspawn --image /dev/loop1 --port 8080:80 -n -b 3
--port= is not supported, compiled without libiptc support.

instead of a ping-nc-iptables debugging session
2016-03-17 21:07:11 +00:00
Daniel Mack
5fec580c84 Merge pull request #2839 from keszybz/use-sendfile-smarter
Use sendfile smarter
2016-03-17 20:33:41 +01:00
Daniel Mack
da9a4daa08 Merge pull request #2854 from keszybz/log-colors
systemd: obey systemd.log_color config
2016-03-17 20:30:16 +01:00
Daniel Mack
90e644608e Merge pull request #2856 from msekletar/merge-instance
core: look for instance when processing template name
2016-03-17 20:24:39 +01:00
Zbigniew Jędrzejewski-Szmek
2f368e4a11 basic/missing: move syscall definitions to basic/missing_syscall.h
We have a bunch of syscall wrapper definitions and it's easier to
see that they follow the same pattern if they are not interspersed
with other defines.

Change the wrappers to be uniform:
- if __NR_XXX is not defined, do not bother to call the syscall,
  and return -1/ENOSYS immediately.
- do not check __NR_XXX defines if we detect the symbol as defined,
  since we don't need them anyway
- reindent stuff for readability

New file basic/missing_syscall.h is included at the end of missing.h
because it might make use of some of the definitions in missing.h.
2016-03-17 13:34:34 -04:00
Zbigniew Jędrzejewski-Szmek
a44202e98b basic/copy: use copy_file_range()
For btrfs, c_f_r() is like BTRFS_IOC_CLONE which we already used, but also
works when max_bytes is set. We do call copy_bytes in coredump code with
max_bytes set, and for large files, so we might see some benefit from using
c_f_r() on btrfs.

For other filesystems, c_f_r() falls back to do_splice_direct(), the same as
sendfile, which we already call, so there shouldn't be much difference.

Tested with test-copy and systemd-coredump on Linux 4.3 (w/o c_f_r)
and 4.5 (w/ c_f_r).
2016-03-17 13:02:18 -04:00
Zbigniew Jędrzejewski-Szmek
1d4b557d1b basic/missing: add copy_file_range
syscall numbers based on:
https://fedora.juszkiewicz.com.pl/syscalls.html
2016-03-17 13:02:18 -04:00
David Herrmann
2ddbdcc9c2 Merge pull request #2858 from keszybz/fbdev-uaccess
rules: allow users to access frame buffer devices
2016-03-17 16:59:46 +01:00
Daniel Mack
c31be17f6b Merge pull request #2848 from keszybz/clang-warnings
Clang warnings
2016-03-17 16:41:20 +01:00
Zbigniew Jędrzejewski-Szmek
dc9b58166c systemd: obey systemd.log_color config
Fixes #2845.
2016-03-17 09:33:56 -04:00
Zbigniew Jędrzejewski-Szmek
483d8bbb4c rules: allow users to access frame buffer devices
For example it allows weston to be started unprivileged.

Related discussion:
https://bugs.freedesktop.org/show_bug.cgi?id=73782
https://lists.freedesktop.org/archives/wayland-devel/2015-May/022005.html
https://bugzilla.redhat.com/show_bug.cgi?id=1226680
2016-03-17 08:40:39 -04:00
Michal Sekletar
7aad67e7f2 core: look for instance when processing template name
If first attempt to merge units failed and we are trying to do
merge the other way around and at the same time we are working with
template name, then other unit can't possibly be template, because it is
not possible to have template unit running, only instances of the
template. Thus we need to look for already active instance instead.
2016-03-16 15:40:14 +01:00
Tobias Klauser
998fdc16aa nspawn: Fix two misspellings of "hierarchy" in error messages 2016-03-16 14:34:00 +01:00
Zbigniew Jędrzejewski-Szmek
fdbf7b554e Merge pull request #2797 from evverx/selinux-use-raw
selinux: use *_raw API from libselinux
2016-03-16 01:13:29 -04:00
Zbigniew Jędrzejewski-Szmek
c337642992 basic/log: remove unused return value 2016-03-15 19:40:33 -04:00
Zbigniew Jędrzejewski-Szmek
d2d23cf240 basic/c-rbtree: remove unused function 2016-03-15 19:40:33 -04:00
Zbigniew Jędrzejewski-Szmek
26e9e10b39 basic/macros: clang 3.5 doesn't support alloc_size
The attribute was removed in commit c047507 in the clang repository as it
was never properly implemented anyway. Avoid using the attribute with
clang because it generates a ton of annoying warnings.
2016-03-15 19:40:33 -04:00
Zbigniew Jędrzejewski-Szmek
7a827fcb11 test-copy: test with different max_bytes values 2016-03-15 19:26:28 -04:00
Zbigniew Jędrzejewski-Szmek
00a8cf7763 basic/copy: use sendfile smarter
We called sendfile with 16kb (a.k.a. COPY_BUFFER_SIZE) as the maximum
number of bytes to copy. This seems rather inefficient, especially with
large files. Instead, call sendfile with a "large" maximum.

What "large" max means is a bit tricky: current file offset + max
must fit in loff_t. This means that as we call sendfile more than once,
we have to lower the max size.

With this patch, test-copy calls sendfile twice, e.g.:
sendfile(4, 3, NULL, 9223372036854775807) = 738760
sendfile(4, 3, NULL, 9223372036854037047) = 0
The second call is necessary to determine EOF.
2016-03-15 14:54:27 -04:00
Zbigniew Jędrzejewski-Szmek
ce33fddad0 test-copy: add a test shuffling bytes between normal files
I started looking into adding copy_file_range support, and discovered
that we can improve the way we call sendfile:
- sendfile(2) man page is missing an important bit: the number of bytes to
  copy cannot be too big (SSIZE_MAX actually), and the description of EINVAL
  return code does not mention this either,
- our implementation works but calls sendfile over and over with a small
  size, which seems suboptimal.

First add a test which (under strace) can be used to see current behaviour.
2016-03-15 14:53:31 -04:00
Lubomir Rintel
2abd5b5a49 time-util: fall back to CLOCK_MONOTONIC if CLOCK_BOOTTIME unsupported
It was added in 2.6.39, and causes an assertion to fail when running in mock
hosted on 2.6.23-based RHEL-6:

Assertion 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at systemd/src/basic/time-util.c:70, function now(). Aborting.
2016-03-15 12:43:33 +01:00
Zbigniew Jędrzejewski-Szmek
b862a54255 Merge pull request #2840 from linkmauve/use-xdg-config-home
sd-path: use XDG_CONFIG_HOME instead of hardcoding ~/.config for user-dirs
2016-03-15 00:55:08 -04:00
Emmanuel Gil Peyrot
b6b0cfaafd sd-path: use XDG_CONFIG_HOME instead of hardcoding ~/.config for user-dirs 2016-03-15 04:09:44 +00:00
Mike Frysinger
27d13af71c include sys/sysmacros.h in more places
Since glibc is moving away from implicitly including sys/sysmacros.h
all the time via sys/types.h, include the header directly in more
places.  This seems to cover most makedev/major/minor usage.
2016-03-14 23:29:10 -04:00
Thomas Haller
0513ea4e3f lldp: fix starting ttl timer for lldp neighbor
lldp_start_timer() was only called during sd_lldp_get_neighbors().
Ensure that the timer is (re-)started when a new neighbor appears.
Otherwise, the timer is not started when relying on the events alone.

Fixes: 34437b4f9c
2016-03-14 17:02:19 +01:00
Daniel Mack
ca9bc74bd0 Merge pull request #2827 from keszybz/public-headers
ANSI C compatibility for public headers
2016-03-14 16:55:04 +01:00
Zbigniew Jędrzejewski-Szmek
51f2174037 Merge pull request #2834 from coling/master 2016-03-14 08:31:08 -04:00
Colin Guthrie
5e1558f4a0 device: Ensure we have sysfs path before comparing.
In some cases we do not have a udev device when setting up a unit
(certainly the code gracefully handles this). However, we do
then go on to compare the path via path_equal which will assert
if a null value is passed in.

See https://bugs.mageia.org/show_bug.cgi?id=17766

Not sure if this is the correct fix, but it avoids the crash
2016-03-14 09:43:03 +00:00
Evgeny Vereshchagin
579afbea21 shared/machine-pool: fix another mkfs.btrfs checking
Fixes:
       Message: Process 806 (systemd-importd) of user 0 dumped core.

                Stack trace of thread 806:
                #0  0x00007f5eaeff7227 raise (libc.so.6)
                #1  0x00007f5eaeff8e8a abort (libc.so.6)
                #2  0x000055b6d3418f4f log_assert_failed (systemd-importd)
                #3  0x000055b6d3409daf safe_close (systemd-importd)
                #4  0x000055b6d33c25ea closep (systemd-importd)
                #5  0x000055b6d33c38d9 setup_machine_directory (systemd-importd)
                #6  0x000055b6d33b8536 method_pull_tar_or_raw (systemd-importd)
                #7  0x000055b6d33ed097 method_callbacks_run (systemd-importd)
                #8  0x000055b6d33ef929 object_find_and_run (systemd-importd)
                #9  0x000055b6d33eff6b bus_process_object (systemd-importd)
                #10 0x000055b6d3447f77 process_message (systemd-importd)
                #11 0x000055b6d344815a process_running (systemd-importd)
                #12 0x000055b6d3448a10 bus_process_internal (systemd-importd)
                #13 0x000055b6d3448ae1 sd_bus_process (systemd-importd)
                #14 0x000055b6d3449779 time_callback (systemd-importd)
                #15 0x000055b6d3454ff4 source_dispatch (systemd-importd)
                #16 0x000055b6d34562b9 sd_event_dispatch (systemd-importd)
                #17 0x000055b6d34566f8 sd_event_run (systemd-importd)
                #18 0x000055b6d33ba72a bus_event_loop_with_idle (systemd-importd)
                #19 0x000055b6d33b95bc manager_run (systemd-importd)
                #20 0x000055b6d33b9766 main (systemd-importd)
                #21 0x00007f5eaefe2a00 __libc_start_main (libc.so.6)
                #22 0x000055b6d33b5569 _start (systemd-importd)
2016-03-14 00:54:35 +00:00
Evgeny Vereshchagin
c3b0e5ac57 shared/machine-pool: fix mkfs.btrfs checking
binary_is_good translates ENOENT to 0
See https://github.com/systemd/systemd/commit/85eca92e#diff-bcad68c477b6651521e880c40b7a9b40R813
2016-03-14 00:01:33 +00:00
Wieland Hoffmann
b61a09a522 run: Improve the help message about timer options and existing units 2016-03-12 11:50:34 +01:00
Zbigniew Jędrzejewski-Szmek
e0c0b07da1 headers: remove commas at end of enum lists
src/systemd/sd-journal.h:75:51: warning: commas at the end of enumerator
      lists are a C99-specific feature [-Wc99-extensions]
2016-03-11 13:50:56 -05:00
Zbigniew Jędrzejewski-Szmek
b2542bf9ab headers: do not use siginfo_t if not defined
Simply avoid the trouble and use a void* if the define
is missing. We lose type safety, but who cares.
sigaction(2) says that siginfo_t requires _POSIX_C_SOURCE >= 199309L,
but we can be a bit more generous and use the same define
as /usr/include/signal.h.
2016-03-11 13:46:12 -05:00
Zbigniew Jędrzejewski-Szmek
0cb27225e9 headers: use __inline__ instead of inline
https://gcc.gnu.org/onlinedocs/gcc-5.3.0/gcc/Alternate-Keywords.html#Alternate-Keywords
recommends __inline__ over inline in ANSI C compatible headers.
Tested with gcc-5.3 and clang-3.7.

https://bugzilla.redhat.com/show_bug.cgi?id=1316964
2016-03-11 13:41:49 -05:00
Daniel Mack
5d331c192f Merge pull request #2821 from keszybz/mac_selinux_bind-do-not-rely-on-errno
socket_address_listen: do not rely on errno (2)
2016-03-10 17:37:40 +01:00
Daniel Mack
bffac070d0 Merge pull request #2794 from jhol/dont-unmount-initramfs-mounts
core/mount: Don't unmount initramfs mounts
2016-03-10 15:24:21 +01:00
Zbigniew Jędrzejewski-Szmek
825546ef76 socket_address_listen: do not rely on errno (2)
We'd still use the invalid errno for a return value. Rework
the code to simply return the right error right away.
2016-03-10 09:24:08 -05:00
Tom Gundersen
ead02a14ed Merge pull request #2818 from vinaykul/master
DHCP DUID and IAID configurability
2016-03-10 14:38:42 +01:00
Daniel Mack
79c96fd204 Merge pull request #2820 from lnykryn/test-ipcrm
test-ipcrm: fix log message
2016-03-10 13:43:48 +01:00
Lukas Nykryn
7322824832 test-ipcrm: fix log message 2016-03-10 12:57:23 +01:00
Petr Lautrbach
a0c9496cc8 socket_address_listen - do not rely on errno
Currently socket_address_listen() calls mac_selinux_bind() to bind a UNIX
socket and checks its return value and errno for EADDRINUSE. This is not
correct. When there's an SELinux context change made for the new socket,
bind() is not the last function called in mac_selinux_bind(). In that
case the last call is setfscreatecon() from libselinux which can change
errno as it uses access() to check if /proc/thread-self is available.
It fails on kernels before 3.17 and errno is set to ENOENT.

It's safe to check only the return value at it's set to -errno.
2016-03-10 10:34:37 +01:00
Vinay Kulkarni
c83321e6d4 DHCP DUID and IAID configurability 2016-03-09 21:58:44 -08:00
Zbigniew Jędrzejewski-Szmek
c41d3b3a0c Merge pull request #2792 from ronnychevalier/rc/tests_movev2
tests: move out unrelated tests from test-util to their own file
2016-03-09 23:53:54 -05:00
Zbigniew Jędrzejewski-Szmek
ef240bf0df Merge pull request #2816 from rhatdan/selinux
/dev/console must be labeled with SELinux label in containers
2016-03-09 23:47:00 -05:00
Zbigniew Jędrzejewski-Szmek
0551ec7355 Merge pull request #2793 from fbuihuu/fstab-generator-automount-option
fstab-generator: fix automounts to not mount automatically
2016-03-09 23:41:24 -05:00
Martin Pitt
bd7e03af00 Merge pull request #2755 from keszybz/more-tests
Enable more tests by default, and even more with `--enable-tests=unsafe`
2016-03-09 18:21:42 +01:00
Dan Walsh
68b020494d /dev/console must be labeled with SELinux label
If the user specifies an selinux_apifs_context all content created in
the container including /dev/console should use this label.

Currently when this uses the default label it gets labeled user_devpts_t,
which would require us to write a policy allowing container processes to
manage user_devpts_t.  This means that an escaped process would be allowed
to attack all users terminals as well as other container terminals.  Changing
the label to match the apifs_context, means the processes would only be allowed
to manage their specific tty.

This change fixes a problem preventing RKT containers from working with systemd-nspawn.
2016-03-09 11:19:45 -05:00
Daniel Mack
280d397ab3 Merge pull request #2768 from benjarobin/fix-2718
systemctl: Replace check_one_unit() by get_state_one_unit()
2016-03-07 14:50:08 +01:00
Alexander Kuleshov
b3cd687d86 firstboot: use laccess macro instead of facessat() 2016-03-06 13:27:59 +06:00
Zbigniew Jędrzejewski-Szmek
b61c9cf925 Merge pull request #2791 from 0xAX/clear-flag-macro
tree-wide: use SET_FLAG() macro to make code more clear
2016-03-05 10:31:04 -05:00
Zbigniew Jędrzejewski-Szmek
22a9adac34 Merge pull request #2795 from jhol/replace-irreversibly-on-failure
core/failure-action: set job-modes to replace-irreversibly
2016-03-05 10:19:25 -05:00
Alexander Kuleshov
5883ff6017 tree-wide: use SET_FLAG() macro to make code more clear 2016-03-05 18:26:01 +06:00
Ronny Chevalier
0b8505b7c9 systemctl: improve error message when starting a unit failed
Fixes #2798
2016-03-05 12:47:21 +01:00
Zbigniew Jędrzejewski-Szmek
15b947fb79 test-compress-benchmark: skip loop iteration if size is 0
Otherwise we would hit an assert in the compression code.
2016-03-04 21:46:47 -05:00
Zbigniew Jędrzejewski-Szmek
b5ec6ada9c test-selinux: use yes_no() and strnull() 2016-03-04 21:45:58 -05:00
Zbigniew Jędrzejewski-Szmek
2388b2f4d4 networkctl: avoid reading past end of input buffer
name is IFNAMSIZ bytes, but we would copy sizeof(info->name) bytes,
which is IFNAMSIZ + 1. In effect we would go outside of the source
buffer and possibly leave a non-null terminated string in info->name.

CID #1351754.
2016-03-04 21:45:45 -05:00
Zbigniew Jędrzejewski-Szmek
72e551f40b networkctl: use ETHER_ADDR_NULL in one more place 2016-03-04 21:45:45 -05:00
Zbigniew Jędrzejewski-Szmek
b3ad5fa944 lldp: fix memleak
in_addr_to_string returned 0, which was treated as error by the calling
code, which expects 1 on success.

CID #1351757, #1351758.
2016-03-04 21:45:45 -05:00
Zbigniew Jędrzejewski-Szmek
301a9c67aa test-libudev: disable monitor mode by default and add to automatic tests 2016-03-04 21:45:45 -05:00
Zbigniew Jędrzejewski-Szmek
cc4c1d2290 test-libudev: modernization 2016-03-04 21:45:45 -05:00
Zbigniew Jędrzejewski-Szmek
c1ab819162 Enable test-ipcrm, test-hostname in unsafe tests 2016-03-04 21:45:45 -05:00
Zbigniew Jędrzejewski-Szmek
134953c99c Enable test-daemon, test-log, test-watchdog by default
Those should be safe to run, resulting in some messages in logs.
2016-03-04 21:45:45 -05:00
Zbigniew Jędrzejewski-Szmek
67a47c6096 shared/acpi-fpdt: use ENODATA for missing data and skip test
This data is simply missing on non-UEFI systems, and it is useful
to distinguish that from corrupted data.
2016-03-04 21:45:45 -05:00
Zbigniew Jędrzejewski-Szmek
a4bfedec70 Rename test-boot-timestamp to test-boot-timestamps and enable by default
The source file name and the binary name were mismatched.
Rename binary to match.

Make the test exit with TEST_SKIP if the data is missing or we
have no permissions. Otherwise, the data will be printed, which
should be safe to enable by default.
2016-03-04 21:45:45 -05:00
Zbigniew Jędrzejewski-Szmek
f26b57d12a Move test-loopback to normal tests
In the normal case lo should be already configured and this should be
a noop, even when run under root.
2016-03-04 21:45:44 -05:00
Franck Bui
2b14df4a9a fstab-generator: fix automount option and don't start associated mount unit at boot
Without this patch applied the mount unit with 'automount' option was still
pulled by local-fs.target and thus was activated during the boot process which
defeats the purpose of the 'automount' option:

   $ grep /mnt /etc/fstab
   /dev/vdb1 /mnt ext2 defaults,x-systemd.automount 0 0

   $ reboot
   ...

   $ mount | grep mnt
   systemd-1 on /mnt type autofs (rw,relatime,fd=34,pgrp=1,timeout=0,minproto=5,maxproto=5,direct)
   /dev/vdb1 on /mnt type ext2 (rw,relatime)

   $ systemctl status mnt.mount | grep Active
      Active: active (mounted) since Thu 2016-03-03 21:36:22 CET; 42s ago

With the patch applied:

   $ reboot
   ...

   $ mount | grep mnt
   systemd-1 on /mnt type autofs (rw,relatime,fd=22,pgrp=1,timeout=0,minproto=5,maxproto=5,direct)

   $ systemctl status mnt.mount | grep Active
      Active: inactive (dead)

   $ ls /mnt
   lost+found

   $ systemctl status mnt.mount | grep Active
      Active: active (mounted) since Thu 2016-03-03 21:47:32 CET; 4s ago
2016-03-04 22:09:08 +01:00
Joel Holdsworth
04a9393122 core/mount: Don't unmount initramfs mounts
A mount within /run/initramfs is indicative that the mount was
created by initramfs init and will be unmounted by initramfs
shutdown.

It is unlikely that such a mount point would even be unmountable
by the the main system, for example in the case of the root file-
system being loop-mounted from a file in a /run/initramfs mount.
2016-03-04 15:16:34 +00:00
Joel Holdsworth
9c0d1c1cb5 core/failure-action: Set job-modes to replace-irreversibly
Up until now, the failure action has launched reboot.target and
poweroff.target with a less aggressive job mode than
"systemctl reboot" does. This has meant that the reboot and power-
off operations can stall if there are any conflicts with the target
during rebooting.
2016-03-04 15:13:40 +00:00
Evgeny Vereshchagin
a1d2de078c selinux: use *_raw API from libselinux
This is a follow-up to 5c5433ad32
2016-03-04 01:58:28 +00:00
Ronny Chevalier
31b5d98981 test-util: remove now unused includes 2016-03-03 19:04:07 +01:00
Ronny Chevalier
ac229ed890 tests: move xattr-util related tests to test-xattr-util.c 2016-03-03 19:04:07 +01:00
Ronny Chevalier
6a4f4a0fa0 tests: move glob-util related tests to test-glob-util.c 2016-03-03 19:04:07 +01:00
Ronny Chevalier
ac933e8ec4 tests: move io-util related tests to test-io-util 2016-03-03 19:04:06 +01:00
Ronny Chevalier
d376cbb7b0 tests: move proc-cmdline related tests to test-proc-cmdline.c 2016-03-03 19:04:06 +01:00
Ronny Chevalier
09c303ce5b tests: move fstab-util related tests to test-fstab-util.c 2016-03-03 19:04:06 +01:00
Ronny Chevalier
c270684afd tests: move fs-util related tests to test-fs-util.c 2016-03-03 19:04:06 +01:00
Ronny Chevalier
f55211dbce tests: move conf-parser related tests to test-conf-parser.c 2016-03-03 19:04:06 +01:00
Ronny Chevalier
0999c8ade8 tests: move fd-util related tests to test-fd-util.c 2016-03-03 19:04:06 +01:00
Ronny Chevalier
d5b29bb5d9 tests: move user-util related tests to test-user-util.c 2016-03-03 19:04:06 +01:00
Ronny Chevalier
6329266386 tests: move path-util related tests to test-path-util.c 2016-03-03 19:04:06 +01:00
Ronny Chevalier
897891f02e tests: move fileio related tests to test-fileio.c 2016-03-03 19:04:06 +01:00
Ronny Chevalier
f4c13ad76f tests: move stat-util related tests to test-stat-util.c 2016-03-03 19:04:06 +01:00
Ronny Chevalier
ede4edd31e tests: move signal-util related tests to test-signal-util.c 2016-03-03 18:46:58 +01:00
Ronny Chevalier
7ba365a9b2 tests: move cpu-set-util related tests to test-cpu-set-util.c 2016-03-03 18:46:58 +01:00
Ronny Chevalier
cd3510707a tests: move web-util related tests to test-web-util.c 2016-03-03 18:46:58 +01:00
Ronny Chevalier
b66de1f9d4 tests: move alloc related tests to test-alloc-util.c 2016-03-03 18:46:58 +01:00
Ronny Chevalier
45e0b1f68c tests: move escape related tests to test-escape.c 2016-03-03 18:46:58 +01:00
Ronny Chevalier
ebde5cb261 tests: move strv related tests to test-strv.c 2016-03-03 18:46:58 +01:00
Ronny Chevalier
6571a64ec9 tests: move string related tests to test-string-util.c 2016-03-03 18:46:58 +01:00
Ronny Chevalier
134714368e tests: move hexdecoct tests to test-hexdecoct.c 2016-03-03 18:46:58 +01:00
Ronny Chevalier
043717f9d3 systemctl: add missing OOM check 2016-03-03 18:16:31 +01:00
Lennart Poettering
04c760d2fe Merge pull request #2781 from keszybz/selinux-and-warnings
Selinux loading fix and warning cleanups
2016-03-03 17:46:56 +01:00
Ronny Chevalier
5f18271ec1 systemctl: rm empty dropin dirs after cancelled edit
Fixes #2734
2016-03-02 22:06:47 +01:00
Zbigniew Jędrzejewski-Szmek
6307c39b94 Redefine 32bit time_t format to signed
It seems that it is signed both on i386 and arm.

Avoids a stupid gcc warning on arm:

src/udev/udevadm-monitor.c: In function ‘print_device’:
src/udev/udevadm-monitor.c:44:16: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 3 has type ‘__time_t {aka long int}’ [-Wformat=]
         printf("%-6s[%"PRI_TIME".%06ld] %-8s %s (%s)\n",
                ^
2016-03-02 10:42:28 -05:00
Zbigniew Jędrzejewski-Szmek
fed527aa5b test-sizeof: add a helper which prints variable sizes and signedness
This helps to understand misleading gcc warnings about type mismatches.
2016-03-02 10:42:27 -05:00
Zbigniew Jędrzejewski-Szmek
ada94e69cd test-selinux: add some simple tests which call functions and print the results and timings 2016-03-02 10:42:27 -05:00
Zbigniew Jędrzejewski-Szmek
5c5433ad32 selinux: use raw variants of security_compute_create and setfscreatecon
As suggested by Evgeny Vereshchagin as a follow up for
https://github.com/systemd/systemd/pull/2781#issuecomment-191043402.
2016-03-02 10:42:27 -05:00
Daniel Mack
77f911c56b Merge pull request #2779 from 0xAX/openat-opath-excess-flags
tree-wide: no need to pass excess flags to open()/openat() if O_PATH …
2016-03-02 09:16:08 +01:00
Zbigniew Jędrzejewski-Szmek
c3dacc8bbf selinux: always try to load the full selinux db
https://github.com/systemd/systemd/pull/2508#issuecomment-190901170
Maybe fixes https://bugzilla.redhat.com/show_bug.cgi?id=1308771.
2016-03-01 20:39:30 -05:00
Alexander Kuleshov
c4b6915670 tree-wide: no need to pass excess flags to open()/openat() if O_PATH is passed
As described in the documentation:

When O_PATH is specified in flags, flag bits other than O_CLOEXEC,
O_DIRECTORY, and O_NOFOLLOW are ignored.

So, we can remove unnecessary flags in a case when O_PATH is passed
to the open() or openat().
2016-03-02 00:42:49 +06:00
Christian Hesse
a5a4e3658d ask-password: add option --no-output to not print password to stdout
systemd-ask-password can store passwords in kernel keyring. However it
uses to print the passwords to standard output nevertheless. Depending
on where systemd-ask-password is called passwords may end on display
or in log, leaking sensitive information.
This allows to make systemd-ask-password quiet, effectively disabling
printing passwords to standard output.
2016-03-01 19:02:11 +01:00
Daniel Mack
114761866a Merge pull request #2773 from eliasp/type-warnings
Use `PRIu64` to print `uint64_t` in log msgs
2016-03-01 10:06:51 +01:00
Zbigniew Jędrzejewski-Szmek
6014237390 Merge pull request #2702 from poettering/resolved-iterate-fix
resolved iteration fix
2016-02-29 23:18:16 -05:00
Zbigniew Jędrzejewski-Szmek
97a437d24c Merge pull request #2767 from benjarobin/fix-warn
systemctl: Fix warn: action_to_runlevel() is not used
2016-02-29 20:45:42 -05:00
Elias Probst
82e24b0068
Use PRIu64 to print uint64_t in log msgs 2016-02-29 23:00:21 +01:00
Lennart Poettering
cae027de59 Merge pull request #2771 from 0xAX/core-kernel-timestamp-cleanup
core: use DUAL_TIMESTAMP_NULL to reset kernel_timestamp
2016-02-29 20:33:51 +01:00
Lennart Poettering
ecb7c4488e Merge pull request #2769 from martinpitt/adjtime
Fixes for adjtime parsing
2016-02-29 20:32:02 +01:00
Martin Pitt
07edd3b9e5 test-clock: fix FILE* leak
Close the FILE* instead of the underlying fd.
2016-02-29 17:40:08 +01:00
Lennart Poettering
2e8294bc20 Merge pull request #2763 from tblume/shorten-hostname-before-removing-dots
shorten hostname before checking for trailing dot
2016-02-29 16:05:48 +01:00
Lennart Poettering
0522e11f59 Merge pull request #2756 from thom311/master
core: avoid compiler warning when compiling with -fexceptions
2016-02-29 16:03:32 +01:00
Martin Pitt
d69d951b11 test-clock: fix assertions
Use assert_se() to ensure that they don't get optimized away.
2016-02-29 15:19:30 +01:00
Martin Pitt
cb971cc031 timedated: trivial stylistic fix
Don't use {} for single-line "then" blocks.
2016-02-29 15:19:30 +01:00
Benjamin ROBIN
d2e796739d systemctl: Fix warn: action_to_runlevel() is not used
If HAVE_SYSV_COMPAT is not defined: ‘action_to_runlevel’ defined but not used
2016-02-29 15:07:09 +01:00
Benjamin ROBIN
fa0d5878c6 systemctl: Replace check_one_unit() by get_state_one_unit()
The get_state_one_unit returns the enum of the active state of the unit
Do not rely on the string value of the active state.

Fix #2718 since the refactoring allow to handle more case
2016-02-29 14:38:44 +01:00
Zbigniew Jędrzejewski-Szmek
fe4f8fd1d9 test-clock: fix fd "leak"
CID #1352301.
2016-02-29 08:03:32 -05:00
Alexander Kuleshov
0f5f63c328 core: use DUAL_TIMESTAMP_NULL to reset kernel_timestamp
instead of direct reset of kernel_timestamp fields.
2016-02-29 18:56:57 +06:00
Benjamin Robin
20268e0c3e stdio-bridge: Correctly propagate error
Return EXIT_FAILURE and print the correct errno code if sd_bus_get_fd() or sd_bus_get_events() fail
2016-02-29 10:45:34 +01:00
Thomas Blume
46e1a22781 shorten hostname before checking for trailing dot
Shortening can lead to a hostname that has a trailing dot.
Therefore it should be done before checking from trailing dots.
2016-02-29 10:19:01 +01:00
Zbigniew Jędrzejewski-Szmek
0493ccd9ed Merge pull request #2753 from phomes/trivial-fixes2
Trivial fixes
2016-02-28 19:12:31 -05:00
Zbigniew Jędrzejewski-Szmek
8f462d878c Merge pull request #2749 from martinpitt/adjtime 2016-02-28 18:56:56 -05:00
Ronny Chevalier
50f130c286 test-execute: add nfsnobody alternative as a nobody user 2016-02-28 15:00:18 +01:00
Ronny Chevalier
19c0b0b9a5 core: set NoNewPrivileges for seccomp if we don't have CAP_SYS_ADMIN
The manpage of seccomp specify that using seccomp with
SECCOMP_SET_MODE_FILTER will return EACCES if the caller do not have
CAP_SYS_ADMIN set, or if the no_new_privileges bit is not set. Hence,
without NoNewPrivilege set, it is impossible to use a SystemCall*
directive with a User directive set in system mode.

Now, NoNewPrivileges is set if we are in user mode, or if we are in
system mode and we don't have CAP_SYS_ADMIN, and SystemCall*
directives are used.
2016-02-28 14:44:26 +01:00
Thomas Haller
3587161ade core: avoid compiler warning when compiling with -fexceptions
Initialize auto variables with cleanup attribute, otherwise we
get a compiler warning with -fexceptions.

    ./configure CFLAGS='-Wmaybe-uninitialized -fexceptions -O2'
2016-02-27 13:40:50 +01:00
Thomas Hindoe Paaboel Andersen
17a8630621 stdio-bridge: remove dead code 2016-02-26 22:23:38 +01:00
Thomas Hindoe Paaboel Andersen
7f508f2c74 tree-wide: indentation fixes 2016-02-26 22:23:38 +01:00
Martin Pitt
c9410dd47f timedated: be more tolerant in parsing /etc/adjtime
Similarly to the previous commit, make context_write_data_local_rtc()
understand /etc/adjtime files with just one or two lines, with or without a
final newline.

Normalize the file to the current definition in hwclock(8), in the spirit of
"be liberal what you accept and strict what you produce": Add line terminators,
and set the second line to "0" if missing.

Fixes: #2638
2016-02-26 16:03:26 +01:00
Martin Pitt
35f7216f96 clock-util: be more tolerant in parsing /etc/adjtime
As we default to "hardware clock is in UTC" if /etc/adjtime is not present, it
also makes sense to have that default if /etc/adjtime contains only one or two
lines.

Drop the "gibberish" test case, as this was just EIO because of not containing
three lines, which is already contained in other tests. clock_is_localtime()
never actually validated the format of the first two lines, and there is little
point in doing that.

This addresses the reading half of issue #2638.
2016-02-26 12:33:41 +01:00
Martin Pitt
6369641d6f clock-util: make clock_is_localtime() testable and add initial tests
Add path argument to clock_is_localtime() and default to "/etc/adjtime" if it's
NULL. This makes the function testable.

Add test-clock: initial test cases for some scenarios, using a temporary file.
This also checks the behaviour with a NULL (i. e. the system's /etc/adjtime)
file.
2016-02-26 11:28:49 +01:00
Zbigniew Jędrzejewski-Szmek
06fb28b16e Merge pull request #2671 from 0xAX/move-pager-open-to-one-place
tree-wide: merge pager_open_if_enabled() to the pager_open()
2016-02-25 15:29:59 -05:00
Alexander Kuleshov
ea4b98e657 tree-wide: merge pager_open_if_enabled() to the pager_open()
Many subsystems define own pager_open_if_enabled() function which
checks '--no-pager' command line argument and open pager depends
on its value. All implementations of pager_open_if_enabled() are
the same. Let's merger this function with pager_open() from the
shared/pager.c and remove pager_open_if_enabled() from all subsytems
to prevent code duplication.
2016-02-26 01:13:23 +06:00
Patrik Flykt
8eb7b6a595 sd-dhcp-server: Send replies to BOOTP relay server port
RFC 2131 Section 4.1 says that

 "If the ’giaddr’ field in a DHCP message from a client is non-zero,
  the server sends any return messages to the ’DHCP server’ port on the
  BOOTP relay agent whose address appears in ’giaddr’."

Fix this by adding a destination port when sending unicast UDP packets
and provide the server port when a BOOTP relay agent is being used.
2016-02-25 15:46:55 +02:00
Torstein Husebø
96d4901149 treewide: fix typos and then/that use 2016-02-24 11:56:11 +01:00
Martin Pitt
77d9510adc Merge pull request #2719 from evverx/add-test-to-makefile
tests: various fixes
2016-02-24 08:06:53 +01:00
Steven Siloti
a915abf35a dnssec: only run tests that require gcrypt if we have it 2016-02-23 20:28:52 -08:00
Zbigniew Jędrzejewski-Szmek
03e6b71c06 Merge pull request #2724 from vcaputo/minor-formatting-cleanups
tree-wide: minor formatting inconsistency cleanups
2016-02-23 18:48:37 -05:00
Vito Caputo
9ed794a32d tree-wide: minor formatting inconsistency cleanups 2016-02-23 14:20:34 -08:00
Zbigniew Jędrzejewski-Szmek
703b7ccf41 Merge pull request #2639 from nafets227/master
Bugfix set virt=none when running on XEN Dom0
2016-02-23 17:12:40 -05:00
Stefan Schallenberg aka nafets227
3f61278b56 basic: Bugfix Detect XEN Dom0 as no virtualization
When running in XEN Dom0 the virtualization check:
1) detect_xen returns HYPERVISOR_NONE so next checks are executed
2) /proc/sys/hypervisor detects a XEN hypervisor
   it is lacking the special Dom0 detection as in detect_xen

With this patch, at the end of all virtualization checks we double-check if running in XEN Dom0 or DomU.
2016-02-23 22:32:16 +01:00
Stefan Schallenberg aka nafets227
9f63a08d99 basic: Debug-logging of Virtualisation detection
print out every single detection executed and its result.
2016-02-23 22:32:06 +01:00
Thomas Hindoe Paaboel Andersen
404d53a968 networkctl: fix const 2016-02-23 20:40:51 +01:00
Thomas Hindoe Paaboel Andersen
662ea1b14a tree-wide: remove unused variables 2016-02-23 20:40:51 +01:00
Thomas Hindoe Paaboel Andersen
7c9337dae8 basic: mark unused variable as such 2016-02-23 20:40:51 +01:00
Lennart Poettering
c550f7a9b8 Merge pull request #2664 from zonque/bootchart-removal
Remove systemd-bootchart
2016-02-23 20:27:59 +01:00
Lennart Poettering
5798eb4cce tests: fix x86 personality tests to only on x86 2016-02-23 17:01:12 +00:00
Lennart Poettering
d971033f6b Merge pull request #2708 from vcaputo/journal-restore-offline-state-on-error
journal: restore offline state on error
2016-02-23 16:55:16 +01:00
Lennart Poettering
0ab0c01490 Merge pull request #2717 from keszybz/networkctl-prettification
Networkctl prettification
2016-02-23 16:54:52 +01:00
Zbigniew Jędrzejewski-Szmek
4c3160f150 networkctl: only print lldp legend for capabilities that were actually seen 2016-02-23 08:50:52 -05:00
Zbigniew Jędrzejewski-Szmek
6b0132e4e7 basic: simplify ether_addr_is_null 2016-02-23 08:50:49 -05:00
Zbigniew Jędrzejewski-Szmek
953d28cc21 Fix two typos 2016-02-23 08:48:22 -05:00
Daniel Mack
4c2bb6b3b3 architecture.h: remove PROC_CPUINFO_MODEL
This was only needed for bootchart, so it can go now.
2016-02-23 13:31:28 +01:00
Daniel Mack
232c84b2d2 Remove systemd-bootchart
This commit rips out systemd-bootchart. It will be given a new home, outside
of the systemd repository. The code itself isn't actually specific to
systemd and can be used without systemd even, so let's put it somewhere
else.
2016-02-23 13:30:09 +01:00
Martin Pitt
a9ae070941 Merge pull request #2709 from vcaputo/normalize_inc_dec_usage
tree-wide: make ++/-- usage consistent WRT spacing
2016-02-23 08:45:54 +01:00
Martin Pitt
548bd139fe Merge pull request #2698 from poettering/personality
Personality fixes
2016-02-23 08:19:20 +01:00
Vito Caputo
313cefa1d9 tree-wide: make ++/-- usage consistent WRT spacing
Throughout the tree there's spurious use of spaces separating ++ and --
operators from their respective operands.  Make ++ and -- operator
consistent with the majority of existing uses; discard the spaces.
2016-02-22 20:32:04 -08:00
Vito Caputo
ec9ffa2cdd journal: restore offline state on error
If we fail to create the thread, technically we should leave the
offline_state as OFFLINE_JOINED, not OFFLINE_SYNCING.
2016-02-22 20:00:13 -08:00
Lennart Poettering
4d080d7798 Merge pull request #2701 from keszybz/udev-rules
udev-rules cleanup fix
2016-02-22 23:25:36 +01:00
Lennart Poettering
35aa04e9ed resolved: fix notification iteration logic when transactions are completed
When a transaction is complete, and we notify its owners, make sure we deal
correctly with the requesters removing themselves from the list of owners while
we continue iterating.

This was previously already dealt with with transactions that require other
transactions for DNSSEC purposes, fix this for other possibly transaction
owners too now.

Since iterating through "Set" objects is not safe regarding removal of entries
from it, rework the logic to use two Sets, and move each entry we notified from
one set to the other set before we dispatch the notification. This move operation
requires no additional memory, and enables us to ensure that we don't notify
any object twice.

Fixes: #2676
2016-02-22 23:24:47 +01:00
Lennart Poettering
1a39bc8c65 hashmap: use void* and uint8_t* for generic pointers
As suggested by CODING_STYLE we should use "void*" as type for generic memory,
and uint8_t* for generic bytes. Hence use that instead of "char*", which should
really be used only for strings these days.
2016-02-22 23:24:47 +01:00
Lennart Poettering
26fbedd7dc tests: add personality tests 2016-02-22 23:23:06 +01:00