Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Branch: master
Commits on Feb 22, 2012
  1. @ppolv

    Fix typo (lists:ketytake)

    ppolv authored
  2. @ppolv

    Fix typo in last fix

    ppolv authored
  3. @abhinavsingh @ppolv

    fix for EXMPP-62

    abhinavsingh authored ppolv committed
    (cherry picked from commit f628113)
Commits on Feb 3, 2012
  1. @jpcarlino
Commits on Feb 2, 2012
  1. @ppolv

    Add timeout option to connect() and login() calls

    ppolv authored
    Add a new option {timeout, Timeout} to
    connect_tcp/4, connect_bosh/4 and connect_ssl/4
    Add a Timeout parameter to login() calls:
    login(Session, Timeout).
    login(Session, Mechanism, Timeout).
Commits on Dec 23, 2011
  1. @badlop
Commits on Dec 19, 2011
  1. @cosgroveb @badlop

    OSX Lion compatibility

    cosgroveb authored badlop committed
Commits on Dec 16, 2011
  1. @badlop

    R15 compatibility.

    authored badlop committed
    R15B introduced some incompatible changes in driver interface.
    Some driver callbacks started using ErlDrvSizeT and ErlDrvSSizeT
    typedef instead of int.
    This patch changes callbacks to use the new typedefs and provides
    compatibility fallbacks for older OTP versions.
Commits on Oct 4, 2011
  1. @badlop

    Protection against billion laughs attack in legacy expat driver.

    authored badlop committed
    Disable entity expansion completely.
  2. @badlop

    Fix libxml2 parser.

    authored badlop committed
    Add missing call to reset_context() while resetting parser.
    Fix exmpp hash table in case of -1 length (strcmp() result
    was not compared against 0) which caused check_elems/check_nss
    not to work for libxml2.
  3. @badlop

    Use exmpp_strdup() in libxml2 driver.

    authored badlop committed
  4. @badlop

    Use Erlang memory allocation functions in XML parsers.

    authored badlop committed
    Direct all XML parsers to use Erlang memory allocation functions
Commits on Sep 29, 2011
  1. @ppolv

    Add whitespace ping for client sessions

    ppolv authored
    IF the option {whitespace_ping, Seconds} is
    passed to connect_TCP or connect_SSL,
    then send "\n" on the socket if inactive for that
Commits on Sep 26, 2011
  1. @badlop
Commits on Sep 20, 2011
  1. @badlop

    Enable ECDHE only on OpenSSL 1.0.0e and later.

    authored badlop committed
    Earlier versions of OpenSSL have security problems with ECDHE.
    See for details.
  2. @badlop

    Disable weak ciphers in OpenSSL driver.

    authored badlop committed
  3. @badlop

    Guard ephemeral DH with ifdefs.

    authored badlop committed
  4. @badlop

    Support for ECDHE in OpenSSL driver.

    authored badlop committed
    Adds support for ephemeral elliptic curve Diffie–Hellman in OpenSSL
    driver. Works only with OpenSSL 1.0.0 (OpenSSL 0.9.8 is supposed
    to support ECDHE, but it seems not to work).
  5. @badlop

    Initialize driver data with memset.

    authored badlop committed
    Driver data structure was initialized in start() one field at
    a time. This is error prone (in fact, bio_read and bio_write
    were not initialized there). Use memset to initialize the whole
    Additionally, set connection and context structures to NULL in
    error path of init_library().
  6. @badlop

    Enable ephemeral Diffie-Hellman parameters in OpenSSL driver.

    authored badlop committed
    DH parameters (taken from OpenSSL tarball) are hardcoded in
    the source. They are public and this is exactly the same approach
    as taken by various other servers (Apache, nginx).
  7. @badlop

    Decrease CPU usage caused by exmpp_tls:send with large data.

    authored badlop committed
    Sending one large chunk of data with exmpp_tls:send eats lots of
    CPU power and blocks whole Erlang emulator. This is caused by the
    fact that encrypted output is read from memory BIO in 1k chunks.
    Memory BIO, after reading data, shifts the remaining part.
    If large chunks of data (few MB) is sent and then read in 1k
    chunks, then a _lot_ of shifting is performed eating CPU.
    The solution is to simply allocate binary of the needed size
    (amount of data in memory BIO can be retrieved with
    BIO_ctrl_pending) and then issue only one read that reads the
    whole data.
  8. @badlop

    Disable SSL 2.0 and session cache in OpenSSL driver

    authored badlop committed
    SSL 2.0 has security flaws and is deprecated for many years.
    Session cache currently does not work anyway (as new SSL
    context is made for every connection) so disable it.
    Additionaly, instruct OpenSSL to free network buffers on idle
    connections (this is available only in OpenSSL 1.0.0).
Commits on Sep 18, 2011
  1. @badlop
Commits on Sep 12, 2011
  1. @badlop

    Fix compatibility with R12B5

    authored badlop committed
    There is no min/2 function in R12B5.
  2. @badlop

    Use extended marker and driver versioning without SMP support.

    authored badlop committed
    Extended marker indicates that driver supports additional flags
    like versioning and port level locking. Currently it was only
    used when SMP support was enabled. Versioning seems like a nice
    feature and has nothing to do with SMP (and is present in R12B5)
    so enable it regardless of SMP support.
  3. @badlop

    Fix memory leaks in OpenSSL TLS driver.

    authored badlop committed
    SSL context and connection structures were never freed.
    Additionally, trusted_certs also was never freed.
  4. @badlop

    Enable port level locking in zlib compression driver.

    authored badlop committed
    zlib is thread-safe (as long as memory allocation functions it
    uses are thread safe) so enable port level locking in zlib
    compression driver.
  5. @badlop

    Use ERTS allocation functions in exmpp_compress_zlib

    authored badlop committed
    exmpp_compress_zlib now configures zlib to use ERTS
    allocation functions (driver_alloc/driver_free)
    which are guaranteed to be thread-safe.
  6. @badlop

    Eliminate lock contention on stringprep port

    authored badlop committed
    exmpp_stringprep module used to open only one port, so there
    was still a lot of lock contention on port access.
    Now it opens as many ports as there are scheduler threads
    (as described in Erlang Efficiency Guide).
  7. @badlop

    Enable port level locking for OpenSSL TLS driver.

    authored badlop committed
    OTP crypto module is already using OpenSSL and sets some
    global OpenSSL callbacks that are needed to make it thread-safe.
    To avoid problems with own callbacks, start crypto before
    loading OpenSSL driver and enable port level locking if the
    needed callbacks are already set.
  8. @badlop

    Enable port level locking in stringprep driver.

    authored badlop committed
    By default Erlang uses driver level locking.
    However, it seems there is no reason for stringprep driver not to
    use port level locking, thus reducing lock contention.
Commits on Sep 2, 2011
  1. @badlop
Commits on Aug 16, 2011
  1. @badlop

    Fixes in exmpp_tls:get_peer_certificate/1 (thanks to Janusz Dziemidow…

    badlop authored
    - compatibility with R14
    - fixed case of no certificate
    - documentation update
  2. @badlop

    Functions to retrieve latest "Finished" SSL message (thanks to Janusz…

    badlop authored
    … Dziemidowicz)(EXMPP-58)
Commits on Aug 6, 2011
  1. @ebustos

    Fixed author email address

    ebustos authored
Something went wrong with that request. Please try again.