From: Rusty Russell Date: Fri, 21 Jan 2011 03:40:03 +0000 (+1030) Subject: lca2011: header documentation. X-Git-Url: http://git.ozlabs.org/?p=ccan-lca-2011.git;a=commitdiff_plain;h=ae1b22bc94d77de4c204769cce4b15456d46f771 lca2011: header documentation. Particularly, the example sections (compile-tested thanks to ccanlint). --- diff --git a/ccan/oserver/oserver.h b/ccan/oserver/oserver.h index fa214b4..bf2b0ea 100644 --- a/ccan/oserver/oserver.h +++ b/ccan/oserver/oserver.h @@ -2,8 +2,42 @@ #define CCAN_OSERVER_H #include -void NORETURN oserver_serve(int fd); +/** + * oserver_setup - get a listening filedescriptor for an oserver + * + * Opens a socket and binds it to OSERVER_PORT, then sets it up to listen + * for connections and returns it. + * + * Example: + * int serverfd; + * + * serverfd = oserver_setup(); + * if (serverfd < 0) + * err(1, "Failed to set up server"); + */ int oserver_setup(void); +/** + * oserver_serve - serve an oserver client via a file descriptor + * @fd: the file descriptor (usually a connected socket) + * + * This does not return, but exits with status 0 if served OK. + * + * Example: + * #include + * #include + * ... + * int clientfd; + * ... + * clientfd = accept(serverfd, NULL, NULL); + * if (clientfd < 0) + * err(1, "Accepting connection from client"); + * if (fork() == 0) + * oserver_serve(clientfd); + * else + * close(clientfd); + */ +void NORETURN oserver_serve(int fd); + #define OSERVER_PORT 2727 #endif /* CCAN_OSERVER_H */