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 <ler...@redhat.com> > Reviewed-by: Richard W.M. Jones <rjo...@redhat.com> > ---
Reviewed-by: Eric Blake <ebl...@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 _______________________________________________ Libguestfs mailing list Libguestfs@redhat.com https://listman.redhat.com/mailman/listinfo/libguestfs