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-123-g4b48c


From: Mats Erik Andersson
Subject: [SCM] GNU Inetutils branch, master, updated. inetutils-1_9_1-123-g4b48cb5
Date: Tue, 03 Jul 2012 13:41:06 +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  4b48cb5f2bcf781b072b5b11c0a528f18d85a140 (commit)
      from  76de114e0804190217fa9007c1218315156c9d69 (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=4b48cb5f2bcf781b072b5b11c0a528f18d85a140


commit 4b48cb5f2bcf781b072b5b11c0a528f18d85a140
Author: Mats Erik Andersson <address@hidden>
Date:   Tue Jul 3 15:08:22 2012 +0200

    Shishi related error messages.

diff --git a/ChangeLog b/ChangeLog
index 489feb8..e15e17c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2012-07-03  Mats Erik Andersson  <address@hidden>
+
+       * libinetutils/kcmd.c (kcmd, getport)
+       [HAVE_STRUCT_SOCKADDR_IN_SIN_LEN]: Initiate `sin.sin_len'.
+       (kcmd): Calculate address strings using inet_ntop().
+       Use correct address location in message `Trying ...'.
+       * src/rsh.c (main) [KERBEROS || SHISHI]: New variable
+       KRB_ERRNO used for proper error diagnostics.  Assign a
+       value after each authentication call.
+       (warning): Remove erroneous call to va_arg().
+
 2012-07-02  Mats Erik Andersson  <address@hidden>
 
        * libinetutils/shishi_def.c (shishi_auth): New type
diff --git a/libinetutils/kcmd.c b/libinetutils/kcmd.c
index 2e7846c..674d86e 100644
--- a/libinetutils/kcmd.c
+++ b/libinetutils/kcmd.c
@@ -173,6 +173,9 @@ kcmd (Shishi ** h, int *sock, char **ahost, unsigned short 
rport, char *locuser,
        }
       fcntl (s, F_SETOWN, pid);
       sin.sin_family = hp->h_addrtype;
+#ifdef HAVE_STRUCT_SOCKADDR_IN_SIN_LEN
+      sin.sin_len = sizeof (sin);
+#endif
 
       memcpy (&sin.sin_addr, hp->h_addr, hp->h_length);
       sin.sin_port = rport;
@@ -198,14 +201,18 @@ kcmd (Shishi ** h, int *sock, char **ahost, unsigned 
short rport, char *locuser,
       if (hp->h_addr_list[1] != NULL)
        {
          int oerrno = errno;
+         char addrstr[INET6_ADDRSTRLEN];
 
-         fprintf (stderr,
-                  "kcmd: connect to address %s: ", inet_ntoa (sin.sin_addr));
+         fprintf (stderr, "kcmd: connect to address %s: ",
+                  inet_ntop (hp->h_addrtype, hp->h_addr_list[0],
+                             addrstr, sizeof (addrstr)));
          errno = oerrno;
          perror (NULL);
          hp->h_addr_list++;
          memcpy (& sin.sin_addr, hp->h_addr_list, hp->h_length);
-         fprintf (stderr, "Trying %s...\n", inet_ntoa (sin.sin_addr));
+         fprintf (stderr, "Trying %s...\n",
+                  inet_ntop (hp->h_addrtype, hp->h_addr_list[0],
+                             addrstr, sizeof (addrstr)));
          continue;
        }
 # endif        /* !(defined(ultrix) || defined(sun)) */
@@ -378,8 +385,11 @@ getport (int *alport)
   int s;
 
   sin.sin_family = AF_INET;
+#ifdef HAVE_STRUCT_SOCKADDR_IN_SIN_LEN
+  sin.sin_len = sizeof (sin);
+#endif
   sin.sin_addr.s_addr = INADDR_ANY;
-  s = socket (AF_INET, SOCK_STREAM, 0);
+  s = socket (sin.sin_family, SOCK_STREAM, 0);
   if (s < 0)
     return (-1);
   for (;;)
diff --git a/src/rsh.c b/src/rsh.c
index dcbfc49..50c2a0a 100644
--- a/src/rsh.c
+++ b/src/rsh.c
@@ -234,6 +234,9 @@ main (int argc, char **argv)
   struct servent *sp;
   sigset_t sigs, osigs;
   int asrsh, rem;
+#if defined KERBEROS || defined SHISHI
+  int krb_errno;
+#endif
   pid_t pid = 0;
   uid_t uid;
   char *args, *host;
@@ -354,12 +357,12 @@ try_connect:
 
 # if defined KERBEROS
       rem = KSUCCESS;
-      errno = 0;
+      krb_errno = 0;
       if (dest_realm == NULL)
        dest_realm = krb_realmofhost (host);
 # elif defined (SHISHI)
       rem = SHISHI_OK;
-      errno = 0;
+      krb_errno = 0;
 # endif
 
 # ifdef ENCRYPTION
@@ -375,6 +378,7 @@ try_connect:
 
          rem = krcmd_mutual (&h, &host, sp->s_port, &user, term, &rfd2,
                              dest_realm, &enckey);
+         krb_errno = errno;
          if (rem > 0)
            {
              keytype = shishi_key_type (enckey);
@@ -429,26 +433,32 @@ try_connect:
          free (term);
        }
       else
-#  else
-       rem = krcmd_mutual (&host, sp->s_port, user, args, &rfd2,
-                           dest_realm, &cred, schedule);
+#  else /* KERBEROS */
+       {
+         rem = krcmd_mutual (&host, sp->s_port, user, args, &rfd2,
+                             dest_realm, &cred, schedule);
+         krb_errno = errno;
+       }
       else
 #  endif
 # endif
+       {
 # if defined SHISHI
-       rem = krcmd (&h, &host, sp->s_port, &user, args, &rfd2, dest_realm);
-# else
-       rem = krcmd (&host, sp->s_port, user, args, &rfd2, dest_realm);
+         rem = krcmd (&h, &host, sp->s_port, &user, args, &rfd2, dest_realm);
+# else /* KERBEROS */
+         rem = krcmd (&host, sp->s_port, user, args, &rfd2, dest_realm);
 # endif
+         krb_errno = errno;
+       }
       if (rem < 0)
        {
          use_kerberos = 0;
          sp = getservbyname ("shell", "tcp");
          if (sp == NULL)
            error (EXIT_FAILURE, 0, "shell/tcp: unknown service");
-         if (errno == ECONNREFUSED)
+         if (krb_errno == ECONNREFUSED)
            warning ("remote host doesn't support Kerberos");
-         if (errno == ENOENT)
+         if (krb_errno == ENOENT)
            warning ("can't provide Kerberos auth data");
          goto try_connect;
        }
@@ -723,7 +733,6 @@ warning (const char *fmt, ...)
 
   fprintf (stderr, "%s: warning, using standard rsh: ", program_name);
   va_start (ap, fmt);
-  fmt = va_arg (ap, char *);
   vfprintf (stderr, fmt, ap);
   va_end (ap);
   fprintf (stderr, ".\n");

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

Summary of changes:
 ChangeLog           |   11 +++++++++++
 libinetutils/kcmd.c |   18 ++++++++++++++----
 src/rsh.c           |   31 ++++++++++++++++++++-----------
 3 files changed, 45 insertions(+), 15 deletions(-)


hooks/post-receive
-- 
GNU Inetutils 



reply via email to

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