ASR_BASE

Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/external/subpack/multimedia/xupnpd/patches/101-root_dir_param.patch b/external/subpack/multimedia/xupnpd/patches/101-root_dir_param.patch
new file mode 100644
index 0000000..4dac9d9
--- /dev/null
+++ b/external/subpack/multimedia/xupnpd/patches/101-root_dir_param.patch
@@ -0,0 +1,83 @@
+--- a/src/main.cpp
++++ b/src/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)