]> git.ozlabs.org Git - ccan-lca-2011.git/blobdiff - ccan/oserver/oserver.h
lca2011: simpler testing by not having oserver_serve exit.
[ccan-lca-2011.git] / ccan / oserver / oserver.h
index bf2b0ead5b7c362f09f2688ea89ab82bb492fb14..d727560cd76455d092acd3db9a6e06adbd16add7 100644 (file)
@@ -1,6 +1,6 @@
 #ifndef CCAN_OSERVER_H
 #define CCAN_OSERVER_H
-#include <ccan/compiler/compiler.h>
+#include <stdbool.h>
 
 /**
  * oserver_setup - get a listening filedescriptor for an oserver
@@ -21,7 +21,7 @@ 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.
+ * This returns false (with errno set) on failure.
  *
  * Example:
  *      #include <sys/types.h>
@@ -33,11 +33,11 @@ int oserver_setup(void);
  *             if (clientfd < 0)
  *                     err(1, "Accepting connection from client");
  *             if (fork() == 0)
- *                     oserver_serve(clientfd);
+ *                     exit(oserver_serve(clientfd) ? 0 : 1);
  *             else
  *                     close(clientfd);
  */
-void NORETURN oserver_serve(int fd);
+bool oserver_serve(int fd);
 
 #define OSERVER_PORT 2727
 #endif /* CCAN_OSERVER_H */