1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-14 15:21:37 +03:00
Commit Graph

7807 Commits

Author SHA1 Message Date
Patrik Flykt
34e8c5a23c sd-dhcp6-client: Add functions to bind to DHCPv6 UDP socket
Add a function that creates a UDP socket bound to the given interface
and optionally to an IPv6 address. Add another function that will
send the DHCPv6 UDP packet to its destination.

Using IPV6_PKTINFO in setsockopt to bind the IPv6 socket to an
interface is documented in section 4. of RFC 3542, "Advanced Sockets
Application Program Interface (API) for IPv6"

Add a define for DHCPv6 Relay Agents and Servers multicast address as
its not available elsewhere.
2014-06-19 15:44:44 +03:00
Patrik Flykt
f12ed3bf0b sd-dhcp6-client: Add basic DHCPv6 option handling
Add option appending and parsing. DHCPv6 options are not aligned, thus
the option handling code must be able to handle options starting at
any byte boundary.

Add a test case for the basic option handling.
2014-06-19 15:44:43 +03:00
Patrik Flykt
d1b0afe365 sd-dhcp6-client: Add DHCPv6 client Solicitation timeout handling
Add the core of DHCPv6 client message retransmission and upper bound
timer and message count handling according to RFC 3315 Secions 7.1.2
and 14. Omit the DHCPv6 initial delay; for now it is assumed that
systemd-networkd will provide decent startup randomization that will
desynchronize the clients.

When reinitializing the client, clear all timers.
2014-06-19 15:44:43 +03:00
Patrik Flykt
813e3a6ffc sd-dhcp6-client: Add basic DHCPv6 test cases
Add test cases for basic DHCPv6 client handling, e.g. setting
interface index, mac address and attaching event loop.
2014-06-19 15:44:43 +03:00
Patrik Flykt
f12abb48fc sd-dhcp6-client: Add DHCPv6 IAID functionality
Create structures describing Identity Association IDentifiers and
IPv6 lease addresses.

[tomegun: initialize the IAID when client is started. Base this off of the
predictable udev names, if available, as these satisfy the requirement of
the IAID, and base it off the mac addres otherwise, as that is the best we
have.]
2014-06-19 15:44:43 +03:00
Tom Gundersen
fc5414305d network-internal: split out net_get_name() 2014-06-19 15:44:43 +03:00
Tom Gundersen
a276e6d686 sd-dhcp6-client: Initialize DUID
Initialize DHCP Unique Identifier when creating the client. The
DUID is generated based on the machine-id, which satisfies all the
requirements of what an DUID should be. The DUID type is DUID-EN.

Based on patch by Patrik Flykt.
2014-06-19 15:44:43 +03:00
Patrik Flykt
f20a35cc0d sd-icmp6-nd: Add initial Router Advertisement test case
Feed a Router Advertisement to the code and expect proper events
each time. The sending part is ignored, as all of it is static code
in the real dhcp_network_icmp6_send_rs() function.
2014-06-19 15:44:43 +03:00
Patrik Flykt
e316912679 sd-icmp6-nd: Add Router Solicitation and Advertisement support
Provide functions to bind the ICMPv6 socket to the approriate interface
and set multicast sending and receiving according to RFC 3493, section
5.2. and RFC 3542, sections 3. and 3.3. Filter out all ICMPv6 messages
except Router Advertisements for the socket in question according to
RFC 3542, section 3.2.

Send Router Solicitations to the all routers multicast group as
described in RFC 4861, section 6. and act on the received Router
Advertisments according to section 6.3.7.

Implement a similar API for ICMPv6 handling as is done for DHCPv4 and
DHCPv6.
2014-06-19 15:44:43 +03:00
Patrik Flykt
139b011ab8 sd-dhcp6-client: Add initial DHCPv6 client files
Add initial structure definition and functions for setting index, MAC
address, callback and event loop. Define protocol values and states.
2014-06-19 15:44:43 +03:00
Lennart Poettering
edc3797f7c journald: make SplitMode=uid the default
Now that we actually can distuingish system and normal users there's no
point in taking session information into account anymore when splitting
up logs.

