Switch branches/tags
Commits on Jan 2, 2017
  1. _ZNotice_p2c: Declare type for charset

    andersk committed with timabbott Jan 1, 2017
    This is needed since _ZCharsets isn’t a real type.  Fixes this build
    _zephyr.c: In function ‘__pyx_f_7_zephyr__ZNotice_p2c’:
    _zephyr.c:2913:19: error: storage size of ‘__pyx_v_charset’ isn’t known
       enum _ZCharsets __pyx_v_charset;
    Signed-off-by: Anders Kaseorg <>
Commits on Oct 14, 2013
  1. Merge pull request #4 from dehnert/charset

    timabbott committed Oct 14, 2013
    Improve charset support
  2. Merge pull request #5 from dehnert/finish-cython

    timabbott committed Oct 14, 2013
    Update README to talk about Cython
  3. Switch README from Pyrex to Cython

    dehnert committed Oct 12, 2013
    In 41015a2, Nelson converted from Pyrex to Cython. This updates the
    README as well.
Commits on Oct 12, 2013
Commits on Jan 2, 2013
  1. Fix memory leak on receive path.

    timabbott committed Jan 2, 2013
    receive() attempts to avoid memory management by using a local
    variable "notice" as the storage area for the Zephyr notice object.
    However, one still needs to call ZFreeNotice on the object at the end,
    to free notice->z_packet.
  2. Merge pull request #2 from dehnert/master

    timabbott committed Jan 2, 2013
    Use shorter default format
  3. Merge pull request #1 from nelhage/pypy

    timabbott committed Jan 2, 2013
    PyPy support
Commits on Jan 1, 2013
  1. Use a shorter default format

    dehnert committed with Debothena Jan 1, 2013
    This may have practical advantages when the zephyr header is otherwise quite
    long. It should have negligible functional impact, since current clients mostly
    ignore the field (paying attention to it is a security risk). The particular
    default format this uses is a link to a page that will explaining (for any
    clients that *do* show it) why they're seeing it and why that's bad, and is the
    same format used by barnowl and some other clients.
  2. Explicitly hold references to PyObject*s after conversion to char*.

    nelhage committed Dec 3, 2012
    If we are holding onto the char* version of a PyObject*, we need to
    hold a reference to that PyObject itself. In CPython, the previous
    code generally works because the ZNotice object would hold a reference
    from __dict__. This assumption is not true in PyPy, and would also
    break in weirder cases like someone subclassing ZNotice and replacing
    'cls' with a property.
    We can't just hold the objects in a Python list, because again, in
    PyPy, that results in conversion to PyPy's internal format, which does
    not hold onto the specific PyObject* generated by cpyext. So instead,
    write some C code to maintain an object pool of objects to which we
    need references.
Commits on Dec 2, 2012
  1. Switch from Pyrex to Cython.

    nelhage committed Dec 2, 2012
    Cython is a fork that is better-maintained, and has better PyPy
    support. PyZephyr is simple enough that the switch appears to require
    no code changes.
Commits on Nov 28, 2012
  1. Remove trailing whitespace.

    timabbott committed Nov 28, 2012
Commits on Nov 25, 2011
  1. Don't assume zephyr messages are UTF-8 on the wire

    ebroder committed Nov 25, 2011
    Older clients have a tendency to send latin-1 on the wire, and the
    zephyr protocol itself does not require an explicit
    encoding. Therefore, make encoding and decoding the responsibility of
    the application using PyZephyr.
    (PyZephyr will to continue to encode a unicode string to UTF-8 before
    sending it if that is handed in)
    Reported-by: Arun A. Tharuvai <>
  2. Add a _zephyr.subAll function to handle subscription entirely in C

    ebroder committed Nov 25, 2011
    Reported-by: Arun A. Tharuvai <>
Commits on Jan 17, 2010
  1. Why am I explicitly linking against krb4?

    ebroder committed Jan 17, 2010
    It makes PyZephyr FTBFS on post-1.7 krb5.
Commits on Nov 19, 2009
Commits on May 16, 2009
  1. Tag a version 0.2.0.

    ebroder committed May 16, 2009
  2. Don't block unnecessarily in receive().

    nelhage committed May 16, 2009
    If code other than receive() ends up calling ZWaitForNotice or similar
    routines, then there may be zephyrs in the internal Zephyr queue, but no
    data available on the Zephyr FD. Therefore, before we assume we need to
    block to receive notices, we need to check ZPending() and process any
    queued notices.
Commits on Apr 23, 2009
Commits on Mar 14, 2009
  1. If _zephyr.receive is called with block=True, run our own select loop.

    ebroder committed Mar 14, 2009
    The one in ZReceiveNotice times out eventually.
Commits on Feb 13, 2009
  1. Prevent encoded_message from being freed too early.

    andersk committed Feb 13, 2009
    Signed-off-by: Anders Kaseorg <>
Commits on Nov 29, 2008
  1. Fix for timeval conversion on 64-bit systems

    ebroder committed Nov 29, 2008
    Instead of using a function to convert between struct timeval and a
    Python float, inline the necessary code in the ZUid and ZNotice
    On 64-bit Debian systems, this would result in a struct _ZTimeval
    being cast to a struct timeval, which just didn't work like you would
Commits on Nov 27, 2008
  1. Don't set __slots__ on Pyrex classes.

    ebroder committed Nov 27, 2008
    While it's certainly a nice idea and a good easy way to figure out
    what fields the class should have, classes created in Pyrex, even if
    they inherit from object, don't respect the __slots__ attribute.
  2. Apparently Redhat-based systems don't have _ZTimeval

    ebroder committed Nov 27, 2008
    They use timeval instead. And Debian-based systems will work if you
    use timeval instead of _ZTimeval, they'll just whine at you
Commits on Nov 2, 2008
  1. Release version 0.1.0

    ebroder committed Nov 2, 2008
  2. Ignore the egg-info directory

    ebroder committed Nov 2, 2008
Commits on Oct 8, 2008
Commits on Oct 1, 2008