Hello community,

here is the log from the commit of package libsoup for openSUSE:Factory checked 
in at 2015-10-25 19:10:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libsoup (Old)
 and      /work/SRC/openSUSE:Factory/.libsoup.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libsoup"

Changes:
--------
--- /work/SRC/openSUSE:Factory/libsoup/libsoup.changes  2015-10-06 
16:26:51.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libsoup.new/libsoup.changes     2015-10-25 
19:10:53.000000000 +0100
@@ -1,0 +2,12 @@
+Mon Oct 12 21:38:30 UTC 2015 - zai...@opensuse.org
+
+- Update to version 2.52.1:
+  + Fixed build under MinGW.
+  + Fixed build with --disable-introspection (bgo#755389).
+  + Fixed HTTP authentication protection space handling for files
+    directly under the root directory (bgo#755617).
+  + Fixed a warning when loading data from SoupCache while using
+    an authenticated proxy (bgo#756076).
+  + Updated translations.
+
+-------------------------------------------------------------------

Old:
----
  libsoup-2.52.0.tar.xz

New:
----
  libsoup-2.52.1.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libsoup.spec ++++++
--- /var/tmp/diff_new_pack.Dh6lOe/_old  2015-10-25 19:10:54.000000000 +0100
+++ /var/tmp/diff_new_pack.Dh6lOe/_new  2015-10-25 19:10:54.000000000 +0100
@@ -20,7 +20,7 @@
 Summary:        HTTP client/server library for GNOME
 License:        LGPL-2.1+
 Group:          Development/Libraries/GNOME
-Version:        2.52.0
+Version:        2.52.1
 Release:        0
 Url:            http://www.gnome.org
 Source:         
http://download.gnome.org/sources/libsoup/2.52/%{name}-%{version}.tar.xz

++++++ libsoup-2.52.0.tar.xz -> libsoup-2.52.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsoup-2.52.0/NEWS new/libsoup-2.52.1/NEWS
--- old/libsoup-2.52.0/NEWS     2015-09-21 17:36:01.000000000 +0200
+++ new/libsoup-2.52.1/NEWS     2015-10-12 23:25:50.000000000 +0200
@@ -1,3 +1,20 @@
+Changes in libsoup from 2.52.0 to 2.52.1:
+
+       * Fixed build under MinGW [Chun-wei Fan]
+
+       * Fixed build with --disable-introspection [#755389, Quentin
+          Glidic]
+
+       * Fixed HTTP authentication protection space handling for
+          files directly under the root directory. [#755617, Carlos
+          Garcia Campos]
+
+       * Fixed a warning when loading data from SoupCache while using
+          an authenticated proxy. [#756076, Carlos Garcia Campos]
+
+       * Updated translations:
+         German, Vietnamese
+
 Changes in libsoup from 2.51.92 to 2.52.0:
 
        * Removed duplicate test paths from tests/date so it will pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsoup-2.52.0/configure new/libsoup-2.52.1/configure
--- old/libsoup-2.52.0/configure        2015-09-21 17:36:16.000000000 +0200
+++ new/libsoup-2.52.1/configure        2015-10-12 23:26:15.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libsoup 2.52.0.
+# Generated by GNU Autoconf 2.69 for libsoup 2.52.1.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=libsoup>.
 #
@@ -651,8 +651,8 @@
 # Identity of this package.
 PACKAGE_NAME='libsoup'
 PACKAGE_TARNAME='libsoup'
-PACKAGE_VERSION='2.52.0'
-PACKAGE_STRING='libsoup 2.52.0'
+PACKAGE_VERSION='2.52.1'
+PACKAGE_STRING='libsoup 2.52.1'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=libsoup'
 PACKAGE_URL=''
 
@@ -1530,7 +1530,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 libsoup 2.52.0 to adapt to many kinds of systems.
+\`configure' configures libsoup 2.52.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1600,7 +1600,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libsoup 2.52.0:";;
+     short | recursive ) echo "Configuration of libsoup 2.52.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1744,7 +1744,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libsoup configure 2.52.0
+libsoup configure 2.52.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2022,7 +2022,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libsoup $as_me 2.52.0, which was
+It was created by libsoup $as_me 2.52.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2888,7 +2888,7 @@
 
 # Define the identity of the package.
  PACKAGE='libsoup'
- VERSION='2.52.0'
+ VERSION='2.52.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3054,7 +3054,7 @@
 
 SOUP_MAJOR_VERSION=2
 SOUP_MINOR_VERSION=52
-SOUP_MICRO_VERSION=0
+SOUP_MICRO_VERSION=1
 
 
 
@@ -13752,8 +13752,7 @@
 
 
 
-if test "x$found_introspection" = "xyes"; then
-  # Extract the first word of "valac", so it can be a program name with args.
+# Extract the first word of "valac", so it can be a program name with args.
 set dummy valac; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
@@ -14067,7 +14066,6 @@
 
 
 
-fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for glib-networking (glib 
TLS implementation)" >&5
 $as_echo_n "checking for glib-networking (glib TLS implementation)... " >&6; }
@@ -15288,7 +15286,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libsoup $as_me 2.52.0, which was
+This file was extended by libsoup $as_me 2.52.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -15354,7 +15352,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libsoup config.status 2.52.0
+libsoup config.status 2.52.1
 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/libsoup-2.52.0/configure.ac 
new/libsoup-2.52.1/configure.ac
--- old/libsoup-2.52.0/configure.ac     2015-09-21 17:35:26.000000000 +0200
+++ new/libsoup-2.52.1/configure.ac     2015-10-12 23:25:40.000000000 +0200
@@ -4,7 +4,7 @@
 
 m4_define([soup_major_version], [2])
 m4_define([soup_minor_version], [52])
-m4_define([soup_micro_version], [0])
+m4_define([soup_micro_version], [1])
 
 AC_PREREQ(2.63)
 
AC_INIT([libsoup],[soup_major_version.soup_minor_version.soup_micro_version],[http://bugzilla.gnome.org/enter_bug.cgi?product=libsoup])
@@ -162,9 +162,7 @@
 dnl *****************************
 GOBJECT_INTROSPECTION_CHECK([0.9.5])
 
-if test "x$found_introspection" = "xyes"; then
-  VAPIGEN_CHECK()
-fi
+VAPIGEN_CHECK()
 
 AC_MSG_CHECKING([for glib-networking (glib TLS implementation)])
 save_CFLAGS="$CFLAGS"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libsoup-2.52.0/docs/reference/html/libsoup-2.4-Version-Information.html 
new/libsoup-2.52.1/docs/reference/html/libsoup-2.4-Version-Information.html
--- old/libsoup-2.52.0/docs/reference/html/libsoup-2.4-Version-Information.html 
2015-09-21 17:36:53.000000000 +0200
+++ new/libsoup-2.52.1/docs/reference/html/libsoup-2.4-Version-Information.html 
2015-10-12 23:26:52.000000000 +0200
@@ -292,7 +292,7 @@
 <hr>
 <div class="refsect2">
 <a name="SOUP-MICRO-VERSION:CAPS"></a><h3>SOUP_MICRO_VERSION</h3>
-<pre class="programlisting">#define SOUP_MICRO_VERSION (0)
+<pre class="programlisting">#define SOUP_MICRO_VERSION (1)
 </pre>
 <p>Like <a class="link" 
href="libsoup-2.4-Version-Information.html#soup-get-micro-version" 
title="soup_get_micro_version ()"><code 
class="function">soup_get_micro_version()</code></a>, but from the headers used 
at
 application compile time, rather than from the library linked
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsoup-2.52.0/libsoup/Makefile.am 
new/libsoup-2.52.1/libsoup/Makefile.am
--- old/libsoup-2.52.0/libsoup/Makefile.am      2015-09-15 16:08:46.000000000 
+0200
+++ new/libsoup-2.52.1/libsoup/Makefile.am      2015-10-12 23:20:07.000000000 
+0200
@@ -101,6 +101,7 @@
        $(SQLITE_LIBS)
 
 libsoup_2_4_la_SOURCES =               \
+       gconstructor.h                  \
        soup-address.c                  \
        soup-auth.c                     \
        soup-auth-basic.h               \
@@ -150,6 +151,7 @@
        soup-filter-input-stream.h      \
        soup-form.c                     \
        soup-headers.c                  \
+       soup-init.c                     \
        soup-io-stream.h                \
        soup-io-stream.c                \
        soup-logger.c                   \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsoup-2.52.0/libsoup/Makefile.in 
new/libsoup-2.52.1/libsoup/Makefile.in
--- old/libsoup-2.52.0/libsoup/Makefile.in      2015-09-21 17:36:16.000000000 
+0200
+++ new/libsoup-2.52.1/libsoup/Makefile.in      2015-10-12 23:26:16.000000000 
+0200
@@ -157,7 +157,7 @@
        soup-cookie-jar-db.lo soup-cookie-jar-text.lo soup-date.lo \
        soup-directory-input-stream.lo soup-enum-types.lo \
        soup-filter-input-stream.lo soup-form.lo soup-headers.lo \
-       soup-io-stream.lo soup-logger.lo soup-message.lo \
+       soup-init.lo soup-io-stream.lo soup-logger.lo soup-message.lo \
        soup-message-body.lo soup-message-client-io.lo \
        soup-message-headers.lo soup-message-io.lo \
        soup-message-queue.lo soup-message-server-io.lo soup-method.lo \
@@ -551,6 +551,7 @@
        $(SQLITE_LIBS)
 
 libsoup_2_4_la_SOURCES = \
+       gconstructor.h                  \
        soup-address.c                  \
        soup-auth.c                     \
        soup-auth-basic.h               \
@@ -600,6 +601,7 @@
        soup-filter-input-stream.h      \
        soup-form.c                     \
        soup-headers.c                  \
+       soup-init.c                     \
        soup-io-stream.h                \
        soup-io-stream.c                \
        soup-logger.c                   \
@@ -844,6 +846,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/soup-form.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/soup-gnome-features.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/soup-headers.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/soup-init.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/soup-io-stream.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/soup-logger.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/soup-message-body.Plo@am__quote@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsoup-2.52.0/libsoup/gconstructor.h 
new/libsoup-2.52.1/libsoup/gconstructor.h
--- old/libsoup-2.52.0/libsoup/gconstructor.h   1970-01-01 01:00:00.000000000 
+0100
+++ new/libsoup-2.52.1/libsoup/gconstructor.h   2015-10-12 23:20:07.000000000 
+0200
@@ -0,0 +1,94 @@
+/*
+  If G_HAS_CONSTRUCTORS is true then the compiler support *both* constructors 
and
+  destructors, in a sane way, including e.g. on library unload. If not you're 
on
+  your own.
+
+  Some compilers need #pragma to handle this, which does not work with macros,
+  so the way you need to use this is (for constructors):
+
+  #ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA
+  #pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(my_constructor)
+  #endif
+  G_DEFINE_CONSTRUCTOR(my_constructor)
+  static void my_constructor(void) {
+   ...
+  }
+
+*/
+
+#ifndef __GTK_DOC_IGNORE__
+
+#if  __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
+
+#define G_HAS_CONSTRUCTORS 1
+
+#define G_DEFINE_CONSTRUCTOR(_func) static void __attribute__((constructor)) 
_func (void);
+#define G_DEFINE_DESTRUCTOR(_func) static void __attribute__((destructor)) 
_func (void);
+
+#elif defined (_MSC_VER) && (_MSC_VER >= 1500)
+/* Visual studio 2008 and later has _Pragma */
+
+#define G_HAS_CONSTRUCTORS 1
+
+#define G_DEFINE_CONSTRUCTOR(_func) \
+  static void _func(void); \
+  static int _func ## _wrapper(void) { _func(); return 0; } \
+  __pragma(section(".CRT$XCU",read)) \
+  __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = 
_func ## _wrapper;
+
+#define G_DEFINE_DESTRUCTOR(_func) \
+  static void _func(void); \
+  static int _func ## _constructor(void) { atexit (_func); return 0; } \
+  __pragma(section(".CRT$XCU",read)) \
+  __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = 
_func ## _constructor;
+
+#elif defined (_MSC_VER)
+
+#define G_HAS_CONSTRUCTORS 1
+
+/* Pre Visual studio 2008 must use #pragma section */
+#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1
+#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1
+
+#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \
+  section(".CRT$XCU",read)
+#define G_DEFINE_CONSTRUCTOR(_func) \
+  static void _func(void); \
+  static int _func ## _wrapper(void) { _func(); return 0; } \
+  __declspec(allocate(".CRT$XCU")) static int (*p)(void) = _func ## _wrapper;
+
+#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \
+  section(".CRT$XCU",read)
+#define G_DEFINE_DESTRUCTOR(_func) \
+  static void _func(void); \
+  static int _func ## _constructor(void) { atexit (_func); return 0; } \
+  __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = 
_func ## _constructor;
+
+#elif defined(__SUNPRO_C)
+
+/* This is not tested, but i believe it should work, based on:
+ * 
http://opensource.apple.com/source/OpenSSL098/OpenSSL098-35/src/fips/fips_premain.c
+ */
+
+#define G_HAS_CONSTRUCTORS 1
+
+#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1
+#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1
+
+#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \
+  init(_func)
+#define G_DEFINE_CONSTRUCTOR(_func) \
+  static void _func(void);
+
+#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \
+  fini(_func)
+#define G_DEFINE_DESTRUCTOR(_func) \
+  static void _func(void);
+
+#else
+
+/* constructors not supported for this compiler */
+
+#endif
+
+#endif /* __GTK_DOC_IGNORE__ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsoup-2.52.0/libsoup/soup-auth-basic.c 
new/libsoup-2.52.1/libsoup/soup-auth-basic.c
--- old/libsoup-2.52.0/libsoup/soup-auth-basic.c        2015-09-18 
16:04:53.000000000 +0200
+++ new/libsoup-2.52.1/libsoup/soup-auth-basic.c        2015-10-12 
23:20:07.000000000 +0200
@@ -75,7 +75,9 @@
 
        /* Strip filename component */
        p = strrchr (space, '/');
-       if (p && p != space && p[1])
+       if (p == space && p[1])
+               p[1] = '\0';
+       else if (p && p[1])
                *p = '\0';
 
        return g_slist_prepend (NULL, space);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsoup-2.52.0/libsoup/soup-auth-manager.c 
new/libsoup-2.52.1/libsoup/soup-auth-manager.c
--- old/libsoup-2.52.0/libsoup/soup-auth-manager.c      2015-07-27 
19:51:03.000000000 +0200
+++ new/libsoup-2.52.1/libsoup/soup-auth-manager.c      2015-10-12 
23:20:07.000000000 +0200
@@ -474,12 +474,12 @@
 
                queue = soup_session_get_queue (priv->session);
                item = soup_message_queue_lookup (queue, msg);
-               if (item) {
-                       uri = soup_connection_get_proxy_uri (item->conn);
-                       soup_message_queue_item_unref (item);
-               } else
-                       uri = NULL;
+               if (!item)
+                       return;
 
+               /* When loaded from the disk cache, the connection is NULL. */
+               uri = item->conn ? soup_connection_get_proxy_uri (item->conn) : 
NULL;
+               soup_message_queue_item_unref (item);
                if (!uri)
                        return;
        } else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsoup-2.52.0/libsoup/soup-init.c 
new/libsoup-2.52.1/libsoup/soup-init.c
--- old/libsoup-2.52.0/libsoup/soup-init.c      1970-01-01 01:00:00.000000000 
+0100
+++ new/libsoup-2.52.1/libsoup/soup-init.c      2015-10-12 23:20:07.000000000 
+0200
@@ -0,0 +1,78 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * soup-session.c
+ *
+ * Copyright (C) 2000-2003, Ximian, Inc.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <glib/gi18n-lib.h>
+#include "gconstructor.h"
+
+#ifdef G_OS_WIN32
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+HMODULE soup_dll;
+#endif
+
+static void
+soup_init (void)
+{
+#ifdef G_OS_WIN32
+       char *basedir = g_win32_get_package_installation_directory_of_module 
(soup_dll);
+       char *localedir = g_build_filename (basedir, "share", "locale", NULL);
+       bindtextdomain (GETTEXT_PACKAGE, localedir);
+       g_free (localedir);
+       g_free (basedir);
+#else
+       bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+#endif
+#ifdef HAVE_BIND_TEXTDOMAIN_CODESET
+       bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+#endif
+}
+
+#if defined (G_OS_WIN32)
+
+BOOL WINAPI
+DllMain (HINSTANCE hinstDLL,
+         DWORD     fdwReason,
+         LPVOID    lpvReserved)
+{
+       switch (fdwReason) {
+       case DLL_PROCESS_ATTACH:
+               soup_dll = hinstDLL;
+
+               soup_init ();
+               break;
+
+       case DLL_THREAD_DETACH:
+
+       default:
+               /* do nothing */
+               ;
+       }
+
+       return TRUE;
+}
+
+#elif defined (G_HAS_CONSTRUCTORS)
+
+#ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA
+#pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(soup_init_ctor)
+#endif
+G_DEFINE_CONSTRUCTOR(soup_init_ctor)
+
+static void
+soup_init_ctor (void)
+{
+       soup_init ();
+}
+
+#else
+# error Your platform/compiler is missing constructor support
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsoup-2.52.0/libsoup/soup-session.c 
new/libsoup-2.52.1/libsoup/soup-session.c
--- old/libsoup-2.52.0/libsoup/soup-session.c   2015-08-10 15:49:46.000000000 
+0200
+++ new/libsoup-2.52.1/libsoup/soup-session.c   2015-10-12 23:20:07.000000000 
+0200
@@ -77,48 +77,6 @@
  * subtypes) have a #SoupContentDecoder by default.
  **/
 
-#if defined (G_OS_WIN32)
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-
-HMODULE soup_dll;
-
-BOOL WINAPI
-DllMain (HINSTANCE hinstDLL,
-         DWORD     fdwReason,
-         LPVOID    lpvReserved)
-{
-       switch (fdwReason) {
-       case DLL_PROCESS_ATTACH:
-               soup_dll = hinstDLL;
-               break;
-
-       case DLL_THREAD_DETACH:
-
-       default:
-               /* do nothing */
-               ;
-       }
-}
-#endif
-
-static void
-soup_init (void)
-{
-#ifdef G_OS_WIN32
-       char *basedir = g_win32_get_package_installation_directory_of_module 
(soup_dll);
-       char *localedir = g_build_filename (basedir, "share", "locale", NULL);
-       bindtextdomain (GETTEXT_PACKAGE, localedir);
-       g_free (localedir);
-       g_free (basedir);
-#else
-       bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
-#endif
-#ifdef HAVE_BIND_TEXTDOMAIN_CODESET
-       bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
-#endif
-}
-
 typedef struct {
        SoupURI     *uri;
        SoupAddress *addr;
@@ -214,9 +172,7 @@
 
 #define SOUP_SESSION_USER_AGENT_BASE "libsoup/" PACKAGE_VERSION
 
-G_DEFINE_TYPE_WITH_CODE (SoupSession, soup_session, G_TYPE_OBJECT,
-                        soup_init ();
-                        )
+G_DEFINE_TYPE (SoupSession, soup_session, G_TYPE_OBJECT)
 
 enum {
        REQUEST_QUEUED,
@@ -4823,7 +4779,9 @@
 {
        GTask *task = user_data;
 
-       g_signal_handlers_disconnect_by_func (msg, G_CALLBACK 
(websocket_connect_async_stop), task);
+       /* Disconnect websocket_connect_async_stop() handler. */
+       g_signal_handlers_disconnect_matched (msg, G_SIGNAL_MATCH_DATA,
+                                             0, 0, NULL, NULL, task);
 
        g_task_return_new_error (task,
                                 SOUP_WEBSOCKET_ERROR, 
SOUP_WEBSOCKET_ERROR_NOT_WEBSOCKET,
@@ -4840,7 +4798,9 @@
        SoupWebsocketConnection *client;
        GError *error = NULL;
 
-       g_signal_handlers_disconnect_by_func (msg, G_CALLBACK 
(websocket_connect_async_stop), task);
+       /* Disconnect websocket_connect_async_stop() handler. */
+       g_signal_handlers_disconnect_matched (msg, G_SIGNAL_MATCH_DATA,
+                                             0, 0, NULL, NULL, task);
 
        if (soup_websocket_client_verify_handshake (item->msg, &error)){
                stream = soup_session_steal_connection (item->session, 
item->msg);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsoup-2.52.0/po/de.po new/libsoup-2.52.1/po/de.po
--- old/libsoup-2.52.0/po/de.po 2015-07-27 19:51:03.000000000 +0200
+++ new/libsoup-2.52.1/po/de.po 2015-10-12 23:20:07.000000000 +0200
@@ -4,26 +4,27 @@
 # Tobias Endrigkeit <tobiasendrigk...@googlemail.com>, 2012.
 # Mario Blättermann <mario.blaetterm...@gmail.com>, 2012, 2013.
 # Andre Jonas <nip...@googlemail.com>, 2013.
+# Bernd Homuth <d...@hmt.im>, 2015.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: libsoup master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?";
 "product=libsoup&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2014-09-21 13:58+0000\n"
-"PO-Revision-Date: 2014-09-21 19:25+0100\n"
-"Last-Translator: Benjamin Steinwender <b...@stbe.at>\n"
-"Language-Team: Deutsch <German <gnome...@gnome.org>>\n"
+"POT-Creation-Date: 2015-09-21 11:01+0000\n"
+"PO-Revision-Date: 2015-09-22 21:16+0200\n"
+"Last-Translator: Bernd Homuth <d...@hmt.im>\n"
+"Language-Team: Deutsch <gnome...@gnome.org>\n"
 "Language: de\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.6.9\n"
+"X-Generator: Gtranslator 2.91.6\n"
 
 #: ../libsoup/soup-body-input-stream.c:140
 #: ../libsoup/soup-body-input-stream.c:171
-#: ../libsoup/soup-body-input-stream.c:204 ../libsoup/soup-message-io.c:196
+#: ../libsoup/soup-body-input-stream.c:204 ../libsoup/soup-message-io.c:235
 msgid "Connection terminated unexpectedly"
 msgstr "Die Verbindung wurde unerwartet beendet"
 
@@ -35,11 +36,11 @@
 msgid "Cannot truncate SoupBodyInputStream"
 msgstr "SoupBodyInputStream konnte nicht abgeschnitten werden"
 
-#: ../libsoup/soup-cache-input-stream.c:73
+#: ../libsoup/soup-cache-input-stream.c:74
 msgid "Network stream unexpectedly closed"
 msgstr "Netzwerk-Stream wurde unerwartet geschlossen"
 
-#: ../libsoup/soup-cache-input-stream.c:290
+#: ../libsoup/soup-cache-input-stream.c:291
 msgid "Failed to completely cache the resource"
 msgstr "Das vollständige Zwischenspeichern der Ressource ist fehlgeschlagen"
 
@@ -56,15 +57,15 @@
 msgid "Unrecognized HTTP response encoding"
 msgstr "Unbekannte Kodierung der HTTP-Antwort"
 
-#: ../libsoup/soup-message-io.c:854 ../libsoup/soup-message-io.c:890
-msgid "Operation was cancelled"
-msgstr "Der Vorgang wurde abgebrochen"
-
-#: ../libsoup/soup-message-io.c:901
+#: ../libsoup/soup-message-io.c:392 ../libsoup/soup-message-io.c:1020
 msgid "Operation would block"
 msgstr "Der Vorgang würde gestoppt werden"
 
-#: ../libsoup/soup-message-server-io.c:41
+#: ../libsoup/soup-message-io.c:972 ../libsoup/soup-message-io.c:1005
+msgid "Operation was cancelled"
+msgstr "Der Vorgang wurde abgebrochen"
+
+#: ../libsoup/soup-message-server-io.c:64
 msgid "Could not parse HTTP request"
 msgstr "HTTP-Anfrage konnte nicht verarbeitet werden"
 
@@ -78,42 +79,88 @@
 msgid "Invalid '%s' URI: %s"
 msgstr "Ungültige »%s« Adresse: %s"
 
-#: ../libsoup/soup-server.c:1528
+#: ../libsoup/soup-server.c:1711
 msgid "Can't create a TLS server without a TLS certificate"
 msgstr "TLS-Server kann nicht ohne TLS-Zertifikat erstellt werden"
 
-#: ../libsoup/soup-server.c:1547
+#: ../libsoup/soup-server.c:1730
 #, c-format
 msgid "Could not listen on address %s, port %d"
 msgstr "Auf Adresse %s, Port %d kann nicht gehört werden"
 
-#: ../libsoup/soup-session.c:4466
+#: ../libsoup/soup-session.c:4587
 #, c-format
 msgid "Could not parse URI '%s'"
 msgstr "Die Adresse »%s« konnte nicht verarbeitet werden"
 
-#: ../libsoup/soup-session.c:4503
+#: ../libsoup/soup-session.c:4624
 #, c-format
 msgid "Unsupported URI scheme '%s'"
 msgstr "Nicht unterstütztes Adressenschema »%s«"
 
-#: ../libsoup/soup-session.c:4525
+#: ../libsoup/soup-session.c:4646
 #, c-format
 msgid "Not an HTTP URI"
 msgstr "Keine HTTP-Adresse"
 
-#: ../libsoup/soup-socket.c:142
+#: ../libsoup/soup-session.c:4830
+msgid "The server did not accept the WebSocket handshake."
+msgstr "Der Server hat den WebSocket-Handshake nicht angenommen."
+
+#: ../libsoup/soup-socket.c:148
 msgid "Can't import non-socket as SoupSocket"
 msgstr "Nicht-Socket kann nicht als SoupSocket importiert werden"
 
-#: ../libsoup/soup-socket.c:160
+#: ../libsoup/soup-socket.c:166
 msgid "Could not import existing socket: "
 msgstr "Bestehendes Socket konnte nicht importieren werden: "
 
-#: ../libsoup/soup-socket.c:169
+#: ../libsoup/soup-socket.c:175
 msgid "Can't import unconnected socket"
 msgstr "Unverbundenes Socket kann nicht importiert werden"
 
+#: ../libsoup/soup-websocket.c:338 ../libsoup/soup-websocket.c:347
+msgid "WebSocket handshake expected"
+msgstr "WebSocket-Handshale erwartet"
+
+#: ../libsoup/soup-websocket.c:355
+msgid "Unsupported WebSocket version"
+msgstr "Nicht unterstütze WebSocket-Version"
+
+#: ../libsoup/soup-websocket.c:364
+msgid "Invalid WebSocket key"
+msgstr "Ungültiger WebSocket-Schlüssel"
+
+#: ../libsoup/soup-websocket.c:374
+#, c-format
+msgid "Incorrect WebSocket \"%s\" header"
+msgstr "Falscher WebSocket »%s«-Kopf"
+
+#: ../libsoup/soup-websocket.c:383
+msgid "Unsupported WebSocket subprotocol"
+msgstr "Nicht unterstütztes WebSocket-Subprotokoll"
+
+#: ../libsoup/soup-websocket.c:510
+msgid "Server rejected WebSocket handshake"
+msgstr "Server lehnte WebSocket-Handshake ab"
+
+#: ../libsoup/soup-websocket.c:518 ../libsoup/soup-websocket.c:527
+msgid "Server ignored WebSocket handshake"
+msgstr "Server ignorierte WebSocket-Handshake"
+
+#: ../libsoup/soup-websocket.c:539
+msgid "Server requested unsupported protocol"
+msgstr "Server forderte nicht unterstütztes Protokoll an"
+
+#: ../libsoup/soup-websocket.c:549
+msgid "Server requested unsupported extension"
+msgstr "Server forderte nicht unterstützte Erweiterung an"
+
+#: ../libsoup/soup-websocket.c:562
+#, c-format
+msgid "Server returned incorrect \"%s\" key"
+msgstr "Server gab falschen »%s«-Schlüssel zurück"
+
 #: ../libsoup/soup-tld.c:188
 msgid "Hostname is an IP address"
 msgstr "Der Rechnername ist eine IP-Adresse"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsoup-2.52.0/po/vi.po new/libsoup-2.52.1/po/vi.po
--- old/libsoup-2.52.0/po/vi.po 2015-07-27 19:51:03.000000000 +0200
+++ new/libsoup-2.52.1/po/vi.po 2015-10-12 23:20:07.000000000 +0200
@@ -1,44 +1,47 @@
 # Vietnamese translation for libsoup.
-# Copyright (C) 2012 libsoup's COPYRIGHT HOLDER
+# Bản dịch tiếng Việt dành cho libsoup.
+# Copyright © 2015 GNOME i18n Project for Vietnamese.
 # This file is distributed under the same license as the libsoup package.
 # Nguyễn Thái Ngọc Duy <pclo...@gmail.com>, 2012-2013.
+# Trần Ngọc Quân <vnwild...@gmail.com>, 2015.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: libsoup master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?";
 "product=libsoup&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2013-02-18 10:20+0000\n"
-"PO-Revision-Date: 2013-03-02 20:44+0700\n"
-"Last-Translator: Nguyễn Thái Ngọc Duy <pclo...@gmail.com>\n"
-"Language-Team: Vietnamese <gnomevi-l...@lists.sourceforge.net>\n"
+"POT-Creation-Date: 2015-09-28 23:41+0000\n"
+"PO-Revision-Date: 2015-09-29 07:41+0700\n"
+"Last-Translator: Trần Ngọc Quân <vnwild...@gmail.com>\n"
+"Language-Team: Vietnamese <gnome-vi-l...@gnome.org>\n"
 "Language: vi\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Gtranslator 2.91.7\n"
 
-#: ../libsoup/soup-body-input-stream.c:141
-#: ../libsoup/soup-body-input-stream.c:172
-#: ../libsoup/soup-body-input-stream.c:205 ../libsoup/soup-message-io.c:191
+#: ../libsoup/soup-body-input-stream.c:140
+#: ../libsoup/soup-body-input-stream.c:171
+#: ../libsoup/soup-body-input-stream.c:204 ../libsoup/soup-message-io.c:235
 msgid "Connection terminated unexpectedly"
 msgstr "Kết nối ngắt bất ngờ"
 
-#: ../libsoup/soup-body-input-stream.c:463
+#: ../libsoup/soup-body-input-stream.c:462
 msgid "Invalid seek request"
-msgstr "Yêu cầu di chuyển (seek) không hợp lệ"
+msgstr "Yêu cầu di chuyển vị trí đọc (seek) không hợp lệ"
 
-#: ../libsoup/soup-body-input-stream.c:491
+#: ../libsoup/soup-body-input-stream.c:490
 msgid "Cannot truncate SoupBodyInputStream"
-msgstr "Không thể cắt SoupBodyInputStream"
+msgstr "Không thể cắt ngắn SoupBodyInputStream"
 
 #: ../libsoup/soup-cache-input-stream.c:74
 msgid "Network stream unexpectedly closed"
-msgstr "Luồng mạng đóng bất ngờ"
+msgstr "Luồng dữ liệu mạng đã đóng bất ngờ"
 
 #: ../libsoup/soup-cache-input-stream.c:291
 msgid "Failed to completely cache the resource"
-msgstr "Lỗi lưu tạm (cache) toàn bộ tài nguyên"
+msgstr "Gặp lỗi khi lưu tạm (cache) toàn bộ tài nguyên"
 
 #: ../libsoup/soup-converter-wrapper.c:192
 #, c-format
@@ -53,15 +56,15 @@
 msgid "Unrecognized HTTP response encoding"
 msgstr "Không nhận ra bảng mã phản hồi HTTP"
 
-#: ../libsoup/soup-message-io.c:846 ../libsoup/soup-message-io.c:882
-msgid "Operation was cancelled"
-msgstr "Thao tác bị huỷ"
-
-#: ../libsoup/soup-message-io.c:893
+#: ../libsoup/soup-message-io.c:392 ../libsoup/soup-message-io.c:1020
 msgid "Operation would block"
 msgstr "Thao tác có thể treo"
 
-#: ../libsoup/soup-message-server-io.c:40
+#: ../libsoup/soup-message-io.c:972 ../libsoup/soup-message-io.c:1005
+msgid "Operation was cancelled"
+msgstr "Thao tác bị hủy"
+
+#: ../libsoup/soup-message-server-io.c:64
 msgid "Could not parse HTTP request"
 msgstr "Không thể phân tích phản hồi HTTP"
 
@@ -73,35 +76,102 @@
 #: ../libsoup/soup-request.c:150
 #, c-format
 msgid "Invalid '%s' URI: %s"
-msgstr "URI '%s' không hợp lệ: %s"
+msgstr "URI “%s” không hợp lệ: %s"
+
+#: ../libsoup/soup-server.c:1711
+msgid "Can't create a TLS server without a TLS certificate"
+msgstr "Không thể tạo máy phục vụ TLS mà không có giấy chứng thực điện tử TLS"
+
+#: ../libsoup/soup-server.c:1730
+#, c-format
+msgid "Could not listen on address %s, port %d"
+msgstr "Không thể lắng nghe trên địa chỉ %s, cổng %d"
 
-#: ../libsoup/soup-session.c:4209
+#: ../libsoup/soup-session.c:4543
 #, c-format
 msgid "Could not parse URI '%s'"
-msgstr "Không thể phân tích URI '%s'"
+msgstr "Không thể phân tích URI “%s”"
 
-#: ../libsoup/soup-session.c:4246
+#: ../libsoup/soup-session.c:4580
 #, c-format
 msgid "Unsupported URI scheme '%s'"
-msgstr "Không hỗ trợ kiểu URI '%s'"
+msgstr "Không hỗ trợ kiểu URI “%s”"
 
-#: ../libsoup/soup-session.c:4268
+#: ../libsoup/soup-session.c:4602
 #, c-format
 msgid "Not an HTTP URI"
-msgstr "Không phải HTTP URI"
+msgstr "Không phải URI của HTTP"
+
+#: ../libsoup/soup-session.c:4788
+msgid "The server did not accept the WebSocket handshake."
+msgstr "Máy chủ đã không chấp nhận bắt tay WebSocket"
+
+#: ../libsoup/soup-socket.c:148
+msgid "Can't import non-socket as SoupSocket"
+msgstr "Không thể nhập vào SoupSocket một non-socket"
+
+#: ../libsoup/soup-socket.c:166
+msgid "Could not import existing socket: "
+msgstr "Không thể nhập vào ổ cắm mạng đã có: "
+
+#: ../libsoup/soup-socket.c:175
+msgid "Can't import unconnected socket"
+msgstr "Không thể nhập vào một ổ cắm mạng mà nó chưa kết nối"
+
+#: ../libsoup/soup-websocket.c:338 ../libsoup/soup-websocket.c:347
+msgid "WebSocket handshake expected"
+msgstr "Cần bắt tay WebSocket"
+
+#: ../libsoup/soup-websocket.c:355
+msgid "Unsupported WebSocket version"
+msgstr "Phiên bản WebSocket không được hỗ trợ"
+
+#: ../libsoup/soup-websocket.c:364
+msgid "Invalid WebSocket key"
+msgstr "Khóa WebSocket không hợp lệ"
+
+#: ../libsoup/soup-websocket.c:374
+#, c-format
+msgid "Incorrect WebSocket \"%s\" header"
+msgstr "Phần đầu WebSocket \"%s\" không hợp lệ"
+
+#: ../libsoup/soup-websocket.c:383
+msgid "Unsupported WebSocket subprotocol"
+msgstr "Không hỗ trợ giao thức phụ WebSocket"
+
+#: ../libsoup/soup-websocket.c:510
+msgid "Server rejected WebSocket handshake"
+msgstr "Máy phục vụ từ chối bắt tay WebSocket"
+
+#: ../libsoup/soup-websocket.c:518 ../libsoup/soup-websocket.c:527
+msgid "Server ignored WebSocket handshake"
+msgstr "Máy phục vụ bỏ qua bắt tay WebSocket"
+
+#: ../libsoup/soup-websocket.c:539
+msgid "Server requested unsupported protocol"
+msgstr "Máy phục vụ đã yêu cầu giao thức không được hỗ trợ"
+
+#: ../libsoup/soup-websocket.c:549
+msgid "Server requested unsupported extension"
+msgstr "Máy phục vụ đã yêu cầu phần mở rộng không được hỗ trợ"
+
+#: ../libsoup/soup-websocket.c:562
+#, c-format
+msgid "Server returned incorrect \"%s\" key"
+msgstr "Máy phục vụ trả về khóa \"%s\" không hợp lệ"
 
-#: ../libsoup/soup-tld.c:185
+#: ../libsoup/soup-tld.c:188
 msgid "Hostname is an IP address"
 msgstr "Tên máy là địa chỉ IP"
 
-#: ../libsoup/soup-tld.c:206
+#: ../libsoup/soup-tld.c:198 ../libsoup/soup-tld.c:220
 msgid "Invalid hostname"
 msgstr "Tên máy không hợp lệ"
 
-#: ../libsoup/soup-tld.c:235
+#: ../libsoup/soup-tld.c:250
 msgid "Hostname has no base domain"
-msgstr "Tên máy không có miền cơ bản"
+msgstr "Tên máy không có miền cơ sở"
 
-#: ../libsoup/soup-tld.c:257
+#: ../libsoup/soup-tld.c:304
 msgid "Not enough domains"
 msgstr "Không đủ miền"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsoup-2.52.0/tests/auth-test.c 
new/libsoup-2.52.1/tests/auth-test.c
--- old/libsoup-2.52.0/tests/auth-test.c        2015-07-27 19:51:03.000000000 
+0200
+++ new/libsoup-2.52.1/tests/auth-test.c        2015-10-12 23:20:07.000000000 
+0200
@@ -1183,6 +1183,17 @@
        { NULL }
 };
 
+/* https://bugzilla.gnome.org/show_bug.cgi?id=755617 */
+static SoupAuthTest basic_root_pspace_test[] = {
+       { "Auth provided via URL, should succeed",
+         "BasicRoot", "1", TRUE, "01", SOUP_STATUS_OK },
+
+       { "Parent dir should automatically reuse auth",
+         "/", "1", FALSE, "1", SOUP_STATUS_OK },
+
+       { NULL }
+};
+
 static void
 do_batch_tests (gconstpointer data)
 {
@@ -1265,6 +1276,7 @@
 
        g_test_add_data_func ("/auth/main-tests", main_tests, do_batch_tests);
        g_test_add_data_func ("/auth/relogin-tests", relogin_tests, 
do_batch_tests);
+       g_test_add_data_func ("/auth/basic-root-pspec-test", 
basic_root_pspace_test, do_batch_tests);
        g_test_add_func ("/auth/pipelined-auth", do_pipelined_auth_test);
        g_test_add_func ("/auth/digest-expiration", do_digest_expiration_test);
        g_test_add_func ("/auth/async-auth/good-password", 
do_async_auth_good_password_test);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsoup-2.52.0/tests/httpd.conf.22.in 
new/libsoup-2.52.1/tests/httpd.conf.22.in
--- old/libsoup-2.52.0/tests/httpd.conf.22.in   2015-07-27 19:51:03.000000000 
+0200
+++ new/libsoup-2.52.1/tests/httpd.conf.22.in   2015-10-12 23:20:07.000000000 
+0200
@@ -171,6 +171,7 @@
 Alias /Basic/realm2 .
 Alias /Basic/realm3 .
 Alias /Basic .
+Alias /BasicRoot .
 
 <Location /Basic/realm1>
   AuthType Basic
@@ -221,6 +222,13 @@
   Require user user3
 </Location>
 
+<Location /BasicRoot>
+  AuthType Basic
+  AuthName realm1
+  AuthUserFile ./htpasswd
+  Require user user1
+</Location>
+
 # Digest auth tests
 Alias /Digest/realm1/realm2/realm1 .
 Alias /Digest/realm1/realm2 .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsoup-2.52.0/tests/httpd.conf.24.in 
new/libsoup-2.52.1/tests/httpd.conf.24.in
--- old/libsoup-2.52.0/tests/httpd.conf.24.in   2015-07-27 19:51:03.000000000 
+0200
+++ new/libsoup-2.52.1/tests/httpd.conf.24.in   2015-10-12 23:20:07.000000000 
+0200
@@ -155,6 +155,7 @@
 Alias /Basic/realm2 .
 Alias /Basic/realm3 .
 Alias /Basic .
+Alias /BasicRoot .
 
 <Location /Basic/realm1>
   AuthType Basic
@@ -205,6 +206,13 @@
   Require user user3
 </Location>
 
+<Location /BasicRoot>
+  AuthType Basic
+  AuthName realm1
+  AuthUserFile ./htpasswd
+  Require user user1
+</Location>
+
 # Digest auth tests
 Alias /Digest/realm1/realm2/realm1 .
 Alias /Digest/realm1/realm2 .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsoup-2.52.0/tests/ntlm-test.c 
new/libsoup-2.52.1/tests/ntlm-test.c
--- old/libsoup-2.52.0/tests/ntlm-test.c        2015-07-27 19:51:03.000000000 
+0200
+++ new/libsoup-2.52.1/tests/ntlm-test.c        2015-10-12 23:24:32.000000000 
+0200
@@ -379,7 +379,7 @@
         * asking.
         */
        authenticated_ntlm = FALSE;
-       do_message (session, base_uri, "/noauth",
+       do_message (session, base_uri, "/noauth/",
                    FALSE, use_ntlm,
                    FALSE, FALSE,
                    SOUP_STATUS_OK);
@@ -395,7 +395,7 @@
         * previous step, then we'll just immediately get a 401 here.
         * So in no case will we see the client try to do_ntlm.
         */
-       do_message (session, base_uri, "/alice",
+       do_message (session, base_uri, "/alice/",
                    !alice_via_ntlm, FALSE,
                    !alice_via_ntlm, alice_via_basic,
                    alice ? SOUP_STATUS_OK :
@@ -415,7 +415,7 @@
                    SOUP_STATUS_UNAUTHORIZED);
 
        /* 4. Should be exactly the same as #3, except the status code */
-       do_message (session, base_uri, "/alice",
+       do_message (session, base_uri, "/alice/",
                    !alice, bob_via_ntlm,
                    !alice, alice_via_basic,
                    alice ? SOUP_STATUS_OK :
@@ -427,7 +427,7 @@
         * (and fail). Bob-via-NTLM will try to do NTLM right away and
         * succeed.
         */
-       do_message (session, base_uri, "/bob",
+       do_message (session, base_uri, "/bob/",
                    !bob_via_ntlm, bob_via_ntlm,
                    !bob_via_ntlm, alice_via_basic,
                    bob ? SOUP_STATUS_OK :
@@ -439,7 +439,7 @@
         * still knows about this path, so will try Basic right away
         * and succeed.
         */
-       do_message (session, base_uri, "/alice",
+       do_message (session, base_uri, "/alice/",
                    !alice_via_ntlm, alice_via_ntlm,
                    !alice_via_ntlm, alice_via_basic,
                    alice ? SOUP_STATUS_OK :
@@ -449,7 +449,7 @@
         * Since Bob-via-NTLM is unauthenticated at this point, he'll try
         * NTLM before realizing that the server doesn't support it.
         */
-       do_message (session, base_uri, "/basic",
+       do_message (session, base_uri, "/basic/",
                    FALSE, bob_via_ntlm,
                    TRUE, user != NULL,
                    user != NULL ? SOUP_STATUS_OK :
@@ -460,7 +460,7 @@
         * previous NTLM connections will have been closed by the 401
         * from /basic). Non-NTLM users will be prompted for either.
         */
-       do_message (session, base_uri, "/either",
+       do_message (session, base_uri, "/either/",
                    !use_ntlm, use_ntlm,
                    !use_ntlm, !use_ntlm && user != NULL,
                    user != NULL ? SOUP_STATUS_OK :
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsoup-2.52.0/tests/proxy-test.c 
new/libsoup-2.52.1/tests/proxy-test.c
--- old/libsoup-2.52.0/tests/proxy-test.c       2015-07-27 19:51:03.000000000 
+0200
+++ new/libsoup-2.52.1/tests/proxy-test.c       2015-10-12 23:20:07.000000000 
+0200
@@ -322,6 +322,84 @@
        soup_test_session_abort_unref (session);
 }
 
+static void
+do_proxy_auth_request (const char *url, SoupSession *session, gboolean do_read)
+{
+       SoupRequest *request;
+       SoupMessage *msg;
+       GInputStream *stream;
+       GError *error = NULL;
+
+       request = soup_session_request (session, url, NULL);
+       msg = soup_request_http_get_message (SOUP_REQUEST_HTTP (request));
+
+       stream = soup_test_request_send (request, NULL, 0, &error);
+       g_assert_no_error (error);
+       g_clear_error (&error);
+
+       if (do_read) {
+               char buffer[256];
+               gsize nread;
+
+               do {
+                       g_input_stream_read_all (stream, buffer, sizeof 
(buffer), &nread,
+                                                NULL, &error);
+                       g_assert_no_error (error);
+                       g_clear_error (&error);
+               } while (nread > 0);
+       }
+
+       soup_test_request_close_stream (request, stream, NULL, &error);
+       g_assert_no_error (error);
+       g_clear_error (&error);
+       g_object_unref (stream);
+
+       debug_printf (1, "  %d %s\n", msg->status_code, msg->reason_phrase);
+       soup_test_assert_message_status (msg, SOUP_STATUS_OK);
+
+       g_object_unref (msg);
+       g_object_unref (request);
+}
+
+static void
+do_proxy_auth_cache_test (void)
+{
+       SoupSession *session;
+       char *cache_dir;
+       SoupCache *cache;
+       char *url;
+
+       g_test_bug ("756076");
+
+       SOUP_TEST_SKIP_IF_NO_APACHE;
+
+       cache_dir = g_dir_make_tmp ("cache-test-XXXXXX", NULL);
+       debug_printf (2, "  Caching to %s\n", cache_dir);
+       cache = soup_cache_new (cache_dir, SOUP_CACHE_SINGLE_USER);
+       g_free (cache_dir);
+
+       session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC,
+                                        SOUP_SESSION_PROXY_RESOLVER, 
proxy_resolvers[AUTH_PROXY],
+                                        SOUP_SESSION_USE_THREAD_CONTEXT, TRUE,
+                                        SOUP_SESSION_ADD_FEATURE, cache,
+                                        NULL);
+       g_signal_connect (session, "authenticate",
+                         G_CALLBACK (authenticate), NULL);
+
+       url = g_strconcat (HTTP_SERVER, "/Basic/realm1/", NULL);
+
+       debug_printf (1, "  GET %s via %s (from network)\n", url, 
proxy_names[AUTH_PROXY]);
+       do_proxy_auth_request (url, session, TRUE);
+       soup_cache_flush (cache);
+
+       debug_printf (1, "  GET %s via %s (from cache)\n", url, 
proxy_names[AUTH_PROXY]);
+       do_proxy_auth_request (url, session, FALSE);
+
+       g_free (url);
+       soup_test_session_abort_unref (session);
+       g_object_unref (cache);
+}
+
 int
 main (int argc, char **argv)
 {
@@ -355,6 +433,7 @@
 
        g_test_add_data_func ("/proxy/fragment", base_uri, 
do_proxy_fragment_test);
        g_test_add_func ("/proxy/redirect", do_proxy_redirect_test);
+       g_test_add_func ("/proxy/auth-cache", do_proxy_auth_cache_test);
 
        ret = g_test_run ();
 


Reply via email to