Commits on Feb 1, 2012
  1. readme: update the readme file

    damoxc committed Feb 1, 2012
  2. transaction: add a test for insert_header

    The insert_header method wasn't being tested at all, so
    add tested ensuring that it is working as expected.
    damoxc committed Feb 1, 2012
  3. util: import everything from _util

    To avoid unrequired changes to util in the future import *
    from _util so any new C extensions are automatically imported
    and replace any python counterpart.
    damoxc committed Feb 1, 2012
  4. plugins: fix loading plugins

    The commit to fix the plugin names also broke loading plugins
    when specifying a module name instead of a path name.
    damoxc committed Feb 1, 2012
  5. gitignore: add *.c and *.so to the ignore list

    We don't want to accidentally commit generated C or built extensions
    into the git repository so best to ignore them.
    damoxc committed Feb 1, 2012
  6. dnsbl: fix rcpt hook

    The code left in for debugging was still there, remove it so the plugin
    is operational now.
    damoxc committed Feb 1, 2012
  7. dnsbl: add initial dnsbl plugin

    A very simple plugin that merely queries dns blacklists for A records, still
    need to add in checking of the TXT records for the reason why.
    damoxc committed Feb 1, 2012
  8. plugins: fix loaded plugins names

    When loading plugins they were being given / instead of . in the module
    names, fix this so they don't come up looking bizare
    damoxc committed Feb 1, 2012
Commits on Jan 26, 2012
  1. util: add a reverse ip function

    Add a utility function to reverse an IP address which will
    be useful for dnsbl plugins. Also add a version of the
    function implemented in C using Cython.
    damoxc committed Jan 26, 2012
Commits on Jan 17, 2012
  1. plugins: make rate_limiting more configurable

    Add checking of a configuration file to gain the
    values for the time to delay and so
    users can adjust according to their system requirements.
    damoxc committed Jan 17, 2012
Commits on Dec 14, 2011
  1. tests: add first plugin test case

    Basic noddy tests calling the hooks from the connection_time plugin,
    doesn't really test anything aside from ensuring the code actually runs
    damoxc committed Dec 14, 2011
  2. tests: add useful helpers to common

    Create a bunch of useful helpers to the tests common module that should
    make it easier to test plugins as well as the connection module.
    damoxc committed Dec 14, 2011
Commits on Dec 13, 2011
  1. tests: move the stub plugins directory

    Since there will be tests added for actual plugins which the plugins
    directory is more suited for so more the stub plugins in preparation
    for this.
    damoxc committed Dec 13, 2011
Commits on Oct 11, 2011
  1. connection: fix unknown commands

    Entering an known command was causing an internal server
    error so fix that as we don't want clients being able
    to break the server
    damoxc committed Oct 11, 2011
  2. connection: support mail size param

    This adds support for checking the SIZE parameter supplied with
    the MAIL command when talking ESMTP. It gives us the chance to
    decline to receive the message early on if it's too large,
    instead of waiting until we have received our datalimit.
    damoxc committed Oct 11, 2011
  3. hooks: change log level to debug

    Knowing when hooks are dispatching is only really useful for
    debugging and development, so make it so they don't fill up
    the log with noise
    damoxc committed Oct 11, 2011
  4. plugins: add a couple more plugins

    Port the check_spamhelo plugin over from qpsmtpd along with
    the connection_time plugin. The connection_time plugin still
    needs the ability to switch the log level adding in
    damoxc committed Oct 11, 2011
Commits on Oct 10, 2011
  1. plugins: update check_norelay docs

    Ensure they match what the code actually does
    damoxc committed Oct 10, 2011
  2. connection: allow setting of the relay_client property

    This is required for the check_relay and check_norelay plugins to
    function correctly.
    damoxc committed Oct 10, 2011
  3. plugins: add check_norelay plugin

    Port over the check_norelay plugin over from qpsmtpd
    damoxc committed Oct 10, 2011
  4. plugins: add description for check_loop

    Copy across the description from qpsmtpd for the check_loop
    plugin so when we have some infrastructure for generating
    documentation we can have a nice section for all our plugins
    damoxc committed Oct 10, 2011
  5. plugins: port over the check_loop plugin

    Convert the check_loop plugin that checks a messages
    headers to see if the message is looping through mail
    systems and deny it if it is.
    damoxc committed Oct 10, 2011
  6. daemon: adjust logging format slightly

    Change the default logging format for the daemon ever so slightly
    so it's more aligned. Not perfect but a start
    damoxc committed Oct 10, 2011
Commits on Sep 20, 2011
  1. transaction: fix tests, add some logging

    With the changes to the transaction module, adding the Spool
    and header parser, the API changed which broke the tests. Fix
    the tests by using the new API. Also add some logging statements
    to the transaction module in the Spool to make debugging easier.
    damoxc committed Sep 20, 2011
Commits on Sep 19, 2011
  1. plugins/queue: add smtp forwarding plugin

    Add a plugin that simply forwards the message to another MTA that
    is able to forward on or deliver the message.
    damoxc committed Sep 19, 2011
  2. connection: implement data and queue handling

    Add the first revision of the data and queue handling within
    the vsmtpd core. There's still some things to figure out but
    this is a big step forward now. A message can actually be
    sent using vsmtpd at this point in time.
    damoxc committed Sep 19, 2011
  3. hooks: halt the hook execution

    Allow plugin hooks to halt the execution of hook execution. Prior
    to this hook execution would only halt if there was a hook
    exception. No positive results were taken notice of.
    damoxc committed Sep 19, 2011
  4. transaction: make the spool iterable

    Add the __iter__ method to allow the Spool to be treated like a
    normal file-like object.
    damoxc committed Sep 19, 2011
  5. daemon: fix a name error

    Simple typo, should have been plugin_name, not plugin_Name.
    damoxc committed Sep 19, 2011
  6. plugins: add geoip plugin

    Port over the geoip plugin from qpsmtpd. Requires the official
    geoip bindings.
    damoxc committed Sep 19, 2011
Commits on Sep 17, 2011
  1. transaction: improve message parsing

    Use a subclass of email.message.Message that adds a new method,
    insert_header. This new method allows inserting headers into any
    position within the message headers.
    damoxc committed Sep 17, 2011
  2. daemon: correctly kill workers and socket

    Send TERM to the worker processes instead of INT so they shutdown
    properly. Also shutdown the socket for read and write prior to
    closing it.
    damoxc committed Sep 17, 2011
  3. transaction: create a new file-like spool

    Instead of having proxy methods and handling everything within
    the transaction object, create a new Spool object that wraps
    either StringIO or a NamedTemporaryFile, providing support for
    flushing to disk and extracting the headers from a message.
    damoxc committed Sep 17, 2011
Commits on Sep 11, 2011
  1. connection: handle sending responses in the comms

    Move the responsibility of sending back responses to the
    communications loop. Have the commands return the following:
    int code[, str message[, bool disconnect]]
    This makes it less likely to leave a conversation hanging in the
    middle due to a buggy command. If a command returns, something will
    be sent back to the client.
    damoxc committed Sep 11, 2011