X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=client_common.c;h=eea7510fd0589e86fb4058dd7f4361f3c79901aa;hp=a7eee85d3cc0d5cf94073ca39c6223a7c4a639d4;hb=refs%2Fheads%2Fmaint;hpb=7e611b37e41f0ec7ec6d3173b7e88ed5b9b3a276 diff --git a/client_common.c b/client_common.c index a7eee85d..c25da96b 100644 --- a/client_common.c +++ b/client_common.c @@ -50,13 +50,12 @@ void client_close(struct client_task *ct) } /* - * The preselect hook for server commands. + * This function asks the scheduler to monitor a file descriptor which + * corresponds to an active connection. The descriptor is monitored for either + * reading or writing, depending on the state of the connection. * - * The task pointer must contain a pointer to the initialized client data - * structure as it is returned by client_open(). - * - * This function checks the state of the connection and adds the file descriptor - * of the connection to the read or write fd set of s accordingly. + * The context pointer is assumed to refer to a client task structure that was + * initialized earlier by client_open(). */ static void client_pre_select(struct sched *s, void *context) { @@ -86,7 +85,7 @@ static void client_pre_select(struct sched *s, void *context) else if (ret > 0) para_fd_set(ct->scc.fd, &s->wfds, &s->max_fileno); } - /* fallthrough */ + __attribute__ ((fallthrough)); case CL_EXECUTING: if (ct->btrn[0]) { ret = btr_node_status(ct->btrn[0], 0, BTR_NT_ROOT); @@ -260,12 +259,15 @@ static int send_sb_command(struct client_task *ct) } /* - * The post select hook for client commands. + * This function reads or writes to the socket file descriptor which + * corresponds to an established connection between the client and the server. + * It depends on the current state of the connection and on the readiness of + * the socket file descriptor which type of I/O is going to be performed. + * Besides the initial handshake and authentication, the function sends the + * server command and receives the output from the server, if any. * - * Depending on the current state of the connection and the status of the read - * and write fd sets of s, this function performs the necessary steps to - * authenticate the connection, to send the command given by t->private_data - * and to receive para_server's output, if any. + * The context pointer refers to a client task structure that was initialized + * earlier by client_open(). */ static int client_post_select(struct sched *s, void *context) { @@ -389,7 +391,7 @@ static int client_post_select(struct sched *s, void *context) btr_consume(ct->btrn[1], sz); } } - /* fall through */ + __attribute__ ((fallthrough)); case CL_EXECUTING: if (ct->btrn[0]) { ret = btr_node_status(ct->btrn[0], 0, BTR_NT_ROOT);