- Timestamp:
- 11/10/08 10:41:41 (2 months ago)
- Location:
- branches/pop-proxy-branch/mailfilter/src/EBox
- Files:
-
- 3 modified
-
MailFilter.pm (modified) (2 diffs)
-
MailFilter/LogHelper.pm (modified) (4 diffs)
-
MailFilter/LogHelper/Test.pm (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/pop-proxy-branch/mailfilter/src/EBox/MailFilter.pm
r11603 r11605 617 617 'date' => __('Date'), 618 618 619 'address' => __('Account'),620 clientConn => __(q{Client's address}),621 622 mails => __('Total messages'),623 clean => __('Clean messages'),624 virus => __('Virus messages'),625 spam => __('Spam messages'),626 };619 'address' => __('Account'), 620 clientConn => __(q{Client's address}), 621 622 mails => __('Total messages'), 623 clean => __('Clean messages'), 624 virus => __('Virus messages'), 625 spam => __('Spam messages'), 626 }; 627 627 628 628 my @order = qw( date event action … … 630 630 631 631 my $events = { 632 'pop3_fetch_ok' => 633 __('POP3 transmission complete') 632 'pop3_fetch_ok' => 633 __('POP3 transmission complete'), 634 'pop3_fetch_failed' => 635 __('POP3 transmission aborted'), 634 636 }; 635 637 -
branches/pop-proxy-branch/mailfilter/src/EBox/MailFilter/LogHelper.pm
r11603 r11605 154 154 my ($self, $line, $dbengine) = @_; 155 155 156 if ($line =~ m/p3scan\[\d+\]: USER \'(.*?)\'/ ) { 157 $p3scanAddress = $1; 156 157 if ($line =~ m/p3scan\[\d+\]: Connection from (.*):/) { 158 $p3scanClientConn = $1; 158 159 $p3scanVirus = 0; 159 160 $p3scanSpam = 0; 160 } 161 elsif ($line =~ m/p3scan\[\d+\]: Connection from (.*):/) { 162 $p3scanClientConn = $1; 161 $p3scanAddress = undef; 162 } 163 elsif ($line =~ m/p3scan\[\d+\]: USER \'(.*?)\'/ ) { 164 $p3scanAddress = $1; 163 165 } 164 166 elsif ($line =~ m/p3scan\[\d+\]: .* contains a virus/) { … … 168 170 $p3scanSpam += 1; 169 171 } 170 elsif ($line =~ m{p3scan\[\d+\]: Session done.* Mails: (.*) Bytes:} ) {172 elsif ($line =~ m{p3scan\[\d+\]: Session done.*Clean Exit.* Mails: (.*) Bytes:} ) { 171 173 my $mails = $1; 172 174 my $cleanMails = $mails - $p3scanVirus - $p3scanSpam; … … 177 179 event => 'pop3_fetch_ok', 178 180 address => $p3scanAddress, 179 181 180 182 mails => $mails, 181 clean => $cleanMails,183 clean => $cleanMails, 182 184 virus => $p3scanVirus, 183 185 spam => $p3scanSpam, … … 193 195 $dbengine->insert(POP_PROXY_TABLE, $values); 194 196 } 197 # abort 198 elsif ($line =~ m{p3scan\[\d+\]: Session done.* abort.* Mails: (.*) Bytes:} ) { 199 my $mails = $1; 200 my $cleanMails = $mails - $p3scanVirus - $p3scanSpam; 201 202 my $date = $self->_getDate($line); 203 204 my $values = { 205 event => 'pop3_fetch_failed', 206 address => $p3scanAddress, 207 208 mails => $mails, 209 clean => $cleanMails, 210 virus => $p3scanVirus, 211 spam => $p3scanSpam, 212 213 clientConn => $p3scanClientConn, 214 215 216 date => $date, 217 }; 218 219 220 221 $dbengine->insert(POP_PROXY_TABLE, $values); 222 } 195 223 196 224 -
branches/pop-proxy-branch/mailfilter/src/EBox/MailFilter/LogHelper/Test.pm
r11603 r11605 54 54 55 55 my %_notNullsByTable = ( 56 'message_filter' => [ qw( event action date56 'message_filter' => [ qw( event action date 57 57 from_address to_address) 58 ],59 'pop_proxy_filter' => [ qw(date event addressmails58 ], 59 'pop_proxy_filter' => [ qw(date event mails 60 60 clean virus spam clientConn) 61 ],62 );61 ], 62 ); 63 63 64 64 … … 389 389 390 390 391 sub popProxyLogTest : Test(2 0)391 sub popProxyLogTest : Test(25) 392 392 { 393 393 my ($self) = @_; 394 394 395 395 my @cases = ( 396 {397 name => 'zero mails',398 lines => [396 { 397 name => 'zero mails', 398 lines => [ 399 399 q{Oct 30 11:26:46 ebox011101 p3scan[25124]: Connection from 192.168.9.1:48999 }, 400 400 q{Oct 30 11:26:46 ebox011101 p3scan[25124]: Real-server adress is 82.194.70.220:110 }, 401 401 q{Oct 30 11:26:46 ebox011101 p3scan[25124]: USER 'poptest@example.com' }, 402 402 q{Oct 30 11:26:46 ebox011101 p3scan[25124]: Session done (Clean Exit). Mails: 0 Bytes: 0 }, 403 ],403 ], 404 404 expectedData => { 405 405 event => 'pop3_fetch_ok', 406 address => 'poptest@example.com',406 address => 'poptest@example.com', 407 407 408 408 mails => 0, 409 clean => 0,409 clean => 0, 410 410 virus => 0, 411 411 spam => 0, … … 416 416 date => '2008-Oct-30 11:26:46', 417 417 }, 418 },419 {420 name => 'only one mail',421 lines => [418 }, 419 { 420 name => 'only one mail', 421 lines => [ 422 422 q{Oct 30 07:56:53 ebox011101 p3scan[15225]: Selected scannertype: basic (Basic file invocation scanner) }, 423 423 q{Oct 30 07:56:53 ebox011101 p3scan[15225]: Listen now on 0.0.0.0:8110 }, … … 432 432 q{Oct 30 11:25:33 ebox011101 spamd[24318]: spamd: result: . 0 - HTML_MESSAGE,SPF_PASS scantime=0.8,size=46836,user=p3scan,uid=118,required_score=5.0,rhost=localhost,raddr=127.0.0.1,rport=60954,mid=<48569c20811060706u205207b3s71dc7ab7eaaa23b7@mail.gmail.com>,autolearn=no }, 433 433 q{Oct 30 11:25:33 ebox011101 p3scan[25070]: Session done (Clean Exit). Mails: 1 Bytes: 44334}, 434 ],434 ], 435 435 expectedData => { 436 436 event => 'pop3_fetch_ok', 437 address => 'poptest@example.com',437 address => 'poptest@example.com', 438 438 439 439 mails => 1, 440 clean => 1,440 clean => 1, 441 441 virus => 0, 442 442 spam => 0, … … 447 447 date => '2008-Oct-30 11:25:33', 448 448 }, 449 },450 451 {452 name => 'one clean and one virus',453 lines => [449 }, 450 451 { 452 name => 'one clean and one virus', 453 lines => [ 454 454 q{Oct 30 11:07:15 ebox011101 p3scan[24288]: P3Scan Version 2.1 }, 455 455 q{Oct 30 11:07:15 ebox011101 p3scan[24288]: Selected scannertype: basic (Basic file invocation scanner) }, … … 464 464 q{Oct 30 11:24:25 ebox011101 p3scan[24992]: '/var/spool/p3scan/children/24992/p3scan.ufuAdZ' contains a virus (Eicar-Test-Signature)! }, 465 465 q{Oct 30 11:24:25 ebox011101 p3scan[24992]: Session done (Clean Exit). Mails: 2 Bytes: 44471 }, 466 ],466 ], 467 467 expectedData => { 468 468 event => 'pop3_fetch_ok', 469 address => 'poptest@example.com',469 address => 'poptest@example.com', 470 470 471 471 mails => 2, 472 clean => 1,472 clean => 1, 473 473 virus => 1, 474 474 spam => 0, … … 479 479 date => '2008-Oct-30 11:24:25', 480 480 }, 481 },482 483 {484 name => 'one spam',485 lines => [481 }, 482 483 { 484 name => 'one spam', 485 lines => [ 486 486 q{Oct 30 11:31:33 ebox011101 p3scan[26477]: Listen now on 0.0.0.0:8110 }, 487 487 q{Oct 30 11:34:30 ebox011101 p3scan[26596]: Connection from 192.168.9.1:40087 }, … … 494 494 q{Oct 30 11:34:31 ebox011101 p3scan[26596]: Session done (Clean Exit). Mails: 1 Bytes: 5257 }, 495 495 496 ],496 ], 497 497 expectedData => { 498 498 event => 'pop3_fetch_ok', 499 address => 'poptest@example.com',499 address => 'poptest@example.com', 500 500 501 501 mails => 1, 502 clean => 0,502 clean => 0, 503 503 virus => 0, 504 504 spam => 1, … … 509 509 date => '2008-Oct-30 11:34:31', 510 510 }, 511 }, 512 513 ); 511 }, 512 513 { 514 name => 'failed', 515 lines => [ 516 'Oct 30 11:27:55 ebox011101 p3scan[25162]: Connection from 192.168.9.1:49254 ', 517 'Oct 30 11:27:55 ebox011101 p3scan[25162]: Real-server adress is 192.168.9.149:110 ', 518 'Oct 30 11:27:55 ebox011101 p3scan[25162]: Cannot connect to real-server ', 519 'Oct 30 11:27:55 ebox011101 p3scan[25162]: Session done (Critial abort). Mails: 0 Bytes: 0 ', 520 ], 521 expectedData => { 522 event => 'pop3_fetch_failed', 523 address => undef, 524 525 mails => 0, 526 clean => 0, 527 virus => 0, 528 spam => 0, 529 530 clientConn => '192.168.9.1', 531 532 date => '2008-Oct-30 11:27:55', 533 }, 534 }, 535 ); 514 536 515 537 $self->testProcessLine(POP_PROXY_TABLE, SYS_LOG, \@cases);
