From owner-svn-src-all@FreeBSD.ORG Tue Mar 22 16:21:11 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7B44B106566C; Tue, 22 Mar 2011 16:21:11 +0000 (UTC) (envelope-from pjd@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6C7288FC08; Tue, 22 Mar 2011 16:21:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id p2MGLBtI064692; Tue, 22 Mar 2011 16:21:11 GMT (envelope-from pjd@svn.freebsd.org) Received: (from pjd@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id p2MGLBpM064684; Tue, 22 Mar 2011 16:21:11 GMT (envelope-from pjd@svn.freebsd.org) Message-Id: <201103221621.p2MGLBpM064684@svn.freebsd.org> From: Pawel Jakub Dawidek Date: Tue, 22 Mar 2011 16:21:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r219873 - head/sbin/hastd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Mar 2011 16:21:11 -0000 Author: pjd Date: Tue Mar 22 16:21:11 2011 New Revision: 219873 URL: http://svn.freebsd.org/changeset/base/219873 Log: The proto API is a general purpose API, so don't use 'hast' in structures or function names. It can now be used outside of HAST. MFC after: 1 week Modified: head/sbin/hastd/Makefile head/sbin/hastd/hast.h head/sbin/hastd/proto.c head/sbin/hastd/proto_impl.h head/sbin/hastd/proto_socketpair.c head/sbin/hastd/proto_tcp4.c head/sbin/hastd/proto_uds.c Modified: head/sbin/hastd/Makefile ============================================================================== --- head/sbin/hastd/Makefile Tue Mar 22 14:55:31 2011 (r219872) +++ head/sbin/hastd/Makefile Tue Mar 22 16:21:11 2011 (r219873) @@ -20,6 +20,7 @@ SRCS+= y.tab.h MAN= hastd.8 hast.conf.5 NO_WFORMAT= +CFLAGS+=-DPROTO_TCP4_DEFAULT_PORT=8457 CFLAGS+=-I${.CURDIR} CFLAGS+=-DINET .if ${MK_INET6_SUPPORT} != "no" Modified: head/sbin/hastd/hast.h ============================================================================== --- head/sbin/hastd/hast.h Tue Mar 22 14:55:31 2011 (r219872) +++ head/sbin/hastd/hast.h Tue Mar 22 16:21:11 2011 (r219873) @@ -86,7 +86,6 @@ #define HAST_TIMEOUT 5 #define HAST_CONFIG "/etc/hast.conf" #define HAST_CONTROL "/var/run/hastctl" -#define HASTD_PORT 8457 #define HASTD_LISTEN "tcp4://0.0.0.0:8457" #define HASTD_PIDFILE "/var/run/hastd.pid" Modified: head/sbin/hastd/proto.c ============================================================================== --- head/sbin/hastd/proto.c Tue Mar 22 14:55:31 2011 (r219872) +++ head/sbin/hastd/proto.c Tue Mar 22 16:21:11 2011 (r219873) @@ -45,33 +45,33 @@ __FBSDID("$FreeBSD$"); #define PROTO_CONN_MAGIC 0x907041c struct proto_conn { - int pc_magic; - struct hast_proto *pc_proto; - void *pc_ctx; - int pc_side; + int pc_magic; + struct proto *pc_proto; + void *pc_ctx; + int pc_side; #define PROTO_SIDE_CLIENT 0 #define PROTO_SIDE_SERVER_LISTEN 1 #define PROTO_SIDE_SERVER_WORK 2 }; -static TAILQ_HEAD(, hast_proto) protos = TAILQ_HEAD_INITIALIZER(protos); +static TAILQ_HEAD(, proto) protos = TAILQ_HEAD_INITIALIZER(protos); void -proto_register(struct hast_proto *proto, bool isdefault) +proto_register(struct proto *proto, bool isdefault) { static bool seen_default = false; if (!isdefault) - TAILQ_INSERT_HEAD(&protos, proto, hp_next); + TAILQ_INSERT_HEAD(&protos, proto, prt_next); else { PJDLOG_ASSERT(!seen_default); seen_default = true; - TAILQ_INSERT_TAIL(&protos, proto, hp_next); + TAILQ_INSERT_TAIL(&protos, proto, prt_next); } } static struct proto_conn * -proto_alloc(struct hast_proto *proto, int side) +proto_alloc(struct proto *proto, int side) { struct proto_conn *conn; @@ -108,7 +108,7 @@ static int proto_common_setup(const char *srcaddr, const char *dstaddr, struct proto_conn **connp, int side) { - struct hast_proto *proto; + struct proto *proto; struct proto_conn *conn; void *ctx; int ret; @@ -116,17 +116,17 @@ proto_common_setup(const char *srcaddr, PJDLOG_ASSERT(side == PROTO_SIDE_CLIENT || side == PROTO_SIDE_SERVER_LISTEN); - TAILQ_FOREACH(proto, &protos, hp_next) { + TAILQ_FOREACH(proto, &protos, prt_next) { if (side == PROTO_SIDE_CLIENT) { - if (proto->hp_client == NULL) + if (proto->prt_client == NULL) ret = -1; else - ret = proto->hp_client(srcaddr, dstaddr, &ctx); + ret = proto->prt_client(srcaddr, dstaddr, &ctx); } else /* if (side == PROTO_SIDE_SERVER_LISTEN) */ { - if (proto->hp_server == NULL) + if (proto->prt_server == NULL) ret = -1; else - ret = proto->hp_server(dstaddr, &ctx); + ret = proto->prt_server(dstaddr, &ctx); } /* * ret == 0 - success @@ -148,8 +148,8 @@ proto_common_setup(const char *srcaddr, } conn = proto_alloc(proto, side); if (conn == NULL) { - if (proto->hp_close != NULL) - proto->hp_close(ctx); + if (proto->prt_close != NULL) + proto->prt_close(ctx); errno = ENOMEM; return (-1); } @@ -176,10 +176,10 @@ proto_connect(struct proto_conn *conn, i 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 != NULL); + PJDLOG_ASSERT(conn->pc_proto->prt_connect != NULL); PJDLOG_ASSERT(timeout >= -1); - ret = conn->pc_proto->hp_connect(conn->pc_ctx, timeout); + ret = conn->pc_proto->prt_connect(conn->pc_ctx, timeout); if (ret != 0) { errno = ret; return (-1); @@ -197,10 +197,10 @@ proto_connect_wait(struct proto_conn *co 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(conn->pc_proto->prt_connect_wait != NULL); PJDLOG_ASSERT(timeout >= 0); - ret = conn->pc_proto->hp_connect_wait(conn->pc_ctx, timeout); + ret = conn->pc_proto->prt_connect_wait(conn->pc_ctx, timeout); if (ret != 0) { errno = ret; return (-1); @@ -226,13 +226,13 @@ proto_accept(struct proto_conn *conn, st PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC); PJDLOG_ASSERT(conn->pc_side == PROTO_SIDE_SERVER_LISTEN); PJDLOG_ASSERT(conn->pc_proto != NULL); - PJDLOG_ASSERT(conn->pc_proto->hp_accept != NULL); + PJDLOG_ASSERT(conn->pc_proto->prt_accept != NULL); newconn = proto_alloc(conn->pc_proto, PROTO_SIDE_SERVER_WORK); if (newconn == NULL) return (-1); - ret = conn->pc_proto->hp_accept(conn->pc_ctx, &newconn->pc_ctx); + ret = conn->pc_proto->prt_accept(conn->pc_ctx, &newconn->pc_ctx); if (ret != 0) { proto_free(newconn); errno = ret; @@ -252,9 +252,9 @@ proto_send(const struct proto_conn *conn PJDLOG_ASSERT(conn != NULL); PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC); PJDLOG_ASSERT(conn->pc_proto != NULL); - PJDLOG_ASSERT(conn->pc_proto->hp_send != NULL); + PJDLOG_ASSERT(conn->pc_proto->prt_send != NULL); - ret = conn->pc_proto->hp_send(conn->pc_ctx, data, size, -1); + ret = conn->pc_proto->prt_send(conn->pc_ctx, data, size, -1); if (ret != 0) { errno = ret; return (-1); @@ -270,9 +270,9 @@ proto_recv(const struct proto_conn *conn PJDLOG_ASSERT(conn != NULL); PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC); PJDLOG_ASSERT(conn->pc_proto != NULL); - PJDLOG_ASSERT(conn->pc_proto->hp_recv != NULL); + PJDLOG_ASSERT(conn->pc_proto->prt_recv != NULL); - ret = conn->pc_proto->hp_recv(conn->pc_ctx, data, size, NULL); + ret = conn->pc_proto->prt_recv(conn->pc_ctx, data, size, NULL); if (ret != 0) { errno = ret; return (-1); @@ -289,16 +289,16 @@ proto_connection_send(const struct proto PJDLOG_ASSERT(conn != NULL); PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC); PJDLOG_ASSERT(conn->pc_proto != NULL); - PJDLOG_ASSERT(conn->pc_proto->hp_send != NULL); + PJDLOG_ASSERT(conn->pc_proto->prt_send != NULL); PJDLOG_ASSERT(mconn != NULL); PJDLOG_ASSERT(mconn->pc_magic == PROTO_CONN_MAGIC); PJDLOG_ASSERT(mconn->pc_proto != NULL); fd = proto_descriptor(mconn); PJDLOG_ASSERT(fd >= 0); - protoname = mconn->pc_proto->hp_name; + protoname = mconn->pc_proto->prt_name; PJDLOG_ASSERT(protoname != NULL); - ret = conn->pc_proto->hp_send(conn->pc_ctx, protoname, + ret = conn->pc_proto->prt_send(conn->pc_ctx, protoname, strlen(protoname) + 1, fd); proto_close(mconn); if (ret != 0) { @@ -313,19 +313,19 @@ proto_connection_recv(const struct proto struct proto_conn **newconnp) { char protoname[128]; - struct hast_proto *proto; + struct proto *proto; struct proto_conn *newconn; int ret, fd; PJDLOG_ASSERT(conn != NULL); PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC); PJDLOG_ASSERT(conn->pc_proto != NULL); - PJDLOG_ASSERT(conn->pc_proto->hp_recv != NULL); + PJDLOG_ASSERT(conn->pc_proto->prt_recv != NULL); PJDLOG_ASSERT(newconnp != NULL); bzero(protoname, sizeof(protoname)); - ret = conn->pc_proto->hp_recv(conn->pc_ctx, protoname, + ret = conn->pc_proto->prt_recv(conn->pc_ctx, protoname, sizeof(protoname) - 1, &fd); if (ret != 0) { errno = ret; @@ -334,8 +334,8 @@ proto_connection_recv(const struct proto PJDLOG_ASSERT(fd >= 0); - TAILQ_FOREACH(proto, &protos, hp_next) { - if (strcmp(proto->hp_name, protoname) == 0) + TAILQ_FOREACH(proto, &protos, prt_next) { + if (strcmp(proto->prt_name, protoname) == 0) break; } if (proto == NULL) { @@ -347,8 +347,8 @@ proto_connection_recv(const struct proto client ? PROTO_SIDE_CLIENT : PROTO_SIDE_SERVER_WORK); if (newconn == NULL) return (-1); - PJDLOG_ASSERT(newconn->pc_proto->hp_wrap != NULL); - ret = newconn->pc_proto->hp_wrap(fd, client, &newconn->pc_ctx); + PJDLOG_ASSERT(newconn->pc_proto->prt_wrap != NULL); + ret = newconn->pc_proto->prt_wrap(fd, client, &newconn->pc_ctx); if (ret != 0) { proto_free(newconn); errno = ret; @@ -367,9 +367,9 @@ proto_descriptor(const struct proto_conn PJDLOG_ASSERT(conn != NULL); PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC); PJDLOG_ASSERT(conn->pc_proto != NULL); - PJDLOG_ASSERT(conn->pc_proto->hp_descriptor != NULL); + PJDLOG_ASSERT(conn->pc_proto->prt_descriptor != NULL); - return (conn->pc_proto->hp_descriptor(conn->pc_ctx)); + return (conn->pc_proto->prt_descriptor(conn->pc_ctx)); } bool @@ -379,9 +379,9 @@ proto_address_match(const struct proto_c PJDLOG_ASSERT(conn != NULL); PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC); PJDLOG_ASSERT(conn->pc_proto != NULL); - PJDLOG_ASSERT(conn->pc_proto->hp_address_match != NULL); + PJDLOG_ASSERT(conn->pc_proto->prt_address_match != NULL); - return (conn->pc_proto->hp_address_match(conn->pc_ctx, addr)); + return (conn->pc_proto->prt_address_match(conn->pc_ctx, addr)); } void @@ -391,9 +391,9 @@ proto_local_address(const struct proto_c PJDLOG_ASSERT(conn != NULL); PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC); PJDLOG_ASSERT(conn->pc_proto != NULL); - PJDLOG_ASSERT(conn->pc_proto->hp_local_address != NULL); + PJDLOG_ASSERT(conn->pc_proto->prt_local_address != NULL); - conn->pc_proto->hp_local_address(conn->pc_ctx, addr, size); + conn->pc_proto->prt_local_address(conn->pc_ctx, addr, size); } void @@ -403,9 +403,9 @@ proto_remote_address(const struct proto_ PJDLOG_ASSERT(conn != NULL); PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC); PJDLOG_ASSERT(conn->pc_proto != NULL); - PJDLOG_ASSERT(conn->pc_proto->hp_remote_address != NULL); + PJDLOG_ASSERT(conn->pc_proto->prt_remote_address != NULL); - conn->pc_proto->hp_remote_address(conn->pc_ctx, addr, size); + conn->pc_proto->prt_remote_address(conn->pc_ctx, addr, size); } int @@ -439,8 +439,8 @@ proto_close(struct proto_conn *conn) PJDLOG_ASSERT(conn != NULL); PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC); PJDLOG_ASSERT(conn->pc_proto != NULL); - PJDLOG_ASSERT(conn->pc_proto->hp_close != NULL); + PJDLOG_ASSERT(conn->pc_proto->prt_close != NULL); - conn->pc_proto->hp_close(conn->pc_ctx); + conn->pc_proto->prt_close(conn->pc_ctx); proto_free(conn); } Modified: head/sbin/hastd/proto_impl.h ============================================================================== --- head/sbin/hastd/proto_impl.h Tue Mar 22 14:55:31 2011 (r219872) +++ head/sbin/hastd/proto_impl.h Tue Mar 22 16:21:11 2011 (r219873) @@ -39,39 +39,39 @@ #define __constructor __attribute__((constructor)) -typedef int hp_client_t(const char *, const char *, void **); -typedef int hp_connect_t(void *, int); -typedef int hp_connect_wait_t(void *, int); -typedef int hp_server_t(const char *, void **); -typedef int hp_accept_t(void *, void **); -typedef int hp_wrap_t(int, bool, void **); -typedef int hp_send_t(void *, const unsigned char *, size_t, int); -typedef int hp_recv_t(void *, unsigned char *, size_t, int *); -typedef int hp_descriptor_t(const void *); -typedef bool hp_address_match_t(const void *, const char *); -typedef void hp_local_address_t(const void *, char *, size_t); -typedef void hp_remote_address_t(const void *, char *, size_t); -typedef void hp_close_t(void *); - -struct hast_proto { - const char *hp_name; - hp_client_t *hp_client; - hp_connect_t *hp_connect; - hp_connect_wait_t *hp_connect_wait; - hp_server_t *hp_server; - hp_accept_t *hp_accept; - hp_wrap_t *hp_wrap; - hp_send_t *hp_send; - hp_recv_t *hp_recv; - hp_descriptor_t *hp_descriptor; - hp_address_match_t *hp_address_match; - hp_local_address_t *hp_local_address; - hp_remote_address_t *hp_remote_address; - hp_close_t *hp_close; - TAILQ_ENTRY(hast_proto) hp_next; +typedef int prt_client_t(const char *, const char *, void **); +typedef int prt_connect_t(void *, int); +typedef int prt_connect_wait_t(void *, int); +typedef int prt_server_t(const char *, void **); +typedef int prt_accept_t(void *, void **); +typedef int prt_wrap_t(int, bool, void **); +typedef int prt_send_t(void *, const unsigned char *, size_t, int); +typedef int prt_recv_t(void *, unsigned char *, size_t, int *); +typedef int prt_descriptor_t(const void *); +typedef bool prt_address_match_t(const void *, const char *); +typedef void prt_local_address_t(const void *, char *, size_t); +typedef void prt_remote_address_t(const void *, char *, size_t); +typedef void prt_close_t(void *); + +struct proto { + const char *prt_name; + prt_client_t *prt_client; + prt_connect_t *prt_connect; + prt_connect_wait_t *prt_connect_wait; + prt_server_t *prt_server; + prt_accept_t *prt_accept; + prt_wrap_t *prt_wrap; + prt_send_t *prt_send; + prt_recv_t *prt_recv; + prt_descriptor_t *prt_descriptor; + prt_address_match_t *prt_address_match; + prt_local_address_t *prt_local_address; + prt_remote_address_t *prt_remote_address; + prt_close_t *prt_close; + TAILQ_ENTRY(proto) prt_next; }; -void proto_register(struct hast_proto *proto, bool isdefault); +void proto_register(struct proto *proto, bool isdefault); int proto_common_send(int sock, const unsigned char *data, size_t size, int fd); int proto_common_recv(int sock, unsigned char *data, size_t size, int *fdp); Modified: head/sbin/hastd/proto_socketpair.c ============================================================================== --- head/sbin/hastd/proto_socketpair.c Tue Mar 22 14:55:31 2011 (r219872) +++ head/sbin/hastd/proto_socketpair.c Tue Mar 22 16:21:11 2011 (r219873) @@ -40,7 +40,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include "hast.h" #include "pjdlog.h" #include "proto_impl.h" @@ -221,13 +220,13 @@ sp_close(void *ctx) free(spctx); } -static struct hast_proto sp_proto = { - .hp_name = "socketpair", - .hp_client = sp_client, - .hp_send = sp_send, - .hp_recv = sp_recv, - .hp_descriptor = sp_descriptor, - .hp_close = sp_close +static struct proto sp_proto = { + .prt_name = "socketpair", + .prt_client = sp_client, + .prt_send = sp_send, + .prt_recv = sp_recv, + .prt_descriptor = sp_descriptor, + .prt_close = sp_close }; static __constructor void Modified: head/sbin/hastd/proto_tcp4.c ============================================================================== --- head/sbin/hastd/proto_tcp4.c Tue Mar 22 14:55:31 2011 (r219872) +++ head/sbin/hastd/proto_tcp4.c Tue Mar 22 16:21:11 2011 (r219873) @@ -31,6 +31,9 @@ __FBSDID("$FreeBSD$"); #include /* MAXHOSTNAMELEN */ +#include + +#include #include #include @@ -44,7 +47,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include "hast.h" #include "pjdlog.h" #include "proto_impl.h" #include "subr.h" @@ -183,7 +185,8 @@ tcp4_setup_new(const char *addr, int sid return (errno); /* Parse given address. */ - if ((ret = tcp4_addr(addr, HASTD_PORT, &tctx->tc_sin)) != 0) { + if ((ret = tcp4_addr(addr, PROTO_TCP4_DEFAULT_PORT, + &tctx->tc_sin)) != 0) { free(tctx); return (ret); } @@ -507,7 +510,7 @@ tcp4_address_match(const void *ctx, cons PJDLOG_ASSERT(tctx != NULL); PJDLOG_ASSERT(tctx->tc_magic == TCP4_CTX_MAGIC); - if (tcp4_addr(addr, HASTD_PORT, &sin) != 0) + if (tcp4_addr(addr, PROTO_TCP4_DEFAULT_PORT, &sin) != 0) return (false); ip1 = sin.sin_addr.s_addr; @@ -569,21 +572,21 @@ tcp4_close(void *ctx) free(tctx); } -static struct hast_proto tcp4_proto = { - .hp_name = "tcp4", - .hp_client = tcp4_client, - .hp_connect = tcp4_connect, - .hp_connect_wait = tcp4_connect_wait, - .hp_server = tcp4_server, - .hp_accept = tcp4_accept, - .hp_wrap = tcp4_wrap, - .hp_send = tcp4_send, - .hp_recv = tcp4_recv, - .hp_descriptor = tcp4_descriptor, - .hp_address_match = tcp4_address_match, - .hp_local_address = tcp4_local_address, - .hp_remote_address = tcp4_remote_address, - .hp_close = tcp4_close +static struct proto tcp4_proto = { + .prt_name = "tcp4", + .prt_client = tcp4_client, + .prt_connect = tcp4_connect, + .prt_connect_wait = tcp4_connect_wait, + .prt_server = tcp4_server, + .prt_accept = tcp4_accept, + .prt_wrap = tcp4_wrap, + .prt_send = tcp4_send, + .prt_recv = tcp4_recv, + .prt_descriptor = tcp4_descriptor, + .prt_address_match = tcp4_address_match, + .prt_local_address = tcp4_local_address, + .prt_remote_address = tcp4_remote_address, + .prt_close = tcp4_close }; static __constructor void Modified: head/sbin/hastd/proto_uds.c ============================================================================== --- head/sbin/hastd/proto_uds.c Tue Mar 22 14:55:31 2011 (r219872) +++ head/sbin/hastd/proto_uds.c Tue Mar 22 16:21:11 2011 (r219873) @@ -33,6 +33,7 @@ __FBSDID("$FreeBSD$"); /* UDS - UNIX Domain Socket */ #include +#include #include #include @@ -42,7 +43,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include "hast.h" #include "pjdlog.h" #include "proto_impl.h" @@ -338,19 +338,19 @@ uds_close(void *ctx) free(uctx); } -static struct hast_proto uds_proto = { - .hp_name = "uds", - .hp_client = uds_client, - .hp_connect = uds_connect, - .hp_connect_wait = uds_connect_wait, - .hp_server = uds_server, - .hp_accept = uds_accept, - .hp_send = uds_send, - .hp_recv = uds_recv, - .hp_descriptor = uds_descriptor, - .hp_local_address = uds_local_address, - .hp_remote_address = uds_remote_address, - .hp_close = uds_close +static struct proto uds_proto = { + .prt_name = "uds", + .prt_client = uds_client, + .prt_connect = uds_connect, + .prt_connect_wait = uds_connect_wait, + .prt_server = uds_server, + .prt_accept = uds_accept, + .prt_send = uds_send, + .prt_recv = uds_recv, + .prt_descriptor = uds_descriptor, + .prt_local_address = uds_local_address, + .prt_remote_address = uds_remote_address, + .prt_close = uds_close }; static __constructor void