X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2FRecord.pm;h=b0bfb0b3c29a983abfe62fde21f26a1b9a80493b;hp=12cc77ebfe58edb5effe1c3f0e9a4a30c150f175;hb=52b07e8abd3946578a6c2701ec9e5195ec6b17e6;hpb=bd732e6950eb76b971113502f1dd8a97a21f3888 diff --git a/FS/FS/Record.pm b/FS/FS/Record.pm index 12cc77ebf..b0bfb0b3c 100644 --- a/FS/FS/Record.pm +++ b/FS/FS/Record.pm @@ -723,6 +723,54 @@ sub ut_phonen { ''; } +=item ut_ip COLUMN + +Check/untaint ip addresses. IPv4 only for now. + +=cut + +sub ut_ip { + my( $self, $field ) = @_; + $self->getfield($field) =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/; + or return "Illegal (IP address) $field: ". $self->getfield($field); + for ( $1 $2 $3 $4 ) { return "Illegal (IP address) $field" if $_ > 255; }; + $self->$setfield($field, "$1.$2.$3.$3"); + ''; +} + +=item ut_ipn COLUMN + +Check/untaint ip addresses. IPv4 only for now. May be null. + +=cut + +sub ut_ipn { + my( $self, $field ) = @_; + if ( $self->getfield($field) =~ /^()$/ ) { + $self->setfield($field,''); + ''; + } else { + $self->ut_ip($field); + } +} + +=item ut_domain COLUMN + +Check/untaint host and domain names. + +=cut + +sub ut_domain { + my( $self, $field ) = @_; + #$self->getfield($field) =~/^(\w+\.)*\w+$/ + $self->getfield($field) =~/^(\w+\.)*\w+$/ + or return "Illegal (domain) $field: ". $self->getfield($field); + $self->setfield($field,$1); + ''; +} + +=cut + =item ut_anything COLUMN Untaints arbitrary data. Be careful. @@ -847,7 +895,7 @@ sub hfields { =head1 VERSION -$Id: Record.pm,v 1.7 2000-06-27 12:15:37 ivan Exp $ +$Id: Record.pm,v 1.8 2000-10-27 20:15:50 ivan Exp $ =head1 BUGS