[Libguestfs] [libnbd PATCH v3 16/19] socket activation: generalize environment construction
Eric Blake
eblake at redhat.com
Thu Mar 23 19:00:15 UTC 2023
On Thu, Mar 23, 2023 at 01:10:13PM +0100, Laszlo Ersek wrote:
> In the future, we'd like to add systemd socket activation environment
> variables such that:
>
> - their values may not be constants (not even for pre-allocating space),
>
> - they may be optional,
>
> - regardless of some optional variables being added or not, the positions
> of those that we do add can be captured, for later reference.
>
> Generalize prepare_socket_activation_environment() accordingly. Write the
> child PID to "LISTEN_PID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" with the new
> "capturing" interface.
>
> Signed-off-by: Laszlo Ersek <lersek at redhat.com>
> Reviewed-by: Richard W.M. Jones <rjones at redhat.com>
> ---
Reviewed-by: Eric Blake <eblake at redhat.com>
> @@ -153,13 +237,18 @@ CONNECT_SA.START:
> if (nbd_internal_execvpe_init (&execvpe_ctx, h->argv.ptr[0], h->argv.len) ==
> -1) {
> set_error (errno, "nbd_internal_execvpe_init");
> goto unlink_sockpath;
> }
>
> - if (prepare_socket_activation_environment (&env) == -1)
> + num_vars = 0;
> + SACT_VAR_PUSH (sact_var, &num_vars,
> + "LISTEN_PID=", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", &pid_ofs);
> + SACT_VAR_PUSH (sact_var, &num_vars,
> + "LISTEN_FDS=", "1", NULL);
> + if (prepare_socket_activation_environment (&env, sact_var, num_vars) == -1)
With just two variables pushed, this is a lot of engineering. But it
definitely makes future additions much easier.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
More information about the Libguestfs
mailing list