Hello community, here is the log from the commit of package dleyna-core for openSUSE:Factory checked in at 2014-08-27 07:46:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/dleyna-core (Old) and /work/SRC/openSUSE:Factory/.dleyna-core.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dleyna-core" Changes: -------- --- /work/SRC/openSUSE:Factory/dleyna-core/dleyna-core.changes 2013-08-27 20:40:55.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.dleyna-core.new/dleyna-core.changes 2014-08-27 07:47:07.000000000 +0200 @@ -1,0 +2,8 @@ +Mon Aug 25 20:46:50 UTC 2014 - [email protected] + +- Update to version 0.4.0: + + Minor bug fixes. +- Rename libdleyna-core-1_0-1 subpackage to libdleyna-core-1_0-3, + following upstreams soname bump. + +------------------------------------------------------------------- Old: ---- dleyna-core-0.1.0.tar.gz New: ---- dleyna-core-0.4.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dleyna-core.spec ++++++ --- /var/tmp/diff_new_pack.E4FcJY/_old 2014-08-27 07:47:08.000000000 +0200 +++ /var/tmp/diff_new_pack.E4FcJY/_new 2014-08-27 07:47:08.000000000 +0200 @@ -1,7 +1,7 @@ # -# spec file for package +# spec file for package dleyna-core # -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -15,18 +15,19 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # + Name: dleyna-core -Version: 0.1.0 +Version: 0.4.0 Release: 0 -License: LGPL-2.1 Summary: Utility functions used by higher level dLeyna libraries -Url: http://01.org/dleyna +License: LGPL-2.1 Group: System/Libraries -Source: https://01.org/dleyna/sites/default/files/downloads/dleyna-core-0.1.0.tar.gz +Url: http://01.org/dleyna +Source: https://01.org/sites/default/files/downloads/dleyna/%{name}-%{version}.tar.gz BuildRequires: pkgconfig(gio-2.0) >= 2.28 BuildRequires: pkgconfig(glib-2.0) >= 2.28 BuildRequires: pkgconfig(gmodule-2.0) >= 2.28 -BuildRequires: pkgconfig(gupnp-1.0) >= 0.19.1 +BuildRequires: pkgconfig(gupnp-1.0) >= 0.20.5 BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -35,11 +36,11 @@ In brief, it provides APIs for logging, error, settings and task management and an IPC abstraction API. -%package -n libdleyna-core-1_0-1 +%package -n libdleyna-core-1_0-3 Summary: Utility functions used by higher level dLeyna libraries Group: System/Libraries -%description -n libdleyna-core-1_0-1 +%description -n libdleyna-core-1_0-3 dleyna-core is a library of utility functions that are used by the higher level dLeyna libraries that communicate with DLNA devices, e.g., dleyna-server. @@ -48,7 +49,7 @@ %package devel Summary: Utility functions used by higher level dLeyna libraries -- Development files Group: Development/Languages/C and C++ -Requires: libdleyna-core-1_0-1 = %{version} +Requires: libdleyna-core-1_0-3 = %{version} %description devel dleyna-core is a library of utility functions that are used by the higher level dLeyna libraries that @@ -67,11 +68,11 @@ %make_install find %{buildroot}%{_libdir} -type f -name '*.la' -delete -print -%post -n libdleyna-core-1_0-1 -p /sbin/ldconfig +%post -n libdleyna-core-1_0-3 -p /sbin/ldconfig -%postun -n libdleyna-core-1_0-1 -p /sbin/ldconfig +%postun -n libdleyna-core-1_0-3 -p /sbin/ldconfig -%files -n libdleyna-core-1_0-1 +%files -n libdleyna-core-1_0-3 %defattr(-,root,root) %doc ChangeLog README COPYING %{_libdir}/libdleyna-core-1.0.so.* @@ -82,5 +83,4 @@ %{_libdir}/libdleyna-core-1.0.so %{_libdir}/pkgconfig/dleyna-core-1.0.pc - %changelog ++++++ dleyna-core-0.1.0.tar.gz -> dleyna-core-0.4.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dleyna-core-0.1.0/ChangeLog new/dleyna-core-0.4.0/ChangeLog --- old/dleyna-core-0.1.0/ChangeLog 2013-06-03 16:02:13.000000000 +0200 +++ new/dleyna-core-0.4.0/ChangeLog 2013-10-03 14:13:40.000000000 +0200 @@ -1,3 +1,15 @@ +version 0.4.0 + - Logs: print correct service name & version + - Fix a bug in the task queue cancellation + - Update coding style documentation + - Settings: new APIs to save quit and white list options + - Remove settings file monitoring + +version 0.2.2 + - Change connector publish_object() signature + - Add network filtering support + - Code cleanup + version 0.1.0 - Prepare for first stable branch diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dleyna-core-0.1.0/Makefile.am new/dleyna-core-0.4.0/Makefile.am --- old/dleyna-core-0.1.0/Makefile.am 2013-06-03 15:15:32.000000000 +0200 +++ new/dleyna-core-0.4.0/Makefile.am 2013-10-03 14:20:49.000000000 +0200 @@ -2,7 +2,7 @@ connectordir = $(libdir)/dleyna-1.0/connectors sysconfigdir = $(sysconfdir) -DLEYNA_CORE_VERSION = 1:2:0 +DLEYNA_CORE_VERSION = 3:0:0 AM_CFLAGS = $(GLIB_CFLAGS) \ $(GIO_CFLAGS) \ @@ -25,7 +25,8 @@ libdleyna/core/service-task.h \ libdleyna/core/settings.h \ libdleyna/core/task-atom.h \ - libdleyna/core/task-processor.h + libdleyna/core/task-processor.h \ + libdleyna/core/white-list.h libdleyna_core_1_0_la_LDFLAGS = -version-info $(DLEYNA_CORE_VERSION) \ @@ -38,7 +39,8 @@ libdleyna/core/main-loop.c \ libdleyna/core/service-task.c \ libdleyna/core/settings.c \ - libdleyna/core/task-processor.c + libdleyna/core/task-processor.c \ + libdleyna/core/white-list.c libdleyna_core_1_0_la_LIBADD = $(GLIB_LIBS) \ $(GIO_LIBS) \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dleyna-core-0.1.0/Makefile.in new/dleyna-core-0.4.0/Makefile.in --- old/dleyna-core-0.1.0/Makefile.in 2013-06-06 11:08:10.000000000 +0200 +++ new/dleyna-core-0.4.0/Makefile.in 2013-10-03 14:22:11.000000000 +0200 @@ -115,7 +115,7 @@ libdleyna/core/connector-mgr.lo libdleyna/core/error.lo \ libdleyna/core/log.lo libdleyna/core/main-loop.lo \ libdleyna/core/service-task.lo libdleyna/core/settings.lo \ - libdleyna/core/task-processor.lo + libdleyna/core/task-processor.lo libdleyna/core/white-list.lo libdleyna_core_1_0_la_OBJECTS = $(am_libdleyna_core_1_0_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -309,7 +309,7 @@ libdleyna_coreincdir = $(includedir)/dleyna-1.0/libdleyna/core connectordir = $(libdir)/dleyna-1.0/connectors sysconfigdir = $(sysconfdir) -DLEYNA_CORE_VERSION = 1:2:0 +DLEYNA_CORE_VERSION = 3:0:0 AM_CFLAGS = $(GLIB_CFLAGS) \ $(GIO_CFLAGS) \ $(GMODULE_CFLAGS) \ @@ -329,7 +329,8 @@ libdleyna/core/service-task.h \ libdleyna/core/settings.h \ libdleyna/core/task-atom.h \ - libdleyna/core/task-processor.h + libdleyna/core/task-processor.h \ + libdleyna/core/white-list.h libdleyna_core_1_0_la_LDFLAGS = -version-info $(DLEYNA_CORE_VERSION) \ -no-undefined @@ -341,7 +342,8 @@ libdleyna/core/main-loop.c \ libdleyna/core/service-task.c \ libdleyna/core/settings.c \ - libdleyna/core/task-processor.c + libdleyna/core/task-processor.c \ + libdleyna/core/white-list.c libdleyna_core_1_0_la_LIBADD = $(GLIB_LIBS) \ $(GIO_LIBS) \ @@ -470,6 +472,8 @@ libdleyna/core/$(DEPDIR)/$(am__dirstamp) libdleyna/core/task-processor.lo: libdleyna/core/$(am__dirstamp) \ libdleyna/core/$(DEPDIR)/$(am__dirstamp) +libdleyna/core/white-list.lo: libdleyna/core/$(am__dirstamp) \ + libdleyna/core/$(DEPDIR)/$(am__dirstamp) libdleyna-core-1.0.la: $(libdleyna_core_1_0_la_OBJECTS) $(libdleyna_core_1_0_la_DEPENDENCIES) $(EXTRA_libdleyna_core_1_0_la_DEPENDENCIES) $(AM_V_CCLD)$(libdleyna_core_1_0_la_LINK) -rpath $(libdir) $(libdleyna_core_1_0_la_OBJECTS) $(libdleyna_core_1_0_la_LIBADD) $(LIBS) @@ -489,6 +493,8 @@ -rm -f libdleyna/core/settings.lo -rm -f libdleyna/core/task-processor.$(OBJEXT) -rm -f libdleyna/core/task-processor.lo + -rm -f libdleyna/core/white-list.$(OBJEXT) + -rm -f libdleyna/core/white-list.lo distclean-compile: -rm -f *.tab.c @@ -500,6 +506,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@libdleyna/core/$(DEPDIR)/service-task.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libdleyna/core/$(DEPDIR)/settings.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libdleyna/core/$(DEPDIR)/task-processor.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@libdleyna/core/$(DEPDIR)/white-list.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dleyna-core-0.1.0/build-aux/ltmain.sh new/dleyna-core-0.4.0/build-aux/ltmain.sh --- old/dleyna-core-0.1.0/build-aux/ltmain.sh 2013-06-06 11:08:08.000000000 +0200 +++ new/dleyna-core-0.4.0/build-aux/ltmain.sh 2013-10-03 14:22:08.000000000 +0200 @@ -70,7 +70,7 @@ # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1ubuntu2 +# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.2ubuntu1 # automake: $automake_version # autoconf: $autoconf_version # @@ -80,7 +80,7 @@ PROGRAM=libtool PACKAGE=libtool -VERSION="2.4.2 Debian-2.4.2-1ubuntu2" +VERSION="2.4.2 Debian-2.4.2-1.2ubuntu1" TIMESTAMP="" package_revision=1.3337 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dleyna-core-0.1.0/configure new/dleyna-core-0.4.0/configure --- old/dleyna-core-0.1.0/configure 2013-06-06 11:08:10.000000000 +0200 +++ new/dleyna-core-0.4.0/configure 2013-10-03 14:22:10.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for dleyna-core 0.1.0. +# Generated by GNU Autoconf 2.69 for dleyna-core 0.4.0. # # Report bugs to <https://github.com/01org/dleyna-core/issues/new>. # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='dleyna-core' PACKAGE_TARNAME='dleyna-core' -PACKAGE_VERSION='0.1.0' -PACKAGE_STRING='dleyna-core 0.1.0' +PACKAGE_VERSION='0.4.0' +PACKAGE_STRING='dleyna-core 0.4.0' PACKAGE_BUGREPORT='https://github.com/01org/dleyna-core/issues/new' PACKAGE_URL='https://01.org/dleyna/' @@ -1345,7 +1345,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures dleyna-core 0.1.0 to adapt to many kinds of systems. +\`configure' configures dleyna-core 0.4.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1415,7 +1415,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of dleyna-core 0.1.0:";; + short | recursive ) echo "Configuration of dleyna-core 0.4.0:";; esac cat <<\_ACEOF @@ -1543,7 +1543,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -dleyna-core configure 0.1.0 +dleyna-core configure 0.4.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2020,7 +2020,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by dleyna-core $as_me 0.1.0, which was +It was created by dleyna-core $as_me 0.4.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2843,7 +2843,7 @@ # Define the identity of the package. PACKAGE='dleyna-core' - VERSION='0.1.0' + VERSION='0.4.0' cat >>confdefs.h <<_ACEOF @@ -4986,7 +4986,8 @@ ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len"; then + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else @@ -5387,10 +5388,6 @@ fi ;; -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - haiku*) lt_cv_deplibs_check_method=pass_all ;; @@ -5429,7 +5426,7 @@ ;; # This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; @@ -6527,7 +6524,14 @@ LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) - LD="${LD-ld} -m elf_i386" + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" @@ -8354,7 +8358,7 @@ lt_prog_compiler_static='-non_shared' ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) @@ -10524,17 +10528,6 @@ esac ;; -gnu*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no @@ -10651,7 +10644,7 @@ ;; # This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no @@ -12102,12 +12095,12 @@ pkg_cv_GUPNP_CFLAGS="$GUPNP_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gupnp-1.0 >= 0.19.1\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gupnp-1.0 >= 0.19.1") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gupnp-1.0 >= 0.20.5\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gupnp-1.0 >= 0.20.5") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_GUPNP_CFLAGS=`$PKG_CONFIG --cflags "gupnp-1.0 >= 0.19.1" 2>/dev/null` + pkg_cv_GUPNP_CFLAGS=`$PKG_CONFIG --cflags "gupnp-1.0 >= 0.20.5" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -12119,12 +12112,12 @@ pkg_cv_GUPNP_LIBS="$GUPNP_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gupnp-1.0 >= 0.19.1\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gupnp-1.0 >= 0.19.1") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gupnp-1.0 >= 0.20.5\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gupnp-1.0 >= 0.20.5") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_GUPNP_LIBS=`$PKG_CONFIG --libs "gupnp-1.0 >= 0.19.1" 2>/dev/null` + pkg_cv_GUPNP_LIBS=`$PKG_CONFIG --libs "gupnp-1.0 >= 0.20.5" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -12145,14 +12138,14 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - GUPNP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gupnp-1.0 >= 0.19.1" 2>&1` + GUPNP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gupnp-1.0 >= 0.20.5" 2>&1` else - GUPNP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gupnp-1.0 >= 0.19.1" 2>&1` + GUPNP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gupnp-1.0 >= 0.20.5" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GUPNP_PKG_ERRORS" >&5 - as_fn_error $? "Package requirements (gupnp-1.0 >= 0.19.1) were not met: + as_fn_error $? "Package requirements (gupnp-1.0 >= 0.20.5) were not met: $GUPNP_PKG_ERRORS @@ -13220,7 +13213,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by dleyna-core $as_me 0.1.0, which was +This file was extended by dleyna-core $as_me 0.4.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -13287,7 +13280,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -dleyna-core config.status 0.1.0 +dleyna-core config.status 0.4.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dleyna-core-0.1.0/configure.ac new/dleyna-core-0.4.0/configure.ac --- old/dleyna-core-0.1.0/configure.ac 2013-06-03 17:17:32.000000000 +0200 +++ new/dleyna-core-0.4.0/configure.ac 2013-10-03 14:14:04.000000000 +0200 @@ -1,7 +1,7 @@ AC_PREREQ([2.66]) AC_INIT([dleyna-core], - [0.1.0], + [0.4.0], [https://github.com/01org/dleyna-core/issues/new], , [https://01.org/dleyna/]) @@ -39,7 +39,7 @@ PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.28]) PKG_CHECK_MODULES([GIO], [gio-2.0 >= 2.28]) PKG_CHECK_MODULES([GMODULE], [gmodule-2.0 >= 2.28]) -PKG_CHECK_MODULES([GUPNP], [gupnp-1.0 >= 0.19.1]) +PKG_CHECK_MODULES([GUPNP], [gupnp-1.0 >= 0.20.5]) # Checks for header files. AC_CHECK_HEADERS([stdlib.h string.h syslog.h]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dleyna-core-0.1.0/libdleyna/core/connector-mgr.c new/dleyna-core-0.4.0/libdleyna/core/connector-mgr.c --- old/dleyna-core-0.1.0/libdleyna/core/connector-mgr.c 2013-05-31 14:28:02.000000000 +0200 +++ new/dleyna-core-0.4.0/libdleyna/core/connector-mgr.c 2013-08-29 10:51:40.000000000 +0200 @@ -26,7 +26,7 @@ #include "connector-mgr.h" #include "log.h" -static GHashTable *g_connectors = NULL; +static GHashTable *g_connectors; const dleyna_connector_t *dleyna_connector_mgr_load(const gchar *name) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dleyna-core-0.1.0/libdleyna/core/connector.h new/dleyna-core-0.4.0/libdleyna/core/connector.h --- old/dleyna-core-0.1.0/libdleyna/core/connector.h 2013-05-31 14:28:02.000000000 +0200 +++ new/dleyna-core-0.4.0/libdleyna/core/connector.h 2013-08-29 10:51:40.000000000 +0200 @@ -67,7 +67,7 @@ dleyna_connector_id_t connection, const gchar *object_path, gboolean root, - guint interface_index, + const gchar *interface_name, const dleyna_connector_dispatch_cb_t *cb_table_1); typedef guint (*dleyna_connector_publish_subtree_t)( dleyna_connector_id_t connection, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dleyna-core-0.1.0/libdleyna/core/control-point.h new/dleyna-core-0.4.0/libdleyna/core/control-point.h --- old/dleyna-core-0.1.0/libdleyna/core/control-point.h 2013-05-31 14:28:02.000000000 +0200 +++ new/dleyna-core-0.4.0/libdleyna/core/control-point.h 2013-10-03 13:58:05.000000000 +0200 @@ -38,6 +38,7 @@ typedef const gchar *(*dleyna_control_point_server_name_t)(void); typedef const gchar *(*dleyna_control_point_server_introspection_t)(void); typedef const gchar *(*dleyna_control_point_root_introspection_t)(void); +typedef const gchar *(*dleyna_control_point_get_version_t)(void); typedef gboolean (*dleyna_control_point_start_service_t)( dleyna_connector_id_t connection); @@ -52,6 +53,7 @@ dleyna_control_point_root_introspection_t root_introspection; dleyna_control_point_start_service_t start_service; dleyna_control_point_stop_service_t stop_service; + dleyna_control_point_get_version_t get_version; }; #endif /* DLEYNA_CONTROL_POINT_H__ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dleyna-core-0.1.0/libdleyna/core/log.c new/dleyna-core-0.4.0/libdleyna/core/log.c --- old/dleyna-core-0.1.0/libdleyna/core/log.c 2013-05-31 14:28:02.000000000 +0200 +++ new/dleyna-core-0.4.0/libdleyna/core/log.c 2013-10-03 13:58:05.000000000 +0200 @@ -132,7 +132,7 @@ (void) setlogmask(mask); } -void dleyna_log_init(const char *program) +void dleyna_log_init(const char *program, const char *version) { int option = LOG_NDELAY | LOG_PID; int old; @@ -148,7 +148,8 @@ openlog(basename(program), option, LOG_DAEMON); old = setlogmask(LOG_MASK(LOG_INFO)); - syslog(LOG_INFO, "dLeyna version %s", VERSION); + syslog(LOG_INFO, "dLeyna core version %s", VERSION); + syslog(LOG_INFO, "%s version %s", program, version); (void) setlogmask(s_log_context.mask); s_log_context.old_mask = old; @@ -157,8 +158,10 @@ &s_log_context); #if DLEYNA_LOG_LEVEL & DLEYNA_LOG_LEVEL_INFO - if (s_log_context.log_type != DLEYNA_LOG_TYPE_SYSLOG) - DLEYNA_LOG_INFO("dLeyna version %s", VERSION); + if (s_log_context.log_type != DLEYNA_LOG_TYPE_SYSLOG) { + DLEYNA_LOG_INFO("dLeyna core version %s", VERSION); + DLEYNA_LOG_INFO("%s version %s", program, version); + } #endif } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dleyna-core-0.1.0/libdleyna/core/log.h new/dleyna-core-0.4.0/libdleyna/core/log.h --- old/dleyna-core-0.1.0/libdleyna/core/log.h 2013-05-31 14:28:02.000000000 +0200 +++ new/dleyna-core-0.4.0/libdleyna/core/log.h 2013-08-29 10:51:40.000000000 +0200 @@ -33,7 +33,7 @@ }; typedef enum dleyna_log_type_t_ dleyna_log_type_t; -void dleyna_log_init(const char *program); +void dleyna_log_init(const char *program, const char *version); void dleyna_log_finalize(void); @@ -47,15 +47,11 @@ */ #ifdef DLEYNA_DEBUG_ENABLED #define DLEYNA_LOG_HELPER(priority, flags, fmt, ...) \ - do { \ dleyna_log_trace(priority, flags, "%s : %s() --- " fmt,\ - __FILE__, __func__, ## __VA_ARGS__); \ - } while (0) + __FILE__, __func__, ## __VA_ARGS__); #else #define DLEYNA_LOG_HELPER(priority, flags, fmt, ...) \ - do { \ - dleyna_log_trace(priority, flags, fmt, ## __VA_ARGS__);\ - } while (0) + dleyna_log_trace(priority, flags, fmt, ## __VA_ARGS__); #endif @@ -126,9 +122,7 @@ */ #if DLEYNA_LOG_LEVEL & DLEYNA_LOG_LEVEL_DEBUG #define DLEYNA_LOG_DEBUG_NL() \ - do { \ - dleyna_log_trace(LOG_DEBUG, G_LOG_LEVEL_DEBUG, " "); \ - } while (0) + dleyna_log_trace(LOG_DEBUG, G_LOG_LEVEL_DEBUG, " "); #else #define DLEYNA_LOG_DEBUG_NL() #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dleyna-core-0.1.0/libdleyna/core/main-loop.c new/dleyna-core-0.4.0/libdleyna/core/main-loop.c --- old/dleyna-core-0.1.0/libdleyna/core/main-loop.c 2013-05-31 14:28:02.000000000 +0200 +++ new/dleyna-core-0.4.0/libdleyna/core/main-loop.c 2013-10-03 13:58:05.000000000 +0200 @@ -119,15 +119,17 @@ dleyna_settings_delete(g_context.settings); } -int dleyna_main_loop_start(char *server, +int dleyna_main_loop_start(const char *server, const dleyna_control_point_t *control_point, gpointer user_data) { int retval = 1; +#if !GLIB_CHECK_VERSION(2, 35, 0) g_type_init(); +#endif - dleyna_log_init(server); + dleyna_log_init(server, control_point->get_version()); if (!prv_context_init(server, control_point)) goto out; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dleyna-core-0.1.0/libdleyna/core/main-loop.h new/dleyna-core-0.4.0/libdleyna/core/main-loop.h --- old/dleyna-core-0.1.0/libdleyna/core/main-loop.h 2013-05-31 14:28:02.000000000 +0200 +++ new/dleyna-core-0.4.0/libdleyna/core/main-loop.h 2013-10-03 13:58:05.000000000 +0200 @@ -26,7 +26,7 @@ #include "connector.h" #include "control-point.h" -int dleyna_main_loop_start(char *server, +int dleyna_main_loop_start(const char *server, const dleyna_control_point_t *control_point, gpointer user_data); void dleyna_main_loop_quit(void); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dleyna-core-0.1.0/libdleyna/core/service-task.c new/dleyna-core-0.4.0/libdleyna/core/service-task.c --- old/dleyna-core-0.1.0/libdleyna/core/service-task.c 2013-05-31 14:28:02.000000000 +0200 +++ new/dleyna-core-0.4.0/libdleyna/core/service-task.c 2013-08-29 10:51:40.000000000 +0200 @@ -92,7 +92,8 @@ if (failed) dleyna_task_processor_cancel_queue(task->base.queue_id); - else if (!task->p_action) + + if (!task->p_action) dleyna_task_queue_task_completed(task->base.queue_id); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dleyna-core-0.1.0/libdleyna/core/settings.c new/dleyna-core-0.4.0/libdleyna/core/settings.c --- old/dleyna-core-0.1.0/libdleyna/core/settings.c 2013-05-31 14:28:02.000000000 +0200 +++ new/dleyna-core-0.4.0/libdleyna/core/settings.c 2013-10-03 13:58:05.000000000 +0200 @@ -25,13 +25,12 @@ #include "log.h" #include "settings.h" +#include "white-list.h" struct dleyna_settings_t_ { GKeyFile *keyfile; - GFileMonitor *monitor; - gulong handler_id; - guint ev_id; gchar *file_name; + gchar *file_path; /* Global section */ gboolean never_quit; @@ -40,37 +39,60 @@ /* Log section */ dleyna_log_type_t log_type; int log_level; + + /* netf section */ + gboolean netf_enabled; + GVariant *netf_entries; }; #define DLEYNA_SETTINGS_GROUP_GENERAL "general" #define DLEYNA_SETTINGS_KEY_NEVER_QUIT "never-quit" #define DLEYNA_SETTINGS_KEY_CONNECTOR_NAME "connector-name" -#define DLEYNA_SETTINGS_GROUP_LOG "log" -#define DLEYNA_SETTINGS_KEY_LOG_TYPE "log-type" -#define DLEYNA_SETTINGS_KEY_LOG_LEVEL "log-level" +#define DLEYNA_SETTINGS_GROUP_LOG "log" +#define DLEYNA_SETTINGS_KEY_LOG_TYPE "log-type" +#define DLEYNA_SETTINGS_KEY_LOG_LEVEL "log-level" + +#define DLEYNA_SETTINGS_GROUP_NETF "netf" +#define DLEYNA_SETTINGS_KEY_NETF_ENABLED "netf-enabled" +#define DLEYNA_SETTINGS_KEY_NETF_LIST "netf-list" #define DLEYNA_SETTINGS_DEFAULT_NEVER_QUIT DLEYNA_NEVER_QUIT #define DLEYNA_SETTINGS_DEFAULT_CONNECTOR_NAME DLEYNA_CONNECTOR_NAME #define DLEYNA_SETTINGS_DEFAULT_LOG_TYPE DLEYNA_LOG_TYPE #define DLEYNA_SETTINGS_DEFAULT_LOG_LEVEL DLEYNA_LOG_LEVEL +#if DLEYNA_LOG_LEVEL & DLEYNA_LOG_LEVEL_INFO #define DLEYNA_SETTINGS_LOG_KEYS(sys, loc, settings) \ do { \ + gchar *str = NULL; \ + \ + DLEYNA_LOG_DEBUG_NL(); \ + DLEYNA_LOG_INFO("Load file [%s]", (settings)->file_path); \ DLEYNA_LOG_DEBUG_NL(); \ - DLEYNA_LOG_INFO("Load file [%s]", loc ? loc : sys); \ + \ + DLEYNA_LOG_INFO("[General settings]"); \ + DLEYNA_LOG_INFO("Never Quit: %s", (settings)->never_quit ? "T" : "F");\ DLEYNA_LOG_DEBUG_NL(); \ - DLEYNA_LOG_DEBUG("[General settings]"); \ - DLEYNA_LOG_DEBUG("Never Quit: %s", (settings)->never_quit ? "T" : "F");\ + DLEYNA_LOG_INFO("Connector Name: %s", (settings)->connector_name);\ DLEYNA_LOG_DEBUG_NL(); \ - DLEYNA_LOG_DEBUG("Connector Name: %s", (settings)->connector_name);\ + \ + DLEYNA_LOG_INFO("[Logging settings]"); \ + DLEYNA_LOG_INFO("Log Type : %d", (settings)->log_type); \ + DLEYNA_LOG_INFO("Log Level: 0x%02X", (settings)->log_level); \ DLEYNA_LOG_DEBUG_NL(); \ - DLEYNA_LOG_DEBUG("[Logging settings]"); \ - DLEYNA_LOG_DEBUG("Log Type : %d", (settings)->log_type); \ - DLEYNA_LOG_DEBUG("Log Level: 0x%02X", (settings)->log_level); \ + \ + if ((settings)->netf_entries != NULL) \ + str = g_variant_print((settings)->netf_entries, FALSE); \ + DLEYNA_LOG_INFO("[Network filtering settings]"); \ + DLEYNA_LOG_INFO("Enabled : %s", (settings)->netf_enabled ? "T" : "F");\ + DLEYNA_LOG_INFO("Entries: %s", str); \ + g_free(str); \ DLEYNA_LOG_DEBUG_NL(); \ } while (0) - +#else +#define DLEYNA_SETTINGS_LOG_KEYS(sys, loc, settings) +#endif static void prv_get_keyfile_path(const gchar *file, gchar **sys_path, gchar **loc_path) @@ -138,7 +160,8 @@ keyfile = g_key_file_new(); - if (!g_key_file_load_from_file(keyfile, filepath, G_KEY_FILE_NONE, + if (!g_key_file_load_from_file(keyfile, filepath, + G_KEY_FILE_KEEP_COMMENTS, NULL)) { g_key_file_free(keyfile); keyfile = NULL; @@ -148,6 +171,25 @@ return keyfile; } +static GVariant *prv_to_netf_entries(char **list) +{ + GVariantBuilder vb; + GVariant *result = NULL; + + if ((list != NULL) && (*list != NULL)) { + g_variant_builder_init(&vb, G_VARIANT_TYPE("as")); + + while (*list != NULL) { + g_variant_builder_add(&vb, "s", *list); + list++; + } + + result = g_variant_ref_sink(g_variant_builder_end(&vb)); + } + + return result; +} + static int prv_to_log_level(gint *int_list, gsize length) { gsize i; @@ -205,6 +247,7 @@ gchar *s_val; gint *int_star; gsize length; + gchar **list; b_val = g_key_file_get_boolean(keyfile, DLEYNA_SETTINGS_GROUP_GENERAL, @@ -252,13 +295,38 @@ &error); if (error == NULL) { - settings->log_level = prv_to_log_level(int_star, - length); + settings->log_level = prv_to_log_level(int_star, length); g_free(int_star); } else { g_error_free(error); error = NULL; } + + b_val = g_key_file_get_boolean(keyfile, + DLEYNA_SETTINGS_GROUP_NETF, + DLEYNA_SETTINGS_KEY_NETF_ENABLED, + &error); + + if (error == NULL) { + settings->netf_enabled = b_val; + } else { + g_error_free(error); + error = NULL; + } + + list = g_key_file_get_string_list(keyfile, + DLEYNA_SETTINGS_GROUP_NETF, + DLEYNA_SETTINGS_KEY_NETF_LIST, + NULL, + &error); + + if (error == NULL) { + settings->netf_entries = prv_to_netf_entries(list); + g_strfreev(list); + } else { + g_error_free(error); + error = NULL; + } } static void prv_init_default(dleyna_settings_t *settings) @@ -269,112 +337,112 @@ settings->log_type = DLEYNA_SETTINGS_DEFAULT_LOG_TYPE; settings->log_level = DLEYNA_SETTINGS_DEFAULT_LOG_LEVEL; + + settings->netf_enabled = FALSE; + settings->netf_entries = NULL; } static void prv_keyfile_init(dleyna_settings_t *settings, const gchar *sys_path, const gchar *loc_path) { + const gchar *path = loc_path; + settings->keyfile = prv_load_keyfile(loc_path); - if (settings->keyfile == NULL) + if (settings->keyfile == NULL) { + path = sys_path; settings->keyfile = prv_load_keyfile(sys_path); + } if (settings->keyfile != NULL) { prv_read_keys(settings); dleyna_log_update_type_level(settings->log_type, settings->log_level); + settings->file_path = g_strdup(path); } } static void prv_keyfile_finalize(dleyna_settings_t *settings) { + if (settings->netf_entries != NULL) { + g_variant_unref(settings->netf_entries); + settings->netf_entries = NULL; + } + if (settings->keyfile != NULL) { g_key_file_free(settings->keyfile); settings->keyfile = NULL; } + + g_free(settings->file_path); + settings->file_path = NULL; } -static void prv_reload(dleyna_settings_t *settings) +void dleyna_settings_new(const gchar *server, dleyna_settings_t **settings) { gchar *sys_path = NULL; gchar *loc_path = NULL; + const gchar *server_name; - DLEYNA_LOG_INFO("Reload local configuration file"); + *settings = g_malloc0(sizeof(**settings)); - prv_keyfile_finalize(settings); - prv_init_default(settings); - prv_get_keyfile_path(settings->file_name, &sys_path, &loc_path); + server_name = strrchr(server, '/'); + if (server_name) + server_name++; + else + server_name = server; + + (*settings)->file_name = g_strdup_printf("%s%s", server_name, ".conf"); + + prv_init_default(*settings); + + prv_get_keyfile_path((*settings)->file_name, &sys_path, &loc_path); + + if (loc_path) + prv_check_local_keyfile(sys_path, loc_path); if (sys_path || loc_path) - prv_keyfile_init(settings, sys_path, loc_path); + prv_keyfile_init(*settings, sys_path, loc_path); - DLEYNA_SETTINGS_LOG_KEYS(sys_path, loc_path, settings); + DLEYNA_SETTINGS_LOG_KEYS(sys_path, loc_path, *settings); g_free(sys_path); g_free(loc_path); } -static gboolean prv_monitor_timout_cb(gpointer user_data) +void dleyna_settings_delete(dleyna_settings_t *settings) { - dleyna_settings_t *data = (dleyna_settings_t *)user_data; + g_free(settings->connector_name); + g_free(settings->file_name); - DLEYNA_LOG_INFO("Change in local settings file: Reload"); + prv_keyfile_finalize(settings); - prv_reload(data); + g_free(settings); +} - data->ev_id = 0; - return FALSE; +const gchar *dleyna_settings_connector_name(dleyna_settings_t *settings) +{ + return settings->connector_name; } -static void prv_monitor_keyfile_cb(GFileMonitor *monitor, - GFile *file, - GFile *other_file, - GFileMonitorEvent event_type, - gpointer user_data) +static void prv_save_settings_to_file(dleyna_settings_t *settings, + GError **error) { - dleyna_settings_t *data = (dleyna_settings_t *)user_data; + gchar *data; + gsize length; - switch (event_type) { - case G_FILE_MONITOR_EVENT_CHANGED: - case G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT: - case G_FILE_MONITOR_EVENT_DELETED: - case G_FILE_MONITOR_EVENT_CREATED: - case G_FILE_MONITOR_EVENT_MOVED: - /* Reset the timer to prevent running the cb if monitoring - * event are raised 1 sec after the timer has been set */ - if (data->ev_id != 0) - (void) g_source_remove(data->ev_id); + DLEYNA_LOG_DEBUG("Enter"); - data->ev_id = g_timeout_add_seconds(1, - prv_monitor_timout_cb, - user_data); - break; - default: - break; - } -} + data = g_key_file_to_data(settings->keyfile, &length , NULL); -static void prv_monitor_local_keyfile(dleyna_settings_t *settings, - const gchar *loc_path) -{ - GFile *loc_file; - GFileMonitor *monitor = NULL; - gulong handler_id; + DLEYNA_LOG_DEBUG_NL(); + DLEYNA_LOG_DEBUG("\n%s", data); + DLEYNA_LOG_DEBUG_NL(); - loc_file = g_file_new_for_path(loc_path); - monitor = g_file_monitor_file(loc_file, G_FILE_MONITOR_SEND_MOVED, NULL, - NULL); - g_object_unref(loc_file); - - if (monitor != NULL) { - handler_id = g_signal_connect(monitor, "changed", - G_CALLBACK(prv_monitor_keyfile_cb), - settings); + (void) g_file_set_contents(settings->file_path, data, length, error); - settings->monitor = monitor; - settings->handler_id = handler_id; - } + g_free(data); } gboolean dleyna_settings_is_never_quit(dleyna_settings_t *settings) @@ -382,58 +450,107 @@ return settings->never_quit; } -const gchar *dleyna_settings_connector_name(dleyna_settings_t *settings) +void dleyna_settings_set_never_quit(dleyna_settings_t *settings, + gboolean never_quit, + GError **error) { - return settings->connector_name; + DLEYNA_LOG_DEBUG("Enter"); + + g_key_file_set_boolean(settings->keyfile, + DLEYNA_SETTINGS_GROUP_GENERAL, + DLEYNA_SETTINGS_KEY_NEVER_QUIT, + never_quit); + + prv_save_settings_to_file(settings, error); + + if (*error == NULL) + settings->never_quit = never_quit; + + DLEYNA_LOG_DEBUG("Exit"); } -void dleyna_settings_new(const gchar *server, dleyna_settings_t **settings) +gboolean dleyna_settings_is_white_list_enabled(dleyna_settings_t *settings) { - gchar *sys_path = NULL; - gchar *loc_path = NULL; - const gchar *server_name; + return settings->netf_enabled; +} - *settings = g_malloc0(sizeof(**settings)); +void dleyna_settings_set_white_list_enabled(dleyna_settings_t *settings, + gboolean enabled, + GError **error) +{ + DLEYNA_LOG_DEBUG("Enter"); - server_name = strrchr(server, '/'); - if (server_name) - server_name++; - else - server_name = server; - (*settings)->file_name = g_strdup_printf("%s%s", server_name, ".conf"); + g_key_file_set_boolean(settings->keyfile, + DLEYNA_SETTINGS_GROUP_NETF, + DLEYNA_SETTINGS_KEY_NETF_ENABLED, + enabled); - prv_init_default(*settings); + prv_save_settings_to_file(settings, error); - prv_get_keyfile_path((*settings)->file_name, &sys_path, &loc_path); + if (*error == NULL) + settings->netf_enabled = enabled; - if (loc_path) { - prv_check_local_keyfile(sys_path, loc_path); - prv_monitor_local_keyfile(*settings, loc_path); - } + DLEYNA_LOG_DEBUG("Exit"); +} - if (sys_path || loc_path) - prv_keyfile_init(*settings, sys_path, loc_path); +GVariant *dleyna_settings_white_list_entries(dleyna_settings_t *settings) +{ + return settings->netf_entries; +} - DLEYNA_SETTINGS_LOG_KEYS(sys_path, loc_path, *settings); +static const gchar **prv_filter_null_str(const gchar **orig_strv, + gsize orig_len, + gsize *new_len) +{ + const gchar **strv = NULL; + gsize i; + gsize n = 0; - g_free(sys_path); - g_free(loc_path); + if (orig_strv && orig_len) { + strv = g_new(const gchar *, orig_len + 1); + + for (i = 0; i < orig_len; i++) { + if (*orig_strv[i]) + strv[n++] = orig_strv[i]; + } + + strv[n] = NULL; + } + + *new_len = n; + + return strv; } -void dleyna_settings_delete(dleyna_settings_t *settings) +void dleyna_settings_set_white_list_entries(dleyna_settings_t *settings, + GVariant *entries, + GError **error) { - if (settings->monitor) { - if (settings->handler_id) - g_signal_handler_disconnect(settings->monitor, - settings->handler_id); + const gchar **list; + gsize length; + const gchar **list2; + gsize length2; + + DLEYNA_LOG_DEBUG("Enter"); + + list = g_variant_get_strv(entries, &length); - g_file_monitor_cancel(settings->monitor); - g_object_unref(settings->monitor); + list2 = prv_filter_null_str(list, length, &length2); + + g_key_file_set_string_list(settings->keyfile, + DLEYNA_SETTINGS_GROUP_NETF, + DLEYNA_SETTINGS_KEY_NETF_LIST, + list2, length2); + + prv_save_settings_to_file(settings, error); + + if (*error == NULL) { + g_variant_unref(settings->netf_entries); + settings->netf_entries = g_variant_ref(entries); } - g_free(settings->connector_name); - g_free(settings->file_name); - prv_keyfile_finalize(settings); + g_free(list); + g_free(list2); - g_free(settings); + DLEYNA_LOG_DEBUG("Exit"); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dleyna-core-0.1.0/libdleyna/core/settings.h new/dleyna-core-0.4.0/libdleyna/core/settings.h --- old/dleyna-core-0.1.0/libdleyna/core/settings.h 2013-05-31 14:28:02.000000000 +0200 +++ new/dleyna-core-0.4.0/libdleyna/core/settings.h 2013-10-03 13:58:05.000000000 +0200 @@ -28,9 +28,27 @@ typedef struct dleyna_settings_t_ dleyna_settings_t; void dleyna_settings_new(const gchar *server, dleyna_settings_t **settings); + void dleyna_settings_delete(dleyna_settings_t *settings); -gboolean dleyna_settings_is_never_quit(dleyna_settings_t *settings); const gchar *dleyna_settings_connector_name(dleyna_settings_t *settings); +gboolean dleyna_settings_is_never_quit(dleyna_settings_t *settings); + +void dleyna_settings_set_never_quit(dleyna_settings_t *settings, + gboolean never_quit, + GError **error); + +gboolean dleyna_settings_is_white_list_enabled(dleyna_settings_t *settings); + +void dleyna_settings_set_white_list_enabled(dleyna_settings_t *settings, + gboolean enabled, + GError **error); + +GVariant *dleyna_settings_white_list_entries(dleyna_settings_t *settings); + +void dleyna_settings_set_white_list_entries(dleyna_settings_t *settings, + GVariant *entries, + GError **error); + #endif /* DLEYNA_SETTINGS_H__ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dleyna-core-0.1.0/libdleyna/core/white-list.c new/dleyna-core-0.4.0/libdleyna/core/white-list.c --- old/dleyna-core-0.1.0/libdleyna/core/white-list.c 1970-01-01 01:00:00.000000000 +0100 +++ new/dleyna-core-0.4.0/libdleyna/core/white-list.c 2013-10-03 13:58:05.000000000 +0200 @@ -0,0 +1,138 @@ +/* + * dLeyna + * + * Copyright (C) 2013 Intel Corporation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU Lesser General Public License, + * version 2.1, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License + * for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * + * Ludovic Ferrandis <[email protected]> + * + */ + +#include <string.h> + +#include "white-list.h" +#include "log.h" + +struct dleyna_white_list_t_ { + GUPnPWhiteList *gupnp_wl; +}; + +#if DLEYNA_LOG_LEVEL & DLEYNA_LOG_LEVEL_DEBUG +static void prv_dump_wl_entries(GUPnPWhiteList *wl) +{ + GList *l; + + l = gupnp_white_list_get_entries(wl); + + DLEYNA_LOG_DEBUG_NL(); + DLEYNA_LOG_DEBUG("White List entries:"); + + if (l != NULL) { + while (l != NULL) { + DLEYNA_LOG_DEBUG(" Entry: [%s].", (char *)l->data); + l = l->next; + } + } else { + DLEYNA_LOG_DEBUG(" White List Empty."); + } + + DLEYNA_LOG_DEBUG_NL(); +} +#endif + +dleyna_white_list_t *dleyna_white_list_new(GUPnPWhiteList *gupnp_wl) +{ + dleyna_white_list_t *wl; + + if (gupnp_wl != NULL) { + wl = g_new0(dleyna_white_list_t, 1); + + wl->gupnp_wl = gupnp_wl; + } else { + wl = NULL; + DLEYNA_LOG_DEBUG("Parameter must not be NULL"); + } + + + return wl; +} + +void dleyna_white_list_delete(dleyna_white_list_t *wl) +{ + g_free(wl); +} + +void dleyna_white_list_enable(dleyna_white_list_t *wl, + gboolean enabled) +{ + if (wl->gupnp_wl != NULL) { + gupnp_white_list_set_enabled(wl->gupnp_wl, enabled); + + DLEYNA_LOG_DEBUG("White List enabled: %d", enabled); + } +} + +void dleyna_white_list_add_entries(dleyna_white_list_t *wl, + GVariant *entries) +{ + GVariantIter viter; + gchar *entry; + + DLEYNA_LOG_DEBUG("Enter"); + + if ((entries != NULL) && (wl->gupnp_wl != NULL)) { + (void) g_variant_iter_init(&viter, entries); + + while (g_variant_iter_next(&viter, "&s", &entry)) + (void) gupnp_white_list_add_entry(wl->gupnp_wl, entry); + +#if DLEYNA_LOG_LEVEL & DLEYNA_LOG_LEVEL_DEBUG + prv_dump_wl_entries(wl->gupnp_wl); +#endif + } + + DLEYNA_LOG_DEBUG("Exit"); +} + +void dleyna_white_list_remove_entries(dleyna_white_list_t *wl, + GVariant *entries) +{ + GVariantIter viter; + gchar *entry; + + if ((entries != NULL) && (wl->gupnp_wl != NULL)) { + (void) g_variant_iter_init(&viter, entries); + + while (g_variant_iter_next(&viter, "&s", &entry)) + (void) gupnp_white_list_remove_entry(wl->gupnp_wl, + entry); + +#if DLEYNA_LOG_LEVEL & DLEYNA_LOG_LEVEL_DEBUG + prv_dump_wl_entries(wl->gupnp_wl); +#endif + } +} + +void dleyna_white_list_clear(dleyna_white_list_t *wl) +{ + if (wl->gupnp_wl != NULL) { + DLEYNA_LOG_DEBUG("Clear white list"); + gupnp_white_list_clear(wl->gupnp_wl); + +#if DLEYNA_LOG_LEVEL & DLEYNA_LOG_LEVEL_DEBUG + prv_dump_wl_entries(wl->gupnp_wl); +#endif + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dleyna-core-0.1.0/libdleyna/core/white-list.h new/dleyna-core-0.4.0/libdleyna/core/white-list.h --- old/dleyna-core-0.1.0/libdleyna/core/white-list.h 1970-01-01 01:00:00.000000000 +0100 +++ new/dleyna-core-0.4.0/libdleyna/core/white-list.h 2013-10-03 13:58:05.000000000 +0200 @@ -0,0 +1,44 @@ +/* + * dLeyna + * + * Copyright (C) 2013 Intel Corporation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU Lesser General Public License, + * version 2.1, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License + * for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * + * Ludovic Ferrandis <[email protected]> + * + */ + +#ifndef DLEYNA_WHITE_LIST_H__ +#define DLEYNA_WHITE_LIST_H__ + +#include <glib.h> +#include <libgupnp/gupnp-white-list.h> + +typedef struct dleyna_white_list_t_ dleyna_white_list_t; + +dleyna_white_list_t *dleyna_white_list_new(GUPnPWhiteList *gupnp_wl); + +void dleyna_white_list_delete(dleyna_white_list_t *wl); + +void dleyna_white_list_enable(dleyna_white_list_t *wl, gboolean enabled); + +void dleyna_white_list_add_entries(dleyna_white_list_t *wl, GVariant *entries); + +void dleyna_white_list_remove_entries(dleyna_white_list_t *wl, + GVariant *entries); + +void dleyna_white_list_clear(dleyna_white_list_t *wl); + +#endif /* DLEYNA_WHITE_LIST_H__ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dleyna-core-0.1.0/m4/libtool.m4 new/dleyna-core-0.4.0/m4/libtool.m4 --- old/dleyna-core-0.1.0/m4/libtool.m4 2013-06-06 11:08:08.000000000 +0200 +++ new/dleyna-core-0.4.0/m4/libtool.m4 2013-10-03 14:22:09.000000000 +0200 @@ -1324,7 +1324,14 @@ LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) - LD="${LD-ld} -m elf_i386" + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" @@ -1688,7 +1695,8 @@ ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len"; then + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else @@ -2512,17 +2520,6 @@ esac ;; -gnu*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no @@ -2639,7 +2636,7 @@ ;; # This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no @@ -3255,10 +3252,6 @@ fi ;; -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - haiku*) lt_cv_deplibs_check_method=pass_all ;; @@ -3297,7 +3290,7 @@ ;; # This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; @@ -4049,7 +4042,7 @@ ;; esac ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # KAI C++ Compiler @@ -4348,7 +4341,7 @@ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) @@ -6241,9 +6234,6 @@ _LT_TAGVAR(ld_shlibs, $1)=yes ;; - gnu*) - ;; - haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes @@ -6405,7 +6395,7 @@ _LT_TAGVAR(inherit_rpath, $1)=yes ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
