|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 05/15] oxenstored: add support for systemd active sockets
On Mon, 2014-05-12 at 11:11 -0700, Luis R. Rodriguez wrote:
> >> +CAMLprim value ocaml_sd_listen_fds(value connect_to)
> >> +{
> >> + CAMLparam1(connect_to);
> >> + CAMLlocal1(sock_ret);
> >> + int n, r;
> >> + struct xen_systemd_active_socket *active_socket;
> >> +
> >> + active_socket = get_xen_active_socket((const char *)
> >> String_val(connect_to));
> >> + if (!active_socket)
> >> + caml_failwith("ocaml_sd_listen_fds() got invalid request");
> >
> > The sole purpose of this is to convert the string to an entry in the
> > the table ? I.e., essentially, just the table index ?
>
> A few things actually:
>
> 1. Used to that the path is expected by the program / systemd
> 2. Lets then tell systemd we are ready for that socket
> 3. Verification of the integrity of the socket as we expected it to be set
> up
> 4. Verification that we only get from systemd the number of sockets expected
I think this should be refactored to be something like:
/* NB these should also be documented somewhere... */
#define SOCKET_ACTIVATION_RW_INDEX 3
#define SOCKET_ACTIVATION_RO_INDEX 4
static int get_handle(int ro)
{
if (systemd_active())
return get_systemd_handle(ro ?
SOCKET_ACTIVATION_RO_INDEX :
SOCKET_ACTIVATION_RW_INDEX);
else
return get_unix_socket_handle(ro ?
xs_daemon_socket_ro() :
xs_daemon_socket());
}
That's a rough outline and subject to coding style and my not having
looked at the actual naming conventions in that file etc. I suspect the
existing get_handle() needs to be refactored into something which
get_systemd_handle(), get_unix_socket_handle() and the xs_domain_dev()
path can all use.
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |