Hello community,

here is the log from the commit of package libshout for openSUSE:Factory 
checked in at 2020-10-12 13:46:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libshout (Old)
 and      /work/SRC/openSUSE:Factory/.libshout.new.3486 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libshout"

Mon Oct 12 13:46:22 2020 rev:25 rq:840487 version:2.4.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/libshout/libshout.changes        2019-09-11 
10:21:40.123501268 +0200
+++ /work/SRC/openSUSE:Factory/.libshout.new.3486/libshout.changes      
2020-10-12 13:46:25.877899789 +0200
@@ -1,0 +2,13 @@
+Fri Oct  9 19:39:02 UTC 2020 - Dirk Mueller <dmuel...@suse.com>
+
+- update to 2.4.4:
+  * Fixed handling of blocking/non-blocking mode
+  * Fixed ICY port increment
+  * Fixed reusing of handles
+  * Fixed error handling of Ogg sync layer
+  * Fixed passing of errors between connection and instance layer
+    (Without this fix, dead connections were not correctly
+    detected)
+  * Fixed and improved build scripts
+
+-------------------------------------------------------------------

Old:
----
  libshout-2.4.3.tar.gz

New:
----
  libshout-2.4.4.tar.gz

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

Other differences:
------------------
++++++ libshout.spec ++++++
--- /var/tmp/diff_new_pack.VSwUzN/_old  2020-10-12 13:46:26.773900152 +0200
+++ /var/tmp/diff_new_pack.VSwUzN/_new  2020-10-12 13:46:26.777900155 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package libshout
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,19 +17,19 @@
 
 
 Name:           libshout
-Version:        2.4.3
+Version:        2.4.4
 Release:        0
 Summary:        Library for communcating with Icecast servers
 License:        LGPL-2.1-or-later
 Group:          Productivity/Multimedia/Sound/Utilities
 URL:            https://icecast.org/
+#Git-Clone:     https://gitlab.xiph.org/xiph/icecast-libshout/
 Source:         
https://downloads.xiph.org/releases/libshout/%name-%version.tar.gz
 Source1:        baselibs.conf
-BuildRequires:  libtheora-devel
 BuildRequires:  libtool
-BuildRequires:  libvorbis-devel
-BuildRequires:  pkgconfig
-BuildRequires:  speex-devel
+BuildRequires:  pkgconfig(speex)
+BuildRequires:  pkgconfig(theora)
+BuildRequires:  pkgconfig(vorbis)
 
 %description
 libshout is a library for communicating with and sending data to an
@@ -56,12 +56,12 @@
 applications that want to use libshout.
 
 %prep
-%setup -q
+%autosetup -p1
 
 %build
 autoreconf --force --install
 %configure --disable-static
-make %{?_smp_mflags}
+%make_build
 
 %install
 %make_install
@@ -78,7 +78,8 @@
 %_libdir/*.so.3*
 
 %files devel
-%doc README COPYING doc/*.xml examples/*.c
+%doc README doc/*.xml examples/*.c
+%license COPYING
 %_libdir/*.so
 %_includedir/shout
 %_datadir/aclocal/*.m4

++++++ libshout-2.4.3.tar.gz -> libshout-2.4.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libshout-2.4.3/NEWS new/libshout-2.4.4/NEWS
--- old/libshout-2.4.3/NEWS     2019-05-29 23:23:35.000000000 +0200
+++ new/libshout-2.4.4/NEWS     2020-10-02 00:34:44.000000000 +0200
@@ -1,3 +1,13 @@
+libshout 2.4.4 (20201001)
+
+* Fixed handling of blocking/non-blocking mode
+* Fixed ICY port increment
+* Fixed reusing of handles
+* Fixed error handling of Ogg sync layer
+* Fixed Passing of errors between connection and instance layer
+  Without this fix died connections were not correctly detected.
+* Fixed and improved build scripts
+
 libshout 2.4.3 (20190529)
 * Fixed building with OpenSSL 1.1.0.
 * Fixed static building with OpenSSL.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libshout-2.4.3/aclocal.m4 
new/libshout-2.4.4/aclocal.m4
--- old/libshout-2.4.3/aclocal.m4       2019-05-28 21:31:17.000000000 +0200
+++ new/libshout-2.4.4/aclocal.m4       2020-10-02 00:16:32.000000000 +0200
@@ -982,35 +982,6 @@
 fi
 ])
 
-#  -*- Autoconf -*-
-# Obsolete and "removed" macros, that must however still report explicit
-# error messages when used, to smooth transition.
-#
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([AM_CONFIG_HEADER],
-[AC_DIAGNOSE([obsolete],
-['$0': this macro is obsolete.
-You should use the 'AC][_CONFIG_HEADERS' macro instead.])dnl
-AC_CONFIG_HEADERS($@)])
-
-AC_DEFUN([AM_PROG_CC_STDC],
-[AC_PROG_CC
-am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc
-AC_DIAGNOSE([obsolete],
-['$0': this macro is obsolete.
-You should simply use the 'AC][_PROG_CC' macro instead.
-Also, your code should no longer depend upon 'am_cv_prog_cc_stdc',
-but upon 'ac_cv_prog_cc_stdc'.])])
-
-AC_DEFUN([AM_C_PROTOTYPES],
-         [AC_FATAL([automatic de-ANSI-fication support has been removed])])
-AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES])
-
 # Helper functions for option handling.                     -*- Autoconf -*-
 
 # Copyright (C) 2001-2013 Free Software Foundation, Inc.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libshout-2.4.3/configure new/libshout-2.4.4/configure
--- old/libshout-2.4.3/configure        2019-05-28 21:31:20.000000000 +0200
+++ new/libshout-2.4.4/configure        2020-10-02 00:16:32.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libshout 2.4.3.
+# Generated by GNU Autoconf 2.69 for libshout 2.4.4.
 #
 # Report bugs to <icecast-...@xiph.org>.
 #
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='libshout'
 PACKAGE_TARNAME='libshout'
-PACKAGE_VERSION='2.4.3'
-PACKAGE_STRING='libshout 2.4.3'
+PACKAGE_VERSION='2.4.4'
+PACKAGE_STRING='libshout 2.4.4'
 PACKAGE_BUGREPORT='icecast-...@xiph.org'
 PACKAGE_URL=''
 
@@ -1389,7 +1389,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 libshout 2.4.3 to adapt to many kinds of systems.
+\`configure' configures libshout 2.4.4 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1459,7 +1459,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libshout 2.4.3:";;
+     short | recursive ) echo "Configuration of libshout 2.4.4:";;
    esac
   cat <<\_ACEOF
 
@@ -1597,7 +1597,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libshout configure 2.4.3
+libshout configure 2.4.4
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2260,7 +2260,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libshout $as_me 2.4.3, which was
+It was created by libshout $as_me 2.4.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2610,8 +2610,11 @@
 
 
 
+
+
 ac_config_headers="$ac_config_headers config.h"
 
+
 # config.h guard
 
 
@@ -2623,10 +2626,10 @@
 $as_echo "#define LIBSHOUT_MINOR 4" >>confdefs.h
 
 
-$as_echo "#define LIBSHOUT_MICRO 3" >>confdefs.h
+$as_echo "#define LIBSHOUT_MICRO 4" >>confdefs.h
 
 
-VERSION=2.4.3
+VERSION=2.4.4
 
 am__api_version='1.14'
 
@@ -3143,7 +3146,7 @@
 
 # Define the identity of the package.
  PACKAGE='libshout'
- VERSION='2.4.3'
+ VERSION='2.4.4'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -11901,8 +11904,8 @@
 
 
 case "$ac_cv_host" in
-   *openbsd* | *solaris* | *irix*)
-   ;;
+   *openbsd* | *solaris* | *irix* | *darwin*)
+            ;;
    *)
 $as_echo "#define _XOPEN_SOURCE 600" >>confdefs.h
 
@@ -15300,6 +15303,7 @@
 
 ac_libobjs=
 ac_ltlibobjs=
+U=
 for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
   # 1. Remove the extension, and $U if already installed.
   ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
@@ -15763,7 +15767,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libshout $as_me 2.4.3, which was
+This file was extended by libshout $as_me 2.4.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -15829,7 +15833,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libshout config.status 2.4.3
+libshout config.status 2.4.4
 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/libshout-2.4.3/configure.ac 
new/libshout-2.4.4/configure.ac
--- old/libshout-2.4.3/configure.ac     2019-05-28 21:30:53.000000000 +0200
+++ new/libshout-2.4.4/configure.ac     2020-10-02 00:06:56.000000000 +0200
@@ -3,13 +3,16 @@
 
 m4_define(libshout_major, 2)
 m4_define(libshout_minor, 4)
-m4_define(libshout_micro, 3)
+m4_define(libshout_micro, 4)
 m4_define(libshout_version, libshout_major.libshout_minor.libshout_micro)
 
 AC_INIT([libshout], libshout_version, [icecast-...@xiph.org])
 AC_PREREQ([2.54])
+
 AC_CONFIG_SRCDIR([src/shout.c])
-AM_CONFIG_HEADER(config.h)
+AC_CONFIG_MACRO_DIRS([m4])
+AC_CONFIG_HEADERS([config.h])
+
 # config.h guard
 AH_TOP([#ifndef __CONFIG_H__
 #define __CONFIG_H__ 1])
@@ -32,14 +35,17 @@
 ])
 
 AC_PROG_CC
-AM_PROG_LIBTOOL
+LT_INIT
 
 dnl Set some options based on environment
 
 dnl openbsd headers break when _XOPEN_SOURCE is defined but without it seems
 dnl to be fine
 case "$ac_cv_host" in
-   *openbsd* | *solaris* | *irix*)
+   *openbsd* | *solaris* | *irix* | *darwin*)
+   dnl  On darwin, do not define _XOPEN_SOURCE as it will narrow us down too
+   dnl  much regarding function availability, so functions like strcasestr
+   dnl  would be unavailable.
    ;;
    *) AC_DEFINE(_XOPEN_SOURCE, 600, [Define if you have POSIX and XPG 
specifications])
    ;;
@@ -91,7 +97,7 @@
 
 dnl Allow examples not to be build
 AC_ARG_ENABLE([examples],
-  AC_HELP_STRING([--disable-examples],[Do not build example code]))
+  AS_HELP_STRING([--disable-examples],[Do not build example code]))
 AM_CONDITIONAL([HAVE_EXAMPLES],[test "${enable_examples}" != "no"])
 
 dnl Module checks
@@ -99,7 +105,7 @@
 
 dnl Extra dependencies
 AC_ARG_ENABLE([thread],
-  AC_HELP_STRING([--disable-thread],[do not build with thread support even if 
it is available]))
+  AS_HELP_STRING([--disable-thread],[do not build with thread support even if 
it is available]))
 
 SHOUT_THREADSAFE="0"
 if test "$enable_thread" != "no"
@@ -130,7 +136,7 @@
 XIPH_CFLAGS="$XIPH_CFLAGS $VORBIS_CFLAGS"
 
 AC_ARG_ENABLE([theora],
-  AC_HELP_STRING([--disable-theora],[do not build with Theora support]))
+  AS_HELP_STRING([--disable-theora],[do not build with Theora support]))
 
 if test "x$enable_theora" != "xno"; then
 PKG_CHECK_MODULES(THEORA, theora, [
@@ -149,7 +155,7 @@
 fi
 
 AC_ARG_ENABLE([speex],
-  AC_HELP_STRING([--disable-speex],[do not build with Speex support]))
+  AS_HELP_STRING([--disable-speex],[do not build with Speex support]))
 
 if test "x$enable_speex" != "xno"; then
 PKG_CHECK_MODULES(SPEEX, speex, [
@@ -170,7 +176,7 @@
 dnl If pkgconfig is found, install a shout.pc file.
 
 AC_ARG_ENABLE([pkgconfig],
-  AC_HELP_STRING([--disable-pkgconfig],[disable pkgconfig data files (auto)]),
+  AS_HELP_STRING([--disable-pkgconfig],[disable pkgconfig data files (auto)]),
   [dopkgconfig="$enableval"], [dopkgconfig="maybe"])
 if test "$dopkgconfig" = "maybe"
 then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libshout-2.4.3/include/shout/shout.h.in 
new/libshout-2.4.4/include/shout/shout.h.in
--- old/libshout-2.4.3/include/shout/shout.h.in 2019-05-22 11:05:32.000000000 
+0200
+++ new/libshout-2.4.4/include/shout/shout.h.in 2019-08-24 13:52:16.000000000 
+0200
@@ -85,6 +85,11 @@
 #define SHOUT_TLS_RFC2818           ( 11) /* Use TLS for transport layer like 
HTTPS [RFC2818] does. */
 #define SHOUT_TLS_RFC2817           ( 12) /* Use TLS via HTTP Upgrade:-header 
