+
+/*
+ * This is the function a client must register with each socket, to
+ * receive data coming in on that socket. The parameter `urgent'
+ * decides the meaning of `data' and `len':
+ *
+ * - urgent==0. `data' points to `len' bytes of perfectly ordinary
+ * data.
+ *
+ * - urgent==1. `data' points to `len' bytes of data, which were
+ * read from before an Urgent pointer.
+ *
+ * - urgent==2. `data' points to `len' bytes of data, the first of
+ * which was the one at the Urgent mark.
+ *
+ * - urgent==3. An error has occurred on the socket. `data' points
+ * to an error string, and `len' points to an error code.
+ */