Let sd_machine_get_ifindices() omit the output param too
Nowadays we do that almost everywhere, let's also do it here.
This commit is contained in:
parent
0ef14adc1c
commit
dd630d3cac
|
@ -53,21 +53,22 @@
|
|||
project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
call after use.</para>
|
||||
|
||||
<para><function>sd_machine_get_ifindices()</function> may be used
|
||||
to determine the numeric indices of the network interfaces on the
|
||||
host that are pointing towards the specified locally running
|
||||
virtual machine or container that is registered with
|
||||
<para><function>sd_machine_get_ifindices()</function> may be used to determine the numeric indices of the
|
||||
network interfaces on the host that are pointing towards the specified locally running virtual machine or
|
||||
container. The vm or container must be registered with
|
||||
<citerefentry><refentrytitle>systemd-machined.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
|
||||
The returned array needs to be freed with the libc <citerefentry
|
||||
project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
call after use.</para>
|
||||
The output parameter <parameter>ret_ifindices</parameter> may be passed as <constant>NULL</constant> when
|
||||
the output value is not needed. The returned array needs to be freed with the libc <citerefentry
|
||||
project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry> call after
|
||||
use.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Return Value</title>
|
||||
|
||||
<para>On success, these calls return 0 or a positive integer. On failure, these calls return a negative
|
||||
errno-style error code.</para>
|
||||
<para>On success, these functions return a non-negative integer.
|
||||
<function>sd_machine_get_ifindices()</function> returns the number of the relevant network interfaces.
|
||||
On failure, these calls return a negative errno-style error code.</para>
|
||||
|
||||
<refsect2>
|
||||
<title>Errors</title>
|
||||
|
|
|
@ -900,7 +900,6 @@ _public_ int sd_machine_get_ifindices(const char *machine, int **ret_ifindices)
|
|||
int r;
|
||||
|
||||
assert_return(machine_name_is_valid(machine), -EINVAL);
|
||||
assert_return(ret_ifindices, -EINVAL);
|
||||
|
||||
p = strjoina("/run/systemd/machines/", machine);
|
||||
r = parse_env_file(NULL, p, "NETIF", &netif_line);
|
||||
|
@ -918,9 +917,12 @@ _public_ int sd_machine_get_ifindices(const char *machine, int **ret_ifindices)
|
|||
return -ENOMEM;
|
||||
|
||||
size_t n = 0;
|
||||
int *ifindices = new(int, strv_length(tt));
|
||||
if (!ifindices)
|
||||
return -ENOMEM;
|
||||
int *ifindices;
|
||||
if (ret_ifindices) {
|
||||
ifindices = new(int, strv_length(tt));
|
||||
if (!ifindices)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
for (size_t i = 0; tt[i]; i++) {
|
||||
int ind;
|
||||
|
@ -930,10 +932,13 @@ _public_ int sd_machine_get_ifindices(const char *machine, int **ret_ifindices)
|
|||
/* Return -EUCLEAN to distinguish from -EINVAL for invalid args */
|
||||
return ind == -EINVAL ? -EUCLEAN : ind;
|
||||
|
||||
ifindices[n++] = ind;
|
||||
if (ret_ifindices)
|
||||
ifindices[n] = ind;
|
||||
n++;
|
||||
}
|
||||
|
||||
*ret_ifindices = ifindices;
|
||||
if (ret_ifindices)
|
||||
*ret_ifindices = ifindices;
|
||||
return n;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue