+++ /dev/null
-#
-# Copyright (C) 2013 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=xupnpd
-PKG_REV:=398
-PKG_VERSION:=$(PKG_REV)
-PKG_RELEASE:=1
-
-PKG_SOURCE_PROTO:=svn
-PKG_SOURCE_VERSION:=$(PKG_REV)
-PKG_SOURCE_SUBDIR:=xupnpd-$(PKG_VERSION)
-PKG_SOURCE_URL:=http://tsdemuxer.googlecode.com/svn/trunk/xupnpd/src/
-PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz
-
-include $(INCLUDE_DIR)/package.mk
-
-LUA_FLAGS:=-llua
-
-define Build/Compile
- (cd $(PKG_BUILD_DIR); $(TARGET_CC) -v $(LUA_FLAGS) $(TARGET_CFLAGS) -fno-exceptions -fno-rtti -DWITH_URANDOM $(TARGET_CPPFLAGS) $(TARGET_LDFLAGS) -lm -ldl -lcrypt -o xupnpd *.c *.cpp)
-endef
-
-define Package/xupnpd
- SECTION:=multimedia
- CATEGORY:=Multimedia
- DEPENDS:=+liblua
- TITLE:=eXtensible UPnP agent
- URL:=http://xupnpd.org/
-endef
-
-define Package/xupnpd/conffiles
-/usr/share/xupnpd/xupnpd.lua
-/usr/share/xupnpd/config
-/usr/share/xupnpd/playlists
-endef
-
-define Package/xupnpd/description
-xupnpd - eXtensible UPnP agent
-This program is a light DLNA Media Server which provides ContentDirectory:1 service for sharing IPTV unicast streams over local area network (with udpxy for multicast to HTTP unicast conversion).
-The program shares UTF8-encoded M3U playlists with links over local area network as content of the directory.
-You can watch HDTV broadcasts (multicast or unicast) and listen Internet Radio in IP network without transcoding and PC.
-endef
-
-define Package/xupnpd/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/xupnpd $(1)/usr/bin
- $(INSTALL_DIR) $(1)/etc/init.d
- $(INSTALL_BIN) ./files/xupnpd.init $(1)/etc/init.d/xupnpd
- $(INSTALL_DIR) $(1)/usr/share/xupnpd
- $(CP) $(PKG_BUILD_DIR)/*.lua $(1)/usr/share/xupnpd
- $(INSTALL_DIR) $(1)/usr/share/xupnpd/ui
- $(CP) $(PKG_BUILD_DIR)/ui/* $(1)/usr/share/xupnpd/ui
- $(INSTALL_DIR) $(1)/usr/share/xupnpd/www
- $(CP) $(PKG_BUILD_DIR)/www/* $(1)/usr/share/xupnpd/www
- $(INSTALL_DIR) $(1)/usr/share/xupnpd/playlists
- $(INSTALL_DIR) $(1)/usr/share/xupnpd/plugins
- $(CP) $(PKG_BUILD_DIR)/plugins/* $(1)/usr/share/xupnpd/plugins
- $(INSTALL_DIR) $(1)/usr/share/xupnpd/config
- $(INSTALL_DIR) $(1)/etc/xupnpd
- (cd $(1)/etc/xupnpd; ln -s ../../usr/share/xupnpd/config ./; ln -s ../../usr/share/xupnpd/xupnpd.lua ./)
- $(INSTALL_DIR) $(1)/usr/share/xupnpd/localmedia
-endef
-
-$(eval $(call BuildPackage,xupnpd))
+++ /dev/null
---- a/main.cpp
-+++ b/main.cpp
-@@ -4,11 +4,14 @@
- * https://tsdemuxer.googlecode.com/svn/trunk/xupnpd
- */
-
-+#include <ctype.h>
- #include <stdio.h>
- #include <syslog.h>
- #include <string.h>
- #include <unistd.h>
- #include <stdlib.h>
-+#include <sys/stat.h>
-+#include <sys/types.h>
- #include "luacompat.h"
- #include "luaxlib.h"
- #include "luaxcore.h"
-@@ -16,35 +19,36 @@
-
- int main(int argc,char** argv)
- {
-- const char* p=strrchr(argv[0],'/');
--
-- int rc;
--
-- if(p)
-- {
-- char location[512];
-- int n=p-argv[0];
-- if(n>=sizeof(location))
-- n=sizeof(location)-1;
-- strncpy(location,argv[0],n);
-- location[n]=0;
--
-- rc=chdir(location);
--
-- argv[0]=(char*)p+1;
-- }
--
-- const char* root=getenv("XUPNPDROOTDIR");
-- if(root && *root)
-- rc=chdir(root);
--
-- {
-- FILE* fp=fopen("xupnpd.lua","r");
-- if(fp)
-- fclose(fp);
-- else
-- rc=chdir("/usr/share/xupnpd/");
-- }
-+ int c;
-+ char *xupnpd_root = "/usr/share/xupnpd/";
-+ struct stat s;
-+
-+ opterr = 0;
-+ while ((c = getopt (argc, argv, "d:")) != -1) {
-+ switch (c) {
-+ case 'd':
-+ xupnpd_root = optarg;
-+ break;
-+ case '?':
-+ if (optopt == 'd')
-+ fprintf(stderr, "Option -%c requires an argument.\n", optopt);
-+ else if (isprint(optopt))
-+ fprintf(stderr, "Unknown option \"-%c\".\n", optopt);
-+ else
-+ fprintf(stderr, "Unknown option\n");
-+ return 1;
-+ default:
-+ abort();
-+ }
-+ }
-+
-+ if(stat(xupnpd_root, &s) != -1 && S_ISDIR(s.st_mode)) {
-+ c = chdir(xupnpd_root);
-+ }
-+ else {
-+ fprintf(stderr, "Directory %s doesn't exist.\n", xupnpd_root);
-+ return 1;
-+ }
-
- lua_State* L=lua_open();
- if(L)