Skip to content
Commits on Sep 18, 2013
  1. update contributors list

    i'm not the maintainer anymore.
Commits on Apr 3, 2013
  1. @abrasive

    Revert "socketlib: properly fix the IPv6 to IPv4 fallback code."

    abrasive committed
    This reverts commit 0847706, which
    caused failures as reported in github issue #189. Hopefully this does
    not break it for other users again...
Commits on Mar 16, 2013
  1. readme: some cleanup

Commits on Mar 13, 2013
  1. @splbio

    Merge pull request #184 from alfredperlstein/master

    splbio committed
    Fixes for ipv4 networks and building on FreeBSD
    This was tested on 32bit Ubuntu 12.10.
Commits on Mar 12, 2013
  1. @ffainelli

    Merge pull request #181 from ffainelli/master

    ffainelli committed
    socketlib: properly fix the IPv6 to IPv4 fallback code.
  2. Merge pull request #167 from mcoms/master

    Verbose mode logs incorrect IP / fix for paths with spaces in
Commits on Feb 22, 2013
  1. @ffainelli

    socketlib: properly fix the IPv6 to IPv4 fallback code.

    ffainelli committed
    With the current code, we do have the following on a system where IPv6
    is completely disabled:
    family not supported by protocol)
    setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
    bind(3, {sa_family=AF_INET6, sin6_port=htons(5002), inet_pton(AF_INET6,
    "::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1
    EAFNOSUPPORT (Address family not supported by protocol)
    The correct fix is to make a new call to getAddr() to ensure that the
    entire struct addrinfo will be correctly filled out again with AF_INET
    this time. This patch fixes.
Commits on Dec 23, 2012
  1. @splbio
  2. @splbio

    Add FreeBSD install instructions.

    splbio committed
  3. @splbio
  4. @splbio
  5. @splbio
  6. @splbio

    allow users to force ipv4 only.

    splbio committed
    add flag '-4' to commands to force ipv4.
    this doesn't work yet because hairtunes unconditionally
    uses ipv6 if available.
Commits on Oct 19, 2012
  1. @mcoms
  2. @mcoms
Commits on Oct 2, 2012
  1. Merge pull request #166 from r10r/master

    Simple fix for passing the name in the init script
Commits on Sep 28, 2012
  1. Merge pull request #165 from jcheng5/patch-1

    Add Net::SDP dependency to
  2. @jcheng5
Commits on Sep 27, 2012
  1. Merge pull request #152 from hendrikw82/master

    ios6 airplay announce message parsing bugfix  - Using Net:SDP
Commits on Sep 2, 2012
  1. @r10r
Commits on Jul 16, 2012
  1. Merge pull request #154 from grefab/master

    JH Laird committed
    Fixes issue #147.
Commits on Jul 15, 2012
  1. @grefab

    Initiating resync when receiving strange packet

    grefab committed
    The packet type 0x56, sequence number 0, containing 4 bytes (the first two are the sequence number of the previously requested packet) initiates a resync. Not sure what this packet is supposed to do, but it occurs after heavy requesting resending of packets. Seems to be an out of sync situation, so resyncing is not the worst idea.
    Signed-off-by: Gregor Fabritius <>
  2. @grefab

    Fixed Issue #147: Segfaults on ShairPort version 0.05 C port

    grefab committed
    When requesting resend of packets a lot, iOS sometimes sends a packet with type 0x56 (Reply to resend request), but with sequence number 0 and length == 4. This short length leads to memory corruption later on when processing the packet: alac_decode() expects at least 16 bytes for AES IV. Therefore the segfault.
    This fix ignores packets with length < 16, as seen in another implementation here:
    Please be aware that this just fixes the segfault. The suspicious packet seems to be an information of an out of sync situation, so it may deserve further attention.
    Signed-off-by: Gregor Fabritius <>
Commits on Jul 8, 2012
  1. Makeing it iOS 6 compatibel using Net:SDP

    hendrikw82 committed
Commits on Jun 3, 2012
  1. Merge pull request #145 from choongng/master

    Play silence while audio is paused.
Commits on Apr 15, 2012
  1. @choongng
Commits on Feb 27, 2012
  1. Merge pull request #140 from timdoug/howl-support

    JH Laird committed
    Add support for mDNSPublish, from the howl zeroconf implementation.
  2. @timdoug

    Add support for mDNSPublish, from the howl zeroconf implementation.

    timdoug committed
    Howl hasn't been actively developed for some years now; their website 404s,
    and the Wayback Machine archive of 2008 says it's dead.[1] Yet it's still
    functional and is much smaller than dbus and avahi, which makes it useful
    for embedded systems. In fact, OpenWrt has not dropped support for the howl
    tools, and it's because of howl that I can fit a functional shairport and
    supporting libraries and kernel onto the 4MB of flash in a TP-LINK
Commits on Feb 26, 2012
  1. Merge pull request #139 from toofishes/math

    JH Laird committed
    hairtunes: math and dithering optimisations
Commits on Feb 25, 2012
  1. @toofishes

    hairtunes: implement a simple LCG-based RNG for dithering

    toofishes committed
    We are calling out to libc's rand() function, which has significant
    overhead, especially since we are calling it 88200 times per second
    (2 channels * 44100 samples).
    Implement a very simple linear congruential generator in our code that
    is plenty good enough for dithering purposes, and small enough for the
    compiler to optimize and inline.
  2. @toofishes

    hairtunes: simplify and reorganize some floating point operations

    toofishes committed
    The math operations are all equivalent, but are simplified a bit for the
    benefit of processors with slower floating point performance.
    * Don't use float casts when we need to eventually convert to double
      precision anyway.
    * Use multiplication instead of division when possible.
Commits on Feb 24, 2012
  1. Merge pull request #138 from toofishes/cleanup

    Cleanup, optimization, and bug fixes
  2. @toofishes

    Tabs to spaces conversion

    toofishes committed
  3. @toofishes

    Use static where appropriate in shairport.c

    toofishes committed
    Most functions don't need to be public outside of this file, so move all
    the forward declarations out of shairport.h.
  4. @toofishes
Something went wrong with that request. Please try again.