This has the beenfit with that coredump information will actually end up
in each user's own journal.
2014-06-19 12:38:45 +02:00
Lennart Poettering
0c51aada56 coredumpctl: introduce new -1 switch for showing a single, most recent entry only
"coredumpctl info -1" is now incredibly useful for showing the most recent
stacktrace.
2014-06-19 12:38:45 +02:00
Lennart Poettering
0cd77f9783 coredump: simplify how we apply extended attributes to coredumps 2014-06-19 12:38:45 +02:00
Lennart Poettering
8d4e028f18 coredump: include stacktrace of coredumps in the log message
elfutils' libdw is maintained, can read DWARF debug data and appears to
be the library of choice for generating backtraces today.
2014-06-19 12:38:45 +02:00
Thomas Hindoe Paaboel Andersen
8271bd16ce bootchart: add assert
since 376cd3b89c LIST_FIND_TAIL accepts
an empty list. That removed an assert in LIST_FIND_TAIL and we now
theoretically risk a null pointer deref. This adds the assert directly
to protect against that.
2014-06-19 00:18:05 +02:00
Lennart Poettering
a035f8191a coredump: add 3 more metadata fields to coredump entries 2014-06-19 00:00:24 +02:00
Lennart Poettering
e15758cce3 coredump: add new "info" verb to coredumpctl showing detailed information about a coredump 2014-06-19 00:00:24 +02:00
Lennart Poettering
a276ae7429 coredump: make sure coredumpctl can handle externally stored coredumps 2014-06-19 00:00:24 +02:00
Lennart Poettering
34c10968cb coredump: optionally store coredumps on disk, not in the journal
Introduce a new configuration file /etc/systemd/coredump.conf to
configure when to place coredumps in the journal and when on disk.

Since the coredumps are quite large, default to storing them only on
disk.
2014-06-19 00:00:24 +02:00
Lennart Poettering
3bdace9bf7 dhcp-server: simplify dhcp server unref call
No need to use HASHMAP_ITERATE when we destruct all entries anyway.
2014-06-19 00:00:24 +02:00
Thomas Hindoe Paaboel Andersen
cee288adf8 socket: check return from exec_spawn 2014-06-18 23:21:00 +02:00
Thomas Hindoe Paaboel Andersen
f7926298e9 sd-dhcp-client: check return from dhcp_option_append 2014-06-18 23:21:00 +02:00
Thomas Hindoe Paaboel Andersen
02557f973a sd-dhcp-server: fix a leak
We must use free instead of dhcp_lease_free here to avoid freeing
client_id.data.
2014-06-18 23:21:00 +02:00
Lennart Poettering
4f43493897 networkd: configure dhcp server range only after successfully setting an IP address on the interface
This way we can make use of the addresses of the IP pool.
2014-06-18 18:28:29 +02:00
Lennart Poettering
11bf3cced1 networkd: add address pool support
When an address is configured to be all zeroes, networkd will now
automatically find a locally unused network of the right size from a
list of pre-configured pools. Currently those pools are 10.0.0.0/8,
172.16.0.0/12, 192.168.0.0/16 and fc00::/7, i.e. the network ranges for
private networks. They are compiled in, but should be configurable
eventually.

This allows applying the same configuration to a large number of
interfaces with each time a different IP range block, and management of
these IP ranges is fully automatic.

