From ae1b22bc94d77de4c204769cce4b15456d46f771 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 21 Jan 2011 14:10:03 +1030 Subject: [PATCH] lca2011: header documentation. Particularly, the example sections (compile-tested thanks to ccanlint). --- ccan/oserver/oserver.h | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) 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 */ -- 2.39.2