summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* sd-boot: Skip adding boot entries when the loader does not existJan Janssen2019-11-041-1/+12
|
* allow an empty DefaultInstance= in configuration filesJérémy Rosen2019-11-041-0/+5
| | | | | | It is currently possible to override the DefaultInstance via drop-ins but not remove it completely. Allow to do that by specifying an empty DefaultInstance=
* Merge pull request #13899 from poettering/in-gid-tweakYu Watanabe2019-11-032-16/+45
|\ | | | | user-util: tweak to in_gid()
| * test: add really basic in_gid() testLennart Poettering2019-10-311-0/+11
| |
| * user-util: tweak to in_gid()Lennart Poettering2019-10-311-16/+34
| | | | | | | | | | | | | | | | | | Let's make this robust towards parallel updates to group lists. This is not going to happen IRL, but it makes me sleep better at night: let's iterate a couple of times in case the list is updated while we are at it. Follow-up for: f5e0b942af1e86993c21f4e5c84342bb10403dac
* | Merge pull request #13909 from poettering/env-copy-pidYu Watanabe2019-11-034-16/+25
|\ \ | | | | | | Fixes for the "saved_env" copy logic
| * | static-destruct: add missing closing '(' in commentLennart Poettering2019-11-011-2/+2
| | |
| * | pid1: rework environment block copy logicLennart Poettering2019-11-013-14/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reworks the logic introduced in a5cede8c24fddda9b73f142e09b18b49adde1b9c (#13693). First of all, let's move this out of util.c, since only PID 1 really needs this, and there's no real need to have it in util.c. Then, fix freeing of the variable. It previously relied on STATIC_DESTRUCTOR_REGISTER() which however relies on static_destruct() to be called explicitly. Currently only the main-func.h macros do that, and PID 1 does not. (It might be worth investigating whether to do that, but it's not trivial.) Hence the freeing wasn't applied. Finally, an OOM check was missing, add it in.
* | | nspawn: respect quiet on capabilities warningJustin Trudell2019-11-031-1/+2
| | |
* | | fs-util: let's avoid unnecessary strerror()Lennart Poettering2019-11-031-6/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | strerror() is not thread safe. Let's avoid it where it is easy hence. (Ideally we'd not use it at all anymore, but that's sometimes a bit nasty, not in this case though, where it is very easy to avoid) Follow-up for: 27c3112dcbd1b5f171c36c32550d9c6331375b0b
* | | nspawn: mangle slice nameLennart Poettering2019-11-031-2/+7
| | | | | | | | | | | | | | | | | | It's user-facing, parsed from the command line and we typically mangle in these cases, let's do so here too. (In particular as the identical switch for systemd-run already does it.)
* | | cgroup: add missing OOM check, and shorten code a bitLennart Poettering2019-11-011-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cpu_set_to_range_string() can fail due to OOM. Handle that. unit_write_settingf() exists, use it instead of formatting a string beforehand. cpu_set_add_all() can fail due to OOM. Let's avoid it if we don't have to use it, just copy over the cpuset directly.
* | | cpuset: fix indentation and log about OOM we otherwise ignoreLennart Poettering2019-11-011-2/+4
| | |
* | | cgroup: add some basic OOM safety where it was missingLennart Poettering2019-11-011-5/+3
|/ /
* | Merge pull request #13888 from ssahani/qdiscYu Watanabe2019-11-014-12/+30
|\ \ | | | | | | tc qdisc: netem add support to duplicate packets.
| * | tc: qdisc remove some duplicate codeSusant Sahani2019-10-311-6/+13
| | |
| * | qdisc: netem add support to duplicate packets.Susant Sahani2019-10-313-6/+17
| | | | | | | | | | | | | | | using this option the chosen percent of packets is duplicated before queuing them
* | | network: DHCP server remove duplicate freeSusant Sahani2019-11-011-3/+1
| | |
* | | Fix CID 1406578: Resource leaks (RESOURCE_LEAK)Susant Sahani2019-10-311-2/+2
| |/ |/| | | | | | | ** CID 1406578: Resource leaks (RESOURCE_LEAK) /src/libsystemd-network/sd-dhcp-server.c: 155 in sd_dhcp_raw_option_new()
* | Merge pull request #13895 from jsynacek/masterAnita Zhang2019-10-311-1/+3
|\ \ | | | | | | sd-dhcp: fix resource leak
| * | sd-dhcp: fix resource leakJan Synacek2019-10-311-1/+3
| |/ | | | | | | CID#1406578
* | Merge pull request #13891 from yuwata/basic-drop-missingAnita Zhang2019-10-31109-152/+89
|\ \ | |/ |/| tree-wide: drop missing.h
| * tree-wide: drop missing.hYu Watanabe2019-10-31104-139/+74
| |
| * test: move {test,fuzz}-fido-id-desc.c into src/udev/fido_idYu Watanabe2019-10-315-13/+15
| |
* | Merge pull request #13510 from medhefgo/bootZbigniew Jędrzejewski-Szmek2019-10-313-31/+18
|\ \ | |/ |/| sd-boot: Be silent on regular boots
| * sd-boot: Silence compiler warning when building with -O2Jan Janssen2019-10-301-9/+5
| |
| * sd-boot: Don't loudly complain if RNG protocol isn't availableJan Janssen2019-10-301-21/+6
| | | | | | | | Fixes #13503
| * sd-boot: Only disable optimization on debug buildsJan Janssen2019-10-301-1/+7
| |
* | networkd: dhcp server Support Vendor specific 43Susant Sahani2019-10-319-8/+347
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implementes https://tools.ietf.org/html/rfc2132 ``` [DHCPServer] SendRawOption=26:uint32:1400 SendRawOption=23:uint8:10 ``` Frame 448: 350 bytes on wire (2800 bits), 350 bytes captured (2800 bits) on interface 0 Linux cooked capture Internet Protocol Version 4, Src: 192.168.5.1, Dst: 192.168.5.11 User Datagram Protocol, Src Port: 67, Dst Port: 68 Dynamic Host Configuration Protocol (ACK) Message type: Boot Reply (2) Hardware type: Ethernet (0x01) Hardware address length: 6 Hops: 0 Transaction ID: 0x71f8de9d Seconds elapsed: 0 Bootp flags: 0x0000 (Unicast) Client IP address: 0.0.0.0 Your (client) IP address: 192.168.5.11 Next server IP address: 0.0.0.0 Relay agent IP address: 0.0.0.0 Client MAC address: 1e:04:f8:b8:2f:d4 (1e:04:f8:b8:2f:d4) Client hardware address padding: 00000000000000000000 Server host name not given Boot file name not given Magic cookie: DHCP Option: (53) DHCP Message Type (ACK) Length: 1 DHCP: ACK (5) Option: (51) IP Address Lease Time Length: 4 IP Address Lease Time: (3600s) 1 hour Option: (1) Subnet Mask (255.255.255.0) Length: 4 Subnet Mask: 255.255.255.0 Option: (3) Router Length: 4 Router: 192.168.5.1 Option: (6) Domain Name Server Length: 4 Domain Name Server: 192.168.5.1 Option: (42) Network Time Protocol Servers Length: 4 Network Time Protocol Server: 192.168.5.1 Option: (101) TCode Length: 13 TZ TCode: Europe/Berlin Option: (43) Vendor-Specific Information Length: 9 Value: 1701311a0431343030 Option: (54) DHCP Server Identifier (192.168.5.1) Length: 4 DHCP Server Identifier: 192.168.5.1 Option: (255) End Option End: 255 ```
* | Merge pull request #13884 from poettering/event-fd-close-fixAnita Zhang2019-10-301-1/+3
|\ \ | | | | | | sd-event: don't invalidate source type on disconnect
| * | sd-event: don't invalidate source type on disconnectLennart Poettering2019-10-301-1/+3
| |/ | | | | | | This fixes fd closing if fd ownership is requested.
* | calendarspec: fix calculation of timespec iterations that fall onto a DST changeZbigniew Jędrzejewski-Szmek2019-10-301-20/+34
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we tested a candidate time that would fall onto the DST change, and we realized that it is now a valid time ('cause the given "hour" is missing), we would jump to to beginning of the next bigger time period, i.e. the next day. mktime_or_timegm() already tells us what the next valid time is, so let's reuse this, and continue the calculations at this point. This should allow us to correctly jump over DST changes, but also leap seconds and similar. It should be OK even multiple days were removed from calendar, similarly to the Gregorian-Julian transition. By reusing the information from normalization, we don't have to make assumptions what the next valid time is. Fixes #13745. $ TZ=Australia/Sydney faketime '2019-10-06 01:50' build/systemd-analyze calendar 0/1:0/1 --iterations 20 | grep Iter Iter. #2: Sun 2019-10-06 01:52:00 AEST Iter. #3: Sun 2019-10-06 01:53:00 AEST Iter. #4: Sun 2019-10-06 01:54:00 AEST Iter. #5: Sun 2019-10-06 01:55:00 AEST Iter. #6: Sun 2019-10-06 01:56:00 AEST Iter. #7: Sun 2019-10-06 01:57:00 AEST Iter. #8: Sun 2019-10-06 01:58:00 AEST Iter. #9: Sun 2019-10-06 01:59:00 AEST Iter. #10: Sun 2019-10-06 03:00:00 AEDT Iter. #11: Sun 2019-10-06 03:01:00 AEDT Iter. #12: Sun 2019-10-06 03:02:00 AEDT Iter. #13: Sun 2019-10-06 03:03:00 AEDT Iter. #14: Sun 2019-10-06 03:04:00 AEDT Iter. #15: Sun 2019-10-06 03:05:00 AEDT Iter. #16: Sun 2019-10-06 03:06:00 AEDT Iter. #17: Sun 2019-10-06 03:07:00 AEDT Iter. #18: Sun 2019-10-06 03:08:00 AEDT Iter. #19: Sun 2019-10-06 03:09:00 AEDT Iter. #20: Sun 2019-10-06 03:10:00 AEDT $ TZ=Australia/Sydney faketime 2019-10-06 build/systemd-analyze calendar 2/4:30 --iterations=3 Original form: 2/4:30 Normalized form: *-*-* 02/4:30:00 Next elapse: Sun 2019-10-06 06:30:00 AEDT (in UTC): Sat 2019-10-05 19:30:00 UTC From now: 5h 29min left Iter. #2: Sun 2019-10-06 10:30:00 AEDT (in UTC): Sat 2019-10-05 23:30:00 UTC From now: 9h left Iter. #3: Sun 2019-10-06 14:30:00 AEDT (in UTC): Sun 2019-10-06 03:30:00 UTC From now: 13h left
* analyze: fix minor memleakLennart Poettering2019-10-301-1/+1
|
* analyze: sort list of unknown syscalls kernel implementsLennart Poettering2019-10-301-4/+10
|
* seccomp: add new Linux 5.3 syscalls to syscall filter listsLennart Poettering2019-10-301-0/+12
| | | | | Many syscalls added and all fit nicely into existing groups, hence lets add them there.
* network: cleanup header inclusionYu Watanabe2019-10-3048-133/+113
|
* Merge pull request #13870 from irtimmer/check_ip_gnutlsZbigniew Jędrzejewski-Szmek2019-10-302-6/+12
|\ | | | | resolved: validate IP address in certificate for DNS-over-TLS (GnuTLS)
| * resolved: check for IP in certificate when using DoT with GnuTLSIwan Timmer2019-10-292-2/+12
| | | | | | Validate the IP address in the certificate for DNS-over-TLS in strict mode when GnuTLS is used. As this is not yet the case in contrast to the documentation.
| * resolved: require at least version 3.6.0 of GnuTLS for DNS-over-TLSIwan Timmer2019-10-291-4/+0
| | | | | | Increase the required version to ensure TLS 1.3 is always supported when using GnuTLS for DNS-over-TLS and allow further changes to use recent API additions.
* | Merge pull request #13874 from keszybz/network-sendoption-cleanupsZbigniew Jędrzejewski-Szmek2019-10-303-12/+11
|\ \ | | | | | | Network SendOption cleanups
| * | network: amend SendOption= to take a c-escaped stringZbigniew Jędrzejewski-Szmek2019-10-301-8/+7
| | | | | | | | | | | | No need to punish users by forcing them to do base64 encodings.
| * | network: rename SendOptions= to SendOption=Zbigniew Jędrzejewski-Szmek2019-10-303-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | The name with plural made more sense where multiple options could be specified in one line. After changes in the pull request, this option only accepts one value, so from users' POV it should be singular. (The field in the data structure remains plural, because it actually stores multiple values.)
* | | Merge pull request #13866 from keszybz/nspawn-restartsLennart Poettering2019-10-3013-25/+122
|\ \ \ | |/ / |/| | Make 'machinectl reboot' functional
| * | machined: only Unref units that we AddRef'dZbigniew Jędrzejewski-Szmek2019-10-292-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | b92d0b4c5adef37e9de8f6cc22a0e27b97fcf3ad added AddRef to the StartTransientUnit call in machine_start_scope()/manager_start_scope() and a corresponding Unref call in machine_stop_scope(). But when we are running systemd-nspawn@ with --keep unit, the unit is not created by machined so the AddRef never happens. Then when trying to stop the unit, we'd get: systemd-machined[1101]: Sent message type=method_call sender=n/a destination=org.freedesktop.systemd1 path=/org/freedesktop/systemd1 interface=org.freedesktop.systemd1.Manager member=UnrefUnit cookie=37 reply_cookie=0 signature=s error-name=n/a error-message=n/a systemd-machined[1101]: Got message type=error sender=:1.1 destination=:1.13 path=n/a interface=n/a member=n/a cookie=2443 reply_cookie=37 signature=s error-name=org.freedesktop.systemd1.NotReferenced error-message=Unit has not been referenced yet. systemd-machined[1101]: Failed to drop reference to machine scope, ignoring: Unit has not been referenced yet.
| * | shared/logs-show: strip trailing carriage returns at EOL/EOFZbigniew Jędrzejewski-Szmek2019-10-293-5/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When showing logs from a container, we would fail to show various lines: Oct 29 09:50:51 krowka systemd-nspawn[61376]: Detected architecture x86-64. Oct 29 09:50:51 krowka systemd-nspawn[61376]: [1B blob data] Oct 29 09:50:51 krowka systemd-nspawn[61376]: Welcome to Fedora 32 (Rawhide)! Oct 29 09:50:51 krowka systemd-nspawn[61376]: [1B blob data] Those are only harmless \r characters that trail the line. We already replace tabs and strip various ansi characters that we deem inconsequential, so let's also strip trailing carriage returns. Non-trailing ones are different, because they change what would be displayed.
| * | nspawn: when stopping the machine, just deregister the machineZbigniew Jędrzejewski-Szmek2019-10-293-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We already shut the machine down ourselves (and pid1 will also do cleanup for us after we exit if anything was left behind). No need for systemd-machined to try to stop the unit too. (This calls the new machined method. If we are running against an older machined, we will not deregister the machine. If we are simply exiting, machined should notice that the unit is gone on its own. If we are restarting, we will fail to register the machine after restart and fail. But this case was already broken, because machined would create a stop job, breaking the restart. So not doing anything with old machined should not make anything more broken than it already is.) Fixes #13766.
| * | machined: add UnregisterMachine methodZbigniew Jędrzejewski-Szmek2019-10-295-1/+42
| | | | | | | | | | | | | | | | | | This is the opposite of RegisterMachine: machined knows that the machine is "gone", but doesn't do anything on its own. We already had TerminateMachine, but that would stop the unit, which isn't always wanted.
| * | pid1: log the reason why restart will or will not happenZbigniew Jędrzejewski-Szmek2019-10-291-6/+24
| | | | | | | | | | | | | | | I was trying to figure out why the restart was not happening, and it wasn't at all obvious. Let's add a nice debug message.
* | | Merge pull request #13747 from ssahani/tc-qdiscYu Watanabe2019-10-3017-1/+1851
|\ \ \ | | | | | | | | network: introduce Traffic Control
| * | | network: wait for QDiscs to be configuredYu Watanabe2019-10-303-4/+36
| | | |