Re: URGENT: Bug fixes in the RIPE database distribution
- Date: Wed, 31 May 1995 19:17:13 +0200 (MET DST)
Dear Selina,
To avoid confusion:
The radb server software is not part of the RIPE database distribution.
It is a special server made and maintained by the radb team. The RIPE
database software uses it's own server.
David Kessens
RIPE NCC Database software maintainer
-----------
> Selina Priestley writes :
>
> Has anyone been looking at the problems with the whois server? This
> has really been a problem for operations here, since a) the problems
> *appear* to be non-deterministic and b) sometimes the exact netmask
> for a route is not known.
>
> Here's an example of whois oddity. Why doesn't the RADB 192.5.4.0/23 show
> up in the second query?
>
> Thanks,
>
> Selina
>
> foo-selina:/u/selina: ra 192.5.4
> route: 192.5.4.0/23
> descr: Vixie Enterprises
> descr: 116 Stanley Street
> descr: Redwood City
> descr: CA 94062, USA
> origin: AS3557
> comm-list: COMM_NSFNET
> advisory: AS690 1:3561(11) 2:3561(218) 4:200(144) 5:701(147)
> mnt-by: MAINT-AS3557
> changed: nsfnet-admin@localhost 950118
> source: RADB
>
> route: 192.5.4.0/23
> descr: NET-VIX2
> origin: AS3557
> advisory: AS690 1:3561(11) 2:3561(144) 3:3561(27) 4:3561(147) 5:3561(218) 5:701(147) 6:7
> 01(134)
> mnt-by: BARRNET
> changed: vaf@localhost 950111
> source: MCI
>
> foo-selina:/u/selina: ra 192.5.5
> route: 192.5.5.0/24
> descr: Vixie Enterprises
> descr: 116 Stanley Street
> descr: Redwood City
> descr: CA 94062, USA
> origin: AS3557
> comm-list: COMM_NSFNET
> advisory: AS690 2:200(144) 3:701(147)
> mnt-by: MAINT-AS3557
> changed: nsfnet-admin@localhost 940729
> source: RADB
>
> route: 192.5.4.0/23
> descr: NET-VIX2
> origin: AS3557
> advisory: AS690 1:3561(11) 2:3561(144) 3:3561(27) 4:3561(147) 5:3561(218) 5:701(147) 6:7
> 01(134)
> mnt-by: BARRNET
> changed: vaf@localhost 950111
> source: MCI
>
>
> > bugsy-sfp:/u/sfp: whois -h whois.ra.net 194.128
> > route: 194.128.0.0/15
> > descr: PIPEX-BLOCK3
> > origin: AS1849
> > advisory: AS690 1:1849 2:701(147) 3:701(134) 4:1800
> > remarks: Holes to come!
> > mnt-by: AS1849-MNT
> > changed: tim@localhost 950428
> > source: RIPE
> >
> > bugsy-sfp:/u/sfp: whois -h whois.ra.net 194.128/15
> > route: 194.128.0.0/15
> > descr: PIPEX Ltd
> > descr: 216 Cambridge Science Park
> > descr: Milton Road
> > descr: Cambridge
> > descr: England
> > descr: CB4 4WA
> > descr: UNITED KINGDOM
> > origin: AS1849
> > comm-list: COMM_NSFNET
> > advisory: AS690 1:1849 2:701(147) 4:1800
> > mnt-by: MAINT-AS1849
> > changed: support@localhost 950511
> > source: RADB
> >
> > route: 194.128.0.0/15
> > descr: PIPEX-BLOCK3
> > origin: AS1849
> > advisory: AS690 1:1849 2:701(147) 3:701(134) 4:1800
> > remarks: Holes to come!
> > mnt-by: AS1849-MNT
> > changed: tim@localhost 950428
> > source: RIPE
>
> >
> > Dear all,
> >
> > Recently Tony Bates found an authorisation problem in 'updatecheck.pl'.
> > Today my fix is ready. Please apply this fix to your software!
> >
> > Furthermore, I included the recent fixes made by Tony for :
> >
> > net2net.pl
> > misc.pl
> >
> > in the distribution and a small one from Curtis Villamizar for :
> >
> > dbupdate.pl
> >
> > I plan to add also some other fixes from Curtis in the next release.
> >
> > Kind regards,
> >
> > David Kessens
> > RIPE NCC Database software maintainer
> >
> > ======================================================================
> >
> > How to apply the fix(es) :
> >
> > Fix src/filename.pl with 'patch' or just put in the corresponding
> > file(s) of the new distribution (ftp:/ftp.ripe.net/ripe/dbase/software,
> > file with latest version number). Always make a backup copy of the old
> > file(s) to be able to restore the original software in case you might
> > experience problems. After the fix(es) are applied, do a 'make install'
> > from the database root directory to install the patched file(s).
> >
> > The following files have been changed from the previous release:
> >
> > updatecheck.pl
> > dbupdate.pl
> > net2net.pl
> > misc.pl
> >
> > ======================================================================
> > *** /ncc/dbase/src/old/updatecheck.pl Tue Jan 17 17:37:36 1995
> > --- /ncc/dbase/src/updatecheck.pl Tue May 30 18:47:24 1995
> > ***************
> > *** 1,7 ****
> > # $RCSfile: updatecheck.pl,v $
> > ! # $Revision: 1.19 $
> > # $Author: ripe-dbm $
> > ! # $Date: 1995/01/17 16:37:36 $
> >
> > require "defines.pl";
> > require "adderror.pl";
> > --- 1,7 ----
> > # $RCSfile: updatecheck.pl,v $
> > ! # $Revision: 1.20 $
> > # $Author: ripe-dbm $
> > ! # $Date: 1995/05/30 13:34:47 $
> >
> > require "defines.pl";
> > require "adderror.pl";
> > ***************
> > *** 70,79 ****
> > }
> >
> >
> > ! # Check authorisation by maintainer unless override is specified.
> >
> > if (!$new{"uo"} && !&Maintainer(*cur, *new)) {
> > ! return $E_AUTHFAIL unless !&entype(*new);
> > }
> >
> > # Catch if called from dbdel, then skip all checks,
> > --- 70,80 ----
> > }
> >
> >
> > ! # Check authorisation by maintainer unless override is specified
> > ! # and handles special (dirty trick) delete case with $new in $cur
> >
> > if (!$new{"uo"} && !&Maintainer(*cur, *new)) {
> > ! return $E_AUTHFAIL if !$cur{"uo"};
> > }
> >
> > # Catch if called from dbdel, then skip all checks,
> > *** /ncc/dbase/src/old/dbupdate.pl Tue May 30 18:38:57 1995
> > --- /ncc/dbase/src/dbupdate.pl Tue May 30 18:48:17 1995
> > ***************
> > *** 1,9 ****
> > #!PERL
> >
> > # $RCSfile: dbupdate.pl,v $
> > ! # $Revision: 0.33 $
> > ! # $Author: david $
> > ! # $Date: 1995/02/24 11:13:22 $
> >
> > # This is a client that will update objects read from a file directly
> > # in the database, without interference of updated.
> > --- 1,9 ----
> > #!PERL
> >
> > # $RCSfile: dbupdate.pl,v $
> > ! # $Revision: 0.34 $
> > ! # $Author: ripe-dbm $
> > ! # $Date: 1995/05/30 14:44:09 $
> >
> > # This is a client that will update objects read from a file directly
> > # in the database, without interference of updated.
> > ***************
> > *** 46,52 ****
> > # -F - Do fast update without mail and other stuff
> > # -S - Do only syntax check - Not implemented
> >
> > ! &Getopts('ln:vMAHVFS');
> >
> > # Need this below for running perl in tainted mode.
> >
> > --- 46,52 ----
> > # -F - Do fast update without mail and other stuff
> > # -S - Do only syntax check - Not implemented
> >
> > ! &Getopts('l:n:vMAHVFS');
> >
> > # Need this below for running perl in tainted mode.
> >
> > *** /ncc/dbase/src/old/net2net.pl Tue May 30 18:43:22 1995
> > --- /ncc/dbase/src/net2net.pl Tue May 30 18:49:30 1995
> > ***************
> > *** 1,8 ****
> > #
> > # $RCSfile: net2net.pl,v $
> > ! # $Revision: 0.13 $
> > ! # $Author: tony $
> > ! # $Date: 1994/09/20 12:27:36 $
> > #
> > # net2net.pl
> > #
> > --- 1,8 ----
> > #
> > # $RCSfile: net2net.pl,v $
> > ! # $Revision: 0.14 $
> > ! # $Author: ripe-dbm $
> > ! # $Date: 1995/05/30 16:45:19 $
> > #
> > # net2net.pl
> > #
> > ***************
> > *** 140,147 ****
> > $len = 16;
> > } elsif ($2 == 0 && $3 == 0 && $4 == 0) {
> > $len = 8;
> > }
> > ! @return_rep = (@return_rep, $net_rep."/".$len);
> > return $OK, "", @return_rep;
> > } else {
> > return $NOK,
> > --- 140,152 ----
> > $len = 16;
> > } elsif ($2 == 0 && $3 == 0 && $4 == 0) {
> > $len = 8;
> > + } else {
> > + return $NOK,
> > + "$net_rep is not a classful net representation I understand",
> > + @return_rep;
> > }
> > ! local($val) = &trimnet($net_rep);
> > ! @return_rep = (@return_rep, $val."/".$len);
> > return $OK, "", @return_rep;
> > } else {
> > return $NOK,
> > ***************
> > *** 161,167 ****
> > local($begin) = &quad2int($oldnet);
> > local($end) = &quad2int($2);
> > if($end < $begin) {
> > ! return $NOK, "range is invalid", @returndtring;
> > }
> >
> > if ($oldnet =~ /(\d+)\.\d+\.\d+\.\d+/) {
> > --- 166,172 ----
> > local($begin) = &quad2int($oldnet);
> > local($end) = &quad2int($2);
> > if($end < $begin) {
> > ! return $NOK, "range is invalid", @returnstring;
> > }
> >
> > if ($oldnet =~ /(\d+)\.\d+\.\d+\.\d+/) {
> > ***************
> > *** 236,242 ****
> > "based on prefix $usepre",
> > @returnstring;
> > }
> > ! return $OK, "", $net_rep;
> > } else {
> > return $NOK,
> > "$net_rep is not an representation I understand",
> > --- 241,249 ----
> > "based on prefix $usepre",
> > @returnstring;
> > }
> > ! local($val) = &trimnet($net);
> > ! @returnstring = "$val"."/".$len;
> > ! return $OK, "", @returnstring;
> > } else {
> > return $NOK,
> > "$net_rep is not an representation I understand",
> > ***************
> > *** 370,373 ****
> > --- 377,386 ----
> > }
> > return( $s );
> > }
> > +
> > + sub trimnet {
> > + local($quad) = @_;
> > + return(&int2quad(&quad2int($quad)));
> > + }
> > 1;
> > +
> > *** /ncc/dbase/src/old/misc.pl Wed May 31 14:06:18 1995
> > --- /ncc/dbase/src/misc.pl Wed May 31 14:08:13 1995
> > ***************
> > *** 1,9 ****
> > # misc - miscellaneaous functions
> > #
> > # $RCSfile: misc.pl,v $
> > ! # $Revision: 0.44 $
> > ! # $Author: marten $
> > ! # $Date: 1994/12/16 11:06:55 $
> > #
> >
> > require "defines.pl";
> > --- 1,9 ----
> > # misc - miscellaneaous functions
> > #
> > # $RCSfile: misc.pl,v $
> > ! # $Revision: 0.45 $
> > ! # $Author: ripe-dbm $
> > ! # $Date: 1995/05/31 12:04:40 $
> > #
> >
> > require "defines.pl";
> > ***************
> > *** 197,203 ****
> > #
> > sub iscommunity {
> > local($str) = @_;
> > ! return 0 if $str =~ /[a-z]/;
> > foreach $_ ((keys %KEYWORD, "AS")) {
> > if (($_ eq "(") || ($_ eq ")")) {
> > $_ = "\\".$_;
> > --- 197,203 ----
> > #
> > sub iscommunity {
> > local($str) = @_;
> > ! return 0 if $str !~ /[A-Z]+/;
> > foreach $_ ((keys %KEYWORD, "AS")) {
> > if (($_ eq "(") || ($_ eq ")")) {
> > $_ = "\\".$_;
> > *** /ncc/dbase/src/old/updatecheck.pl Tue Jan 17 17:37:36 1995
> > --- /ncc/dbase/src/updatecheck.pl Tue May 30 18:47:24 1995
> > ***************
> > *** 1,7 ****
> > # $RCSfile: updatecheck.pl,v $
> > ! # $Revision: 1.19 $
> > # $Author: ripe-dbm $
> > ! # $Date: 1995/01/17 16:37:36 $
> >
> > require "defines.pl";
> > require "adderror.pl";
> > --- 1,7 ----
> > # $RCSfile: updatecheck.pl,v $
> > ! # $Revision: 1.20 $
> > # $Author: ripe-dbm $
> > ! # $Date: 1995/05/30 13:34:47 $
> >
> > require "defines.pl";
> > require "adderror.pl";
> > ***************
> > *** 70,79 ****
> > }
> >
> >
> > ! # Check authorisation by maintainer unless override is specified.
> >
> > if (!$new{"uo"} && !&Maintainer(*cur, *new)) {
> > ! return $E_AUTHFAIL unless !&entype(*new);
> > }
> >
> > # Catch if called from dbdel, then skip all checks,
> > --- 70,80 ----
> > }
> >
> >
> > ! # Check authorisation by maintainer unless override is specified
> > ! # and handles special (dirty trick) delete case with $new in $cur
> >
> > if (!$new{"uo"} && !&Maintainer(*cur, *new)) {
> > ! return $E_AUTHFAIL if !$cur{"uo"};
> > }
> >
> > # Catch if called from dbdel, then skip all checks,
> > *** /ncc/dbase/src/old/dbupdate.pl Tue May 30 18:38:57 1995
> > --- /ncc/dbase/src/dbupdate.pl Tue May 30 18:48:17 1995
> > ***************
> > *** 1,9 ****
> > #!PERL
> >
> > # $RCSfile: dbupdate.pl,v $
> > ! # $Revision: 0.33 $
> > ! # $Author: david $
> > ! # $Date: 1995/02/24 11:13:22 $
> >
> > # This is a client that will update objects read from a file directly
> > # in the database, without interference of updated.
> > --- 1,9 ----
> > #!PERL
> >
> > # $RCSfile: dbupdate.pl,v $
> > ! # $Revision: 0.34 $
> > ! # $Author: ripe-dbm $
> > ! # $Date: 1995/05/30 14:44:09 $
> >
> > # This is a client that will update objects read from a file directly
> > # in the database, without interference of updated.
> > ***************
> > *** 46,52 ****
> > # -F - Do fast update without mail and other stuff
> > # -S - Do only syntax check - Not implemented
> >
> > ! &Getopts('ln:vMAHVFS');
> >
> > # Need this below for running perl in tainted mode.
> >
> > --- 46,52 ----
> > # -F - Do fast update without mail and other stuff
> > # -S - Do only syntax check - Not implemented
> >
> > ! &Getopts('l:n:vMAHVFS');
> >
> > # Need this below for running perl in tainted mode.
> >
> > *** /ncc/dbase/src/old/net2net.pl Tue May 30 18:43:22 1995
> > --- /ncc/dbase/src/net2net.pl Tue May 30 18:49:30 1995
> > ***************
> > *** 1,8 ****
> > #
> > # $RCSfile: net2net.pl,v $
> > ! # $Revision: 0.13 $
> > ! # $Author: tony $
> > ! # $Date: 1994/09/20 12:27:36 $
> > #
> > # net2net.pl
> > #
> > --- 1,8 ----
> > #
> > # $RCSfile: net2net.pl,v $
> > ! # $Revision: 0.14 $
> > ! # $Author: ripe-dbm $
> > ! # $Date: 1995/05/30 16:45:19 $
> > #
> > # net2net.pl
> > #
> > ***************
> > *** 140,147 ****
> > $len = 16;
> > } elsif ($2 == 0 && $3 == 0 && $4 == 0) {
> > $len = 8;
> > }
> > ! @return_rep = (@return_rep, $net_rep."/".$len);
> > return $OK, "", @return_rep;
> > } else {
> > return $NOK,
> > --- 140,152 ----
> > $len = 16;
> > } elsif ($2 == 0 && $3 == 0 && $4 == 0) {
> > $len = 8;
> > + } else {
> > + return $NOK,
> > + "$net_rep is not a classful net representation I understand",
> > + @return_rep;
> > }
> > ! local($val) = &trimnet($net_rep);
> > ! @return_rep = (@return_rep, $val."/".$len);
> > return $OK, "", @return_rep;
> > } else {
> > return $NOK,
> > ***************
> > *** 161,167 ****
> > local($begin) = &quad2int($oldnet);
> > local($end) = &quad2int($2);
> > if($end < $begin) {
> > ! return $NOK, "range is invalid", @returndtring;
> > }
> >
> > if ($oldnet =~ /(\d+)\.\d+\.\d+\.\d+/) {
> > --- 166,172 ----
> > local($begin) = &quad2int($oldnet);
> > local($end) = &quad2int($2);
> > if($end < $begin) {
> > ! return $NOK, "range is invalid", @returnstring;
> > }
> >
> > if ($oldnet =~ /(\d+)\.\d+\.\d+\.\d+/) {
> > ***************
> > *** 236,242 ****
> > "based on prefix $usepre",
> > @returnstring;
> > }
> > ! return $OK, "", $net_rep;
> > } else {
> > return $NOK,
> > "$net_rep is not an representation I understand",
> > --- 241,249 ----
> > "based on prefix $usepre",
> > @returnstring;
> > }
> > ! local($val) = &trimnet($net);
> > ! @returnstring = "$val"."/".$len;
> > ! return $OK, "", @returnstring;
> > } else {
> > return $NOK,
> > "$net_rep is not an representation I understand",
> > ***************
> > *** 370,373 ****
> > --- 377,386 ----
> > }
> > return( $s );
> > }
> > +
> > + sub trimnet {
> > + local($quad) = @_;
> > + return(&int2quad(&quad2int($quad)));
> > + }
> > 1;
> > +
> > *** /ncc/dbase/src/old/misc.pl Wed May 31 14:06:18 1995
> > --- /ncc/dbase/src/misc.pl Wed May 31 14:08:13 1995
> > ***************
> > *** 1,9 ****
> > # misc - miscellaneaous functions
> > #
> > # $RCSfile: misc.pl,v $
> > ! # $Revision: 0.44 $
> > ! # $Author: marten $
> > ! # $Date: 1994/12/16 11:06:55 $
> > #
> >
> > require "defines.pl";
> > --- 1,9 ----
> > # misc - miscellaneaous functions
> > #
> > # $RCSfile: misc.pl,v $
> > ! # $Revision: 0.45 $
> > ! # $Author: ripe-dbm $
> > ! # $Date: 1995/05/31 12:04:40 $
> > #
> >
> > require "defines.pl";
> > ***************
> > *** 197,203 ****
> > #
> > sub iscommunity {
> > local($str) = @_;
> > ! return 0 if $str =~ /[a-z]/;
> > foreach $_ ((keys %KEYWORD, "AS")) {
> > if (($_ eq "(") || ($_ eq ")")) {
> > $_ = "\\".$_;
> > --- 197,203 ----
> > #
> > sub iscommunity {
> > local($str) = @_;
> > ! return 0 if $str !~ /[A-Z]+/;
> > foreach $_ ((keys %KEYWORD, "AS")) {
> > if (($_ eq "(") || ($_ eq ")")) {
> > $_ = "\\".$_;
> >
> >
> > --- End of fix(es) ---
>