commit-inetutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU Inetutils branch, master, updated. inetutils-1_9_1-164-g43b1d


From: Mats Erik Andersson
Subject: [SCM] GNU Inetutils branch, master, updated. inetutils-1_9_1-164-g43b1d34
Date: Fri, 07 Sep 2012 19:18:52 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Inetutils ".

The branch, master has been updated
       via  43b1d34579512f4257dcb1230d3edf59a25749c0 (commit)
      from  8042e80fa1e4c76a883a7148ffa6a3041cfbb400 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.savannah.gnu.org/cgit/inetutils.git/commit/?id=43b1d34579512f4257dcb1230d3edf59a25749c0


commit 43b1d34579512f4257dcb1230d3edf59a25749c0
Author: Mats Erik Andersson <address@hidden>
Date:   Fri Sep 7 21:15:59 2012 +0200

    talk, talkd: Portability issue.
    
    BSD systems need richer address structures,
    which must be augmented from message data.

diff --git a/ChangeLog b/ChangeLog
index dc999f1..ebb85ce 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
 2012-09-07  Mats Erik Andersson  <address@hidden>
 
+       talk, talkd: Portability issue.
+
+       * talk/look_up.c (check_local): New variable ADDR.
+       Call connect() with ADDR, built from `rp->addr'.
+
+       * talkd/talkd.c (talkd_run): New variable CTL_ADDR.
+       Call sendto() with CTL_ADDR, built from `msg.ctl_addr'.
+
+2012-09-07  Mats Erik Andersson  <address@hidden>
+
        traceroute: Support IDN named hosts.
 
        * configure.ac: Check traceroute_BUILD and LIBIDN in
diff --git a/talk/look_up.c b/talk/look_up.c
index 3a0baab..22ac311 100644
--- a/talk/look_up.c
+++ b/talk/look_up.c
@@ -107,11 +107,18 @@ check_local (void)
   current_state = "Waiting to connect with caller";
   do
     {
+      struct sockaddr addr;
+
       if (rp->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)
+      addr.sa_family = rp->addr.sa_family;
+#ifdef HAVE_STRUCT_SOCKADDR_SA_LEN
+      addr.sa_len = sizeof (struct sockaddr_in);
+#endif
+      memcpy (&addr.sa_data, &rp->addr.sa_data, sizeof (addr.sa_data));
+
+      if (connect (sockt, &addr, sizeof (addr)) != -1)
        return (1);
     }
   while (errno == EINTR);
diff --git a/talkd/talkd.c b/talkd/talkd.c
index 1a7f12e..2c43736 100644
--- a/talkd/talkd.c
+++ b/talkd/talkd.c
@@ -151,6 +151,8 @@ alarm_handler (int err _GL_UNUSED_PARAMETER)
 void
 talkd_run (int fd)
 {
+  struct sockaddr ctl_addr;
+
   signal (SIGALRM, alarm_handler);
   alarm (timeout);
   while (1)
@@ -173,9 +175,14 @@ talkd_run (int fd)
       last_msg_time = time (NULL);
       if (process_request (&msg, &sa_in, &resp) == 0)
        {
+         ctl_addr.sa_family = msg.ctl_addr.sa_family;
+#ifdef HAVE_STRUCT_SOCKADDR_SA_LEN
+         ctl_addr.sa_len = sizeof (struct sockaddr_in);
+#endif
+         memcpy (&ctl_addr.sa_data, &msg.ctl_addr.sa_data,
+                 sizeof (ctl_addr.sa_data));
          rc = sendto (fd, &resp, sizeof resp, 0,
-                      (struct sockaddr *) &msg.ctl_addr,
-                      sizeof (msg.ctl_addr));
+                      &ctl_addr, sizeof (ctl_addr));
          if (rc != sizeof resp && (logging || debug))
            syslog (LOG_NOTICE, "sendto: %m");
        }

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog      |   10 ++++++++++
 talk/look_up.c |   11 +++++++++--
 talkd/talkd.c  |   11 +++++++++--
 3 files changed, 28 insertions(+), 4 deletions(-)


hooks/post-receive
-- 
GNU Inetutils 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]