summaryrefslogtreecommitdiff
path: root/app-mobilephone/sobexsrv/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /app-mobilephone/sobexsrv/files
reinit the tree, so we can have metadata
Diffstat (limited to 'app-mobilephone/sobexsrv/files')
-rw-r--r--app-mobilephone/sobexsrv/files/conf.d_sobexsrv35
-rw-r--r--app-mobilephone/sobexsrv/files/init.d_sobexsrv58
-rw-r--r--app-mobilephone/sobexsrv/files/sobexsrv-1.0.1-openobex16.patch49
3 files changed, 142 insertions, 0 deletions
diff --git a/app-mobilephone/sobexsrv/files/conf.d_sobexsrv b/app-mobilephone/sobexsrv/files/conf.d_sobexsrv
new file mode 100644
index 000000000000..1afdc0c772e3
--- /dev/null
+++ b/app-mobilephone/sobexsrv/files/conf.d_sobexsrv
@@ -0,0 +1,35 @@
+# /etc/conf.d/sobexsrv
+# Config file for sobexsrv daemon
+
+# owner of sobexsrv process (don't change, must be existing)
+USER="sobexsrv"
+GROUP="sobexsrv"
+
+# Incomming of pushed files
+INBOX="/var/spool/sobexsrv"
+
+# chroot to INBOX.
+# *NEEDS* the binary to be suid root (not installed by default).
+#CHROOT="yes"
+
+# Listen on the specified RFCOMM channel. If this option is not specified the
+# first available channel will be used. Legal range for channel is 1-31 and 0
+# to force auto selection of first available channel.
+CHANNEL="10"
+
+# Set Bluetooth security mode-2 level. Legal values are: 1 (insecure) every-
+# body can connect, 2 authentication required and 3 authentication and encryp-
+# tion required.
+SECURITY_LEVEL="2"
+
+# Don't register OPUSH service at local ServiceDiscoveryProtocol Server.
+#DISABLE_OPUSH="yes"
+# Don't register OBEX-FTP service at local ServiceDiscoveryProtocol Server.
+DISABLE_OBEXFTP="yes"
+DISABLE_OBEXFTP_LISTING="yes"
+
+# Enable transfer log via syslog(8).
+USE_SYSLOG="yes"
+
+# Additional options. See sobexsrv(8)
+#SOBEXSRV_OPT="-l NPTD -m /etc/sobexsrv-mime"
diff --git a/app-mobilephone/sobexsrv/files/init.d_sobexsrv b/app-mobilephone/sobexsrv/files/init.d_sobexsrv
new file mode 100644
index 000000000000..e02530314ca8
--- /dev/null
+++ b/app-mobilephone/sobexsrv/files/init.d_sobexsrv
@@ -0,0 +1,58 @@
+#!/sbin/openrc-run
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need bluetooth
+ use logger
+}
+
+check_config() {
+ if [ -z "${USER}" ] ; then
+ eerror "Please set \$USER in /etc/conf.d/sobexsrv!"
+ return 1
+ fi
+ if [ -z "${GROUP}" ] ; then
+ eerror "Please set \$GROUP in /etc/conf.d/sobexsrv!"
+ return 1
+ fi
+
+ if [ ${CHROOT} = "yes" ] ; then
+ if [ ! -u /usr/bin/sobexsrv ] ; then
+ eerror "The \$CHROOT option requires /usr/bin/sobexsrv to be suid root!"
+ return 1
+ fi
+ fi
+
+ if [ -z "${INBOX}" ] || [ ! -e "${INBOX}" ] ; then
+ eerror "Please configure \$INBOX correctly in /etc/conf.d/sobexsrv!"
+ return 1
+ fi
+}
+
+
+start() {
+ check_config || return 1
+
+ ebegin "Starting sobexsrv"
+
+ OPTIONS=""
+ [ -n "${CHANNEL}" ] && OPTIONS="${OPTIONS} -c ${CHANNEL}"
+ [ -n "${SECURITY_LEVEL}" ] && OPTIONS="${OPTIONS} -s ${SECURITY_LEVEL}"
+ [ "${CHROOT}" = "yes" ] && OPTIONS="${OPTIONS} -R"
+ [ "${DISABLE_OPUSH}" = "yes" ] && OPTIONS="${OPTIONS} -o"
+ [ "${DISABLE_OBEXFTP}" = "yes" ] && OPTIONS="${OPTIONS} -f"
+ [ "${DISABLE_OBEXFTP_LISTING}" = "yes" ] && OPTIONS="${OPTIONS} -F"
+ [ "${USE_SYSLOG}" = "yes" ] && OPTIONS="${OPTIONS} -S"
+
+ OPTIONS="-I -r ${INBOX} ${OPTIONS} ${SOBEXSRV_OPT}"
+
+ start-stop-daemon --chuid ${USER}:${GROUP} --start --quiet --exec /usr/bin/sobexsrv -- $OPTIONS
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping sobexsrv"
+ start-stop-daemon --stop --quiet --exec /usr/bin/sobexsrv
+ eend $?
+}
diff --git a/app-mobilephone/sobexsrv/files/sobexsrv-1.0.1-openobex16.patch b/app-mobilephone/sobexsrv/files/sobexsrv-1.0.1-openobex16.patch
new file mode 100644
index 000000000000..57fff87e4d2b
--- /dev/null
+++ b/app-mobilephone/sobexsrv/files/sobexsrv-1.0.1-openobex16.patch
@@ -0,0 +1,49 @@
+--- sobexsrv-1.0.1/src/obexsrv.c.orig 2016-06-13 01:59:28.000000000 +0300
++++ sobexsrv-1.0.1/src/obexsrv.c 2016-06-13 12:20:15.501101147 +0300
+@@ -32,6 +32,10 @@
+ #include <langinfo.h>
+ #include <assert.h>
+
++#if ((OPENOBEX_VERSION_MAJOR==1) && (OPENOBEX_VERSION_MINOR>=6))
++#include <string.h>
++#endif
++
+ #include "obexsrv.h"
+ #include "util.h"
+ #include "sdp.h"
+@@ -46,7 +50,8 @@
+
+ void UnicodeToChar(uint8_t *c, const uint8_t *uc, int size)
+ {
+- iconv_t dsc = iconv_open(nl_langinfo(CODESET),"UTF16BE");
++ char *lang = nl_langinfo(CODESET);
++ iconv_t dsc = iconv_open(lang,"UTF16BE");
+ size_t isiz,osiz;
+ char *ip = (char*)uc;
+ char *op = (char*)c;
+@@ -54,7 +59,25 @@
+
+ if (iconv(dsc,&ip,&isiz,&op,&osiz) == -1) {
+ debug_printf("iconv: error %s\n", strerror(errno));
++#if ((OPENOBEX_VERSION_MAJOR==1) && (OPENOBEX_VERSION_MINOR>=6))
++ // try to convert ignoring errors
++ iconv_close(dsc);
++ debug_printf("iconv: characters that cannot be converted will be discarded\n");
++
++ // append "//IGNORE"
++ const char *const suf = "//IGNORE";
++ size_t len = strlen(lang);
++ char *cd = malloc(len + 9);
++ memcpy(cd, lang, len);
++ memcpy(cd+len, suf, 8);
++ cd[len+8] = '\0';
++
++ dsc = iconv_open(cd,"UTF16BE");
++ iconv(dsc,&ip,&isiz,&op,&osiz);
++ free(cd);
++#else
+ OBEX_UnicodeToChar(c,uc,size);
++#endif
+ }
+ iconv_close(dsc);
+ }