[RFC2817]. */
 
+/* Possible values for blocking */
+#define SHOUT_BLOCKING_DEFAULT      (255) /* Use the default blocking setting. 
*/
+#define SHOUT_BLOCKING_FULL         (  0) /* Block in all I/O related 
functions */
+#define SHOUT_BLOCKING_NONE         (  1) /* Do not block in I/O related 
functions */
+
 #define SHOUT_AI_BITRATE            "bitrate"
 #define SHOUT_AI_SAMPLERATE         "samplerate"
 #define SHOUT_AI_CHANNELS           "channels"
@@ -244,7 +249,8 @@
 unsigned int shout_get_protocol(shout_t *self);
 
 /* Instructs libshout to use nonblocking I/O. Must be called before
- * shout_open (no switching back and forth midstream at the moment). */
+ * shout_open (no switching back and forth midstream at the moment).
+ * nonblocking is one of SHOUT_BLOCKING_xxx. */
 int shout_set_nonblocking(shout_t* self, unsigned int nonblocking);
 unsigned int shout_get_nonblocking(shout_t *self);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libshout-2.4.3/src/Makefile.am 
new/libshout-2.4.4/src/Makefile.am
--- old/libshout-2.4.3/src/Makefile.am  2019-05-20 20:33:51.000000000 +0200
+++ new/libshout-2.4.4/src/Makefile.am  2020-09-30 01:46:00.000000000 +0200
@@ -31,7 +31,7 @@
 CODECS=codec_vorbis.c codec_opus.c $(MAYBE_THEORA) $(MAYBE_SPEEX)
 libshout_la_SOURCES = shout.c util.c queue.c connection.c $(PROTOCOLS) 
