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

12347 Commits

Author SHA1 Message Date
Lennart Poettering
1fac0c31ab sd-resolve: drop res_query() API
Querying low-level DNS RRs should be done via resolved now, not via
glibc's awful res_query() API anymore. Let's not introduce an async
wrapper for it hence.
2015-08-27 20:47:13 +02:00
David Herrmann
154429127c sd-bus: do not connect to dbus-1 socket when kdbus is available
We should not fall back to dbus-1 and connect to the proxy when kdbus
returns an error that indicates that kdbus is running but just does not
accept new connections because of quota limits or something similar.

Based on a patch by Kay.
2015-08-27 16:43:02 +02:00
David Herrmann
057171efc1 Revert "sd-bus: do not connect to dbus-1 socket when kdbus is available"
This reverts commit d4d00020d6. The idea of
the commit is broken and needs to be reworked. We really cannot reduce
the bus-addresses to a single address. We always will have systemd with
native clients and legacy clients at the same time, so we also need both
addresses at the same time.
2015-08-27 16:32:22 +02:00
David Herrmann
8faae625dc selinux: drop mac_selinux_unit_access_check_strv()
It is not acceptable to load unit files during enable/disable operations
just to figure out the selinux labels. systemd implements lazy loading
for units, so the selinux hooks need to follow it.

This drops the mac_selinux_unit_access_check_strv() helper which
implements a non-acceptable policy check. If anyone cares for that
functionality, you really should pass a callback+userdata to the helpers
in src/shared/install.c which does policy checks on each touched file.

See #1050 on github for more.
2015-08-27 16:29:01 +02:00
David Herrmann
19bee5c367 sd-bus: rename bloom-tag to arg0-has
We use dashes in our bloom-tags. Make sure the newly introduced arg0has
tag uses the same style.

Note that the external dbus-tags don't use dashes, though. They are
defined in the spec and we need to keep compatibility there.
2015-08-27 16:29:01 +02:00
David Herrmann
21e654dae9 Merge pull request #1036 from poettering/sd-bus-arg0has
sd-bus: introduce new match type "arg0has=" for matching arrays of st…
2015-08-27 16:14:20 +02:00
David Herrmann
5f92c3ada6 Merge pull request #1024 from poettering/sd-bus-explicit
sd-bus: introduce new SD_BUS_VTABLE_PROPERTY_EXPLICIT flag
2015-08-27 16:12:52 +02:00
Kay Sievers
25568304d2 udev: control - add FIXME comment to remove work-around 2015-08-27 12:57:17 +02:00
David Herrmann
a00458421d sd-dhcp6: fix domainname memleak
strv_extend() does not consume the passed entry, hence, we must properly
free it. Furthermore, we should *not* use strv_consume() as we do greedy
allocations on 'ret'; and greedy-allocations should only be used for short
lived objects or caches.

Fix the domainname parser to properly free temporary storage when done.
2015-08-26 12:37:56 +02:00
David Herrmann
e6b18ffaea sd-dhcp: don't randomly ref objects
In our API design, getter-functions don't ref objects. Calls like
foo_get_bar() will not ref 'bar'. We never do that and there is no real
reason to do it in single threaded APIs. If you need a ref-count, you
better take it yourself *BEFORE* doing anything else on the parent object
(as this might invalidate your pointer).

