Merge branch 't/sync'
authorAndre Noll <maan@systemlinux.org>
Sat, 22 Feb 2014 16:29:10 +0000 (17:29 +0100)
committerAndre Noll <maan@systemlinux.org>
Sat, 22 Feb 2014 16:31:00 +0000 (17:31 +0100)
Cooking since 2014-01-14.

* t/sync:
  The sync filter.
  net: Let maksock() callers perform flowopt cleanup.
  net: makesock_addrinfo(): Make socketfd local to the loop.
  net: Let makesock() continue on setsockopt() failure.
  net: Reduce indentation level in makesock_addrinfo().
  net: Further simplify makesock_addrinfo().
  net: Replace the double loop of lookup_address() by a single loop.
  net: makesock(): Combine code for passive sockets.
  net: Change makesock_addrinfo() to set given flowopts before SO_REUSEADDR.
  net: Clarify code flow of makesock_addrinfo().
  net: Remove unnecessary condition in makesock_addrinfo().
  net: Remove pointless initialization in makesock_addrinfo().
  net: Kill dead code in makesock_addrinfo().
  net: Remove networking headers from para.h.
  net: Improve error handling of makesock_addrinfo().
  net: Split makesock(), part 2: Introduce makesock_addrinfo().
  net: Split makesock(), part 1: Introduce lookup_address().
  net: Simplify makesock().
  net: Fix parse_url().
  net: Correct \return text of parse_url().

NEWS
aac_afh.c
command.c
udp_recv.c

diff --git a/NEWS b/NEWS
index 51d9db7..cc9b67a 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,14 @@
 NEWS
 ====
 
+---------------------------------------------
+0.5.2 (to be announced) "orthogonal interior"
+---------------------------------------------
+
+       - The new sync synchronizes playback between multiple clients.
+       - Major cleanup of the networking subsystem.
+       - Minor fixes to avoid clang warnings.
+
 ------------------------------------------
 0.5.1 (2013-12-20) "temporary implication"
 ------------------------------------------
index 2d04695..1610cb2 100644 (file)
--- a/aac_afh.c
+++ b/aac_afh.c
@@ -111,15 +111,15 @@ static void read_tags(unsigned char *buf, size_t buflen, struct afh_info *afhi)
                q = p + ret + ret2 + 8;
                if (q + size2 > buf + buflen)
                        break;
-               if (!atom_cmp(type1, "©ART"))
+               if (!atom_cmp(type1, "\xa9" "ART"))
                        afhi->tags.artist = get_tag(q, size2);
-               else if (!atom_cmp(type1, "©alb"))
+               else if (!atom_cmp(type1, "\xa9" "alb"))
                        afhi->tags.album = get_tag(q, size2);
-               else if (!atom_cmp(type1, "©nam"))
+               else if (!atom_cmp(type1, "\xa9" "nam"))
                        afhi->tags.title = get_tag(q, size2);
-               else if (!atom_cmp(type1, "©cmt"))
+               else if (!atom_cmp(type1, "\xa9" "cmt"))
                        afhi->tags.comment = get_tag(q, size2);
-               else if (!atom_cmp(type1, "©day"))
+               else if (!atom_cmp(type1, "\xa9" "day"))
                        afhi->tags.year = get_tag(q, size2);
                p += size1;
        }
index 93c6805..fc098b7 100644 (file)
--- a/command.c
+++ b/command.c
@@ -559,6 +559,7 @@ static int send_list_of_commands(struct command_context *cc, struct server_comma
                msg = para_strcat(msg, tmp);
                free(tmp);
        }
+       assert(msg);
        return send_sb(&cc->scc, msg, strlen(msg), SBD_OUTPUT, false);
 }
 
index 5cd9d9d..96b6c73 100644 (file)
@@ -48,7 +48,7 @@ static int udp_check_eof(size_t sz, struct iovec iov[2])
        }
        if (memcmp(iov[0].iov_base, FEC_EOF_PACKET, iov[0].iov_len) != 0)
                return 0;
-       if (memcmp(iov[1].iov_base, FEC_EOF_PACKET + iov[0].iov_len,
+       if (memcmp(iov[1].iov_base, &FEC_EOF_PACKET[iov[0].iov_len],
                        FEC_EOF_PACKET_LEN - iov[0].iov_len) != 0)
                return 0;
        return -E_RECV_EOF;