Module Name: src Committed By: rtr Date: Sun Apr 19 19:17:37 UTC 2015
Modified Files: src/sys/compat/svr4: svr4_stream.c Log Message: clean up the way ti_bind() was converted to use sockaddr_big. instead of using the original sockaddr_{in,un} structures for storage use the single sockaddr_big structure instead. while here ditch superfluous assignment of sockaddr sb_len since the assignment is already performed in netaddr_to_sockaddr_{in,un} To generate a diff of this commit: cvs rdiff -u -r1.82 -r1.83 src/sys/compat/svr4/svr4_stream.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/compat/svr4/svr4_stream.c diff -u src/sys/compat/svr4/svr4_stream.c:1.82 src/sys/compat/svr4/svr4_stream.c:1.83 --- src/sys/compat/svr4/svr4_stream.c:1.82 Fri Apr 3 20:01:07 2015 +++ src/sys/compat/svr4/svr4_stream.c Sun Apr 19 19:17:37 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: svr4_stream.c,v 1.82 2015/04/03 20:01:07 rtr Exp $ */ +/* $NetBSD: svr4_stream.c,v 1.83 2015/04/19 19:17:37 rtr Exp $ */ /*- * Copyright (c) 1994, 2008 The NetBSD Foundation, Inc. @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: svr4_stream.c,v 1.82 2015/04/03 20:01:07 rtr Exp $"); +__KERNEL_RCSID(0, "$NetBSD: svr4_stream.c,v 1.83 2015/04/19 19:17:37 rtr Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -750,9 +750,9 @@ ti_bind(file_t *fp, int fd, struct svr4_ { int error; struct svr4_strm *st = svr4_stream_get(fp); - struct sockaddr_in sain; - struct sockaddr_un saun; - struct sockaddr_big *sbig; + struct sockaddr_in *sain; + struct sockaddr_un *saun; + struct sockaddr_big sbig; void *sup = NULL; int sasize; struct svr4_strmcmd bnd; @@ -775,34 +775,34 @@ ti_bind(file_t *fp, int fd, struct svr4_ switch (st->s_family) { case AF_INET: - sbig = (struct sockaddr_big *)&sain; - sbig->sb_len = sasize = sizeof(sain); + sain = (struct sockaddr_in *)&sbig; + sasize = sizeof(*sain); if (bnd.offs == 0) goto reply; - netaddr_to_sockaddr_in(&sain, &bnd); + netaddr_to_sockaddr_in(sain, &bnd); DPRINTF(("TI_BIND: fam %d, port %d, addr %x\n", - sain.sin_family, sain.sin_port, - sain.sin_addr.s_addr)); + sain->sin_family, sain->sin_port, + sain->sin_addr.s_addr)); break; case AF_LOCAL: - sbig = (struct sockaddr_big *)&saun; - sbig->sb_len = sasize = sizeof(saun); + saun = (struct sockaddr_un *)&sbig; + sasize = sizeof(*saun); if (bnd.offs == 0) goto reply; - netaddr_to_sockaddr_un(&saun, &bnd); + netaddr_to_sockaddr_un(saun, &bnd); - if (saun.sun_path[0] == '\0') + if (saun->sun_path[0] == '\0') goto reply; DPRINTF(("TI_BIND: fam %d, path %s\n", - saun.sun_family, saun.sun_path)); + saun->sun_family, saun->sun_path)); - if ((error = clean_pipe(l, saun.sun_path)) != 0) + if ((error = clean_pipe(l, saun->sun_path)) != 0) return error; bnd.pad[28] = 0x00001000; /* magic again */ @@ -816,7 +816,7 @@ ti_bind(file_t *fp, int fd, struct svr4_ DPRINTF(("TI_BIND: fileno %d\n", fd)); - error = do_sys_bind(l, fd, (struct sockaddr *)sbig); + error = do_sys_bind(l, fd, (struct sockaddr *)&sbig); if (error != 0) { DPRINTF(("TI_BIND: bind failed %d\n", error)); return error;