[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [SCM] GNU Inetutils branch, master, updated. inetutils-1_9_1-123-g4b48cb5,
Mats Erik Andersson <=