Deal again w/ the brain damaged osockaddr.
authormickey <mickey@openbsd.org>
Sun, 28 Apr 1996 23:58:04 +0000 (23:58 +0000)
committermickey <mickey@openbsd.org>
Sun, 28 Apr 1996 23:58:04 +0000 (23:58 +0000)
usr.bin/talk/ctl_transact.c
usr.bin/talk/look_up.c

index bf9ce85..e3b7cae 100644 (file)
@@ -114,5 +114,4 @@ ctl_transact(target, msg, type, rp)
                    rp->type != type));
        } while (rp->vers != TALK_VERSION || rp->type != type);
        rp->id_num = ntohl(rp->id_num);
-       rp->addr.sa_family = ntohs(rp->addr.sa_family);
 }
index a626fa8..ab2b7e9 100644 (file)
@@ -54,7 +54,6 @@ static char rcsid[] = "$NetBSD: look_up.c,v 1.3 1994/12/09 02:14:21 jtc Exp $";
 check_local()
 {
        CTL_RESPONSE response;
-       register CTL_RESPONSE *rp = &response;
 
        /* the rest of msg was set up in get_names */
 #ifdef MSG_EOR
@@ -65,7 +64,7 @@ check_local()
        msg.ctl_addr = *(struct sockaddr *)&ctl_addr;
 #endif
        /* must be initiating a talk */
-       if (!look_for_invite(rp))
+       if (!look_for_invite(&response))
                return (0);
        /*
         * There was an invitation waiting for us, 
@@ -73,11 +72,11 @@ check_local()
         */
        current_state = "Waiting to connect with caller";
        do {
-               if (rp->addr.sa_family != AF_INET)
+               if (ntohs(response.addr.sa_family) != AF_INET)
                        p_error("Response uses invalid network address");
                errno = 0;
-               if (connect(sockt,
-                   (struct sockaddr *)&rp->addr, sizeof (rp->addr)) != -1)
+               if (connect(sockt, (struct sockaddr *)&response.addr,
+                           sizeof (response.addr)) != -1)
                        return (1);
        } while (errno == EINTR);
        if (errno == ECONNREFUSED) {
@@ -87,7 +86,7 @@ check_local()
                 * invitation. (We know there are no newer invitations,
                 * the talkd works LIFO.)
                 */
-               ctl_transact(his_machine_addr, msg, DELETE, rp);
+               ctl_transact(his_machine_addr, msg, DELETE, &response);
                close(sockt);
                open_sockt();
                return (0);