Fix bug parsing IPv6 addresses with ports
authorJamie Cameron <jcameron@webmin.com>
Mon, 1 Nov 2010 04:46:59 +0000 (21:46 -0700)
committerJamie Cameron <jcameron@webmin.com>
Mon, 1 Nov 2010 04:46:59 +0000 (21:46 -0700)
inetd/module.info
sshd/edit_net.cgi
sshd/save_net.cgi
xinetd/module.info
xinetd/save_serv.cgi

index 58efba2..4dd2a13 100644 (file)
@@ -1,26 +1,5 @@
-desc_ko_KR.euc=ÀÎÆ®³Ý ¼­ºñ½º ¹× ÇÁ·ÎÅäÄÝ 
 risk=low medium high
-desc_ru_SU=óÅÒ×ÉÓÙ É ðÒÏÔÏËÏÌÙ Internet
-desc_zh_TW.Big5=ºô»Úºô¸ôªA°È»P¨ó©w
-desc_pl=Us³ugi i&nbsp;protoko³y internetowe
-desc_de=Internet-Dienste und -Protokolle (inetd)
-name=Inetd Admin
-desc_zh_CN=inetd ·þÎñÅäÖÃ
-desc_pt=Serviços e Protocolos de Internet
 category=net
-desc_tr=Internet Servisleri ve Protokoller
 os_support=solaris *-linux hpux freebsd unixware openserver osf1 macos openbsd netbsd irix
-desc=Internet Services and Protocols
-desc_es=Servicios y Protocolos de Internet
-desc_sv=Internettjänster och -protokoll
-desc_fr=Services et Protocoles Internet
-desc_hu=Internet szolgáltatások és protokollok
-desc_ru_RU=Ñåðâèñû è Ïðîòîêîëû Internet
-desc_ca=Protocols i Serveis d'Internet
-desc_cz=Internetové slu¾by a protokoly
+desc=Network Services and Protocols
 longdesc=Edit services in /etc/inetd.conf, /etc/services and /etc/rpc.
-desc_zh_TW.UTF-8=網際網路服務與協定
-desc_zh_CN.UTF-8=inetd 服务配置
-desc_ko_KR.UTF-8=인트넷 서비스 및 프로토콜 
-desc_nl=Internet Services en Protocollen
-desc_ru.UTF-8=Сервисы и Протоколы Internet
index ed06d4a..caae944 100755 (executable)
@@ -15,8 +15,12 @@ if ($version{'type'} eq 'openssh' && $version{'number'} >= 3) {
        $i = 0;
        @table = ( );
        foreach $l (@listens, { }) {
-               local ($a, $p) = $l->{'values'}->[0] =~ /^(.*):(\d+)$/ ?
-                                  ($1, $2) : ($l->{'values'}->[0]);
+               local ($a, $p) = $l->{'values'}->[0] =~ /^([^:]*):(\d+)$/ ||
+                                $l->{'values'}->[0] =~ /^\[(.*)\]:(\d+)$/ ?
+                                  ($1, $2) :
+                                $l->{'values'}->[0] =~ /^\[(.*)\]$/ ?
+                                  ($1) :
+                                  ($l->{'values'}->[0]);
                $amode = $a eq "::" ? 2 : $a eq "0.0.0.0" ? 1 :
                         $a eq "" ? 0 : 3;
                push(@table, [
index f3a623e..b766223 100755 (executable)
@@ -20,12 +20,13 @@ if ($version{'type'} eq 'openssh' && $version{'number'} >= 3) {
                                $a = "0.0.0.0";
                                }
                        elsif ($in{"mode_$i"} == 2) {
-                               $a = "::";
+                               $a = "[::]";
                                }
                        elsif ($in{"mode_$i"} == 3) {
                                $a = $in{"address_$i"};
                                &check_ipaddress($a) || &check_ip6address($a) ||
                                        &error(&text('net_eladdress', $a));
+                               $a = "[$a]" if (&check_ip6address($a));
                                }
                        if ($in{"port_${i}_def"}) {
                                push(@listens, $a);
index 6dd3f35..6c8fd0a 100644 (file)
@@ -1,22 +1,5 @@
 category=net
-desc_ko_KR.euc=È®Àå ÀÎÅͳݠ¼­ºñ½º
 risk=low medium high
-desc_pl=Rozszerzone us³ugi internetowe  (XInetd)
-desc=Extended Internet Services
-desc_es=Servicios Extendidos de Internet  (XInetd)
-desc_sv=Ut&#246;kade Internettj&#228;nster  (XInetd)
+desc=Network Services
 name=Xinetd
-desc_ja_JP.euc=³ÈÄ¥¥¤¥ó¥¿¡¼¥Í¥Ã¥È ¥µ¡¼¥Ó¥¹
-desc_zh_CN=Xinetd ·þÎñÅäÖà (XInetd)
-desc_ca=Serveis d'Internet Ampliats  (XInetd)
-desc_zh_TW.Big5=Xinetd©µ¦ùºô¸ô¦øªA¾¹   (XInetd)
-desc_de=Erweiterte Internetdienste (xinetd)
 longdesc=Edit servers handled by Xinetd, a replacement for inetd.
-desc_ms=Servis Internet Lanjutan  (XInetd)
-desc_sk=Roz¹írené internetové slu¾by (XInetd)
-desc_fr=Services Internet &#233;tendus (XInetd)
-desc_tr=Geniþletilmiþ Ýnternet Servisleri
-desc_zh_TW.UTF-8=Xinetd延伸網路伺服器   (XInetd)
-desc_zh_CN.UTF-8=Xinetd 服务配置  (XInetd)
-desc_ja_JP.UTF-8=拡張インターネット サービス
-desc_ko_KR.UTF-8=확장 인터넷 서비스
index 4154cea..065a7b0 100755 (executable)
@@ -96,7 +96,8 @@ else {
                &set_member_value($xinet, 'redirect');
                }
        else {
-               gethostbyname($in{'rhost'}) || &error($text{'serv_erhost'});
+               &to_ipaddress($in{'rhost'}) || &to_ip6address($in{'rhost'}) ||
+                       &error($text{'serv_erhost'});
                $in{'rport'} =~ /^\d+$/ || &error($text{'serv_erport'});
                @type = grep { $_ ne 'INTERNAL' } @type;
                &set_member_value($xinet, 'server');