When allocating an address range from the pool it is made sure the range
is not used otherwise.
2014-06-18 18:28:29 +02:00
Lennart Poettering
059f6c42b7 networkd: add a number of calls to manipulate in_addr_union structs 2014-06-18 18:28:29 +02:00
Lennart Poettering
5d3de3fe9c socket-util: introduce in_addr_union similar to sockaddr_union and make use of it everywhere 2014-06-18 18:28:29 +02:00
Michal Sekletar
03966da2ca dhcp-network: remove TODO
There is no need to explicitly check version of L3 protocol in the
ethernet header because we bind socket with .sll_protocol set to
ETH_P_IP, thus we only receive IPv4 packets on the socket.
2014-06-18 18:14:51 +02:00
Lennart Poettering
9542239eaf cryptsetup: introduce new cryptsetup-pre.traget unit so that services can make sure they are started before and stopped after any LUKS setup
https://bugzilla.redhat.com/show_bug.cgi?id=1097938
2014-06-18 00:09:46 +02:00
Lennart Poettering
6f04529399 tmpfiles: create directories already with the right label, instead of creating them first, and relabeling them afterwards 2014-06-18 00:09:46 +02:00
Lennart Poettering
43ad6e31aa tmpfiles: w lines should allow following symlinks 2014-06-18 00:09:46 +02:00
Lennart Poettering
dd078a1ef8 namespace: properly label device nodes we create
https://bugzilla.redhat.com/show_bug.cgi?id=1081429
2014-06-18 00:09:46 +02:00
Lennart Poettering
1554afae54 tmpfiles: add "+" modifier support to b, c, p lines in addition to L 2014-06-18 00:09:46 +02:00
Tom Gundersen
5a1045a556 networkd: veth - fix parsing verification 2014-06-17 23:21:31 +02:00
Tom Gundersen
ee6b50892e networkd: vxlan - fix parsing verification 2014-06-17 23:21:31 +02:00
Tom Gundersen
5a3f198964 networkd: veth - fix memleak 2014-06-17 23:21:31 +02:00
Thomas Hindoe Paaboel Andersen
de228aabc8 install: remove unused variable 2014-06-17 21:22:01 +02:00
Frederic Crozat
a7997073ac bootchart: set white background
In programs like eog and gimp the transparant background did not
look very good.

Similar fix from the one done in systemd-analyze (418e3750)
2014-06-17 11:34:31 +02:00
Tom Gundersen
bf0308cbd5 networkd: link - fix carrier check on new link
We were comparing against our own internal enum rather than the kernel exposed one.

Found by Thomas Ritter.
2014-06-17 09:17:07 +02:00
Tom Gundersen
0bbc2c1f3b sd-dhcp: checksum - make endianess-neutral
For efficiency, we group bytes together before adding them up. This
is guaranteed to always work (regardless of the byte order) as long
as the i-th byte in each group lign up with the i-th byte in each
other group.

On big-endian machines this broke when handling the trailing few bytes
which did not make up a full group of 4 bytes. This patch fixes the
problem by explicitly creating a 4 byte zero-padded group out of the
trailing bytes.

Reported and tested by Thomas Ritter <th.ritter@gmx.at>.
2014-06-17 09:17:07 +02:00
Dave Reisner
735a1a2ea5 systemctl: reverse order of args when verbosely creating symlinks
This was backwards. The symlink itself points to the source unit, not
the other way around.
2014-06-16 23:30:30 -04:00
Lennart Poettering
5f5c2f3855 core: populate unit file set with preset data if we boot with empty /etc 2014-06-17 03:29:23 +02:00
Lennart Poettering
489388fbc0 machine-id-setup: allow passing NULL as function argument, for simplicity 2014-06-17 03:26:40 +02:00
Lennart Poettering
c47fc1f025 kmod: conditionalize kmod setup on CAP_SYS_MODULE, not whether we run in a container
It's generally preferrable to conditionalize on the actual ability to do
something then the context we run in.
2014-06-17 03:26:40 +02:00
Lennart Poettering
ac78d81a35 install: improve paths we show the user when enabling/disabling 2014-06-17 02:43:44 +02:00
Lennart Poettering
cebed5005b conf-files: fix when for --root= logic
This is based on parts of similar patches from Michael Marineau and
Lukas Nykrin, but simply uses strappenda3().
2014-06-17 02:43:44 +02:00
Lennart Poettering
749ebb2da4 systemctl: output human readable strings in "systemctl enable" and "systemctl disable" 2014-06-17 02:43:44 +02:00
Lennart Poettering
278fa5758c install: simplify symlink --root= logic 2014-06-17 02:43:44 +02:00
Lennart Poettering
0a327d753f install: "systemctl enable" should be a nop for template units lacking a DefaultInstance= setting 2014-06-17 02:43:44 +02:00
Lennart Poettering
d7b15e0a01 log: don't downgrade log level in non-PID 1 if "quiet" is passed on kernel cmdline
"debug" should apply to all tools, but "quiet" only to PID1.
2014-06-17 02:43:44 +02:00