Right now, sd_dhcp?_get_lease() refs the lease it returns. A lot of
code-paths in systemd do not expect this and thus leak the lease
reference. Fix this by changing the API to not ref returned objects.
2015-08-26 12:30:56 +02:00
David Herrmann
86d17e1d73 Merge pull request #1047 from poettering/machinectl-TERM
machinectl: pass $TERM into "machinectl shell" sessions
2015-08-26 11:55:48 +02:00
Martin Pitt
be5afe9f5f Merge pull request #1044 from d-hatayama/fix_systemctl_abspath
selinux: fix regression of systemctl subcommands when absolute unit file paths are specified
2015-08-26 10:53:45 +02:00
Lennart Poettering
031fc5a1ac Merge pull request #998 from vbatts/tar_nosparse_flag
import: don't create sparse tar archives
2015-08-26 10:09:11 +02:00
Lennart Poettering
89fec31893 machinectl: pass $TERM into "machinectl shell" sessions 2015-08-26 10:07:21 +02:00
Lennart Poettering
d9fcf2ba1a manager: close hostname fd *after* removing it epoll
Otherwise the epoll removal will fail and result in a warning.
2015-08-26 09:42:06 +02:00
Lennart Poettering
4d506d6bb7 resolved: dump cache and zone contents to syslog on SIGUSR1 2015-08-26 09:41:45 +02:00
HATAYAMA Daisuke
9fa7c1aeb9 selinux: fix regression of systemctl subcommands when absolute unit file paths are specified
The commit 4938696301 overlooked the
fact that unit files can be specified as unit file paths, not unit
file names, wrongly passing a unit file path to the 1st argument of
manager_load_unit() that handles it as a unit file name. As a result,
the following 4 systemctl subcommands:

    enable
    disable
    reenable
    link
    mask
    unmask

fail with the following error message:

    # systemctl enable /usr/lib/systemd/system/kdump.service
    Failed to execute operation: Unit name /usr/lib/systemd/system/kdump.service is not valid.
    # systemctl disable /usr/lib/systemd/system/kdump.service
    Failed to execute operation: Unit name /usr/lib/systemd/system/kdump.service is not valid.
    # systemctl reenable /usr/lib/systemd/system/kdump.service
    Failed to execute operation: Unit name /usr/lib/systemd/system/kdump.service is not valid.
    # cp /usr/lib/systemd/system/kdump.service /tmp/
    # systemctl link /tmp/kdump.service
    Failed to execute operation: Unit name /tmp/kdump.service is not valid.
    # systemctl mask /usr/lib/systemd/system/kdump.service
    Failed to execute operation: Unit name /usr/lib/systemd/system/kdump.service is not valid.
    # systemctl unmask /usr/lib/systemd/system/kdump.service
    Failed to execute operation: Unit name /usr/lib/systemd/system/kdump.service is not valid.

To fix the issue, first check whether a unit file is passed as a unit
file name or a unit file path, and then pass the unit file to the
appropreate argument of manager_load_unit().

By the way, even with this commit mask and unmask reject unit file
paths as follows and this is a correct behavior:

    # systemctl mask /usr/lib/systemd/system/kdump.service
    Failed to execute operation: Invalid argument
    # systemctl unmask /usr/lib/systemd/system/kdump.service
    Failed to execute operation: Invalid argument
2015-08-26 15:00:05 +09:00
Daniel Mack
7c268a0489 Merge pull request #1043 from phomes/master
test-util: fix a memleak
2015-08-26 00:05:33 +02:00
Daniel Mack
487ebe593c Merge pull request #1039 from poettering/nspawn-machine-template
nspawn: make sure --template= and --machine= my be combined
2015-08-25 23:58:40 +02:00
Daniel Mack
6a18bd1616 Merge pull request #1038 from poettering/coredumpctl-directory
Add --directory= option for reading alternate journal
2015-08-25 23:58:03 +02:00
Daniel Mack
a0cb22c475 Merge pull request #1040 from poettering/cgroup-path-fix
fix "systemctl status idontexist.service" showing the full cgroup tree
2015-08-25 23:57:28 +02:00
Thomas Hindoe Paaboel Andersen
21e5a0bea0 test-util: fix a memleak 2015-08-25 23:52:18 +02:00
Daniel Mack
d8b7e75f51 resolve: fix regression in dns-scope
Bring back a return statement 106784eb errornously removed.

