From ff34c6e7869a842b5db5046578c0b8d173501833 Mon Sep 17 00:00:00 2001 From: mdw Date: Fri, 22 Jun 2001 19:35:20 +0000 Subject: [PATCH] Interface change to @conn_init@ -- return error rather than calling the function. This reduces the number of different environments the callback has to cope with, and the old behaviour is easily simulatable with the new, while simulating the new behaviour was awkward and painful. --- conn.c | 23 +++++++++++++++-------- conn.h | 19 +++++++++++++------ 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/conn.c b/conn.c index 8fe92a3..6057428 100644 --- a/conn.c +++ b/conn.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: conn.c,v 1.5 2000/10/08 11:17:26 mdw Exp $ + * $Id: conn.c,v 1.6 2001/06/22 19:35:20 mdw Exp $ * * Nonblocking connect handling * @@ -30,6 +30,13 @@ /*----- Revision history --------------------------------------------------* * * $Log: conn.c,v $ + * Revision 1.6 2001/06/22 19:35:20 mdw + * Interface change to @conn_init@ -- return error rather than calling the + * function. This reduces the number of different environments the + * callback has to cope with, and the old behaviour is easily simulatable + * with the new, while simulating the new behaviour was awkward and + * painful. + * * Revision 1.5 2000/10/08 11:17:26 mdw * (conn_connect): Change sizes to be @size_t@. * @@ -112,7 +119,7 @@ static void conn_connect(int fd, unsigned mode, void *p) * @void (*func)(int fd, void *p) = handler function * @void *p@ = argument for the handler function * - * Returns: --- + * Returns: Zero on success, nonzero on failure. * * Use: Sets up a nonblocking connect job. The socket should already * be bound if you care about that sort of thing. When the @@ -123,10 +130,10 @@ static void conn_connect(int fd, unsigned mode, void *p) * In either case, the select job is then removed. */ -void conn_init(conn *c, sel_state *s, int fd, - struct sockaddr *dst, int dsz, - void (*func)(int /*fd*/, void */*p*/), - void *p) +int conn_init(conn *c, sel_state *s, int fd, + struct sockaddr *dst, int dsz, + void (*func)(int /*fd*/, void */*p*/), + void *p) { int f; @@ -144,13 +151,13 @@ void conn_init(conn *c, sel_state *s, int fd, } else func(fd, p); - return; + return (0); /* --- Something went pear-shaped --- */ fail: close(fd); - func(-1, p); + return (-1); } /* --- @conn_kill@ --- * diff --git a/conn.h b/conn.h index 58a96a8..d520a6f 100644 --- a/conn.h +++ b/conn.h @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: conn.h,v 1.5 1999/12/10 23:42:04 mdw Exp $ + * $Id: conn.h,v 1.6 2001/06/22 19:35:20 mdw Exp $ * * Nonblocking connect handling * @@ -30,6 +30,13 @@ /*----- Revision history --------------------------------------------------* * * $Log: conn.h,v $ + * Revision 1.6 2001/06/22 19:35:20 mdw + * Interface change to @conn_init@ -- return error rather than calling the + * function. This reduces the number of different environments the + * callback has to cope with, and the old behaviour is easily simulatable + * with the new, while simulating the new behaviour was awkward and + * painful. + * * Revision 1.5 1999/12/10 23:42:04 mdw * Change header file guard names. * @@ -86,7 +93,7 @@ typedef struct conn { * @void (*func)(int fd, void *p) = handler function * @void *p@ = argument for the handler function * - * Returns: --- + * Returns: Zero on success, nonzero on failure. * * Use: Sets up a nonblocking connect job. The socket should already * be bound if you care about that sort of thing. When the @@ -97,10 +104,10 @@ typedef struct conn { * In either case, the select job is then removed. */ -extern void conn_init(conn */*c*/, sel_state */*s*/, int /*fd*/, - struct sockaddr */*dst*/, int /*dsz*/, - void (*/*func*/)(int /*fd*/, void */*p*/), - void */*p*/); +extern int conn_init(conn */*c*/, sel_state */*s*/, int /*fd*/, + struct sockaddr */*dst*/, int /*dsz*/, + void (*/*func*/)(int /*fd*/, void */*p*/), + void */*p*/); /* --- @conn_kill@ --- * * -- 2.11.0