X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fsvc_forward.pm;h=ab24d3277d8cc455d286dcead19d92b436ff9a80;hb=c738a3c4923774b64960aa87fa58bd0751487edb;hp=b8d55fecba9a43a62615113930f370275929e66a;hpb=5fc8c5edf574ab024d4646914b6432d458e2ffbd;p=freeside.git diff --git a/FS/FS/svc_forward.pm b/FS/FS/svc_forward.pm index b8d55fecb..ab24d3277 100644 --- a/FS/FS/svc_forward.pm +++ b/FS/FS/svc_forward.pm @@ -249,17 +249,23 @@ sub check { # || ! $self->dstsvc; if ( $self->src ) { - $self->src =~ /^([\w\.\-\&]*)(\@([\w\-]+\.)+\w+)?$/ - or return "Illegal src: ". $self->dst; + $self->src =~ /^([\w\.\-\&]*)(\@([\w\-]+\.)+\w+)$/ + or return "Illegal src: ". $self->src; $self->src("$1$2"); } else { $self->src(''); } if ( $self->dst ) { - $self->dst =~ /^([\w\.\-\&]*)(\@([\w\-]+\.)+\w+)?$/ - or return "Illegal dst: ". $self->dst; - $self->dst("$1$2"); + my $conf = new FS::Conf; + if ( $conf->exists('svc_forward-arbitrary_dst') ) { + my $error = $self->ut_textn('dst'); + return $error if $error; + } else { + $self->dst =~ /^([\w\.\-\&]*)(\@([\w\-]+\.)+\w+)$/ + or return "Illegal dst: ". $self->dst; + $self->dst("$1$2"); + } } else { $self->dst(''); }