Thanks to @phomes for reporting.
2015-08-25 23:51:34 +02:00
Daniel Mack
13918f62ff Merge pull request #1041 from phomes/master
trivial cleanups
2015-08-25 23:48:07 +02:00
Daniel Mack
4ece412faf Merge pull request #1034 from poettering/resolved-fixes-2
various resolved fixes
2015-08-25 23:47:30 +02:00
Thomas Hindoe Paaboel Andersen
c615b4ba9f machinectl: remove unused variable 2015-08-25 21:15:54 +02:00
Thomas Hindoe Paaboel Andersen
2307f37e46 execute: make the invalid entry of the enum -1
Set _EXEC_UTMP_MODE_INVALID to -1. This matches the return value from
string_table_lookup.
2015-08-25 21:15:54 +02:00
Lennart Poettering
98bac6058c core: report root cgroup as "/" over the bus
Internally, the root cgroup is stored as the empty string in
Unit.cgroup_path, and "no cgroup" as NULL. Unfortunately, D-Bus does not
know a NULL concept, hence when reporting the cgroup to clients we
should turn the root cgroup into "/", and leave the empty string for the
"no cgroup" case.

This should make sure that "systemctl status -- -.slice" works correctly
and shows the entire cgroup tree.
2015-08-25 20:42:50 +02:00
Lennart Poettering
37a0d5bf21 Revert "systemctl: properly handle empty control group paths in "status""
This reverts commit b04c25f9ef.
2015-08-25 20:37:54 +02:00
Lennart Poettering
c1521918b4 nspawn: make sure --template= and --machine= my be combined
Fixes #1018.

Based on a patch from Seth Jennings.
2015-08-25 20:28:31 +02:00
Stef Walter
b73e9a024b coredumpctl: Add --directory option for reading alternate journal
In the Cockpit integration tests we hang onton the journal files
for a failed test and would like to inspect them using coredumpctl.

This commit adds the ability to specify an alternate directory
for coredumpctl to read the journal from.
2015-08-25 20:06:43 +02:00
Lennart Poettering
eccd47c5be sd-bus: introduce new match type "arg0has=" for matching arrays of strings
Previously, sd-bus inofficially already supported bus matches that
tested a string against an array of strings ("as"). This was done via an
enhanced way to interpret "arg0=" matches. This is problematic however,
since clients have no way to determine if their respective
implementation understood strv matches or not, thus allowing invalid
matches to be installed without a way to detect that.

This patch changes the logic to only allow such matches with a new
"arg0has=" syntax. This has the benefit that non-conforming
implementations will return a parse error and a client application may
thus efficiently detect support for the match type.

Matches of this type are useful for "udev"-like systems that "tag" objects
with a number of strings, and clients need to be able to match against
any of these "tags".

The name "has" takes inspiration from Python's ".has_key()" construct.
2015-08-25 19:28:30 +02:00
Lennart Poettering
f0258e4736 resolved: add comments to DNS_PACKET_MAKE_FLAGS() clarifying DNS vs LLMNR
Some flags are defined differently on unicast DNS and LLMNR, let's
document this in the DNS_PACKET_MAKE_FLAGS() macro.
2015-08-25 19:04:04 +02:00
Lennart Poettering
069360a66a resolved: make packet flags logic more expressive again
This partially reverts 106784ebb7, ad
readds separate DNS_PACKET_MAKE_FLAGS() invocations for the LLMNR and
DNS case. This is important since SOme flags have different names and
meanings on LLMNR and on DNS and we should clarify that via the comments
and how we put things together.
2015-08-25 18:54:55 +02:00
Lennart Poettering
4667e00a61 resolved: rename DNS UDP socket to 'dns_udp_fd'
This hopefully makes this a bit more expressive and clarifies that the
fd is not used for the DNS TCP socket. This also mimics how the LLMNR
UDP fd is named in the manager object.
2015-08-25 18:51:23 +02:00
Lennart Poettering
8bed4cbcc0 bus-util: make more properties settable in --property=
Add a couple of new properties to the supported set we can pass in
systemd-run's and systemd-nspawn's --property= switch.
2015-08-25 18:39:50 +02:00
Lennart Poettering
7e9cc4361d core: drop spurious new line 2015-08-25 18:37:31 +02:00
Lennart Poettering
a1104deef0 machine: policykit string fixes 2015-08-25 18:37:16 +02:00
Tom Gundersen
498fb56739 Merge pull request #1022 from poettering/machinectl-shell
Add new "machinectl shell" command for su(1)-like behaviour
2015-08-25 16:46:27 +02:00
Lennart Poettering
3ad216b44f Merge pull request #1029 from jsynacek/unprivileged-wall-message-v2
logind/systemctl: introduce SetWallMessage and --message
2015-08-25 15:54:23 +02:00
Daniel Mack
eff91ee007 resolved: allow dns_cache_put() without a question
Currently, dns_cache_put() does a number of things:

1) It unconditionally removes all keys contained in the passed
   question before adding keys from the newly arrived answers.

2) It puts positive entries into the cache for all RRs contained
   in the answer.

3) It creates negative entries in the cache for all keys in the
   question that are not answered.

Allow passing q = NULL in the parameters and skip 1) and 3), so
we can use that function for mDNS responses. In this case, the
question is irrelevant, we are interested in all answers we got.
2015-08-25 14:26:18 +02:00
Daniel Mack
a7e5da6e33 sd-network: make LLMNR specific config parser generic
Rename the enum, the lookup functions and the parser for LLMNRSupport so
the type can be reused for mDNS.
2015-08-25 14:26:01 +02:00
Daniel Mack
9c56a6f3e2 resolved: move assertion
Make a scope with invalid protocol state fail as soon as possible.
2015-08-25 14:25:58 +02:00
Daniel Mack
106784ebb7 resolved: use switch-case statements for protocol details
With more protocols to come, switch repetitive if-else blocks with a
switch-case statements.
2015-08-25 14:25:56 +02:00
Jan Synacek
9ef15026c0 logind/systemctl: introduce SetWallMessage and --message
Enable unprivileged users to set wall message on a shutdown
operation. When the message is set via the --message option,
it is logged together with the default shutdown message.

$ systemctl reboot --message "Applied kernel updates."

$ journalctl -b -1
...
systemd-logind[27]: System is rebooting. (Applied kernel updates.)
...
2015-08-25 13:52:44 +02:00
Daniel Mack
8326c7f789 resolved: remove runtime check for previously asserted condition 2015-08-25 10:18:45 +02:00
Lennart Poettering
337020515d sd-bus: introduce new SD_BUS_VTABLE_PROPERTY_EXPLICIT flag
This allows marking properties as "explicit". Properties marked like
this are included in the introspection, but are avoided in GetAll()
property queries, PropertiesChanged() signals and in in GetManaged()
object manager calls and InterfacesAdded() signals.

Expensive properties may be marked that way, and they will be
retrievable when explicitly being requested, but never in "blanket"
all-property queries and signals.

This flag may be combined with the flags for "const" and
"emit-validation" properties, but not with "emit-validation", as that
is only useful for properties whose value shall be sent in "blanket"
all-property signals.

The "explicit" flag is also exposed in the introspection data via a new
annotation.
2015-08-25 01:50:59 +02:00
Lennart Poettering
9318cdd374 resolved: change error code when trying to resolve direct LLMNR PTR RRs
If we try to resoolve an LLMNR PTR RR we shall connect via TCP directly
to the specified IP address. We already refuse to do this if the address
to resolve is of a different address family as the transaction's scope.
The error returned was EAFNOSUPPORT. Let's change this to ESRCH which is
how we indicate "not server available" when connecting for LLMNR or DNS,
since that's what this really is: we have no server we could connect to
in this address family.

This allows us to ensure that no server errors are always handled the same
way.
2015-08-24 23:47:28 +02:00
Lennart Poettering
3fa4999b5d resolve-host: support parsing numeric interface names
If the user specifies an interface by its ifindex we should handle this
nicely. Hence let's try to parse the ifindex as a number before we try
to resolve it as an interface name.
2015-08-24 23:46:24 +02:00
Lennart Poettering
d634711b26 resolved: remove duplicate handling of "no servers" query result
So far we handled immediate "no server" query results differently from
"no server" results we ran into during operation: the former would cause
the dns_query_go() call to fail with ESRCH, the later would result in
the query completion callback to be called.

Remove the duplicate codepaths, by always going through the completion
callback. This allows us to remove quite a number of lines for handling
the ESRCH.

This commit should not alter behaviour at all.
2015-08-24 23:44:33 +02:00