#-*- perl -*-
#
# Copyright (C) 2002,2003 Ken'ichi Fukamachi
# All rights reserved. This program is free software; you can
# redistribute it and/or modify it under the same terms as Perl itself.
#
# $FML: Command.pm,v 1.8 2002/12/15 15:17:18 fukachan Exp $
#
package FML::Restriction::Command;
use strict;
use vars qw(@ISA @EXPORT @EXPORT_OK $AUTOLOAD);
use Carp;
=head1 NAME
FML::Restriction::Command - safe regexp allowed as a command
=head1 SYNOPSIS
collection of utility functions used in command routines.
=head1 DESCRIPTION
=head1 METHODS
=head2 is_secure_command_string($str)
check if $str string looks secure ?
return 1 if secure.
=cut
# Descriptions: $s looks secure ?
# Arguments: STR($s)
# Side Effects: none
# History: fml 4.0's SecureP()
# Return Value: NUM(1 or 0)
sub is_secure_command_string
{
my ($s) = @_;
# 0. clean up
$s =~ s/^\s*\#\s*//o; # remove ^#
# 1. trivial case
# 1.1. empty
if ($s =~ /^\s*$/o) {
return 1;
}
# 2. allow
# command = [-\d\w]+
# mail address = [-_\w]+@[\w\-\.]+
# command options = last:30
#
# XXX sync w/ mailaddress regexp in FML::Restriction::Base ?
# XXX hmm, it is difficult.
#
if ($s =~/^[-\d\w]+\s*$/o) {
return 1;
}
elsif ($s =~/^[-\d\w]+\s+[\s\w\_\-\.\,\@\:]+$/o) {
return 1;
}
return 0;
}
=head1 CODING STYLE
See C on fml coding style guide.
=head1 AUTHOR
Ken'ichi Fukamachi
=head1 COPYRIGHT
Copyright (C) 2002,2003 Ken'ichi Fukamachi
All rights reserved. This program is free software; you can
redistribute it and/or modify it under the same terms as Perl itself.
=head1 HISTORY
FML::Restriction::Command first appeared in fml8 mailing list driver package.
See C for more details.
=cut
1;