<<< Chronological >>> Author Index    Subject Index <<< Threads >>>

Re: URGENT: Bug fixes in the RIPE database distribution


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) ---
> 




<<< Chronological >>> Author    Subject <<< Threads >>>