X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Foserver%2Foserver.h;h=6b9a3e75c0ddce73d0d583ae28ab8af9b9694f59;hb=9dea47ccb8dacf364bf15f4e30f871ab455b6e04;hp=fa214b4c951db53f78a8d0ecba418e03a3b02856;hpb=75020f977fecd26610845171aaba4f9accc75c6e;p=ccan-lca-2011.git diff --git a/ccan/oserver/oserver.h b/ccan/oserver/oserver.h index fa214b4..6b9a3e7 100644 --- a/ccan/oserver/oserver.h +++ b/ccan/oserver/oserver.h @@ -1,9 +1,30 @@ #ifndef CCAN_OSERVER_H #define CCAN_OSERVER_H -#include +#include +#include -void NORETURN oserver_serve(int fd); -int oserver_setup(void); +/** + * oserver_setup - set up an oserver + * @ev: tevent context to use. + * @port: port to use (usually OSERVER_PORT) + * + * Opens a socket and binds it to @port, then sets it up to listen + * for connections. talloc_free() the pointer returned to shut it down + * (its parent is the tevent_context). + * + * Example: + * struct oserver *oserver; + * struct tevent_context *ev; + * + * ev = tevent_context_init(NULL); + * oserver = oserver_setup(ev, OSERVER_PORT); + * if (!oserver) + * err(1, "Failed to set up server"); + * + * while (tevent_loop_wait(ev) == 0); + * err(1, "Event loop failed"); + */ +struct oserver *oserver_setup(struct tevent_context *ev, unsigned short port); #define OSERVER_PORT 2727 #endif /* CCAN_OSERVER_H */