1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-06 08:26:52 +03:00
Commit Graph

14997 Commits

Author SHA1 Message Date
Tom Gundersen
1e9be60bba networkd: link - support IFLA_OPERSTATE
This properly detects the state of the link based on both the link flags and the
operstate.

Moreover, always log state-changes even if we are not yet managing the link.
2014-04-22 21:06:00 +02:00
Tom Gundersen
45ad2c1328 networkd: link - don't react to successfull link up
Avoid having two code-paths racing with eacother to do the same thing. The change
of flags will be detected in the normal way, so only use the link_up_handler
to detect if the 'up' failed and in that case fail the link.
2014-04-22 21:06:00 +02:00
Tom Gundersen
124fa2c601 networkd: link - log when starting clients fail 2014-04-22 21:06:00 +02:00
Tom Gundersen
2139694e82 networkd: link - avoid cycle when failing 2014-04-22 21:06:00 +02:00
Tom Gundersen
111bb8f93a networkd: link - stop clients when failing 2014-04-22 21:06:00 +02:00
Kay Sievers
0fbedd1fdc remove bus-driverd, the interface is now handled natively by bus-proxyd 2014-04-22 19:31:26 +02:00
Kay Sievers
dc780ecf10 bus-proxyd: handle org.freedesktob.DBus calls natively 2014-04-22 19:15:35 +02:00
Tom Gundersen
7d95c772cb Revert "networkd: netdev - set predictable mac address when creating netdev"
This reverts commit cdc85c875b.

There appears to be a kernel bug that (among other things) cause bridges
not to get a bridge id set when supplying IFLA_ADDRESS when creating the
netdev.

Simply revert the whole thing until we sort this out in the kernel.

See: http://www.spinics.net/lists/netdev/msg279807.html

Reported-by: C. R. Oldham <cr@saltstack.com>
2014-04-21 22:12:53 +02:00
Michael Olbrich
efe6e7d33a service: add support for reboot argument when triggered by StartLimitAction=
When rebooting with systemctl, an optional argument can be passed to the
reboot system call. This makes it possible the specify the argument in a
service file and use it when the service triggers a restart.
This is useful to distinguish between manual reboots and reboots caused by
failing services.
2014-04-21 09:58:53 -04:00
Michael Olbrich
c5220a940d systemctl: delete REBOOT_PARAM_FILE if no parameter is specified
And move it to sperate function.
2014-04-21 09:58:53 -04:00
Dave Reisner
370c860f74 implement a union to pad out file_handle
Cases where name_to_handle_at is used allocated the full struct to be
MAX_HANDLE_SZ, and assigned this size to handle_bytes. This is wrong
since handle_bytes should describe the length of the flexible array
member and not the whole struct.

Define a union type which includes sufficient padding to allow
assignment of MAX_HANDLE_SZ to be correct.
2014-04-21 09:52:08 -04:00
Dave Reisner
dbb9401dba condense assignment and path_kill_slashes calls 2014-04-21 09:52:08 -04:00
Lukasz Skalski
6d6c604ac8 doc: fix items' names in PORTING-DBUS1 2014-04-20 23:06:48 -04:00
Bas van den Berg
9d50e74a0a Remove duplicate includes 2014-04-20 22:10:21 -04:00
Thomas Hindoe Paaboel Andersen
6e37cd2f4a silence warnings 2014-04-21 00:03:22 +02:00
Tom Gundersen
57bd6899b3 networkd: link - add explicit unmanaged state 2014-04-20 19:54:35 +02:00
Tom Gundersen
4bb40e8125 networkd: link - set mac addresses when starting clients
MAC addreses are also set when NEWLINK messages are receieved, but only if the clients have
already been initialized.
2014-04-20 19:34:53 +02:00
Tom Gundersen
6317519517 sd-dhcp-client: log ifindex and mac address when starting 2014-04-20 19:20:26 +02:00
Tom Gundersen
c6a1eb79a5 networkd: link - log changes in some common link flags 2014-04-20 19:20:26 +02:00
Tom Gundersen
75ee87c8c6 networkd: link - use IFF_DORMANT instead of IFF_RUNNING
Should be no functional change, but avoids spurious log
messages when in operstate UNKNOWN and !IFF_LOWER_UP.
2014-04-20 18:02:15 +02:00
Tom Gundersen
069e10a0e0 networkd: link - make debug logging a bit more readable
Drop leading zeros which will never be used when printing the link flags.
2014-04-20 14:42:57 +02:00
Tom Gundersen
92d927f850 udev: link-config - treat any non-random mac address as persistent
The address may be already changed by other processes, or set
when creating the netdev from userspace.
2014-04-20 10:28:28 +02:00
Tom Gundersen
6190b9f9d2 sd-rtnl: log when queues are exhausted 2014-04-20 10:28:28 +02:00
Matthew Monaco
66aaf85e17 cryptsetup: copy value, not key for (rd.)luks.key 2014-04-19 23:38:14 -04:00
Zbigniew Jędrzejewski-Szmek
d38f6e34a6 Handle Unix domain socket connections from outside our namespace v2
This is a second attempt at 9754d56, reverted in 2f20a8e, because
I lost a 'break;' when moving chunks around.
2014-04-19 23:26:57 -04:00
Tom Gundersen
a555350d47 networkd: order after udev kernel socket
Otherwise we will not be able to queuery whether devices are initialized on kdbus enabled systems.
2014-04-19 22:13:49 +02:00
Tom Gundersen
667fcc6d7d networkd: manager - add a bit of debug output to udev ADD events 2014-04-19 21:41:40 +02:00
Tom Gundersen
b8941f74c8 networkd: link - track interface renames 2014-04-19 20:39:29 +02:00
Tom Gundersen
d4ef4f46cf sd-rtnl: socet_read_message - make sure we only shrink the partial rqueue when processing multi-part message 2014-04-19 20:32:01 +02:00
Tom Gundersen
6916ec29af network: implement masking of .link, .network and .netdev files 2014-04-19 19:05:37 +02:00
Tom Gundersen
a21df10488 networkd: netdev - give up early when setting already set ifindex
We may receive RTM_NEWLINK messages with missing LINKINFO after the initial NEWLINK message,
don't bother verifying these, just drop out early after checking that the ifindex is not in conflict.
2014-04-19 18:41:58 +02:00
Tom Gundersen
c6315a7afc networkd: netdev - verify name of newlink messages 2014-04-19 18:41:58 +02:00
Tom Gundersen
cdc85c875b networkd: netdev - set predictable mac address when creating netdev 2014-04-19 18:41:58 +02:00
Tom Gundersen
505f8da732 networkd: tie links to rtnl rather than udev
This essentially swaps the roles of rtnl and udev in networkd. After this
change libudev is only used for waiting for udev to initialize devices and
to get udev-specific information needed for some [Match] attributes.

This in particular simplifies the code in containers where udev is not really
useful, but also simplifies things and reduces round-trips in the non-container
case.
2014-04-19 18:41:58 +02:00
Tom Gundersen
d1ca51b153 nss-myhostname: port to sd-rtnl 2014-04-19 18:39:24 +02:00
Tom Gundersen
6e20c8f8fa sd-rtnl: message - expose DUMP flag in the api 2014-04-19 16:47:52 +02:00
Tom Gundersen
7182867e79 sd-rtnl: add multi-part message test 2014-04-19 16:47:52 +02:00
Tom Gundersen
4e996881b2 sd-rtnl: message - concatenate multi-part messages from different packets 2014-04-19 16:47:52 +02:00
Tom Gundersen
24a026737d sd-rtnl: message - don't put NULL message on rqueue
If nothing interesting was receieved we should not put anything on
the queue.
2014-04-19 16:47:52 +02:00
Tom Gundersen
6fc518838c sd-rtnl: message - make room for all pending messages, not just the first
Also, don't actually read any of the message when peeking, just get its length.
2014-04-19 16:47:52 +02:00
Kay Sievers
2f20a8ebdb Revert "Handle Unix domain socket connections from outside our namespace"
This reverts commit 9754d56e9b.

