Commit Graph

513 Commits

Author SHA1 Message Date
Matt Sergeant
1c2009764f Don't trap $self in the closure (causes circular refs and never gets freed)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@596 958fd67b-6ff1-0310-b445-bb7760255be9
2005-12-31 14:53:50 +00:00
Matt Sergeant
e440b7bd65 Get forkserver working again
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@595 958fd67b-6ff1-0310-b445-bb7760255be9
2005-12-30 20:03:22 +00:00
Matt Sergeant
99e0455fa4 Fix long standing bug of returning 1 not DONE
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@594 958fd67b-6ff1-0310-b445-bb7760255be9
2005-12-30 19:49:38 +00:00
Matt Sergeant
67a6787625 Get alarm/timeout from a param
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@593 958fd67b-6ff1-0310-b445-bb7760255be9
2005-12-30 19:46:33 +00:00
Matt Sergeant
abcdd3212c Tidy up
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@592 958fd67b-6ff1-0310-b445-bb7760255be9
2005-12-30 19:42:57 +00:00
Matt Sergeant
9b841dd928 Add force-poll option (in case your epoll is buggy)
Tidy up options
Use Pollserver class to load plugins, not unused tcpserver


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@591 958fd67b-6ff1-0310-b445-bb7760255be9
2005-12-30 19:41:06 +00:00
Matt Sergeant
9c8df69be1 Fix caching bug with PTR records
Attempt to fix callback occurring immediately by calling it via AddTimer


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@590 958fd67b-6ff1-0310-b445-bb7760255be9
2005-12-30 19:35:10 +00:00
John Peacock
7cc114edd5 Eliminate the creeping use of warn() in favor of log() and make
more use of the "fd:#" code everywhere.

* lib/Qpsmtpd.pm
    Default log method use '$self->fd()' instead of '$self->{fd}'.
    Include a sub fd() method for inheritance purposes.

* lib/Qpsmtpd/PollServer.pm
    Inherit log() from Qpsmtpd.pm (via SMTP.pm).

* lib/Qpsmtpd/Plugin.pm
    Appropriate code allow plugins to inherit fd().

* plugins/dnsbl
    Use log() instead of warn().

* plugins/logging/adaptive
  plugins/logging/warn
    Include the 'fd:#' to the log line if defined.

* qpsmtpd
    Reorder things slightly so we can use log().

git-svn-id: https://svn.perl.org/qpsmtpd/trunk@589 958fd67b-6ff1-0310-b445-bb7760255be9
2005-12-30 17:03:14 +00:00
John Peacock
2535e77293 Merge branches/0.3x back to trunk.
Too many individual changes to document.  Trust me... ;-)

Lightly tested (i.e. it accepts and delivers mail with minimal plugins).

NOTES/LIMITATIONS: 
logging/adaptive currently eats some log messages.
auth_vpopmail_sql is currently broken (needs continuations?).
'make test' fails in dnsbl (no Test::Qpsmtpd::input_sock() method).


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@588 958fd67b-6ff1-0310-b445-bb7760255be9
2005-12-22 21:30:53 +00:00
Ask Bjørn Hansen
8ac6157ee8 r2614@g5: ask | 2005-12-16 14:27:01 -0800
Make the clamdscan plugin temporarily deny mail if if can't talk to clamd
   (Filippo Carletti)


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@587 958fd67b-6ff1-0310-b445-bb7760255be9
2005-12-16 22:27:27 +00:00
Matt Sergeant
5910aa7292 Fix log bustage ($coworker)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@586 958fd67b-6ff1-0310-b445-bb7760255be9
2005-12-14 01:21:20 +00:00
Devin Carraway
bf5eea44c2 Merge r584 from 0.3x branch (drop root privs in forkserver before loading
plugins)


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@585 958fd67b-6ff1-0310-b445-bb7760255be9
2005-12-11 09:14:20 +00:00
Matt Sergeant
cc45e9a576 Prevent logging plugins from entering an infinite loop (use {_transaction}
rather than ->transaction() when passing to hook)
Merge some other changes from 0.31.1 branch


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@582 958fd67b-6ff1-0310-b445-bb7760255be9
2005-12-02 02:35:14 +00:00
Matt Sergeant
e1982f05d4 Fixed to use same subsystem as dnsbl plugin
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@581 958fd67b-6ff1-0310-b445-bb7760255be9
2005-11-28 19:07:56 +00:00
Matt Sergeant
8f7882d076 Finally a working version :-/
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@580 958fd67b-6ff1-0310-b445-bb7760255be9
2005-11-22 23:43:08 +00:00
Matt Sergeant
dfe9dda454 Don't run continuation if config
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@579 958fd67b-6ff1-0310-b445-bb7760255be9
2005-11-22 23:22:48 +00:00
Matt Sergeant
f5efe92bea Forgot pseudo hash entry
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@578 958fd67b-6ff1-0310-b445-bb7760255be9
2005-11-22 23:04:06 +00:00
Matt Sergeant
5994a79d9f Slight cleanup.
Support a finished() callback as the readable() thing didn't work.


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@577 958fd67b-6ff1-0310-b445-bb7760255be9
2005-11-22 23:03:05 +00:00
Matt Sergeant
8454ed40bc With PollServer, I get several unrecognized commands before the disconnect
from plugins/count_unrecognized_commands kicks in.

Several buffered lines are read and processed by
Danga::Client::process_read_buf() without checking if the socket was
closed.  The attached patch seems to fix it.
-- Brian Grossman


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@571 958fd67b-6ff1-0310-b445-bb7760255be9
2005-11-16 15:04:37 +00:00
Matt Sergeant
a46a0345d5 Fix for removed pseudo hash
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@563 958fd67b-6ff1-0310-b445-bb7760255be9
2005-11-13 23:46:03 +00:00
Matt Sergeant
2af297f49c Fix for ignoring multiple dns returns
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@562 958fd67b-6ff1-0310-b445-bb7760255be9
2005-11-11 14:29:45 +00:00
Matt Sergeant
a405e64e1c Allow any type of query
Refactor some repeated code


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@561 958fd67b-6ff1-0310-b445-bb7760255be9
2005-11-11 14:28:47 +00:00
Matt Sergeant
0a397e74a9 Support all resolvers in resolv.conf, and issue retries on errors the same
way gethostbyname() does.


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@555 958fd67b-6ff1-0310-b445-bb7760255be9
2005-10-26 19:09:04 +00:00
Devin Carraway
22fef51c19 Detaint %ENV somewhat more thoroughly (derived from perl5.8.7 perlsec POD).
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@545 958fd67b-6ff1-0310-b445-bb7760255be9
2005-08-26 09:51:57 +00:00
Matt Sergeant
79ecf24218 Fix for tls enabling auth - this is kind of hacky, and I'd prefer to fix
this nastiness in the auth support instead. But this works for now.


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@541 958fd67b-6ff1-0310-b445-bb7760255be9
2005-08-15 17:58:41 +00:00
Devin Carraway
ff4c5d1ff2 Merge r536 from 0.31 branch (silence uninitialized-value warning on zero-length PID file)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@540 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-31 09:02:42 +00:00
Devin Carraway
4a6f5dd2f0 Merge r529 from 0.31 branch (explicit config dir via $QPSMTPD_CONFIG).
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@539 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-31 08:48:04 +00:00
Devin Carraway
4cdae6bf05 Merge daemonization support from 0.31 branch. Removed its -d commandline
switch since the debug switch is already using it.


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@538 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-31 08:42:43 +00:00
Devin Carraway
8bb7cf67de Add a caution about using large wait times in check_earlytalker; some
superficial research suggests that some MTAs have unexpectedly short timeouts
waiting for SMTP greetings (default of 30sec for Exim4.5, most notably)


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@534 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-30 07:19:17 +00:00
Matt Sergeant
9d6faa39cb Migrate transaction(), reset_transaction() and connection() up to Qpsmtpd.pm
Minor bug fix for auth capability


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@533 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-29 18:05:08 +00:00
Matt Sergeant
72a3056e66 Default capabilities to an empty arrayref
Copy relay_client setting when cloning connection in tls


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@532 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-29 18:02:07 +00:00
Matt Sergeant
006f129c21 Merge in a bunch of changes from Bradfitz's Danga::Socket 1.40-1.43
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@519 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-19 15:37:14 +00:00
Robert Spier
96ff5e1082 r521@bear: rspier | 2005-07-19T03:24:18.553459Z
MANIFEST update from steve peters
 


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@517 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-19 03:24:42 +00:00
Matt Sergeant
7edb1fd93a Fix "no pseudo hash" bug
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@515 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-18 12:50:35 +00:00
John Peacock
f096f293c1 Missed hook to data_post to add headers
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@513 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-18 11:10:11 +00:00
John Peacock
5f3c2dfa22 Missed hook to data_post to add headers
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@512 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-18 11:07:18 +00:00
John Peacock
43aef48532 Correctly handle the case where smtpgreeting exists (append ESMTP) as well as
the case where it doesn't (display original Qpsmtpd greeting). 

git-svn-id: https://svn.perl.org/qpsmtpd/trunk@511 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-18 00:36:49 +00:00
Matt Sergeant
e8a9828e4e Notice /var/qmail/control dir (Joe Schaefer)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@510 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-15 21:15:44 +00:00
John Peacock
3096164159 Support smtpgreeting file from qmail/control
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@508 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-15 10:35:23 +00:00
Matt Sergeant
2ca6e9d192 MERGE 503:505 FROM https://svn.perl.org/qpsmtpd/branches/0.31
Fix test failures due to hook renames
Fix redefined warnings due to hook renames


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@507 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-14 13:31:07 +00:00
Matt Sergeant
51f1f32928 Fix for forkserver breakage
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@501 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-13 17:10:38 +00:00
Matt Sergeant
e100e3d67a Better fix for previous bug
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@499 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-12 21:59:30 +00:00
Matt Sergeant
54cff7af40 When setting OtherFds, always make it an addition to what's already set
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@498 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-12 20:40:32 +00:00
Matt Sergeant
e407e8b470 MERGE r386:r480 FROM https://svn.perl.org/qpsmtpd/branches/high_perf
High perf branch merge and fixes


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@497 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-11 19:11:11 +00:00
Matt Sergeant
9683016276 MERGE r386:r480 FROM https://svn.perl.org/qpsmtpd/branches/high_perf
High perf branch merge and fixes


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@496 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-11 19:10:49 +00:00
Devin Carraway
20154f7094 If the PID file already exists at startup, truncate to zero-length before
attempting to re-use it.  Otherwise if the new PID is shorter than the
previous one the file will be corrupted by the rewrite (harmlessly the way it
is being read by this code, but problematically for anything that expects to
be able to run something similar to /bin/kill `cat /path/to/pid.file`)


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@493 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-10 11:46:15 +00:00
Devin Carraway
58cce1ab30 Clean up PID file on exit, if enabled
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@492 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-10 11:38:40 +00:00
John Peacock
1f7ece38f2 r589@jpeacock: jpeacock | 2005-07-10 06:54:32 -0400
Track hooks as array and hash.
 Re-revert changes to logging plugins to use new-style hooking.
 logging/adaptive assumed that register() has been called before hook_logging.


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@491 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-10 10:56:55 +00:00
John Peacock
00c53652c9 r547@jpeacock: jpeacock | 2005-07-02 07:20:17 -0400
Replace pithy comment with something more neutral.
 Thanks Gordon Rowell <gordonr@gormand.com.au>
 r548@jpeacock:  jpeacock | 2005-07-02 07:24:21 -0400
 Example patterns for badrcptto plugin - Gordon Rowell <gordonr@gormand.com.au>
 r586@jpeacock:  jpeacock | 2005-07-09 06:54:47 -0400
 Don't use varlog() directly unless you are passing all parameters.
 Don't try to log() anything during loading of logging plugins.
 r587@jpeacock:  jpeacock | 2005-07-09 06:59:57 -0400
 Cannot use new-style hooking with logging plugins (yet).


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@490 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-09 11:03:53 +00:00
Matt Sergeant
fac8cd7a30 TLS plugin
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@488 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-08 16:43:37 +00:00