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

21777 Commits

Author SHA1 Message Date
David Herrmann
11f254be0c bus-proxy: make StartServiceByName synchronous
The StartServiceByName() call was provided by dbus-daemon to activate a
service without sending a message. On receiption, dbus-daemon schedules
an activation request (different modes are supported) and sends back the
reply once activation is done.

With kdbus, we marked StartServiceByName() as deprecated. There is no
real reason to start services explicitly. Instead, applications should
just *use* the service and rely on it being activated implicitly.
However, we provide compatibility with dbus-daemon and implement
StartServiceByName() on the proxy via a call to
org.freedesktop.DBus.Peer.Ping() on the destination. This will activate
the peer implicitly as part of the no-op Ping() method call (regardless
whether the peer actually implements that call).

Now, the problem is, StartServiceByName() was synchronous on dbus-daemon
but isn't on bus-proxy. Hence, on return, there is no guarantee that
ListNames includes the activated name. As this is required by some
applications, we need to make this synchronous.

This patch makes the proxy track the Ping() method call and send the
reply of StartServiceByName() only once Ping() returned. We do not look
at possible errors of Ping(), as there is no strict requirement for the
peer to implement org.freedesktop.DBus.Peer. Furthermore, any interesting
error should have already been caught by sd_bus_send() before.

Note:
        This race was triggered by gdbus. The gdbus-proxy implementation
        relies on a name to be available after StartServiceByName()
        returns. This is highly fragile and should be dropped by gdbus.
        Even if the call is synchronous, there is no reason whatsoever to
        assume the service did not exit-on-idle before ListNames()
        returns.
        However, this race is much less likely than the startup race, so
        we try to be compatible to dbus-daemon now.
