Lennart Poettering
ba28df775d
missing-syscall: fix copypasta
...
As noticed by @mbiebl:
5134e18eed (r43033443)
2020-10-08 13:52:44 +02:00
Michael Biebl
cd20659891
basic/missing_syscall: fix syscall numbers for mips*
...
Thanks Christian Brauner @brauner
Fixes : #17261
2020-10-08 10:25:15 +02:00
Lennart Poettering
e7bcecf0e4
Merge pull request #17279 from poettering/systemctl-split-up
...
systemctl: split huge .c file into smaller bits
2020-10-08 10:17:29 +02:00
Yu Watanabe
45a536980c
Merge pull request #17271 from yuwata/network-route-improve-multipath-route-support
...
network: improve multipath route support
2020-10-08 15:55:35 +09:00
Anita Zhang
a2db02253c
core: add systemd-oomd implicit dependencies
2020-10-07 17:12:24 -07:00
Anita Zhang
87e2bafff9
systemd-oomd: service files
2020-10-07 17:12:24 -07:00
Anita Zhang
5c616ecfcd
systemd-oomd: dbus hook ups and oomctl CLI
2020-10-07 17:12:24 -07:00
Anita Zhang
fe8d22fb09
core: systemd-oomd pid1 integration
2020-10-07 17:12:24 -07:00
Anita Zhang
9de5e32136
systemd-oomd: manager/daemon
2020-10-07 17:12:24 -07:00
Anita Zhang
b41dcc51eb
cgroup-util: add cg_get_attribute_as_bool() helper
2020-10-07 17:12:24 -07:00
Anita Zhang
61ff7397d0
systemd-oomd: unit testable helper functions
...
Helpers used by the systemd-oomd daemon to read/fill in various contexts and
make detection and kill decisions.
i.e. a simplified/less configurable version of
https://github.com/facebookincubator/oomd/tree/master/src/oomd .
2020-10-07 17:12:22 -07:00
Anita Zhang
42b83e8e33
shared: helpers to read pressure stats from cgroups
2020-10-07 16:17:24 -07:00
Anita Zhang
510ca79cf2
parse-util: add parse_loadavg_fixed_point
2020-10-07 16:17:24 -07:00
Anita Zhang
e30bbc90c9
core: add varlink call to get cgroup paths of units using ManagedOOM*=
2020-10-07 16:17:23 -07:00
Anita Zhang
e8e9227f5c
varlink: add server write states to disconnect check
...
While a server is in the VARLINK_PENDING_METHOD or VARLINK_PENDING_METHOD_MORE
states and its write end is disconnected and it gets a POLLHUP, we
should disconnect since it can't write anymore.
In the case of systemd-oomd disconnecting while pid1 was pending-more, this
condition left pid1 in a state where it started throttling from
continually getting POLLHUP.
2020-10-07 16:17:23 -07:00
Anita Zhang
4d824a4e0b
core: add ManagedOOM*= properties to configure systemd-oomd on the unit
...
This adds the hook ups so it can be read with the usual systemd
utilities. Used in later commits by sytemd-oomd.
2020-10-07 16:17:23 -07:00
Lennart Poettering
daf71ef61c
systemctl: split up humungous systemctl.c file
...
This is just some refactoring: shifting around of code, not change in
codeflow.
This splits up the way too huge systemctl.c in multiple more easily
digestable files. It roughly follows the rule that each family of verbs
gets its own .c/.h file pair, and so do all the compat executable names
we support. Plus three extra files for sysv compat (which existed before
already, but I renamed slightly, to get the systemctl- prefix lik
everything else), a -util file with generic stuff everything uses, and a
-logind file with everything that talks directly to logind instead of
PID1.
systemctl is still a bit too complex for my taste, but I think this way
itc omes in a more digestable bits at least.
No change of behaviour, just reshuffling of some code.
2020-10-07 23:12:15 +02:00
Lennart Poettering
4dcc0653b5
systemctl: move compare_unit_info() to bus-unit-util.[ch]
...
It's an auxiliary function to the UnitInfo structures, and very generic.
Let's hence move it over to the other code operating with UnitInfo, even
if it's not used by code outside of systemctl (yet).
2020-10-07 22:19:37 +02:00
Lennart Poettering
e2d839d316
pretty-print: don't abbreviate needlessly in user-facing string
2020-10-07 22:19:33 +02:00
Lennart Poettering
0f2219bb8f
basic: include stddef.h since we use NULL in header
2020-10-07 22:19:10 +02:00
Yu Watanabe
ceea6c1aff
network: introduce IPV4_ADDRESS_FMT_STR macro
...
This also moves ADDRESS_FMT_VAL() macro to networkd-address.h, and
renames it to IPV4_ADDRESS_FMT_VAL().
2020-10-08 02:51:23 +09:00
Yu Watanabe
d442bb3728
network: make Gateway= in [Route] section accept an empty string
2020-10-08 02:51:23 +09:00
Yu Watanabe
d306d1d0ca
network: introduce Gateway=_dhcp4 and _dhcp6, and deprecate "_dhcp"
...
Fixes #17249 .
2020-10-08 02:51:23 +09:00
Yu Watanabe
bff94a84c2
util: make local_gateways() support RT_VIA and RT_MULTIPATH
...
Then, `networkctl status` correctly shows gateways.
2020-10-08 02:51:23 +09:00
Yu Watanabe
f9bb333832
network: manage multipath routes separately
2020-10-08 02:51:23 +09:00
Yu Watanabe
de52a83cb7
sd-netlink: introduce sd_netlink_message_read_data()
2020-10-08 02:51:23 +09:00
Yu Watanabe
2fe1d557e5
sd-netlink: introduce rtattr_read_nexthop()
2020-10-08 02:51:23 +09:00
Yu Watanabe
d6ad41e27d
network: free Route object when route_remove() fails
...
When route_remove() succeeds, the Route object will be freed later by
manager_rtnl_process_route().
2020-10-08 02:51:23 +09:00
Yu Watanabe
423c249c2e
network: constify arguments
2020-10-08 02:51:23 +09:00
Renaud Métrich
5177cb0a9a
unit: don't emit PropertiesChanged signal if adding a dependency to a unit is a no-op
2020-10-07 18:16:08 +02:00
Yu Watanabe
6dd5398137
network: support IPv4 route with IPv6 gateway
2020-10-08 00:06:19 +09:00
Yu Watanabe
2c59a8a624
sd-netlink: fix type of RTA_VIA
2020-10-07 15:22:10 +02:00
Yu Watanabe
ad208fac73
network: also manage routes without RTA_OIF attribute
2020-10-07 15:22:10 +02:00
Yu Watanabe
fd7701bf31
network: ignore Scope= for IPv6 routes as it will not be used
2020-10-07 15:22:10 +02:00
Yu Watanabe
8973df5c42
network: set default priority for IPv6 routes
...
See inet6_rtm_newroute() in kernel's net/ipv6/route.c.
2020-10-07 15:22:09 +02:00
Yu Watanabe
b2f61e0da0
basic: import linux/ipv6_route.h
2020-10-07 15:22:09 +02:00
Yu Watanabe
473a64e569
meson: add missing files
2020-10-07 15:22:09 +02:00
Lennart Poettering
b8aaceb9b5
systemctl: drop unsused variable original_stdout_is_tty
...
Unused since de9a8fe18e
.
2020-10-07 14:13:19 +02:00
Lennart Poettering
1378ac6989
Merge pull request #17231 from poettering/event-source-exit-on-failure
...
sd-event: add "exit-on-failure" feature for event source
2020-10-07 12:55:56 +02:00
Zbigniew Jędrzejewski-Szmek
206178a9d2
Document some reasonable DNS servers in the example config file
...
We have an option to set the fallback list, so we don't know what the contents
are. It may in fact be empty. Let's add some examples to make it easy for a user
stranded without any DNS to fill in something that would work. As a bonus, this
also gives names to the entries we provide by default.
(I added google and cloudflare because that's what we have currently, and quad9
because it seems to be a good privacy-concious and fast choice and was requested
in #12499 . As a minimum, things we should include should be well-known global
services with a documented privacy policy and both IPv4 and IPv6 support and
decent response times.)
2020-10-07 11:38:07 +02:00
Lennart Poettering
cbda8bd5fb
udev: make use of NULL callback in IO handlers
2020-10-07 09:40:32 +02:00
Lennart Poettering
b9350e70aa
sd-event: support callback=NULL in IO/child/inotify/defer event sources, too
...
Also, document this functionality more prominently, including with a
reference from sd_event_exit().
This is mostly to make things complete, as previously we supported NULL
callbacks only in _add_time() and _add_signal(). However, I think this
makes snese for IO event sources too (think: when some fd such as a pipe
end sees SIGHUP or so, exit), as well as defer or post event sources (i.e. exit
once we got nothing else to do). This also adds support for inotify
event sources, simply to complete things (I can't see the immediate use,
but maybe someone else comes up with it).
The only event source type that doesn't allow callback=NULL now are exit
callbacks, but for them they make little sense, as the event loop is
exiting then anyway.
2020-10-07 09:40:16 +02:00
Lennart Poettering
bac0bfc1d0
udev-util: make use of sd-event's NULL callback support
2020-10-07 09:40:12 +02:00
Lennart Poettering
463f9ce3bc
test: add test that validates that PTR_TO_INT(INT_TO_PTR()) covers whole int range
2020-10-07 09:40:09 +02:00
Lennart Poettering
ccaa30c199
socket-proxy: port to new sd_event_source_set_exit_on_failure() API
2020-10-07 09:40:05 +02:00
Lennart Poettering
76c59537f3
socket-proxy: close correct fd, log at right log level
2020-10-07 09:40:02 +02:00
Lennart Poettering
b778cba4bf
sd-event: optionally, if an event source fails, exit the event loop
...
Currently, if an event source callback returns an error, we'll disable
the event source and continue. This adds a per-event source flag that if
turned on goes further: the event loop is also exited, propagating the
error code.
This is inspired by some patterns repeatedly seen in #15206 .
The idea is that event sources that server the "primary" function of a
program are marked like this, so that if they fail the failure is
instantly propagated and terminates the program.
2020-10-07 09:38:41 +02:00
Lennart Poettering
612ebf6c91
pager: set $LESSSECURE whenver we invoke a pager
...
Some extra safety when invoked via "sudo". With this we address a
genuine design flaw of sudo, and we shouldn't need to deal with this.
But it's still a good idea to disable this surface given how exotic it
is.
Prompted by #5666
2020-10-07 09:23:07 +02:00
Yu Watanabe
ab582fda48
Merge pull request #17240 from yuwata/network-cleanup
...
network: several cleanups and fix IPv4DAD and IP Masqurade
2020-10-07 07:42:40 +09:00
Marco Wang
ee85122987
boot/efi: Explicitly specify void in parameter list
...
Functions that accept no arguments should be
explicitly declared a void parameter in their parameter list.
Signed-off-by: Marco Wang <m.aesophor@gmail.com>
2020-10-06 22:29:57 +02:00
Yu Watanabe
13ffa39f8e
network: rename network_verify_xxx() -> network_drop_invalid_xxx()
...
As 'verify' implies a boolean result.
2020-10-07 03:22:03 +09:00
Yu Watanabe
494b6b43cb
network: fix masquerade setting logic
...
Previously, address_establish() took Address object stored in Network
object. And address_release() took Address object stored in Link
object. Thus, address_release() always did nothing.
2020-10-07 03:13:26 +09:00
Yu Watanabe
cd1caf30c0
network: always use RT_SCOPE_HOST for IPv4 loopback addresses
...
For IPv6 case, use RT_SCOPE_HOST only when scope is not explicitly specified.
2020-10-07 03:13:18 +09:00
Yu Watanabe
d93d655c40
network: update MAC address in IPv4 ACD clients
...
When the MAC address of a link is updated, an address on the link may
be under checking address duplication. Or, (currently such code is not
implemented yet, but) address duplication check may be restarted later.
For that case, the IPv4 ACD clients must use the new updated MAC address.
2020-10-07 02:59:34 +09:00
Yu Watanabe
490ccbd5e5
network: configure IPv4 DAD per link address
...
Previously, IPv4 DAD is configured in each Address object stored in
Network object. If a .network file matches multipe links, then it causes
an assertion. To prevent it, now IPv4 DAD is configured in each Address
object belogs to Link object.
2020-10-07 02:57:58 +09:00
Yu Watanabe
693ec5ca83
network: constify one argument
2020-10-07 02:57:54 +09:00
Yu Watanabe
cde1f0e8fc
network: introduce address_copy()
2020-10-07 02:54:01 +09:00
Yu Watanabe
eaff204f09
network: do not update Address::flags in address_configure()
2020-10-07 02:50:51 +09:00
Yu Watanabe
f5ee7d74af
network: fix indentation
2020-10-07 02:50:51 +09:00
Yu Watanabe
4cf8500067
network: use sd_event stored in Manager
2020-10-07 02:50:51 +09:00
Yu Watanabe
2ffd6d73f9
network: check feature is enabled in xxx_configure()
2020-10-07 02:50:51 +09:00
Yu Watanabe
51f5dfd8ba
network: move link_enumerate_ipv6_tentative_addresses()
2020-10-07 02:50:51 +09:00
Yu Watanabe
acc9fc2f51
network: drop unused function
2020-10-07 02:50:51 +09:00
Yu Watanabe
5e0534f1c1
network: move sysctl related functions to networkd-sysctl.c
2020-10-07 02:50:51 +09:00
Yu Watanabe
be9363ccab
network: introduce radv_update_mac()
2020-10-07 02:50:51 +09:00
Yu Watanabe
eebba6dc24
network: introduce dhcp6_update_mac()
2020-10-07 02:50:51 +09:00
Yu Watanabe
d947f7f977
network: introduce dhcp4_update_mac()
2020-10-07 02:50:50 +09:00
Yu Watanabe
a3adb4a6a2
network: introduce ipv4ll_update_mac()
2020-10-07 02:50:50 +09:00
Yu Watanabe
5460bde5c5
network: introduce link_serialize_dhcp6_client()
2020-10-07 02:50:50 +09:00
Yu Watanabe
ca21a19a2e
network: introduce link_serialize_ipv4ll()
2020-10-07 02:50:50 +09:00
Yu Watanabe
daad60d19e
network: introduce link_deserialize_ipv4ll()
2020-10-07 02:50:50 +09:00
Yu Watanabe
571eeba909
network: introduce link_deserialize_dhcp4()
2020-10-07 02:50:50 +09:00
Yu Watanabe
bbe694f91f
network: introduce network_verify_sr_iov()
2020-10-07 02:50:50 +09:00
Yu Watanabe
f3a3ff2762
network: move link_configure_sr_iov()
2020-10-07 02:50:50 +09:00
Yu Watanabe
209af9a67a
network: introduce network_verify_traffic_control()
2020-10-07 02:50:50 +09:00
Yu Watanabe
200543791a
network: move link_configure_traffic_control()
2020-10-07 02:50:50 +09:00
Yu Watanabe
34d7f2c99e
network: merge link_set_bridge_vlan() and br_vlan_configure()
2020-10-07 02:50:50 +09:00
Yu Watanabe
256c75fd1f
network: move DUID related functions
2020-10-07 02:50:50 +09:00
Yu Watanabe
086b8853d1
network: move link_radv_enabled()
2020-10-07 02:50:50 +09:00
Yu Watanabe
5ae0fb7fb7
network: move link_dhcp4_server_enabled()
2020-10-07 02:50:50 +09:00
Yu Watanabe
062c020fb6
network: move link_ipv6_accept_ra_enabled()
2020-10-07 02:50:50 +09:00
Yu Watanabe
6f7a17ff0c
network: unify link_ipv{4,6}_forward_enabled()
2020-10-07 02:50:50 +09:00
Yu Watanabe
67c311abd3
network: unify link_dhcp{4,6}_enabled()
2020-10-07 02:50:50 +09:00
Yu Watanabe
ac49887e8c
network: move link_get_xxx_route_table()
2020-10-07 02:50:50 +09:00
Yu Watanabe
bfbf150ee6
network: manage address pools by OrderedSet
2020-10-07 02:50:50 +09:00
Yu Watanabe
3fe721c674
network: drop unused argument
2020-10-07 02:50:50 +09:00
Yu Watanabe
ed76f58521
network: move functions related to address pool
2020-10-07 02:50:50 +09:00
Yu Watanabe
093e35334d
network: header cleanup
2020-10-07 02:50:50 +09:00
Yu Watanabe
67a58eb378
network: make several functions static
2020-10-07 02:50:50 +09:00
Yu Watanabe
aa651e88de
network: manage addresses from pool by Set
2020-10-07 02:50:50 +09:00
Yu Watanabe
9cd9fc8f44
network: drop list of static addresses
...
[Address] sections are managed by both LIST and Hashmap. Let's drop the
list and manage them by OrderedHashmap.
2020-10-07 02:50:50 +09:00
Yu Watanabe
7818f8589a
network: make address_free() return NULL
2020-10-07 02:50:50 +09:00
Yu Watanabe
2488e4d934
network: introduce link_stop_ipv4_dad()
2020-10-07 02:50:50 +09:00
Yu Watanabe
b87d6a8284
network: move link_configure_ipv4_dad()
2020-10-07 02:50:50 +09:00
Yu Watanabe
da4d3a612d
network: introduce link_deserialize_addresses()
2020-10-07 02:50:50 +09:00
Yu Watanabe
3b31e2b718
network: introduce link_serialize_addresses()
2020-10-07 02:50:50 +09:00
Yu Watanabe
32400c2ff0
network: introduce network_verify_addresses()
2020-10-07 02:50:50 +09:00
Yu Watanabe
9a0ad16b26
network: update log messages
...
And drop unnecessary log for in_addr_to_string(), as its result is used
only for the consequent logs.
2020-10-07 02:49:17 +09:00
Yu Watanabe
e1fc2c4371
network: move manager_rtnl_process_address()
2020-10-07 02:44:43 +09:00
Yu Watanabe
d7fbb9f50c
network: introduce link_drop_addresses()
2020-10-07 02:44:43 +09:00
Yu Watanabe
f8f2f880d4
network: introduce link_drop_foreign_addresses()
2020-10-07 02:44:43 +09:00
Yu Watanabe
682c65b04c
network: introduce link_set_addresses()
2020-10-07 02:44:43 +09:00
Yu Watanabe
e2263711ba
network: cleanup networkd-route.h
2020-10-07 02:44:43 +09:00
Yu Watanabe
2a54a0446b
network: drop list of static routes
...
[Route] sections are managed by both LIST and Hashmap. Let's drop the
list.
2020-10-07 02:44:43 +09:00
Yu Watanabe
833f3663a0
network: introduce hashmap_find_free_section_line()
2020-10-07 02:44:43 +09:00
Yu Watanabe
74154c2e28
network: make several functions static
2020-10-07 02:44:43 +09:00
Yu Watanabe
d9940a3f8a
network: introduce network_verify_routes()
2020-10-07 02:44:42 +09:00
Yu Watanabe
565194127a
network: introduce link_serialize_routes()
2020-10-07 02:44:42 +09:00
Yu Watanabe
731ff05b32
network: introduce link_deserialize_routes()
2020-10-07 02:44:42 +09:00
Yu Watanabe
62f0ea5fae
network: introduce link_drop_routes()
2020-10-07 02:44:42 +09:00
Yu Watanabe
779804dd60
network: introduce link_drop_foreign_routes()
2020-10-07 02:44:42 +09:00
Yu Watanabe
169948e9d2
network: make route_free() return NULL
2020-10-07 02:44:42 +09:00
Yu Watanabe
4468f01b67
network: move manager_rtnl_process_route()
2020-10-07 02:44:42 +09:00
Yu Watanabe
141318f777
network: move link_request_set_routes()
2020-10-07 02:44:42 +09:00
Yu Watanabe
be023c670b
network: make network_get_ipv6_dns() always set return value on success
2020-10-07 02:44:42 +09:00
Yu Watanabe
a8d4a21091
network: fix indentation
2020-10-07 02:44:42 +09:00
Yu Watanabe
b5ce40472c
network: cleanup networkd-radv.h
2020-10-07 02:44:42 +09:00
Yu Watanabe
1a7deb2fcf
network: introduce network_verify_prefix() and network_verify_route_prefix()
2020-10-07 02:44:42 +09:00
Yu Watanabe
d30081c24e
network: also check route prefixes are configured
2020-10-07 02:44:42 +09:00
Yu Watanabe
ecb0e85ea9
network: drop redundant list of prefixes and route prefixes
2020-10-07 02:44:42 +09:00
Yu Watanabe
064dfb05f0
network: make prefix_free() and route_prefix_free() return NULL
2020-10-07 02:44:42 +09:00
Yu Watanabe
87851e0feb
network: warn if IPv6ProxyNDPAddress= is set and IPv6ProxyNDP= is disabled
2020-10-07 02:44:42 +09:00
Yu Watanabe
fd773a11d8
network: propagate errors in ipv6_proxy_ndp_set()
...
And ignore IPv6ProxyNDPAddress= settings if proxy_ndp is zero.
2020-10-07 02:44:42 +09:00
Yu Watanabe
5823a48993
network: drop networkd-ipv6-proxy-ndp.h from networkd-network.h
2020-10-07 02:44:42 +09:00
Yu Watanabe
c16b58217a
network: rename ipv6_proxy_ndp_addresses_configure() -> link_set_ipv6_proxy_ndp_addresses()
2020-10-07 02:44:42 +09:00
Yu Watanabe
d349f5026e
network: drop struct IPv6ProxyNDPAddress
...
Its only important value is in6_addr. So, let's just use struct in6_addr
and drop IPv6ProxyNDPAddress.
2020-10-07 02:44:42 +09:00
Yu Watanabe
a8c82f90e7
network: move functions
2020-10-07 02:44:42 +09:00
Yu Watanabe
dbf6319691
network: cleanup networkd-mdb.h
2020-10-07 02:44:42 +09:00
Yu Watanabe
ee4522ce86
network: introduce network_verify_mdb_entries()
2020-10-07 02:44:42 +09:00
Yu Watanabe
03c9738e1d
network: drop list of bridge MDB entries
...
[BridgeMDB] sections are managed by LIST and Hashmap, and they contins
the completely same information. Let's drop the list.
2020-10-07 02:44:42 +09:00
Yu Watanabe
8c06da1cd1
network: move mdb_entry_free() and friends
2020-10-07 02:44:42 +09:00
Yu Watanabe
ee446d57b8
network: cleanup networkd-fdb.h
2020-10-07 02:44:42 +09:00
Yu Watanabe
75ffb011b0
network: drop unused fdb_ntf_flags_to_string()
2020-10-07 02:44:42 +09:00
Yu Watanabe
e6ad630d77
network: introduce network_verify_fdb_entries()
2020-10-07 02:44:42 +09:00
Yu Watanabe
5bb4542b0c
network: move link_set_bridge_fdb()
2020-10-07 02:44:42 +09:00
Yu Watanabe
62ed9442bf
network: drop list of bridge FDB entries
...
[BridgeFDB] sections are managed by both LIST and Hashmap, and they
contains the completely same information. Let's drop the list.
2020-10-07 02:44:42 +09:00
Yu Watanabe
df3a18f87f
network: make fdb_entry_free() return NULL
2020-10-07 02:44:42 +09:00
Yu Watanabe
fb486c9082
network: cleanup networkd-address-label.h
2020-10-07 02:44:42 +09:00
Yu Watanabe
fe2bc17ca7
network: introduce link_set_address_labels()
2020-10-07 02:44:42 +09:00
Yu Watanabe
ab316813ea
network: introduce network_verify_address_labels()
2020-10-07 02:44:42 +09:00
Yu Watanabe
cae418a306
network: make address_label_free() return NULL
2020-10-07 02:44:42 +09:00
Yu Watanabe
d6a2a0f9a7
network: drop list of static address labels
...
[IPv6AddressLabel] sections are managed by both LIST and Hashmap.
Let's drop list, as they store the completely same information.
2020-10-07 02:44:42 +09:00
Yu Watanabe
64753f354d
network: make neighbor_free() return NULL
2020-10-07 02:44:42 +09:00
Yu Watanabe
78ada14f25
network: introduce network_verify_neighbors()
2020-10-07 02:44:42 +09:00
Yu Watanabe
5904833659
network: introduce neighbor_drop_{,foreign_}neighbors()
2020-10-07 02:44:42 +09:00
Yu Watanabe
1939ebeb89
network: cleanup headers in networkd-neighbor.[ch]
2020-10-07 02:44:42 +09:00
Yu Watanabe
9be0b3abc2
network: drop unused arguments
2020-10-07 02:44:42 +09:00
Yu Watanabe
0d6e933eac
network: make several functions static
2020-10-07 02:44:42 +09:00
Yu Watanabe
19f8cffce1
network: make neighbor_{add,get}() takes Neighbor object
2020-10-07 02:44:42 +09:00
Yu Watanabe
b0ba6938df
network: drop list of static neighbors
...
[Neighbor] sections are managed by both LIST and Hashmap.
Let's drop list, as they store the completely same information.
2020-10-07 02:44:42 +09:00