From 6613c32aa05b4720e948a6b9e001d0e54cd8cf85 Mon Sep 17 00:00:00 2001 From: "Tim J. Robbins" Date: Sun, 28 Sep 2003 09:45:56 +0000 Subject: [PATCH] Use the new style struct sockaddr instead of osockaddr in system calls so that talk works without COMPAT_43. Obtained from: NetBSD (christos), Rumi Szabolcs --- usr.bin/talk/ctl.c | 6 ++++++ usr.bin/talk/look_up.c | 7 +++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/usr.bin/talk/ctl.c b/usr.bin/talk/ctl.c index 3da8e79b9811..2597a4346c07 100644 --- a/usr.bin/talk/ctl.c +++ b/usr.bin/talk/ctl.c @@ -70,6 +70,9 @@ open_sockt() { int length; + (void)memset(&my_addr, 0, sizeof(my_addr)); + my_addr.sin_family = AF_INET; + my_addr.sin_len = sizeof(my_addr); my_addr.sin_addr = my_machine_addr; my_addr.sin_port = 0; sockt = socket(AF_INET, SOCK_STREAM, 0); @@ -88,6 +91,9 @@ open_ctl() { int length; + (void)memset(&ctl_addr, 0, sizeof(ctl_addr)); + ctl_addr.sin_family = AF_INET; + ctl_addr.sin_len = sizeof(my_addr); ctl_addr.sin_port = 0; ctl_addr.sin_addr = my_machine_addr; ctl_sockt = socket(AF_INET, SOCK_DGRAM, 0); diff --git a/usr.bin/talk/look_up.c b/usr.bin/talk/look_up.c index d251e1ce9112..6c40933f7cbb 100644 --- a/usr.bin/talk/look_up.c +++ b/usr.bin/talk/look_up.c @@ -56,6 +56,7 @@ check_local() { CTL_RESPONSE response; CTL_RESPONSE *rp = &response; + struct sockaddr addr; /* the rest of msg was set up in get_names */ #ifdef MSG_EOR @@ -76,9 +77,11 @@ check_local() do { if (rp->addr.sa_family != AF_INET) p_error("Response uses invalid network address"); + (void)memcpy(&addr, &rp->addr.sa_family, sizeof(addr)); + addr.sa_family = rp->addr.sa_family; + addr.sa_len = sizeof(addr); errno = 0; - if (connect(sockt, - (struct sockaddr *)&rp->addr, sizeof (rp->addr)) != -1) + if (connect(sockt, &addr, sizeof(addr)) != -1) return (1); } while (errno == EINTR); if (errno == ECONNREFUSED) {