2015-07-31 13:56:39 +02:00
Johannes Nixdorf
182247ea92 build-sys: use 'test -f' instead of AC_CHECK_FILE
AC_CHECK_FILE fails when cross-compiling. It is intended to be used to
check for files that are used at runtime during build time (e.g.
/etc/passwd, /dev/*) [1]. For files which are only used at build time
'test -f' is sufficient.

[1]: https://lists.gnu.org/archive/html/autoconf/2000-10/msg00018.html
2015-07-31 13:38:49 +02:00
David Herrmann
a87d2ed1ce bus-proxy: don't filter directed signals
NameAcquired and NameLost are directed signals. Never ever filter them on
dbus1. On dbus1, filters *exclusively* apply to broadcasts! Hence, we
must always forward directed signals unconditionally!
2015-07-31 13:28:23 +02:00
David Herrmann
e3c57a86f6 bus-proxy: fix NameAcquired and NameLost to be directed
The NameAcquired and NameLost signals are _directed_ signals. Make sure
we properly set the destination correctly, and verify it in our
proxy-test.
2015-07-31 13:28:21 +02:00
David Herrmann
0810bc568a basic: fix error/memleak in socket-util
Probably a typo, checking 'ret' instead of the return value 'p'. This
might cause the function to return failure, even though it succeeded.
Furthermore, it might leak resources.
2015-07-31 11:52:21 +02:00
Daniel Mack
6189e043d4 Merge pull request #799 from andreaskem/hwdb-pull
hwdb: DPI info for Logitech G402 mouse
2015-07-31 10:51:32 +02:00
Andreas Kempf
3407fcd575 hwdb: Add mouse DPI info for Logitech G402.
DPI information was taken from the device's setup guide.

Additional (shortened) information from udevadm info:

P: .../usb2/2-1/2-1:1.0/0003:046D:C07E.0002/input/input6/event2
N: input/event2
S: input/by-id/usb-Logitech_Gaming_Mouse_G402_6D93117D5049-event-mouse
S: input/by-path/pci-0000:00:12.0-usb-0:1:1.0-event-mouse
...
E: ID_BUS=usb
E: ID_INPUT=1
E: ID_INPUT_MOUSE=1
E: ID_MODEL=Gaming_Mouse_G402
E: ID_MODEL_ENC=Gaming\x20Mouse\x20G402
E: ID_MODEL_ID=c07e
E: ID_PATH=pci-0000:00:12.0-usb-0:1:1.0
E: ID_PATH_TAG=pci-0000_00_12_0-usb-0_1_1_0
E: ID_REVISION=9002
E: ID_SERIAL=Logitech_Gaming_Mouse_G402_6D93117D5049
E: ID_SERIAL_SHORT=6D93117D5049
E: ID_TYPE=hid
E: ID_USB_DRIVER=usbhid
E: ID_USB_INTERFACES=:030102:030000:
E: ID_USB_INTERFACE_NUM=00
E: ID_VENDOR=Logitech
E: ID_VENDOR_ENC=Logitech
E: ID_VENDOR_ID=046d
E: LIBINPUT_DEVICE_GROUP=3/46d/c07e/111:usb-0000:00:12.0-1
E: MAJOR=13
E: MINOR=66
E: SUBSYSTEM=input
...
2015-07-31 10:34:27 +02:00
Andreas Kempf
8601a85cb4 hwdb: Update info for potential contributors.
Update the location of the bug tracker and mention that pull requests
are preferred.
2015-07-31 10:34:27 +02:00
Kay Sievers
540536ffd1 systemd-boot: sort /EFI/Linux/*.efi files 2015-07-30 18:28:02 +02:00
Daniel Mack
8e542fcdc4 unit-name: fix memory leak
Fix a memory leak introduced by 2fc09a9c. 's' is used twice in this
function, and if free_and_strdup() fails, the pointer is left untouched.
2015-07-30 15:51:50 +02:00
Daniel Mack
ed070f131f Merge pull request #787 from dvdhrm/bus-list
sd-bus: fix parsing of KDBUS_CMD_LIST
2015-07-30 15:35:52 +02:00
David Herrmann
89c240e3a5 sd-bus: fix parsing of KDBUS_CMD_LIST
We *must not* assume that an entry returned by KDBUS_CMD_LIST only
carries a single KDBUS_ITEM_OWNED_NAME. Similarly, we already parse
multiple such items for message-metadata, so make sure we support the
same on KDBUS_CMD_LIST.

By relying on the kernel to return all names separately, we limit the
kernel API significantly. Stop this and let the kernel decide how to
return its data.
2015-07-30 14:12:09 +02:00
Daniel Mack
87d0ac4350 Merge pull request #784 from eworm-de/typo
man: fix typo in man systemd-machine-id-commit
2015-07-30 13:22:50 +02:00
David Herrmann
9e24850718 Merge pull request #785 from zonque/free-and-strdup
tree-wide: use free_and_strdup()
2015-07-30 13:22:15 +02:00
Daniel Mack
2fc09a9cdd tree-wide: use free_and_strdup()
Use free_and_strdup() where appropriate and replace equivalent,
open-coded versions.
2015-07-30 13:09:01 +02:00
Christian Hesse
47c453f6a6 man: fix typo in man systemd-machine-id-commit 2015-07-30 10:24:16 +02:00
Daniel Mack
5f17089ac1 Merge pull request #783 from whot/hwdb-updates
Hwdb updates
2015-07-30 09:30:49 +02:00
Peter Hutterer
47b84eac21 hwdb: add min/max/resolution override for Appletouch one-button touchpads
Macbook2,1, late 2006 model.

https://bugzilla.redhat.com/show_bug.cgi?id=1246651
2015-07-30 16:17:19 +10:00
Peter Hutterer
5b7246d09d hwdb: add resolution values for Asus K52JT touchpad
https://bugs.freedesktop.org/show_bug.cgi?id=91364
2015-07-30 16:17:16 +10:00
Daniel Mack
65c85ef511 Merge pull request #779 from poettering/fflush-and-check
tree-wide: port everything over to fflush_and_check()
2015-07-29 20:43:54 +02:00
Tom Gundersen
1051d049a8 Merge pull request #764 from ssahani/vxlan1
networkd: Add VXLAN Netlink attributes
2015-07-29 20:40:17 +02:00
Daniel Mack
c2570b3de2 Merge branch 'master' of github.com:systemd/systemd 2015-07-29 20:31:15 +02:00
Lennart Poettering
dacd6cee76 tree-wide: port everything over to fflush_and_check()
Some places invoked fflush() directly with their own manual error
checking, let's unify all that by using fflush_and_check().

This also unifies the general error paths of fflush()+rename() file
writers.
2015-07-29 20:31:07 +02:00
Daniel Mack
7fc309b3a8 Merge branch 'pr/761' 2015-07-29 20:31:02 +02:00
Tom Gundersen
be0c13707d networkd-wait-online: only consider interfaces given on the commandline
If some interfaces are given on the commandline, ignore all others.
2015-07-29 20:30:50 +02:00
Kay Sievers
8110e144ff sd-boot: stub - export LoaderDevicePartUUID 2015-07-29 19:36:17 +02:00
Daniel Mack
85636547e7 Merge pull request #778 from ssahani/flow
networkd: fix size of networkd binary
2015-07-29 19:04:13 +02:00
Kay Sievers
8388607b58 build-sys: fix "make doc-sync" 2015-07-29 18:50:32 +02:00
Susant Sahani
6870b41563 networkd: fix size of networkd binary
This patch fixes the size of networkd
Bug #775

before:

size systemd-networkd
   text	   data	    bss	    dec	    hex	filename
1493755	8424392	   2337	9920484	 975fe4	systemd-networkd

After

$ size systemd-networkd
   text	   data	    bss	    dec	    hex	filename
1493555	  35752	   2337	1531644	 175efc	systemd-networkd
2015-07-29 22:20:06 +05:30
Lennart Poettering
c4a6d5085a Merge pull request #777 from kaysievers/gtp-auto
gpt-auto-generator: merge efi-boot-generator
2015-07-29 18:45:48 +02:00
Lennart Poettering
2b32ffa07d Merge pull request #774 from dvdhrm/gvariant3
gvariant: fix encoding of unary type and root-variant (v3)
2015-07-29 18:20:17 +02:00
Kay Sievers
59512f21d7 gpt-auto-generator: merge efi-boot-generator 2015-07-29 18:16:48 +02:00
Daniel Mack
4eb344b1b8 Merge pull request #776 from baracoder/master
man: unit: fix StartTimeoutSec
2015-07-29 17:52:46 +02:00
Herman Fries
21d1130207 man: unit: fix StartTimeoutSec
should be TimeoutStartSec
2015-07-29 17:45:40 +02:00
David Herrmann
03ebf5e89b sd-bus: fix encoding/decoding gvariant root container
The gvariant root container contains a 'variant' at the end, which embeds
the whole message body. This variant *must* contain a structure so we are
compatible to dbus1. Otherwise, it could encode at most 1 type, instead
of a full signature.

Our gvariant message parser already parses the variant-content as a
structure, so we're mostly good. However, it does *not* include the
opening and closing parantheses, nor does it parse them.

This patch fixes the decoder to verify a message contains the
parantheses, and also make the encoder add those parantheses into the
marshaled message.
2015-07-29 16:46:24 +02:00
David Herrmann
e53d21d007 sd-bus: fix marshaling of unary type
The unary type has a fixed size of 1 in gvariant. Make sure we properly
encode it as such. Right now, we encode/decode it as empty sequence.
2015-07-29 16:38:14 +02:00
David Herrmann
e4e6699395 NEWS: update 223 contributors
Update v223 contributors and release date.
2015-07-29 15:25:45 +02:00
Kay Sievers
e2b6ad0398 build-sys: update git-tar 2015-07-29 15:02:58 +02:00
Daniel Mack
409f2e178c Merge pull request #769 from poettering/socket-util-no-log
socket-util: library calls shouldn't log on their own
2015-07-29 13:05:36 +02:00
David Herrmann
9a8fb5ae17 sd-bus: drop redundant code
If c->item_size is 0, the next item to parse in a structure is empty.
However, this also implies that the signature must be empty. The latter
case is already handled just fine by enter_struct_or_dict_entry() so
there is no reason to handle the same case in the caller.
2015-07-29 13:03:09 +02:00
David Herrmann
a388569f60 sd-bus: don't assert() on valid signatures
Right now sd_bus_message_skip() will abort execution if passed a
signature of the unary type "()". Regardless whether this should be
supported or not, we really must not abort. Drop the incorrect assertion
and add a test-case for this.
2015-07-29 13:03:09 +02:00
David Herrmann
39d1a2d05d build: bump version info
Bump version to 223 and increase libsystemd libtool-info as we added a
structure-member (without increasing structure size) to sd-bus-vtable.
2015-07-29 12:44:55 +02:00
Daniel Mack
3512af1706 Merge pull request #768 from poettering/resolved-localhost
resolved: never attempt to resolve loopback addresses via DNS/LLMNR/mDNS
2015-07-29 12:44:22 +02:00
Lennart Poettering
19a9bc49df Merge pull request #767 from torstehu/fix-typo
treewide: fix typos
2015-07-29 12:40:55 +02:00
Lennart Poettering
1938ac5136 socket-util: library calls shouldn't log on their own
Instead, make sure that all callers log properly.
2015-07-29 12:38:22 +02:00
Lennart Poettering
9436e8cae4 resolved: never attempt to resolve loopback addresses via DNS/LLMNR/mDNS
We already refuse to resolve "localhost", hence we should also refuse
resolving "127.0.0.1" and friends.
2015-07-29 12:30:49 +02:00
Torstein Husebø
94e5ba370a treewide: fix typos 2015-07-29 12:29:46 +02:00
David Herrmann
f5f113f666 NEWS: add 'macvtap' section
systemd-networkd now supports 'macvtap' devices, similar to the already
supported 'macvlan' devices.
2015-07-29 12:12:10 +02:00
David Herrmann
48579c4b6a Merge pull request #747 from dvdhrm/consoled
terminal: drop unfinished code
2015-07-29 12:03:34 +02:00
Susant Sahani
8b414e52d1 man: add man for VXLAN Group Policy option 2015-07-29 14:06:46 +05:30