shairport: Update shairport to final version 1.0

James Laird (abrasive), together with some other developers, has updated
shairport fixing several bugs and adding several improvements.
https://github.com/abrasive/shairport/tree/master

This patch changes the package source to his repo and deletes the unneeded IPv6
patch.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
[florian: fix subject and reformat commit message]
Signed-off-by: Florian Fainelli <florian@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/packages@40720 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
florian 2014-05-08 00:57:29 +00:00
parent 1e2419b7d2
commit 020f457c38
3 changed files with 7 additions and 116 deletions

View File

@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=shairport
PKG_VERSION:=2012-10-20
PKG_VERSION:=2013-10-26
PKG_RELEASE:=$(PKG_SOURCE_VERSION)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=git://github.com/albertz/shairport.git
PKG_SOURCE_URL:=git://github.com/abrasive/shairport.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=4746bb11395d171ee800f074f489c42020a84932
PKG_SOURCE_VERSION:=b2c7bf111c1446739af9411d8a35acd9b6581b06
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
include $(INCLUDE_DIR)/package.mk
@ -22,7 +22,8 @@ include $(INCLUDE_DIR)/package.mk
define Package/shairport
SECTION:=multimedia
CATEGORY:=Multimedia
DEPENDS:=+libpthread +avahi-utils +libopenssl +libao
DEPENDS:=+libpthread +avahi-utils +libopenssl +libao +libavahi-client \
+alsa-utils
TITLE:=ShairPort AirPort Express emulator
endef
@ -38,7 +39,7 @@ endef
TARGET_CFLAGS += $(FPIC)
LIBS:=-lao -lm -lcrypto -lpthread
LIBS:=-lao -lm -lcrypto -lpthread -lavahi-common -lavahi-client -lasound
MAKE_FLAGS += \
CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \

View File

@ -8,15 +8,13 @@ config_shairport() {
local args=""
config_get name "$cfg" name
config_get password "$cfg" password
config_get port "$cfg" port
config_get buffer "$cfg" buffer
[ -z $name ] && name="AirPort"
args="$args -a $name"
[ ! -z "$password" ] && args="$args -p $password"
[ ! -z "$port" ] && args="$args -o $port"
[ ! -z "$port" ] && args="$args -p $port"
[ -z $buffer ] && buffer="256"
args="$args -b $buffer"

View File

@ -1,108 +0,0 @@
diff --git a/socketlib.c b/socketlib.c
index 9efdf22..eb44bcf 100644
--- a/socketlib.c
+++ b/socketlib.c
@@ -39,9 +39,11 @@
#include <openssl/bio.h>
#include <openssl/buffer.h>
-int common_setup(struct addrinfo *pAddrInfo)
-{
+int common_setup(struct addrinfo **ppAddrInfo, int pPort)
+{
int tSock;
+ struct addrinfo *pAddrInfo = *ppAddrInfo;
+
//printAddrs(pAddrInfo);
tSock = socket(pAddrInfo->ai_family, pAddrInfo->ai_socktype, 0);
#ifdef AF_INET6
@@ -49,7 +51,17 @@ int common_setup(struct addrinfo *pAddrInfo)
{
//Fallback to ipv4
perror("Failed to create ipv6 socket. Trying ipv4");
- pAddrInfo->ai_family = AF_INET;
+ (*ppAddrInfo)->ai_family = AF_INET;
+ if (pPort != -1)
+ {
+ char tService[SERVLEN];
+ sprintf(tService, "%d", pPort); // copies port to string
+ int tFamily = AF_INET;
+ if(getAddr(NULL, tService, tFamily, SOCK_STREAM, ppAddrInfo))
+ {
+ return ERROR; // getAddr prints out error message
+ }
+ }
tSock = socket(pAddrInfo->ai_family, pAddrInfo->ai_socktype, 0);
}
#endif
@@ -63,7 +75,7 @@ int setup_client(struct addrinfo *server_host)
while(tIdx++ < RETRY_COUNT)
{
- tSockDesc = common_setup(server_host);
+ tSockDesc = common_setup(&server_host, -1);
if (tSockDesc < 0 && tIdx >= RETRY_COUNT)
{
perror("Error: Could not create socket");
@@ -107,9 +119,23 @@ int getAddr(char *pHostname, char *pService, int pFamily, int pSockType, struct
return tError;
}
-int setup_server(struct addrinfo *server_addr)
+int setup_server(struct addrinfo *server_addr, int pPort)
{
- int tSock = common_setup(server_addr);
+ char tService[SERVLEN];
+ sprintf(tService, "%d", pPort); // copies port to string
+ int tFamily = AF_INET;
+ #ifdef AF_INET6
+ //printf("Listening on IPv6 Socket\n");
+ tFamily = AF_INET6;
+ #else
+ //printf("Listening on IPv4 Socket");
+ #endif
+ if(getAddr(NULL, tService, tFamily, SOCK_STREAM, &server_addr))
+ {
+ return ERROR; // getAddr prints out error message
+ }
+
+ int tSock = common_setup(&server_addr, pPort);
if (tSock < 0)
{
perror("Error: Could not create server socket");
@@ -154,21 +180,7 @@ int acceptClient(int pSock, struct addrinfo *server_addr)
int setupListenServer(struct addrinfo **pAddrInfo, int pPort)
{
- char tService[SERVLEN];
- sprintf(tService, "%d", pPort); // copies port to string
- int tFamily = AF_INET;
- #ifdef AF_INET6
- //printf("Listening on IPv6 Socket\n");
- tFamily = AF_INET6;
- #else
- //printf("Listening on IPv4 Socket");
- #endif
- if(getAddr(NULL, tService, tFamily, SOCK_STREAM, pAddrInfo))
- {
- return ERROR; // getAddr prints out error message
- }
-
- int tSocketDescriptor = setup_server(*pAddrInfo);
+ int tSocketDescriptor = setup_server(*pAddrInfo, pPort);
char tAddr[INET6_ADDRSTRLEN];
socklen_t tSize = INET6_ADDRSTRLEN;
inet_ntop((*pAddrInfo)->ai_family, (*pAddrInfo)->ai_addr, tAddr, tSize);
diff --git a/socketlib.h b/socketlib.h
index 6d501f3..5cb1bf0 100644
--- a/socketlib.h
+++ b/socketlib.h
@@ -24,7 +24,7 @@
#define DEFAULT_UNIX "/unix"
int setup_client(struct addrinfo *server_info);
-int setup_server(struct addrinfo *server_address);
+int setup_server(struct addrinfo *server_address, int pPort);
int setupListenServer(struct addrinfo **pAddrInfo, int pPort);
int acceptClient(int pSock, struct addrinfo *server_addr);
void delay(long pMillisecs, struct timeval *pRes);