[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 14/21] xenstored: add NO_SOCKETS compilation option



On Mon, 2012-01-23 at 10:33 +0000, Stefano Stabellini wrote:
> On Fri, 20 Jan 2012, Daniel De Graaf wrote:
> > From: Alex Zeffertt <alex.zeffertt@xxxxxxxxxxxxx>
> > 
> > option for compiling xenstored without unix sockets to support running on 
> > mini-OS
> 
> The amount of ifdef's introduced by this patch is not ideal.
> 
> Do you think is possible to refactor the code to use structures with
> function pointers, with a registration mechanism, so that in the dom0
> case you would end up with two structs (one for each kind of
> connections), while you would have only one on mini-OS?
> 
> We could have an initialize, a destroy and an accept_connection
> functions.

I suggested earlier that sprinkling checks for fd == -1 around instead
of ifdefs might end up more palatable -- e.g. for the changes in
initialize_set, destroy_fd, write_fd, the FD_ISSET test etc. Factoring
the setup code from main() into a function which can have an ifdef
nopped case would help too.

> > Signed-off-by: Diego Ongaro <diego.ongaro@xxxxxxxxxx>
> > Signed-off-by: Alex Zeffertt <alex.zeffertt@xxxxxxxxxxxxx>
> > Signed-off-by: Daniel De Graaf <dgdegra@xxxxxxxxxxxxx>
> > Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
[...]
> > diff --git a/tools/xenstore/xs.c b/tools/xenstore/xs.c
> > index 0a01675..60f2cee 100644
> > --- a/tools/xenstore/xs.c
> > +++ b/tools/xenstore/xs.c
> > @@ -271,10 +271,12 @@ struct xs_handle *xs_open(unsigned long flags)
> >  {
> >     struct xs_handle *xsh = NULL;
> >  
> > +#ifndef NO_SOCKETS
> >     if (flags & XS_OPEN_READONLY)
> >             xsh = get_handle(xs_daemon_socket_ro());
> >     else
> >             xsh = get_handle(xs_daemon_socket());
> > +#endif

I think tools/xenstore/xs.c is only used by the client library -- does
this change actual cause anything to happen?

[...]
> > +#ifndef NO_SOCKETS
> >  const char *xs_daemon_socket(void)
> >  {
> >     return xs_daemon_path();
> > @@ -73,6 +76,7 @@ const char *xs_daemon_socket_ro(void)
> >             return NULL;
> >     return buf;
> >  }
> > +#endif

If this returned NULL in the NO_SOCKETS case that might also help.

Ian.



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.