diff options
author | Pawel Jakub Dawidek <pjd@FreeBSD.org> | 2011-02-02 15:46:28 +0000 |
---|---|---|
committer | Pawel Jakub Dawidek <pjd@FreeBSD.org> | 2011-02-02 15:46:28 +0000 |
commit | 1c1933226f9c032643353160fb7e08713f687e5e (patch) | |
tree | 14572a6733b1467ecd161cefb488eb923dad681b /sbin/hastd/proto.c | |
parent | 9d70b24b932c274f15640fbc7f1048fe23547da7 (diff) | |
download | src-1c1933226f9c032643353160fb7e08713f687e5e.tar.gz src-1c1933226f9c032643353160fb7e08713f687e5e.zip |
Notes
Diffstat (limited to 'sbin/hastd/proto.c')
-rw-r--r-- | sbin/hastd/proto.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/sbin/hastd/proto.c b/sbin/hastd/proto.c index 0fd6c17a6f4d..1527f3939b1e 100644 --- a/sbin/hastd/proto.c +++ b/sbin/hastd/proto.c @@ -174,7 +174,7 @@ proto_connect(struct proto_conn *conn, int timeout) PJDLOG_ASSERT(conn->pc_side == PROTO_SIDE_CLIENT); PJDLOG_ASSERT(conn->pc_proto != NULL); PJDLOG_ASSERT(conn->pc_proto->hp_connect != NULL); - PJDLOG_ASSERT(timeout >= 0); + PJDLOG_ASSERT(timeout >= -1); ret = conn->pc_proto->hp_connect(conn->pc_ctx, timeout); if (ret != 0) { @@ -186,6 +186,27 @@ proto_connect(struct proto_conn *conn, int timeout) } int +proto_connect_wait(struct proto_conn *conn, int timeout) +{ + int ret; + + PJDLOG_ASSERT(conn != NULL); + PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC); + PJDLOG_ASSERT(conn->pc_side == PROTO_SIDE_CLIENT); + PJDLOG_ASSERT(conn->pc_proto != NULL); + PJDLOG_ASSERT(conn->pc_proto->hp_connect_wait != NULL); + PJDLOG_ASSERT(timeout >= 0); + + ret = conn->pc_proto->hp_connect_wait(conn->pc_ctx, timeout); + if (ret != 0) { + errno = ret; + return (-1); + } + + return (0); +} + +int proto_server(const char *addr, struct proto_conn **connp) { |