$(FORMATS) $(CODECS) $(MAYBE_TLS)
 AM_CFLAGS = @XIPH_CFLAGS@
-AM_CPPFLAGS = -I$(top_builddir)/include -I$(srcdir)/common
+AM_CPPFLAGS = -I$(top_builddir)/include -I$(srcdir)/common @XIPH_CPPFLAGS@
 
 libshout_la_LIBADD = common/net/libicenet.la common/timing/libicetiming.la 
common/avl/libiceavl.la\
                common/httpp/libicehttpp.la $(MAYBE_THREAD_LIB) $(THEORA_LIBS) 
$(VORBIS_LIBS) $(SPEEX_LIBS) @XIPH_LIBS@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libshout-2.4.3/src/Makefile.in 
new/libshout-2.4.4/src/Makefile.in
--- old/libshout-2.4.3/src/Makefile.in  2019-05-28 21:31:19.000000000 +0200
+++ new/libshout-2.4.4/src/Makefile.in  2020-10-02 00:16:33.000000000 +0200
@@ -431,7 +431,7 @@
 CODECS = codec_vorbis.c codec_opus.c $(MAYBE_THEORA) $(MAYBE_SPEEX)
 libshout_la_SOURCES = shout.c util.c queue.c connection.c $(PROTOCOLS) 
$(FORMATS) $(CODECS) $(MAYBE_TLS)
 AM_CFLAGS = @XIPH_CFLAGS@
-AM_CPPFLAGS = -I$(top_builddir)/include -I$(srcdir)/common
+AM_CPPFLAGS = -I$(top_builddir)/include -I$(srcdir)/common @XIPH_CPPFLAGS@
 libshout_la_LIBADD = common/net/libicenet.la common/timing/libicetiming.la 
common/avl/libiceavl.la\
                common/httpp/libicehttpp.la $(MAYBE_THREAD_LIB) $(THEORA_LIBS) 
$(VORBIS_LIBS) $(SPEEX_LIBS) @XIPH_LIBS@
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libshout-2.4.3/src/connection.c 
new/libshout-2.4.4/src/connection.c
--- old/libshout-2.4.3/src/connection.c 2019-05-20 21:32:59.000000000 +0200
+++ new/libshout-2.4.4/src/connection.c 2020-08-24 18:59:36.000000000 +0200
@@ -118,7 +118,7 @@
             .tv_usec = (timeout % 1000) * 1000
         };
         return tv;
-    } else if (con->nonblocking) {
+    } else if (con->nonblocking == SHOUT_BLOCKING_NONE) {
         return tv_nonblocking;
     } else {
         return tv_blocking;
@@ -167,7 +167,7 @@
             }
         break;
         case SHOUT_SOCKSTATE_CONNECTING:
