Changeset 380 for trunk


Ignore:
Timestamp:
Dec 2, 2011, 12:02:00 AM (13 years ago)
Author:
katerina
Message:

Fix for ticket #278 (With --disable-ipv6, port check always checks all interfaces).

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/docs/Changelog

    r378 r380  
    113.0.1:
     2        * fix a bug in the port check with --disable-ipv6 (reported by C. Westlake)
    23        * fix potential deadlock in sh_files.c (reported by S. Mirolo)
    34        * change Makefile.in to stop on compile error rather than at link stage
  • trunk/src/sh_ipvx.c

    r321 r380  
    210210    {
    211211    case AF_INET:
     212      (ss->sin).sin_family = AF_INET;
    212213      (ss->sin).sin_port = htons (port);
    213214      break;
    214215    case AF_INET6:
     216      (ss->sin6).sin6_family = AF_INET6;
    215217      (ss->sin6).sin6_port = htons (port);
    216218      break;
     
    218220  return 0;
    219221#else
     222  (ss->sin).sin_family = AF_INET;
    220223  (ss->sin).sin_port = htons (port);
    221224  return 0;
  • trunk/src/sh_portcheck.c

    r376 r380  
    321321#ifdef TEST_ONLY
    322322
    323 static int portchk_debug = 0;
     323static int portchk_debug = 0; 
    324324#define SH_ALLOC       malloc
    325325#define SH_FREE        free
     
    433433  struct sh_portentry * new = SH_ALLOC (sizeof(struct sh_portentry));
    434434
    435   if (portchk_debug)
    436     fprintf(stderr, _("add to list: port %d/%s %d %d (%s)\n"),
    437             port, SH_PROTO_STR(proto), flag, status, service ? service : _("undef"));
    438 
    439435  new->port = port;
    440436  sh_ipvx_ntoa(new->interface, SH_INTERFACE_SIZE, paddr);
     
    443439
    444440  new->error  = NULL;
     441
     442  if (portchk_debug)
     443    fprintf(stderr, _("add to list: port %d/%s %d %d (%s) %s\n"),
     444            port, SH_PROTO_STR(proto), flag, status, service ? service : _("undef"),
     445            new->interface);
    445446
    446447  if (service)
     
    648649     
    649650
    650 static void sh_portchk_cmp_to_list (int proto, int port, struct sh_sockaddr * paddr, char * service)
     651static void sh_portchk_cmp_to_list (int proto, int port,
     652                                    struct sh_sockaddr * paddr, char * service)
    651653{
    652654  struct sh_portentry * portent;
     
    669671          snprintf (errbuf, sizeof(errbuf), _("port: %s:%d/%s (%s)"),
    670672                    saddr, port, SH_PROTO_STR(proto), service);
    671 #ifdef TEST_ONLY
    672           fprintf(stderr, _("open port: %s:%d/%s (%s)\n"),
    673                   saddr, port, SH_PROTO_STR(proto), service);
    674 #else
     673
     674          if (portchk_debug)
     675            fprintf(stderr, _("cmp_to_list: open port: %s:%d/%s (%s)\n"),
     676                    saddr, port, SH_PROTO_STR(proto), service);
     677
     678#ifndef TEST_ONLY
    675679          path = sh_port2proc_query(proto, paddr, port, &qpid, user, sizeof(user));
    676680          SH_MUTEX_LOCK(mutex_thread_nolog);
     
    751755          snprintf (errbuf, sizeof(errbuf), _("port: %s:%d/%s (%s)"),
    752756                    saddr, port, SH_PROTO_STR(proto), check_services(port, proto));
    753 #ifdef TEST_ONLY
    754           fprintf(stderr, _("open port: %s:%d/%s (%s)\n"),
    755                   saddr, port, SH_PROTO_STR(proto), check_services(port, proto));
    756 #else
     757
     758          if (portchk_debug)
     759            fprintf(stderr, _("cmp_to_list: open port: %s:%d/%s (%s) check_services\n"),
     760                    saddr, port, SH_PROTO_STR(proto), check_services(port, proto));
     761
     762#ifndef TEST_ONLY
    757763          path = sh_port2proc_query(proto, paddr, port, &qpid, user, sizeof(user));
    758764          SH_MUTEX_LOCK(mutex_thread_nolog);
     
    908914          sh_ipvx_ntoa(ipbuf, sizeof(ipbuf), paddr);
    909915          if (portchk_debug)
    910             fprintf(stderr, _("check port: %5d/udp on %15s established/time_wait\n"),
     916            fprintf(stderr, _("check port_udp: %5d/udp on %15s established/time_wait\n"),
    911917                    port, ipbuf);
    912918        }
     
    932938              if (paddr->ss_family == AF_INET)
    933939                {
    934                   p = check_rpc_list (port, (struct sockaddr_in *) sh_ipvx_sockaddr_cast(paddr), IPPROTO_UDP);
     940                  p = check_rpc_list (port,
     941                                      (struct sockaddr_in *) sh_ipvx_sockaddr_cast(paddr),
     942                                      IPPROTO_UDP);
    935943                }
    936              
     944
    937945              sh_portchk_cmp_to_list (IPPROTO_UDP, port, paddr, p ? p : NULL);
    938946             
     
    945953                {
    946954                  sh_ipvx_ntoa(ipbuf, sizeof(ipbuf), paddr);
    947                   fprintf(stderr, _("check port: %5d/udp on %15s open %s\n"),
     955                  fprintf(stderr, _("check port_udp: %5d/udp on %15s open %s\n"),
    948956                          port, ipbuf, p);
    949957                }
     
    979987        {
    980988          sh_ipvx_ntoa(ipbuf, sizeof(ipbuf), paddr);
    981           fprintf(stderr, _("check port: %5d on %15s established/time_wait\n"),
     989          fprintf(stderr, _("check port_tcp: %5d on %15s established/time_wait\n"),
    982990                  port, ipbuf);
    983991        }
     
    10051013      if (paddr->ss_family == AF_INET)
    10061014        {
    1007           p = check_rpc_list (port, (struct sockaddr_in *) sh_ipvx_sockaddr_cast(paddr), IPPROTO_TCP);
     1015          p = check_rpc_list (port,
     1016                              (struct sockaddr_in *) sh_ipvx_sockaddr_cast(paddr),
     1017                              IPPROTO_TCP);
    10081018        }
    10091019
     
    10181028        {
    10191029          sh_ipvx_ntoa(ipbuf, sizeof(ipbuf), paddr);
    1020           fprintf(stderr, _("check port: %5d on %15s open %s\n"),
     1030          fprintf(stderr, _("check port_tcp: %5d on %15s open %s\n"),
    10211031                  port, ipbuf, p);
    10221032        }
     
    11371147      sh_ipvx_save(&(iface_list.iface[iface_list.used]),
    11381148                   AF_INET, (struct sockaddr *)&sin);
     1149     
     1150      if (portchk_debug)
     1151        {
     1152          char buf[256];
     1153          sh_ipvx_ntoa(buf, sizeof(buf), &(iface_list.iface[iface_list.used]));
     1154          fprintf(stderr, _("interface[%d]: %s\n"), i, buf);
     1155        }
    11391156      ++iface_list.used;
    11401157      ++i;
     
    16341651      portent = sh_portchk_get_from_list (proto, -1, &saddr, buf);
    16351652      if (!portent)
    1636         sh_portchk_add_to_list (proto,   -1, &saddr,  buf, type, SH_PORT_UNKN);
     1653        {
     1654          if (portchk_debug)
     1655            fprintf(stderr, _("add_required_port\n"));
     1656          sh_portchk_add_to_list (proto,   -1, &saddr,  buf, type, SH_PORT_UNKN);
     1657        }
    16371658      else
    16381659        {
     
    16521673      portent = sh_portchk_get_from_list (proto, port, &saddr, NULL);
    16531674      if (!portent)
    1654         sh_portchk_add_to_list (proto, port, &saddr, NULL, type, SH_PORT_UNKN);
     1675        {
     1676          if (portchk_debug)
     1677            fprintf(stderr, _("add_required_port: open port: %d/%s\n"),
     1678                    (int) port, SH_PROTO_STR(proto));
     1679          sh_portchk_add_to_list (proto, port, &saddr, NULL, type, SH_PORT_UNKN);
     1680        }
    16551681      else
    16561682        {
Note: See TracChangeset for help on using the changeset viewer.