978c64777ae21f3f86b9feeda75ed49bd8c031ab |
|
26-Jan-2016 |
Lennart Poettering <lennart@poettering.net> |
dhcp: make host/domain name validity checks stricter
Also don't permit host/domain names that reference the root domain, and unify the codepaths for this. |
b14fff6e44eec1752bed2fbb8c5e8f376ea9507b |
|
21-Jan-2016 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
libsystemd-network: use assert_se
It cannot fail.
CID #1320623. |
22805d9207d5242681e5667ee304572e4abf9b94 |
|
20-Jan-2016 |
Beniamino Galvani <bgalvani@redhat.com> |
dhcp: make DHCP_OPTION_* enum public
libsystemd-network provides the public function
sd_dhcp_client_set_request_option() to enable the request of a given
DHCP option. However the enum defining such options is defined in the
internal header dhcp-protocol.h. Move the enum definition to the
public header sd-dhcp-client.h and properly namespace values. |
f8693fc7971942eedb4651a8c82500c227773f62 |
|
20-Jan-2016 |
Beniamino Galvani <bgalvani@redhat.com> |
dhcp: export routes as opaque objects
At the moment sd_dhcp_lease_get_routes() returns an array of structs
which are not defined in public headers. Instead, change the function
to return an array of pointers to opaque sd_dhcp_route objects. |
d054f0a4d451120c26494263fc4dc175bfd405b1 |
|
12-Jan-2016 |
Daniel Mack <daniel@zonque.org> |
tree-wide: use xsprintf() where applicable
Also add a coccinelle receipt to help with such transitions. |
4afd3348c7506dd1d36305b7bcb9feb8952b9d6b |
|
27-Nov-2015 |
Lennart Poettering <lennart@poettering.net> |
tree-wide: expose "p"-suffix unref calls in public APIs to make gcc cleanup easy
GLIB has recently started to officially support the gcc cleanup
attribute in its public API, hence let's do the same for our APIs.
With this patch we'll define an xyz_unrefp() call for each public
xyz_unref() call, to make it easy to use inside a
__attribute__((cleanup())) expression. Then, all code is ported over to
make use of this.
The new calls are also documented in the man pages, with examples how to
use them (well, I only added docs where the _unref() call itself already
had docs, and the examples, only cover sd_bus_unrefp() and
sd_event_unrefp()).
This also renames sd_lldp_free() to sd_lldp_unref(), since that's how we
tend to call our destructors these days.
Note that this defines no public macro that wraps gcc's attribute and
makes it easier to use. While I think it's our duty in the library to
make our stuff easy to use, I figure it's not our duty to make gcc's own
features easy to use on its own. Most likely, client code which wants to
make use of this should define its own:
#define _cleanup_(function) __attribute__((cleanup(function)))
Or similar, to make the gcc feature easier to use.
Making this logic public has the benefit that we can remove three header
files whose only purpose was to define these functions internally.
See #2008. |
f693e9b38f13575b988335e3324a50dcc8772d48 |
|
25-Nov-2015 |
Tom Gundersen <teg@jklm.no> |
sd-dhcp: parse error message in DECLINE or NAK
If a client sends a DECLINE or a server sends a NAK, they can include
a string with a message to explain the error. Parse this and print it
at debug level. |
e26ea7fc2d7e210f60f12ad40f76b6e4dca48c27 |
|
05-Nov-2015 |
Michal Schmidt <mschmidt@redhat.com> |
libsystemd-network: inet_pton does not set errno on parsing error
it would set errno only for an invalid address family.
Also fix a copy&paste error in one error string. |
b11d6a7bed4d867fb9f6ff4e7eb4ab20fcdc9301 |
|
03-Nov-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: move character class definitions to string-util.h |
b5efdb8af40ea759a1ea584c1bc44ecc81dd00ce |
|
27-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: split out allocation calls into alloc-util.[ch] |
e4e73a632524c382139034d4271f53b6089ab4cb |
|
27-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: split out hex/dec/oct encoding/decoding into its own file |
6bedfcbb2970e06a4d3280c8fb62083d252ede73 |
|
27-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: split string parsing related calls from util.[ch] into parse-util.[ch] |
3ffd4af22052963e7a29431721ee204e634bea75 |
|
25-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: split out fd-related operations into fd-util.[ch]
There are more than enough to deserve their own .c file, hence move them
over. |
07630cea1f3a845c09309f197ac7c4f11edd3b62 |
|
24-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: split our string related calls from util.[ch] into its own file string-util.[ch]
There are more than enough calls doing string manipulations to deserve
its own files, hence do something about it.
This patch also sorts the #include blocks of all files that needed to be
updated, according to the sorting suggestions from CODING_STYLE. Since
pretty much every file needs our string manipulation functions this
effectively means that most files have sorted #include blocks now.
Also touches a few unrelated include files. |
e989fd9b67f5e19b115e940d397a83e260668763 |
|
30-Sep-2015 |
Lennart Poettering <lennart@poettering.net> |
dhcp: make sure we can deal with a single trailing NUL byte in the hostname
Fixes #1337 |
64d6c22905e94b02e760747c6c143dc9893083d9 |
|
01-Sep-2015 |
Thomas Hindoe Paaboel Andersen <phomes@gmail.com> |
tree-wide: do not shadow the global var timezone |
e37d2c941f6493c2e3df1baead7f5565a256f4a2 |
|
27-Aug-2015 |
Lennart Poettering <lennart@poettering.net> |
dhcp: say domain name, when we mean domain name |
0339cd7707ac40c29d51ee6933d06bc87ed140a4 |
|
27-Aug-2015 |
Lennart Poettering <lennart@poettering.net> |
dhcp: clean up dhcp4 lease object
a) drop handling of obsolete or unused DHCP options time_offset,
mtu_aging_timeout, policy filter, mdr, ttl, ip forwarding settings.
Should this become useful one day we can readd support for this.
b) For subnet mask and broadcast it is not always clear whether 0 or
255.255.255.255 might be valid, hence maintain a boolean indicating
validity next to it.
c) serialize/deserialize broadcast address, lifetime, T1 and T2 together
with the rest of the fields in dhcp_lease_save() and
dhcp_lease_load().
d) consistently return ENODATA from getter functions for data that is
missing in the lease.
e) add missing getter calls for broadcast, lifetime, T1, T2.
f) when decoding DHCP options, generate debug messages on parse
failures, but try to proceed if possible.
g) Similar, when deserializing a lease in dhcp_lease_load(), make sure
we deal nicely with unparsable fields, to provide upgrade compat.
h) fix some memory allocations |
e473522841f630bfd25725b06605462e5e30587f |
|
26-Aug-2015 |
Lennart Poettering <lennart@poettering.net> |
dhcp: generic data should be void*, not uint8_t*
If we handly arbitrary data we should use "void*" pointers, not
"uint8_t*", how go intended C to be used. |
3733eec3e292e4ddb4cba5eb8d3bd8cbee7102d8 |
|
26-Aug-2015 |
Lennart Poettering <lennart@poettering.net> |
dhcp: stop using refcnt.h
No need to invole atomic ops in single-threaded APIs, let's simplify
this. |
bd91b83e578165b4c242c9f34ff1d3be8fb3ab22 |
|
26-Aug-2015 |
Lennart Poettering <lennart@poettering.net> |
dhcp: keep lease save/load functions private
When we make sd-dhcp public one day we really should not make
sd_dhcp_lease_save() and sd_dhcp_lease_load() public, since it's pretty
much only useful as internal utility for networkd itself. |
909816257937b24e9c3c7fa669ea79b6ffc33c0f |
|
26-Aug-2015 |
Lennart Poettering <lennart@poettering.net> |
dhcp: normalize DHCP host and domain names from leases
Previoulsy, we just checked whether the domain names specified in
incoming DHCP leases are valid. Given that validation code actually
internally normalizes anyway, it's a good idea to simply do the full
normalization and store that in the lease structure. This allows us to
remove the manual removal of a trailing dot, if there is one. |
2d03c0b803aa822dfb5f0473a1e37c19f7774860 |
|
26-Aug-2015 |
Lennart Poettering <lennart@poettering.net> |
dhcp: various simplifications |
8eb9058dc1f99a5eb9b8726a978fcc0720837a10 |
|
26-Aug-2015 |
Lennart Poettering <lennart@poettering.net> |
dhcp,network: implement RFC 4833 (DHCP Timezone option)
This one is simply to add: encode the tzdata timezone in the DHCP
options and optionally make use of it. |
43f447b121b38c01a7c5626a51cc571a822250b8 |
|
26-Aug-2015 |
Lennart Poettering <lennart@poettering.net> |
dhcp: be more careful when parsing strings from DHCP packets
Let's make sure there's no embedded 0 byte. Also, let's reset the string
if the length is zero. |
626be147a6b6e09e15cd6c4b51bf8cfa87fa6f56 |
|
08-Aug-2015 |
reverendhomer <mk.43.ecko@gmail.com> |
libsystemd-network: fix memory leak |
92d0218ed10160cc54bcd06334e26dfd2b88dd7a |
|
06-Aug-2015 |
Daniel Mack <daniel@zonque.org> |
libsystemd-network: plug memory leak
Coverity #1315324 |
8fb494435889dcb9e1c09b8c7220e47bab717bf9 |
|
06-Aug-2015 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
hostname-util: add relax parameter to hostname_is_valid
Tests are modified to check behaviour with relax and without relax.
New tests are added for hostname_cleanup().
Tests are moved a new file (test-hostname-util) because there's
now a bunch of them.
New parameter is not used anywhere, except in tests, so there should
be no observable change. |
30afef872ee0e6cb675275566a858b8044ff0ff7 |
|
05-Aug-2015 |
Lennart Poettering <lennart@poettering.net> |
network: make enough space for string
Follow-up for PR #877. |
9b57d9aee48e78bb591baecea1c3dbafd974759f |
|
05-Aug-2015 |
Alex Crawford <alex.crawford@coreos.com> |
networkd: clean up duplicate code |
a073309fb779e9c9e48eaef664daeb6b8f6080da |
|
05-Aug-2015 |
Alex Crawford <alex.crawford@coreos.com> |
networkd: serialize the private options
Save the private options along side the rest of the options in the lease
files. |
7e753d9d28ca93fe0e48fd3605ed7c3371736422 |
|
05-Aug-2015 |
Alex Crawford <alex.crawford@coreos.com> |
networkd: add private options to lease struct
This stores private-zone DHCP options inside of their respective DHCP
lease. These options aren't used by networkd (what would it do with
them?), but saving them will allow other programs to query the values.
To improve performance, the options are stored in ascending order by
tag. |
dacd6cee76a08331b8c8616c5f30f70ee49aa2f9 |
|
29-Jul-2015 |
Lennart Poettering <lennart@poettering.net> |
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. |
e43a8393eaf058c4ecd2a5968f59d83b911d4f1f |
|
12-Jul-2015 |
Beniamino Galvani <bgalvani@redhat.com> |
dhcp: add support for vendor specific DHCP option
This adds support for option 43 (Vendor Specific Information) to
libsystemd-network DHCP code. The option carries an opaque object of n
octets, interpreted by vendor-specific code on the clients and
servers.
[@zonque: adopted to new unhexmem() API] |
30494563f235b21c6583f7476b8ee35e9f5f8048 |
|
12-Jul-2015 |
Tom Gundersen <teg@jklm.no> |
basic: util - fix errorhandling in unhexmem()
We were ignoring failures from unhexchar, which meant that invalid
hex characters were being turned into garbage rather than the string
rejected.
Fix this by making unhexmem return an error code, also change the API
slightly, to return the size of the returned memory, reflecting the
fact that the memory is a binary blob,and not a string.
For convenience, still append a trailing NULL byte to the returned
memory (not included in the returned size), allowing callers to
treat it as a string without doing a second copy. |
a05185279bfc2420f60dc2a061d50bfcb646be70 |
|
12-Jul-2015 |
Nick Owens <mischief@coreos.com> |
sd-dhcp-lease: fix handling of multiple routers
currently if a dhcp server sends more than one router, sd-dhcp-lease
does not copy the ip because it assumes it will only ever be 4 bytes. a
dhcp server could send more than one ip in the router list, so we should
copy the first one and ignore the rest of the bytes. |
37de250906222211d2bf1755c41191a06d2126dd |
|
10-Jun-2015 |
Nick Owens <nick.owens@coreos.com> |
libsystemd-network: use domain validation instead of hostname validation for dhcp domain option
previously hostname_is_valid was used to validate domain names, which
would silently drop perfectly valid dns names that were longer than a
single dns label. |
dde8bb32b12c855509777ce52ff59a835155ac78 |
|
21-May-2015 |
Lennart Poettering <lennart@poettering.net> |
json: minor style fixes |
958b66ea16deddd794b3a52643bd44633e165ead |
|
18-May-2015 |
Lennart Poettering <lennart@poettering.net> |
util: split all hostname related calls into hostname-util.c |
2eec67acbb00593e414549a7e5b35eb7dd776b1b |
|
23-Feb-2015 |
Thomas Hindoe Paaboel Andersen <phomes@gmail.com> |
remove unused includes
This patch removes includes that are not used. The removals were found with
include-what-you-use which checks if any of the symbols from a header is
in use. |
f50f01f4b738f2f00b30d0e02e8cf54ab99a9f27 |
|
28-Jan-2015 |
Lennart Poettering <lennart@poettering.net> |
sd-dhcp: chop of trailing dot of DHCP supplied host and domain nams |
f0c4b1c3fd827b429ba36aa45fd39e0a023cbf2c |
|
13-Jan-2015 |
Tom Gundersen <teg@jklm.no> |
refcnt: refcnt is unsigned, fix comparisons
This does not make a difference, but the code was confusing. |
23bbb0de4e3f85d9704a5c12a5afa2dfa0159e41 |
|
28-Nov-2014 |
Michal Schmidt <mschmidt@redhat.com> |
treewide: more log_*_errno + return simplifications |
da927ba997d68401563b927f92e6e40e021a8e5c |
|
28-Nov-2014 |
Michal Schmidt <mschmidt@redhat.com> |
treewide: no need to negate errno for log_*_errno()
It corrrectly handles both positive and negative errno values. |
0a1beeb64207eaa88ab9236787b1cbc2f704ae14 |
|
28-Nov-2014 |
Michal Schmidt <mschmidt@redhat.com> |
treewide: auto-convert the simple cases to log_*_errno()
As a followup to 086891e5c1 "log: add an "error" parameter to all
low-level logging calls and intrdouce log_error_errno() as log calls
that take error numbers", use sed to convert the simple cases to use
the new macros:
find . -name '*.[ch]' | xargs sed -r -i -e \
's/log_(debug|info|notice|warning|error|emergency)\("(.*)%s"(.*), strerror\(-([a-zA-Z_]+)\)\);/log_\1_errno(-\4, "\2%m"\3);/'
Multi-line log_*() invocations are not covered.
And we also should add log_unit_*_errno(). |
1c6eb4e36bf88015d0bbe8fae417622e6132b864 |
|
20-Nov-2014 |
Thomas Haller <thaller@redhat.com> |
sd-dhcp-lease: fix copy-paste error asserting wrong function argument |
e37f74a6d5cc3c0a3d214c3a7f5de234b0696b4c |
|
19-Nov-2014 |
Dan Williams <dcbw@redhat.com> |
sd-dhcp-lease: load/save client ID
The lease is usually tied to the client ID, so users of the
lease may want to know what client ID it was acquired with. |
1dc24d5f48b384c48d5182964579758d7dcbdce2 |
|
18-Nov-2014 |
Tom Gundersen <teg@jklm.no> |
sd-dhcp-lease: expose load/save functions
Based on patch by Dan Williams. |
1caa12d0a8a818d5f2545aab809b3fdfec73871d |
|
01-Nov-2014 |
Tom Gundersen <teg@jklm.no> |
sd-dhcp-lease: use shared default prefixlen function
Also change the default prefixlen function to only access the first octet of the in_addr. |
bab47929613f9e930dd241a01483b37d14b59c69 |
|
01-Nov-2014 |
Tom Gundersen <teg@jklm.no> |
sd-dhcp-lease: use unaligned read helpers |
df40eee8edccb6bf09a57c2b96f69d233032ce52 |
|
27-Oct-2014 |
Tom Gundersen <teg@jklm.no> |
shared: in-addr-utils - add default_subnet_mask and default_prefixlen methods
These use the (deprecated) IPv4 address classes to deduce the corresponding subnet masks. This is useful when addresses
without subnet masks and prefix lengths are given.
Make use of these new functions from sd-dhcp-lease. |
708281b81177f3a32d11770126727737a6a69483 |
|
15-Aug-2014 |
Lennart Poettering <lennart@poettering.net> |
dhcp: the localhost isn't valid as hostname either |
784d9b9c09aa1ecdc688f251ea423fb47892f498 |
|
15-Aug-2014 |
Tom Gundersen <teg@jklm.no> |
sd-dhcp-lease: verify hostname and domainnames we receive |
b0e39c8284b5195850a58e4efcce2f059bdcc6ad |
|
23-Jul-2014 |
Tom Gundersen <teg@jklm.no> |
networkd: merge DNS and NTP entries when exporting
In the state files, do not distinguish where the various entries came from
(static or DHCP), but include them all in the same list. |
a2ba62c719224a4b47751623ca5e8b0333f49721 |
|
17-Jul-2014 |
Lennart Poettering <lennart@poettering.net> |
sd-network: remove redundant array size parameter from functions that return arrays
As long as the number of array entries is relatively small it's nicer to
simply return the number of entries directly, instead of using a size_t*
return parameter for it. |
e1ea665edac17d75fce01b72dadfa3211b60df2c |
|
29-Jun-2014 |
Eugene Yakubovich <eyakubovich@gmail.com> |
Add support for DHCP static route options
This adds support for DHCP options 33 and 121: Static Route and
Classless Static Route. To enable this feature, set UseRoutes=true
in .network file. Returned routes are added to the routing table. |
68ceb9df6a39a7f86ffc3cf8266ca677a5d5271b |
|
29-Jun-2014 |
Patrik Flykt <Patrik.Flykt@linux.intel.com> |
sd-dhcp-client/networkd: set lifetimes for IPv4 addresses
Note that /proc/sys/net/ipv4/ip_dynaddr needs to be non-zero.
[tomegun: hook up DHCP renew events to increase the lifetime when necessary] |
f5c0c00f400e6f1fa58c5faf8bc93ca9057d4463 |
|
20-May-2014 |
Tom Gundersen <teg@jklm.no> |
dhcp-lease: add support for parsing a few more dhcp options |
e140ae58f1c10bbd75ef94afc07d07b82323b506 |
|
20-May-2014 |
Tom Gundersen <teg@jklm.no> |
dhcp-lease: refactor lease parsing
Use helper functions, and add some more sanity checking/asserts. |
81d98a39eb4cca743beba27f4ae21a0e199df785 |
|
19-May-2014 |
Tom Gundersen <teg@jklm.no> |
sd-dhcp-lease/sd-network: modernization and fix leak |
09bee74d7a5f266b175baa19892fa84a9da51d7f |
|
19-May-2014 |
Tom Gundersen <teg@jklm.no> |
sd-dhcp-lease: move in_addr (de)serialization to shared network code |
8ddbeaa23c20659fe3b1b79502d746aceb396ce8 |
|
30-Apr-2014 |
Umut Tezduyar Lindskog <umut.tezduyar@axis.com> |
networkd: dont configure route if lease doesn't have one |
bc4155669aaf567e2d6fa1f1082d68012346629e |
|
29-Apr-2014 |
Tom Gundersen <teg@jklm.no> |
sd-dhcp-lease: fix double realloc |
109731eb250705e055b98b844d7c0dfb74bcf728 |
|
29-Apr-2014 |
Tom Gundersen <teg@jklm.no> |
sd-dhcp-lease: (de)serialize DNS and NTP servers
Also use inet_ntoa rather than inet_ntop. |
0b21bde96d6d33313bac42ae1d5802a83a4e7b2f |
|
29-Apr-2014 |
Tom Gundersen <teg@jklm.no> |
sd-dhcp-leaes: use newdup() |
4684469639d0893d78fc8e1a1966ce11eb9c7e31 |
|
29-Apr-2014 |
Tom Gundersen <teg@jklm.no> |
sd-dhcp-lease: add NTP support
Export the NTP servers so timesyncd can use them. |
6e00a80641aaba814204c65365c2fd5a90768394 |
|
12-Apr-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
test-dhcp-client: unref lease objects to make valgrind happy
Also unref client objects in test code, and initalize logging,
to DEBUG by default. |
9e64dd72765ddc2583554ebed24eb2c824564838 |
|
21-Mar-2014 |
Tom Gundersen <teg@jklm.no> |
sd-dhcp-client: add fallback subnet masks
The DHCP RFC does not require the DHCP server to send a subnet mask, so if it
is missing, let's try to use the default subnet masks based on address class.
In case the class the address belongs to does not have a default subnet mask,
we fail as before.
Also improve logging when handling invalid dhcp messages, and simply ignore them
rather than stop the whole dhcp client. |
0ea51a1129b9984a3c6d96cef1b0e33c99b5e9cf |
|
14-Mar-2014 |
Tom Gundersen <teg@jklm.no> |
networkd: fix creation of runtime dirs at startup
This allows us to drop the repeated attempted creations of the runtime dirs during runtime. |
8e34a618e2a67e22250247956697fe27c14c83c8 |
|
03-Mar-2014 |
Tom Gundersen <teg@jklm.no> |
sd-dhcp-lease: add sd_dhcp_lease_get_next_server() |
0ad853bc06dea1db5740caf59f404d274fa5e3c9 |
|
03-Mar-2014 |
Tom Gundersen <teg@jklm.no> |
sd-dhcp-lease: add sd_dhcp_lease_get_server_identifier() |
ce78df79b88d02d36cbf9e39e70ecb871750e16d |
|
03-Mar-2014 |
Tom Gundersen <teg@jklm.no> |
sd-dhcp-lease: add Root Path support
This is necessary when mounting /dev/nfs based on a DHCP lease. |
fe8db0c5ee3365a2fc80ee7ebffa238f9a0a2ae2 |
|
28-Feb-2014 |
Tom Gundersen <teg@jklm.no> |
sd-network: add new library
This is similar to sd-login, but exposes the state of networkd rather than logind.
Include it in libsystemd-dhcp and rename it to libsystemd-network. |