It causes a crash in PID1:
  Apr 19 13:49:32 lon systemd[1]: Code should not be reached 'Unhandled socket type.'
                                  at src/core/socket.c:684, function instance_from_socket(). Aborting.
  Apr 19 13:49:32 lon systemd[1]: Caught <ABRT>, dumped core as pid 336.
  Apr 19 13:49:32 lon systemd[1]: Freezing execution.
2014-04-19 13:53:11 +02:00
Greg KH
a606871da5 tmpfiles: fix permissions on new journal files
When starting up journald on a new system, set the proper permissions on
the system.journal files, not only on the journal directory.
2014-04-17 23:58:12 -04:00
Zbigniew Jędrzejewski-Szmek
1dd5aa56d1 build-sys: do not try to build test-rtnl-manual w/o kmod 2014-04-17 23:39:54 -04:00
Łukasz Stelmach
7c4e5e4db8 build-sys: add libkmod flags for test_rtnl_manual 2014-04-17 23:39:54 -04:00
Ali H. Caliskan
f2f426ddcf core: minor typo fix 2014-04-17 23:30:13 -04:00
Zbigniew Jędrzejewski-Szmek
00a5cc3a63 delta: do not use unicode chars in C locale
https://bugzilla.redhat.com/show_bug.cgi?id=1088418
2014-04-16 23:33:48 -04:00
Djalal Harouni
af7fce1cdb install: create_symlink() check unlink() return value
create_symlink() do not check the return value of unlink(), this may
confuse the user.

Before the unlink() call we check the 'force' argument. If it is not set
we fail with -EEXIST, otherwise we unlink() the file, therefore the next
symlink() should not fail with -EEXIST (do not count races...).

However since callers may not have appropriate privileges to unlink()
the file we lose the -EPERM or any other errno code of unlink(), and
return the -EEXIST of the next symlink(). Fix this by checking unlink()
results.

Before:
$ systemctl --force --root=~/container-03 set-default multi-user.target
Failed to set default target: File exists

After:
$ systemctl --force --root=~/container-03 set-default multi-user.target
Failed to set default target: Permission denied
2014-04-16 23:13:22 -04:00
Djalal Harouni
a1484a216e systemctl: allow to change the default target without the --force switch
Currently "systemctl set-default" will fail to change the default target
due to the 'default.target' being a symlink which is always the case.

To work around this, the user must specify the "--force" switch to be
able to overwrite the existing symlink.

This is clearly a regression that was introduced by commit  718db96199
since it worked before without the "--force" switch and the man pages do
not mention that you need to specify it. It is expected that this is a
symlink.

So just explicity set the force flag to make it work again.

https://bugs.freedesktop.org/show_bug.cgi?id=76623

Reported-by: <code@progandy.de>
2014-04-16 23:13:22 -04:00
Eelco Dolstra
9754d56e9b Handle Unix domain socket connections from outside our namespace
NixOS uses Unix domain sockets for certain host <-> container
interaction; i.e. the host connects to a socket visible in the
container's directory tree, where the container uses a .socket unit to
spawn the handler program on demand. This worked in systemd 203, but
in 212 fails with "foo.socket failed to queue service startup job
(Maybe the service file is missing or not a template unit?): No data
available".

The reason is that getpeercred() now returns ENODATA if it can't get
the PID of the client, which happens in this case because the client
is not in the same PID namespace. Since getpeercred() is only used to
generate the instance name, this patch simply handles ENODATA by
creating an instance name "<nr>-unknown".

[zj: reorder clauses and remove (unsigned long) casts.]
2014-04-16 22:24:28 -04:00
Zbigniew Jędrzejewski-Szmek
5d2abc04fc man: document relationship between RequiresMountsFor and noauto
https://bugzilla.redhat.com/show_bug.cgi?id=1088057
2014-04-16 22:17:29 -04:00