93,7 → 93,7 |
. "\n$request{'code'} $request{'response'}\n\n"; |
close CLIENT; |
$request{'stop_timestamp'} = [gettimeofday]; |
log_debug("Duration: " . tv_interval($request{'start_timestamp'}, |
log_debug("Duration: " . tv_interval($request{'start_timestamp'}, |
$request{'stop_timestamp'}) . " sec"); |
} |
|
125,7 → 125,7 |
|
# check end lines |
if($#lines < $cur+1 || $lines[$#lines-1] ne "" || $lines[$#lines] ne "") { |
set_request_code($request, $code_no_end_lines, |
set_request_code($request, $code_no_end_lines, |
"Request doesn't end with \\n\\n"); |
return; |
} |
133,7 → 133,7 |
# check password |
if($password) { |
if($#lines < $cur || !($lines[$cur] =~ /^$password_header/)) { |
set_request_code($request, $code_no_password, |
set_request_code($request, $code_no_password, |
"Password not specified"); |
return; |
} |
176,7 → 176,7 |
sub handle_user_create |
{ |
my $request = shift @_; |
|
|
set_request_code($request, $code_ignored, "Not interesting in users"); |
} |
|
183,7 → 183,7 |
sub handle_user_modify |
{ |
my $request = shift @_; |
|
|
set_request_code($request, $code_ignored, "Not interesting in users"); |
} |
|
190,7 → 190,7 |
sub handle_user_delete |
{ |
my $request = shift @_; |
|
|
set_request_code($request, $code_ignored, "Not interesting in users"); |
} |
|
200,7 → 200,7 |
my %params = parse_command_params($request, shift @_, ("name")); |
return unless(%params); |
|
my $res_action = save_to_db($request, "transport", |
my $res_action = save_to_db($request, "transport", |
{ domain => $params{"name"} }, |
{ domain => $params{"name"}, comment => $params{"comment"}, |
transport => 'virtual:' } ); |
221,7 → 221,7 |
my %params = parse_command_params($request, shift @_, ("oldName", "name")); |
return unless(%params); |
|
my $res_action = save_to_db($request, "transport", |
my $res_action = save_to_db($request, "transport", |
{ domain => $params{"oldName"} }, |
{ domain => $params{"name"}, comment => $params{"comment"}, |
transport => 'virtual:' } ); |
242,7 → 242,7 |
my %params = parse_command_params($request, shift @_, ("name")); |
return unless(%params); |
|
my $res_action = delete_from_db($request, "transport", |
my $res_action = delete_from_db($request, "transport", |
{ domain => $params{"name"} } ); |
|
if($res_action eq 'delete') { |
273,7 → 273,7 |
("login", "password", "domain")); |
return unless(%params); |
|
my $res_action = save_to_db($request, "users", |
my $res_action = save_to_db($request, "users", |
{ login => "$params{'login'}\@$params{'domain'}" }, |
{ login => "$params{'login'}\@$params{'domain'}", |
password => $params{"password"}, |
299,7 → 299,7 |
|
# FIXME move the old maildir |
|
my $res_action = save_to_db($request, "users", |
my $res_action = save_to_db($request, "users", |
{ login => "$params{'oldLogin'}\@$params{'oldDomain'}" }, |
{ login => "$params{'login'}\@$params{'domain'}", |
password => $params{"password"}, |
324,7 → 324,7 |
|
# FIXME remove the maildir |
|
my $res_action = delete_from_db($request, "users", |
my $res_action = delete_from_db($request, "users", |
{ login => "$params{'login'}\@$params{'domain'}" } ); |
|
if($res_action eq 'delete') { |
342,13 → 342,13 |
return unless(%params); |
my @rcpts = parse_command_array($request, @_); |
|
my $del_action = delete_from_db($request, "aliases", |
my $del_action = delete_from_db($request, "aliases", |
{ alias => "$params{'address'}\@$params{'domain'}" } ); |
return if($del_action eq "error"); |
|
|
foreach my $rcpt (@rcpts) { |
log_debug("save $rcpt"); |
my $res_action = save_to_db($request, "aliases", |
my $res_action = save_to_db($request, "aliases", |
undef, |
{ alias => "$params{'address'}\@$params{'domain'}", |
rcpt => $rcpt, comment => $params{"comment"} } ); |
370,20 → 370,18 |
return unless(%params); |
my @rcpts = parse_command_array($request, @_); |
|
my $del_action = delete_from_db($request, "aliases", |
my $del_action = delete_from_db($request, "aliases", |
{ alias => "$params{'address'}\@$params{'domain'}" } ); |
return if($del_action eq "error"); |
|
|
foreach my $rcpt (@rcpts) { |
log_debug("save $rcpt"); |
my $res_action = save_to_db($request, "aliases", |
my $res_action = save_to_db($request, "aliases", |
undef, |
{ alias => "$params{'address'}\@$params{'domain'}", |
rcpt => $rcpt, comment => $params{"comment"} } ); |
return if($res_action eq "error"); |
} |
# FIXME add the loopback destination? handle "a@domain.com => a@domain.com" |
# as "a@domain.com => _something_@domain.com + _something_@domain.com => _something_@domain.com" ? |
|
if($del_action eq 'delete') { |
set_request_code($request, $code_ok, "Mail alias modified"); |
399,7 → 397,7 |
my %params = parse_command_params($request, shift @_, ("address", "domain")); |
return unless(%params); |
|
my $res_action = delete_from_db($request, "aliases", |
my $res_action = delete_from_db($request, "aliases", |
{ alias => "$params{'address'}\@$params{'domain'}" } ); |
|
if($res_action eq 'delete') { |
419,7 → 417,7 |
$value =~ s/\\t/\t/g; |
$value =~ s/\\0/\000/g; |
$value =~ s/\\\\/\\/g; |
|
|
return $value; |
} |
|
443,7 → 441,7 |
my @params = split /\t/, shift @_, -1; |
my %required = map { $_ => 1 } @_; # convert array to hash |
my %values = (); |
|
|
@params = @params[2..$#params]; # remove handler and action |
map { |
my ($key, $value) = split /=/, $_; |
473,7 → 471,7 |
{ |
my $request = shift @_; |
my $dbh = undef; |
|
|
eval { $dbh = DBI->connect($db_url, $db_user, $db_password); }; |
if($@) { |
set_request_code($request, $code_db_connect_error, $@); |
517,7 → 515,7 |
my $dbh = db_connect($request); |
|
return 'error' unless($dbh); |
|
|
eval { |
my $sql = ""; |
while(my ($key, $value) = each(%$key_columns)) { |
533,7 → 531,7 |
next unless(defined $value); |
$sth->bind_param(++$count, $value); |
} |
|
|
my $res = $sth->execute; |
|
if($res < 1) { |
564,7 → 562,7 |
my $dbh = db_connect($request); |
|
return 'error' unless($dbh); |
|
|
eval { |
my $res = 0; |
|
593,7 → 591,7 |
next unless(defined $value); |
$update_sth->bind_param(++$count, $value); |
} |
|
|
$res = $update_sth->execute; |
$res_action = 'update'; |
} |
634,12 → 632,11 |
next unless(defined $value); |
$insert_sth->bind_param(++$count, $value); |
} |
|
|
$res = $insert_sth->execute; |
$res_action = 'insert'; |
} |
}; |
# FIXME handle exceptions? |
|
if(db_close($request, $dbh, $@)) { |
return $res_action; |