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_8-48-ga748d81


From: Alfred M. Szmidt
Subject: [SCM] GNU Inetutils branch, master, updated. inetutils-1_8-48-ga748d81
Date: Mon, 18 Oct 2010 16:37:49 +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  a748d81646a4366402f15f13d0751386dab20291 (commit)
       via  14675d15752e7134d168bdb955ebe0e8fc7e8b10 (commit)
       via  dffb54c2f6f55e5d8c68cde3a888e8cdae438e34 (commit)
       via  ed0a94cd6cef9bf9ed7780fab9ae1a2b436c6f63 (commit)
       via  fd64a202d866483ac74cbc068e1c5879a933448c (commit)
       via  f21ada998e4e76e483f5bc76fe5fb2c6378e9564 (commit)
       via  26b57a041b15ae11b9fdea84c8a24b1dc62f6532 (commit)
       via  a12021ee959a88b48cd16e947c671f8f59e29c9d (commit)
      from  154eba0782a693440f99830c88f2697977c1bff2 (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=a748d81646a4366402f15f13d0751386dab20291


commit a748d81646a4366402f15f13d0751386dab20291
Author: Alfred M. Szmidt <address@hidden>
Date:   Mon Oct 18 18:15:04 2010 +0200

    Always use <termios.h> interface.

diff --git a/ChangeLog b/ChangeLog
index fa045b8..2ab8b07 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,26 @@
+2010-10-18  Alfred M. Szmidt  <address@hidden>
+
+       Always use <termios.h> interface.
+
+       * telnetd/term.c: Always use <termios.h> interface.
+       * telnetd/telnetd.h [!HAVE_TERMIO_H]: Don't include <termio.h>
+       [!HAVE_TERMIO_H && !HAVE_TERMIO_H]: Don't include <sgtty.h>.
+       * telnet/externs.h (USE_TERMIO): Uncondtionally define macro.
+       (SYSV_TERMIO) [!HAVE_TERMIOS_H && HAVE_TERMIO_H]: Undefine macro.
+
+       * talk/init_disp.c [!HAVE_TERMIOS_H]: Don't include <sys/ioctl.h>.
+       [!HAVE_TERMIOS_H && HAVE_SYS_IOCTL_COMPAT_H]: Don't include
+       <sys/ioctl_compat.h>.
+
+       * libls/ls.c: Unconditionally include <termios.h>
+
+       * src/uucpd.c: Likewise.
+
+       * configure.ac: Removed checks for termios.h and termio.h specifc
+       functions, variables and headers.
+
+       * bootstrap.conf (gnulib_modules): Added termios module.
+
 2010-10-18  Mats Erik Andersson <address@hidden>
 
        * libinetutils/tftpsubs.c (synchnet): Changed type of FROM to be
diff --git a/bootstrap.conf b/bootstrap.conf
index facab0a..01dceda 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -69,6 +69,7 @@ strerror
 strndup
 strnlen
 sysexits
+termios
 unistd-safer
 unlocked-io
 update-copyright
diff --git a/configure.ac b/configure.ac
index dff4fd8..183275d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -466,7 +466,7 @@ AC_CHECK_HEADERS([arpa/nameser.h des.h errno.h fcntl.h 
features.h glob.h \
                  sys/sockio.h sys/sysmacros.h sys/param.h sys/file.h \
                  sys/proc.h sys/select.h sys/time.h sys/wait.h \
                   sys/resource.h \
-                 stropts.h tcpd.h termio.h termios.h utmp.h utmpx.h unistd.h \
+                 stropts.h tcpd.h utmp.h utmpx.h unistd.h \
                   vis.h], [], [], [
 #include <sys/types.h>
 #ifdef HAVE_NETINET_IN_SYSTM_H
@@ -521,16 +521,6 @@ AC_CHECK_TYPE(sig_atomic_t, , AC_DEFINE([sig_atomic_t], 
int, [FIXME]),
   [IU_FLUSHLEFT([#include <sys/types.h>
                  #include <signal.h> ])])
 
-dnl Check for termio-related types and defines
-AC_CHECK_TYPES(cc_t, , ,
- [IU_FLUSHLEFT([#if defined(HAVE_TERMIOS_H)
-                # include <termios.h>
-                #elif defined(HAVE_TERMIO_H)
-                # include <termio.h>
-                #else
-                # include <sgtty.h>
-                #endif ])])
-
 dnl Check for compile support for ceratin type
 AC_CHECK_TYPE(long long, , AC_DEFINE([LONG_LONG], long, [Define to long if 
compiler does not support]))
 AC_CHECK_TYPE(long double, , AC_DEFINE([LONG_DOUBLE], double, [Define to 
double if compiler does not support]))
diff --git a/libls/ls.c b/libls/ls.c
index 90f3858..c24962e 100644
--- a/libls/ls.c
+++ b/libls/ls.c
@@ -64,9 +64,7 @@
 #include <unistd.h>
 #include <pwd.h>
 #include <grp.h>
-#ifdef HAVE_TERMIOS_H
-# include <termios.h>
-#endif
+#include <termios.h>
 
 #include <intprops.h>
 #include <inttostr.h>
diff --git a/src/uucpd.c b/src/uucpd.c
index bb040fa..0abb2cf 100644
--- a/src/uucpd.c
+++ b/src/uucpd.c
@@ -76,9 +76,7 @@
 #ifdef HAVE_CRYPT_H
 # include <crypt.h>
 #endif
-#ifdef HAVE_TERMIOS_H
-# include <termios.h>
-#endif
+#include <termios.h>
 #ifdef HAVE_UTMP_H
 # include <utmp.h>
 #endif
diff --git a/talk/init_disp.c b/talk/init_disp.c
index 36ecb46..9a1cad6 100644
--- a/talk/init_disp.c
+++ b/talk/init_disp.c
@@ -56,15 +56,7 @@
  * as well as the signal handling routines.
  */
 
-#ifdef HAVE_TERMIOS_H
-# include <termios.h>
-#else
-# include <sys/ioctl.h>
-# ifdef HAVE_SYS_IOCTL_COMPAT_H
-#  include <sys/ioctl_compat.h>
-# endif
-#endif
-
+#include <termios.h>
 #include <unistd.h>
 #include <signal.h>
 #include <error.h>
diff --git a/telnet/externs.h b/telnet/externs.h
index 0c92cd5..e862bc3 100644
--- a/telnet/externs.h
+++ b/telnet/externs.h
@@ -53,14 +53,8 @@
 # define BSD 43
 #endif
 
-#ifdef HAVE_TERMIOS_H
-# define USE_TERMIO
-#else /* !HAVE_TERMIOS_H */
-# ifdef HAVE_TERMIO_H
-#  define USE_TERMIO
-#  define SYSV_TERMIO
-# endif
-#endif /* HAVE_TERMIOS_H */
+
+#define USE_TERMIO
 
 /*
  * ucb stdio.h defines BSD as something wierd
diff --git a/telnetd/telnetd.h b/telnetd/telnetd.h
index d991e59..9671ae9 100644
--- a/telnetd/telnetd.h
+++ b/telnetd/telnetd.h
@@ -51,13 +51,7 @@
 #include <arpa/telnet.h>
 #include <libtelnet/auth.h>
 
-#if defined HAVE_TERMIOS_H
-# include <termios.h>
-#elif defined(HAVE_TERMIO_H)
-# include <termio.h>
-#else
-# include <sgtty.h>
-#endif
+#include <termios.h>
 
 #define obstack_chunk_alloc malloc
 #define obstack_chunk_free free
diff --git a/telnetd/term.c b/telnetd/term.c
index 8bffcab..3371fc5 100644
--- a/telnetd/term.c
+++ b/telnetd/term.c
@@ -21,59 +21,9 @@
 
 #include <telnetd.h>
 
-#if defined HAVE_TERMIOS_H
 typedef struct termios TERMDESC;
-# define _term_getattr tcgetattr
-# define _term_setattr(fd, tp) tcsetattr (fd, TCSANOW, tp)
-
-#elif defined(HAVE_TERMIO_H)
-typedef struct termio TERMDESC;
-# define _term_getattr tcgetattr
-# define _term_setattr(fd, tp) tcsetattr (fd, TCSANOW, tp)
-
-#else
-
-# define IOCTL_INTERFACE
-
-typedef struct
-{
-  struct sgttyb sg;
-  struct tchars tc;
-  struct ltchars ltc;
-  int state;
-  int lflags;
-# define termdesc_eofc   tc.t_eofc
-# define termdesc_erase  tc.sg.sg_erase
-# define termdesc_kill   sg.sg_kill
-# define termdesc_ip     tc.t_intrc
-# define termdesc_abort  tc.t_quitc
-# define termdesc_xon    tc.t_startc
-# define termdesc_xoff   tc.t_stopc
-# define termdesc_ao     ltc.t_flushc
-# define termdesc_susp   ltc.t_suspc
-# define termdesc_ew     ltc.t_werasc
-# define termdesc_rp     ltc.t_rprntc
-# define termdesc_lnext  ltc.t_lnextc
-# define termdesc_forw1  tc.t_brkc
-} TERMDESC;
-
-# define cfsetospeed(tp, val) (tp)->sg.sg_ospeed = (val)
-# define cfsetispeed(tp, val) (tp)->sg.sg_ispeed = (val)
-# define cfgetospeed(tp)      (tp)->sg.sg_ospeed
-# define cfgetispeed(tp)      (tp)->sg.sg_ispeed
-
-int
-_term_getattr (int fd, TERMDESC * tp)
-{
-  ioctl (fd, TIOCGETP, (char *) &tp->sg);
-  ioctl (fd, TIOCGETC, (char *) &tp->tc);
-  ioctl (fd, TIOCGLTC, (char *) &tp->ltc);
-# ifdef        TIOCGSTATE
-  ioctl (fd, TIOCGSTATE, (char *) &tp->state);
-# endif
-  return 0;
-}
-#endif
+#define _term_getattr tcgetattr
+#define _term_setattr(fd, tp) tcsetattr (fd, TCSANOW, tp)
 
 TERMDESC termbuf, termbuf2;
 

http://git.savannah.gnu.org/cgit/inetutils.git/commit/?id=14675d15752e7134d168bdb955ebe0e8fc7e8b10


commit 14675d15752e7134d168bdb955ebe0e8fc7e8b10
Author: Alfred M. Szmidt <address@hidden>
Date:   Mon Oct 18 18:13:48 2010 +0200

    tftp: Handle IPv6 connections.

diff --git a/ChangeLog b/ChangeLog
index 6cd3749..fa045b8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2010-10-18  Mats Erik Andersson <address@hidden>
+
+       * libinetutils/tftpsubs.c (synchnet): Changed type of FROM to be
+       "struct sockaddr_storage".
+
+       * src/tftpd.c: Changed all uses of "struct sockaddr_in" to be
+       "struct sockaddr_storage".
+       (fromlen): Meticulously tracks length of address structure FROM in
+       every function.
+       (verifyhost): Expanded declaration signature to be "(struct
+       sockaddr_storage *, socklen_t)".  Use getnameinfo(3) as resolver.
+       (tftp) <logging>: Now displays address family "IPv4", "IPv6", or
+       "?".
+
 2010-10-18  Mats Erik Andersson <address@hidden>
 
        * ifconfig/printif.c (put_flags): Declare F as `unsigned short
diff --git a/libinetutils/tftpsubs.c b/libinetutils/tftpsubs.c
index bc1f84a..6fa78bc 100644
--- a/libinetutils/tftpsubs.c
+++ b/libinetutils/tftpsubs.c
@@ -285,7 +285,7 @@ synchnet (int f)
 {
   int i, j = 0;
   char rbuf[PKTSIZE];
-  struct sockaddr_in from;
+  struct sockaddr_storage from;
   socklen_t fromlen;
 
   while (1)
diff --git a/src/tftpd.c b/src/tftpd.c
index 70602fa..e6b5913 100644
--- a/src/tftpd.c
+++ b/src/tftpd.c
@@ -101,7 +101,7 @@ static int maxtimeout = 5 * TIMEOUT;
 #define PKTSIZE        SEGSIZE+4
 static char buf[PKTSIZE];
 static char ackbuf[PKTSIZE];
-static struct sockaddr_in from;
+static struct sockaddr_storage from;
 static socklen_t fromlen;
 
 void tftp (struct tftphdr *, int);
@@ -124,7 +124,7 @@ static int logging;
 
 static const char *errtomsg (int);
 static void nak (int);
-static const char *verifyhost (struct sockaddr_in *);
+static const char *verifyhost (struct sockaddr_storage *, socklen_t);
 
 
 
@@ -172,7 +172,7 @@ main (int argc, char *argv[])
   int index;
   register struct tftphdr *tp;
   int on, n;
-  struct sockaddr_in sin;
+  struct sockaddr_storage sin;
 
   set_program_name (argv[0]);
   iu_argp_init ("tftpd", default_program_authors);
@@ -268,24 +268,29 @@ main (int argc, char *argv[])
        exit (EXIT_SUCCESS);
       }
   }
-  from.sin_family = AF_INET;
+
   alarm (0);
   close (0);
   close (1);
-  peer = socket (AF_INET, SOCK_DGRAM, 0);
+
+  /* The peer's address 'from' is valid at this point.
+   * 'from.ss_family' contains the correct address
+   * family for any callback connection, and 'fromlen'
+   * is the length of the corresponding address structure.  */
+  peer = socket (from.ss_family, SOCK_DGRAM, 0);
   if (peer < 0)
     {
       syslog (LOG_ERR, "socket: %m\n");
       exit (EXIT_FAILURE);
     }
   memset (&sin, 0, sizeof (sin));
-  sin.sin_family = AF_INET;
-  if (bind (peer, (struct sockaddr *) &sin, sizeof (sin)) < 0)
+  sin.ss_family = from.ss_family;
+  if (bind (peer, (struct sockaddr *) &sin, fromlen) < 0)
     {
       syslog (LOG_ERR, "bind: %m\n");
       exit (EXIT_FAILURE);
     }
-  if (connect (peer, (struct sockaddr *) &from, sizeof (from)) < 0)
+  if (connect (peer, (struct sockaddr *) &from, fromlen) < 0)
     {
       syslog (LOG_ERR, "connect: %m\n");
       exit (EXIT_FAILURE);
@@ -360,8 +365,22 @@ again:
   ecode = (*pf->f_validate) (&filename, tp->th_opcode);
   if (logging)
     {
-      syslog (LOG_INFO, "%s: %s request for %s: %s",
-             verifyhost (&from),
+      char *family;
+
+      switch (from.ss_family)
+       {
+       case AF_INET:
+         family = "IPv4";
+         break;
+       case AF_INET6:
+         /* Should mapped IPv4 addresses be reported?  */
+         family = "IPv6";
+         break;
+       default:
+         family = "?";
+       }
+      syslog (LOG_INFO, "%s (%s): %s request for %s: %s",
+             verifyhost (&from, fromlen), family,
              tp->th_opcode == WRQ ? "write" : "read",
              filename, errtomsg (ecode));
     }
@@ -737,16 +756,20 @@ nak (int error)
 }
 
 static const char *
-verifyhost (struct sockaddr_in *fromp)
+verifyhost (struct sockaddr_storage *fromp, socklen_t frlen)
 {
-  struct hostent *hp;
+  int rc;
+  static char host[NI_MAXHOST];
 
-  hp = gethostbyaddr ((char *) &fromp->sin_addr, sizeof (fromp->sin_addr),
-                     fromp->sin_family);
-  if (hp)
-    return hp->h_name;
+  rc = getnameinfo ((struct sockaddr *) fromp, frlen,
+                   host, sizeof (host), NULL, 0, 0);
+  if (rc == 0)
+    return host;
   else
-    return inet_ntoa (fromp->sin_addr);
+    {
+      syslog (LOG_ERR, "getnameinfo: %s\n", gai_strerror(rc));
+      return "0.0.0.0";
+    }
 }
 
 static const char usage_str[] =

http://git.savannah.gnu.org/cgit/inetutils.git/commit/?id=dffb54c2f6f55e5d8c68cde3a888e8cdae438e34


commit dffb54c2f6f55e5d8c68cde3a888e8cdae438e34
Author: Alfred M. Szmidt <address@hidden>
Date:   Mon Oct 18 18:12:15 2010 +0200

    ifconfig: Correct formating for "unix".

diff --git a/ChangeLog b/ChangeLog
index d3055f1..6cd3749 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2010-10-18  Mats Erik Andersson <address@hidden>
+
+       * ifconfig/printif.c (put_flags): Declare F as `unsigned short
+       int'.
+       (put_int): Parse H, h, and # modifiers.
+       * ifconfig/options.c (formats) <unix>: Fix formating.
+       * ifconfig/flags.c (flag_char_tab) [IFF_SIMPLEX]: New member
+       IFF_SIMPLEX
+
 2010-10-18  Guillem Jover  <address@hidden>
 
        * configure.ac: Remove opie AC_CHECK_LIB check.
diff --git a/ifconfig/flags.c b/ifconfig/flags.c
index 29b9162..279b295 100644
--- a/ifconfig/flags.c
+++ b/ifconfig/flags.c
@@ -407,6 +407,9 @@ static struct if_flag_char flag_char_tab[] = {
 #ifdef IFF_MASTER
   { IFF_MASTER,      'm' },
 #endif
+#ifdef IFF_SIMPLEX
+  { IFF_SIMPLEX,     'S' },
+#endif
   { IFF_RUNNING,     'R' },
   { IFF_UP,          'U' },
   { 0 }
diff --git a/ifconfig/options.c b/ifconfig/options.c
index 7e1c309..dcd38d9 100644
--- a/ifconfig/options.c
+++ b/ifconfig/options.c
@@ -139,10 +139,10 @@ struct format formats[] = {
    "Traditional UNIX interface listing.  Default for Solaris and HPUX.",
    "${format}{check-existence}"
    "${ifdisplay?}{"
-   "${name}: flags=${flags}{number}<${flags}{string}{,}>"
+   "${name}: flags=${flags}{number}{%hx}<${flags}{string}{,}>"
    "${mtu?}{ mtu ${mtu}}${\\n}"
    "${addr?}{${\\t}inet ${addr}"
-   " netmask ${netmask}{0}{%02x}${netmask}{1}{%02x}"
+   " netmask ${netmask}{0}{%#02x}${netmask}{1}{%02x}"
    "${netmask}{2}{%02x}${netmask}{3}{%02x}"
    "${brdaddr?}{ broadcast ${brdaddr}}${\\n}}"
    "${exists?}{hwtype?}{${hwtype?}{${\\t}${hwtype}"
diff --git a/ifconfig/printif.c b/ifconfig/printif.c
index 03cdf80..4dba348 100644
--- a/ifconfig/printif.c
+++ b/ifconfig/printif.c
@@ -153,12 +153,15 @@ put_int (format_data_t form, int argc, char *argv[], int 
nr)
        {
          p++;
 
-         while (isdigit (*p))
+         if (*p == '#')
            p++;
 
-         if (*p == '#')
+         while (isdigit (*p))
            p++;
 
+         if ((*p == 'h' || *p == 'H') && p[1])
+           ++p; /* Half length modifier, go to type specifier.  */
+
          switch (*p)
            {
            default:
@@ -293,8 +296,7 @@ put_addr (format_data_t form, int argc, char *argv[], 
struct sockaddr *sa)
 void
 put_flags (format_data_t form, int argc, char *argv[], short flags)
 {
-  /* XXX */
-  short int f = 1;
+  unsigned short int f = 1;
   const char *name;
   int first = 1;
 

http://git.savannah.gnu.org/cgit/inetutils.git/commit/?id=ed0a94cd6cef9bf9ed7780fab9ae1a2b436c6f63


commit ed0a94cd6cef9bf9ed7780fab9ae1a2b436c6f63
Author: Alfred M. Szmidt <address@hidden>
Date:   Mon Oct 18 18:11:02 2010 +0200

    configure.ac: Remove opie AC_CHECK_LIB check.

diff --git a/ChangeLog b/ChangeLog
index 3c8f9ed..d3055f1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2010-10-18  Guillem Jover  <address@hidden>
 
+       * configure.ac: Remove opie AC_CHECK_LIB check.
+
+2010-10-18  Guillem Jover  <address@hidden>
+
        * src/inetd.c (nextconfig): Call expand_enter instead of enter for
        tcpmux services.
        (fix_tcpmux): Likewise.
diff --git a/configure.ac b/configure.ac
index ec0e7df..dff4fd8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -141,7 +141,6 @@ gl_INIT
 AC_CHECK_LIB(nsl, inet_ntoa)
 AC_CHECK_LIB(resolv, gethostname)
 AC_CHECK_LIB(socket, getpeername)
-AC_CHECK_LIB(opie, opiegenerator)
 
 # See if a termcap library is available (under one of several names)
 IU_LIB_TERMCAP

http://git.savannah.gnu.org/cgit/inetutils.git/commit/?id=fd64a202d866483ac74cbc068e1c5879a933448c


commit fd64a202d866483ac74cbc068e1c5879a933448c
Author: Alfred M. Szmidt <address@hidden>
Date:   Mon Oct 18 18:10:30 2010 +0200

    inetd: Call expand_enter instead of expand for tcpmux services.

diff --git a/ChangeLog b/ChangeLog
index 09fac43..3c8f9ed 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2010-10-18  Guillem Jover  <address@hidden>
 
+       * src/inetd.c (nextconfig): Call expand_enter instead of enter for
+       tcpmux services.
+       (fix_tcpmux): Likewise.
+
+2010-10-18  Guillem Jover  <address@hidden>
+
        * src/inetd.c (getconfigent): If se_argc == 1 inject the
        normalized se_server name into se_argv[0].
 
diff --git a/src/inetd.c b/src/inetd.c
index da8fb27..272e874 100644
--- a/src/inetd.c
+++ b/src/inetd.c
@@ -1110,7 +1110,7 @@ getconfigent (FILE *fconfig, const char *file, size_t 
*line)
          sep->se_argv[i] = argv[INETD_SERVER_ARGS + i];
          argv[INETD_SERVER_ARGS + i] = 0;
        }
-      
+
       /* If no arguments are provided, use server name as argv[0].  */
       if (sep->se_argc == 1)
        {
@@ -1121,7 +1121,7 @@ getconfigent (FILE *fconfig, const char *file, size_t 
*line)
            argv0 = sep->se_server;
           sep->se_argv[0] = newstr (argv0);
        }
-      
+
       sep->se_argv[i] = NULL;
       break;
     }
@@ -1160,10 +1160,8 @@ nextconfig (const char *file)
        {
          sep->se_fd = -1;
          sep->se_checked = 1;
-         enter (sep);
        }
-      else
-       expand_enter (sep);
+      expand_enter (sep);
       freeconfig (sep);
     }
   endconfig (fconfig);
@@ -1249,7 +1247,7 @@ fix_tcpmux (void)
       if (debug)
        fprintf (stderr, "inserting default tcpmux entry\n");
       syslog (LOG_INFO, "inserting default tcpmux entry");
-      enter (&serv);
+      expand_enter (&serv);
     }
 }
 

http://git.savannah.gnu.org/cgit/inetutils.git/commit/?id=f21ada998e4e76e483f5bc76fe5fb2c6378e9564


commit f21ada998e4e76e483f5bc76fe5fb2c6378e9564
Author: Alfred M. Szmidt <address@hidden>
Date:   Mon Oct 18 18:09:06 2010 +0200

    inetd: Set se_arv[0] to se_server name if argc == 1.

diff --git a/ChangeLog b/ChangeLog
index 006a679..09fac43 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2010-10-18  Guillem Jover  <address@hidden>
 
+       * src/inetd.c (getconfigent): If se_argc == 1 inject the
+       normalized se_server name into se_argv[0].
+
+2010-10-18  Guillem Jover  <address@hidden>
+
        * src/inetd.c (getconfigent) [IPV6]: Change default family to IPv4
        for "tcp" and "udp".  Change "tcp6" and "udp6" to support IPv4
        mapped addresses.  Add "tcp6only" and "udp6only" protocols for
diff --git a/src/inetd.c b/src/inetd.c
index 0f09386..da8fb27 100644
--- a/src/inetd.c
+++ b/src/inetd.c
@@ -1110,6 +1110,18 @@ getconfigent (FILE *fconfig, const char *file, size_t 
*line)
          sep->se_argv[i] = argv[INETD_SERVER_ARGS + i];
          argv[INETD_SERVER_ARGS + i] = 0;
        }
+      
+      /* If no arguments are provided, use server name as argv[0].  */
+      if (sep->se_argc == 1)
+       {
+         const char *argv0 = strrchr (sep->se_server, '/');
+         if (argv0)
+           argv0++;
+         else
+           argv0 = sep->se_server;
+          sep->se_argv[0] = newstr (argv0);
+       }
+      
       sep->se_argv[i] = NULL;
       break;
     }

http://git.savannah.gnu.org/cgit/inetutils.git/commit/?id=26b57a041b15ae11b9fdea84c8a24b1dc62f6532


commit 26b57a041b15ae11b9fdea84c8a24b1dc62f6532
Author: Alfred M. Szmidt <address@hidden>
Date:   Mon Oct 18 18:07:30 2010 +0200

    TODO: Updated.  (silent change)

diff --git a/TODO b/TODO
index 43afcd0..0630678 100644
--- a/TODO
+++ b/TODO
@@ -1,3 +1,8 @@
+* Before release
+
+Write documentation (NEWS and manual) for how IPv6/IPv4 gets mapped by
+inetd.
+
 * General
 
 broadcasted terminals: provide a client/daemon that broadcasts a users

http://git.savannah.gnu.org/cgit/inetutils.git/commit/?id=a12021ee959a88b48cd16e947c671f8f59e29c9d


commit a12021ee959a88b48cd16e947c671f8f59e29c9d
Author: Alfred M. Szmidt <address@hidden>
Date:   Mon Oct 18 18:07:06 2010 +0200

    inetd: Set default IP family for "tcp" and "udp" to IPv4.

diff --git a/ChangeLog b/ChangeLog
index 434d6d7..006a679 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2010-10-18  Guillem Jover  <address@hidden>
+
+       * src/inetd.c (getconfigent) [IPV6]: Change default family to IPv4
+       for "tcp" and "udp".  Change "tcp6" and "udp6" to support IPv4
+       mapped addresses.  Add "tcp6only" and "udp6only" protocols for
+       IPv6 only addresses.
+       (fix_tcpmux) [IPV6]: Set se_proto to "tcp6".
+       [!IPV6]: Set se_proto to "tcp".
+
 2010-10-01  Mats Erik Andersson <address@hidden>
 
        * src/inetd.c (setup, expand_enter, getconfigent, prepenv): Fix
diff --git a/src/inetd.c b/src/inetd.c
index 9a43271..0f09386 100644
--- a/src/inetd.c
+++ b/src/inetd.c
@@ -563,8 +563,9 @@ setup (struct servtab *sep)
   if (sep->se_family == AF_INET6)
     {
       /* Reverse the value of SEP->se_v4mapped, since otherwise if
-        using `tcp' as a protocol type, all connections will be mapped
-        to IPv6, and with `tcp6', IPv4 get mapped to IPv6.  */
+        using `tcp6' as a protocol type, all connections will be
+        mapped to IPv6, and with `tcp6only', IPv4 gets mapped to
+        IPv6.  */
       int val = sep->se_v4mapped ? 0 : 1;
       if (setsockopt (sep->se_fd, IPPROTO_IPV6, IPV6_V6ONLY,
                      (char *) &val, sizeof (val)) < 0)
@@ -1001,9 +1002,8 @@ getconfigent (FILE *fconfig, const char *file, size_t 
*line)
       sep->se_proto = newstr (argv[INETD_PROTOCOL]);
 
 #ifdef IPV6
-      /* We default to IPv6.  In setup() we'll fall back to IPv4 if
-         it doesn't work.  */
-      sep->se_family = AF_INET6;
+      /* We default to IPv4. */
+      sep->se_family = AF_INET;
       sep->se_v4mapped = 1;
 
       if ((strncmp (sep->se_proto, "tcp", 3) == 0)
@@ -1013,6 +1013,9 @@ getconfigent (FILE *fconfig, const char *file, size_t 
*line)
            {
              sep->se_family = AF_INET6;
              sep->se_v4mapped = 0;
+             /* Check for tcp6only and udp6only.  */
+             if (strcmp (&sep->se_proto[3], "6only") == 0)
+               sep->se_v4mapped = 0;
            }
          else if (sep->se_proto[3] == '4')
            {
@@ -1207,7 +1210,6 @@ fix_tcpmux (void)
 
       serv.se_service = newstr ("tcpmux");
       serv.se_socktype = SOCK_STREAM;
-      serv.se_proto = newstr ("tcp");
       serv.se_checked = 1;
       serv.se_user = newstr ("root");
       serv.se_bi = bi_lookup (&serv);
@@ -1225,9 +1227,11 @@ fix_tcpmux (void)
       serv.se_fd = -1;
       serv.se_type = NORM_TYPE;
 #ifdef IPV6
+      serv.se_proto = newstr ("tcp6");
       serv.se_family = AF_INET6;
       serv.se_v4mapped = 1;
 #else
+      serv.se_proto = newstr ("tcp");
       serv.se_family = AF_INET;
 #endif
       if (debug)

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

Summary of changes:
 ChangeLog               |   70 +++++++++++++++++++++++++++++++++++++++++++++++
 TODO                    |    5 +++
 bootstrap.conf          |    1 +
 configure.ac            |   13 +--------
 ifconfig/flags.c        |    3 ++
 ifconfig/options.c      |    4 +-
 ifconfig/printif.c      |   10 ++++---
 libinetutils/tftpsubs.c |    2 +-
 libls/ls.c              |    4 +--
 src/inetd.c             |   34 ++++++++++++++++-------
 src/tftpd.c             |   57 +++++++++++++++++++++++++++-----------
 src/uucpd.c             |    4 +--
 talk/init_disp.c        |   10 +------
 telnet/externs.h        |   10 +-----
 telnetd/telnetd.h       |    8 +-----
 telnetd/term.c          |   54 +-----------------------------------
 16 files changed, 161 insertions(+), 128 deletions(-)


hooks/post-receive
-- 
GNU Inetutils 



reply via email to

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