]> git.ozlabs.org Git - ccan/blobdiff - ccan/io/io.h
io: make io_close_taken_fd() unset nonblocking on the fd.
[ccan] / ccan / io / io.h
index 8efc0024c9d230a580bd7838de4d7ad30503e381..1664df65f26e353120762f1ab89abc65ee01f1c9 100644 (file)
@@ -109,7 +109,8 @@ void io_set_finish_(struct io_conn *conn,
  * @arg: the argument to @init.
  *
  * When @fd becomes readable, we accept(), create a new connection,
- * (tal'ocated off @ctx) and pass that to init().
+ * (tal'ocated off @ctx) and pass that to init().  Note that if there is
+ * an error on this file descriptor, it will be freed.
  *
  * Returns NULL on error (and sets errno).
  *
@@ -629,12 +630,14 @@ struct io_plan *io_close_cb(struct io_conn *, void *unused);
 
 /**
  * io_close_taken_fd - close a connection, but remove the filedescriptor first.
- * @conn: the connection to take the file descriptor from and close,
+ * @conn: the connection to take the file descriptor from and close.
  *
  * io_close closes the file descriptor underlying the io_conn; this version does
  * not.  Presumably you have used io_conn_fd() on it beforehand and will take
  * care of the fd yourself.
  *
+ * Note that this also turns off O_NONBLOCK on the fd.
+ *
  * Example:
  * static struct io_plan *steal_fd(struct io_conn *conn, int *fd)
  * {
@@ -663,7 +666,10 @@ void *io_loop(struct timers *timers, struct timer **expired);
  * io_conn_fd - get the fd from a connection.
  * @conn: the connection.
  *
- * Sometimes useful, eg for getsockname().
+ * Sometimes useful, eg for getsockname().  Note that the fd is O_NONBLOCK.
+ *
+ * See Also:
+ *     io_close_taken_fd
  */
 int io_conn_fd(const struct io_conn *conn);