-            if (con->nonblocking) {
+            if (con->nonblocking == SHOUT_BLOCKING_NONE) {
                 ret = shout_connection_iter__wait_for_io(con, shout, 1, 1, 0);
                 if (ret != SHOUT_RS_DONE) {
                     return ret;
@@ -460,7 +460,7 @@
             break; \
             case SHOUT_RS_TIMEOUT: \
             case SHOUT_RS_NOTNOW: \
-                if (con->nonblocking) \
+                if (con->nonblocking == SHOUT_BLOCKING_NONE) \
                     return SHOUTERR_RETRY; \
                 retry = 1; \
             break; \
@@ -518,7 +518,7 @@
 }
 int                 shout_connection_set_nonblocking(shout_connection_t *con, 
unsigned int nonblocking)
 {
-    if (!con)
+    if (!con || (nonblocking != SHOUT_BLOCKING_DEFAULT && nonblocking != 
SHOUT_BLOCKING_FULL && nonblocking != SHOUT_BLOCKING_NONE))
         return SHOUTERR_INSANE;
 
     if (con->socket != SOCK_ERROR)
@@ -563,13 +563,14 @@
     if (con->socket != SOCK_ERROR || con->current_socket_state != 
SHOUT_SOCKSTATE_UNCONNECTED)
         return SHOUTERR_BUSY;
 
-    shout_connection_set_nonblocking(con, shout_get_nonblocking(shout));
+    if (con->nonblocking == SHOUT_BLOCKING_DEFAULT)
+        shout_connection_set_nonblocking(con, shout_get_nonblocking(shout));
 
     port = shout->port;
-    if (shout_get_protocol(shout) == SHOUT_PROTOCOL_ICY)
+    if (con->impl == shout_icy_impl)
         port++;
 
-    if (con->nonblocking) {
+    if (con->nonblocking == SHOUT_BLOCKING_NONE) {
         con->socket = sock_connect_non_blocking(shout->host, port);
     } else {
         con->socket = sock_connect(shout->host, port);
@@ -620,6 +621,9 @@
     if (con->current_message_state != SHOUT_MSGSTATE_SENDING1)
         return -1;
 
+    if (con->error == SHOUTERR_SOCKET)
+        return -1;
+
     ret = shout_queue_data(&(con->wqueue), buf, len);
     if (ret != SHOUTERR_SUCCESS) {
         shout_connection_set_error(con, ret);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libshout-2.4.3/src/format_ogg.c 
new/libshout-2.4.4/src/format_ogg.c
--- old/libshout-2.4.3/src/format_ogg.c 2019-05-20 20:33:51.000000000 +0200
+++ new/libshout-2.4.4/src/format_ogg.c 2020-08-12 18:31:46.000000000 +0200
@@ -92,6 +92,8 @@
     ogg_page     page;
 
     buffer = ogg_sync_buffer(&ogg_data->oy, len);
+    if (!buffer)
+        return self->error = SHOUTERR_INSANE;
     memcpy(buffer, data, len);
     ogg_sync_wrote(&ogg_data->oy, len);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libshout-2.4.3/src/shout.c 
new/libshout-2.4.4/src/shout.c
--- old/libshout-2.4.3/src/shout.c      2019-05-22 11:05:32.000000000 +0200
+++ new/libshout-2.4.4/src/shout.c      2020-08-12 18:31:43.000000000 +0200
@@ -198,8 +198,12 @@
     if (!self->connection)
         return self->error = SHOUTERR_UNCONNECTED;
 
-    if (self->connection && self->connection->current_message_state == 
SHOUT_MSGSTATE_SENDING1 && self->close)
+    if (self->connection && self->connection->current_message_state == 
SHOUT_MSGSTATE_SENDING1 && self->close) {
         self->close(self);
+        self->format_data = NULL;
+        self->send = NULL;
+        self->close = NULL;
+    }
 
     shout_connection_unref(self->connection);
     self->connection = NULL;
@@ -417,7 +421,7 @@
 #ifdef HAVE_OPENSSL
     shout_connection_select_tlsmode(connection, self->tls_mode);
 #endif
-    shout_connection_set_nonblocking(connection, 0);
+    shout_connection_set_nonblocking(connection, SHOUT_BLOCKING_FULL);
 
     connection->target_message_state = SHOUT_MSGSTATE_PARSED_FINAL;
 
@@ -989,7 +993,10 @@
 
 int shout_set_nonblocking(shout_t *self, unsigned int nonblocking)
 {
-    if (!self || (nonblocking != 0 && nonblocking != 1))
+    if (nonblocking == SHOUT_BLOCKING_DEFAULT)
+        nonblocking = SHOUT_BLOCKING_FULL;
+
+    if (!self || (nonblocking != SHOUT_BLOCKING_FULL && nonblocking != 
SHOUT_BLOCKING_NONE))
         return SHOUTERR_INSANE;
 
     if (self->connection)


Reply via email to