Hello community,

here is the log from the commit of package libircclient for openSUSE:Factory 
checked in at 2016-06-19 10:48:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libircclient (Old)
 and      /work/SRC/openSUSE:Factory/.libircclient.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libircclient"

Changes:
--------
--- /work/SRC/openSUSE:Factory/libircclient/libircclient.changes        
2015-02-11 16:46:30.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libircclient.new/libircclient.changes   
2016-06-19 10:48:46.000000000 +0200
@@ -1,0 +2,15 @@
+Mon Jun 13 12:16:50 UTC 2016 - joop.boo...@opensuse.org
+
+- cipher suite fix from ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH to
+  EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
+  bnc#857151 libircclient-cipher-suite.diff
+
+-------------------------------------------------------------------
+Mon Jun 13 11:30:08 UTC 2016 - joop.boo...@opensuse.org
+
+- Update to version 1.9
+  * Fixed a few minor Win32 compatibility bugs.
+  * Fixed an error if the TCP connection to the IRC server couldn't be 
established under 250ms.
+  * Fixed a potential deadlock caused by WSAStartup() being called in 
DllMain() 
+
+-------------------------------------------------------------------

Old:
----
  libircclient-1.8.tar.gz

New:
----
  libircclient-1.9.tar.gz
  libircclient-cipher-suite.diff

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

Other differences:
------------------
++++++ libircclient.spec ++++++
--- /var/tmp/diff_new_pack.v8qume/_old  2016-06-19 10:48:47.000000000 +0200
+++ /var/tmp/diff_new_pack.v8qume/_new  2016-06-19 10:48:47.000000000 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package libircclient
 #
-# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,21 +18,24 @@
 
 Name:           libircclient
 %define soname 1
-Version:        1.8
+Version:        1.9
 Release:        0
 Summary:        Library implementing client-server IRC protocol
 License:        LGPL-2.0+
 Group:          System/Libraries
 Url:            http://libircclient.sourceforge.net/
-Source0:        
http://sourceforge.net/projects/libircclient/files/libircclient/1.8/libircclient-%{version}.tar.gz
-Patch1:         libircclient-memory-overflow.diff
+Source0:        
http://sourceforge.net/projects/%{name}/files/%{name}/%{version}/%{name}-%{version}.tar.gz
+# PATCH-FIX-OPENSUSE  libircclient-memory-overflow.diff
+Patch0:         libircclient-memory-overflow.diff
+# PATCH-FIX-UPSTREAM libircclient-cipher-suite.patch bnc#857151
+Patch1:         libircclient-cipher-suite.diff
 BuildRequires:  automake
-BuildRequires:  python-rst2pdf
-BuildRequires:  python-Sphinx
 BuildRequires:  fdupes
 BuildRequires:  gcc-c++
 BuildRequires:  libopenssl-devel
 BuildRequires:  libtool
+BuildRequires:  python-Sphinx
+BuildRequires:  python-rst2pdf
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
 %description
@@ -62,6 +65,7 @@
 
 %prep
 %setup -q
+%patch0 -p1
 %patch1 -p1
 
 %build

++++++ libircclient-1.8.tar.gz -> libircclient-1.9.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libircclient-1.8/Changelog 
new/libircclient-1.9/Changelog
--- old/libircclient-1.8/Changelog      2012-02-13 04:07:47.000000000 +0100
+++ new/libircclient-1.9/Changelog      2016-05-04 02:39:29.000000000 +0200
@@ -1,3 +1,20 @@
+2016-05-03 George Yunaev
+   * libircclient 1.9 released.
+   * Fixed a few minor Win32 compatibility bugs.
+   * Fixed an error if the TCP connection to the IRC server couldn't be 
established under 250ms.
+   * Fixed a potential deadlock caused by WSAStartup() being called in 
DllMain()
+
+2014-05-10 George Yunaev
+   * libircclient 1.8 released.
+   * A few minor bugfixes and minor feature enchancements.
+   
+2013-06-23 George Yunaev
+   * libircclient 1.7 released.
+   * Documentation rewritten using RST, and is now much better.
+   * Fixed a race condition when multiple threads attempt to call irc_connect 
while using SSL.
+   * Merged a fix for the IRC servers which (incorrectly) terminate lines with 
CR instead of CRLF as required by RFC.
+   * Several small bugfixes.
+
 2012-01-22 George Yunaev
    * libircclient 1.6 released.
    * Fixed PRIVMSG events incorrectly reported as CHANNEL (thx Dennis Bretjes)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libircclient-1.8/build-release.sh 
new/libircclient-1.9/build-release.sh
--- old/libircclient-1.8/build-release.sh       2014-05-09 22:31:24.000000000 
+0200
+++ new/libircclient-1.9/build-release.sh       2016-05-04 03:42:49.000000000 
+0200
@@ -48,7 +48,7 @@
 
 # win32
 export PATH=$PATH:/usr/toolchains/windows-x86-complete/bin/
-(cd $BUILDDIR && ./configure --enable-shared --host=i686-pc-mingw32 && make)  
|| exit 1
+(cd $BUILDDIR && ./configure --enable-shared --host=i686-w64-mingw32.static && 
make)  || exit 1
 
 BINDIR="$PKGDIR/bin"
 mkdir -p $BINDIR
@@ -64,7 +64,7 @@
 zip -r $RELEASEDIR/$PKGDIR-win32-dll.zip $PKGDIR || exit 1
 
 # And the SSL version
-(cd $BUILDDIR && make distclean && ./configure --enable-shared 
--host=i686-pc-mingw32 --enable-openssl && make clean && make)  || exit 1
+(cd $BUILDDIR && make distclean && ./configure --enable-shared 
--host=i686-w64-mingw32.static --enable-openssl && make clean && make)  || exit 
1
 cp $BUILDDIR/src/libircclient.dll $BINDIR/  || exit 1
 cp $BUILDDIR/src/libircclient.lib $BINDIR/  || exit 1
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libircclient-1.8/configure 
new/libircclient-1.9/configure
--- old/libircclient-1.8/configure      2012-01-22 01:46:50.000000000 +0100
+++ new/libircclient-1.9/configure      2014-07-30 07:51:55.000000000 +0200
@@ -1,13 +1,11 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for libircclient 1.3.
+# Generated by GNU Autoconf 2.69 for libircclient 1.3.
 #
 # Report bugs to <gyun...@ulduzsoft.com>.
 #
 #
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
 #
 #
 # This configure script is free software; the Free Software Foundation
@@ -136,6 +134,31 @@
 # CDPATH.
 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
+# Use a proper internal environment variable to ensure we don't fall
+  # into an infinite loop, continuously re-executing ourselves.
+  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+    _as_can_reexec=no; export _as_can_reexec;
+    # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+  fi
+  # We don't want this to propagate to other subprocesses.
+          { _as_can_reexec=; unset _as_can_reexec;}
 if test "x$CONFIG_SHELL" = x; then
   as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) 
>/dev/null 2>&1; then :
   emulate sh
@@ -169,7 +192,8 @@
 else
   exitcode=1; echo positional parameters were not saved.
 fi
-test x\$exitcode = x0 || exit 1"
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
   as_suggested="  
as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" 
as_lineno_1a=\$LINENO
   as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" 
as_lineno_2a=\$LINENO
   eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
@@ -214,21 +238,25 @@
 
 
       if test "x$CONFIG_SHELL" != x; then :
-  # We cannot yet assume a decent shell, so we have to provide a
-       # neutralization value for shells without unset; and this also
-       # works around shells that cannot unset nonexistent variables.
-       # Preserve -v and -x to the replacement shell.
-       BASH_ENV=/dev/null
-       ENV=/dev/null
-       (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-       export CONFIG_SHELL
-       case $- in # ((((
-         *v*x* | *x*v* ) as_opts=-vx ;;
-         *v* ) as_opts=-v ;;
-         *x* ) as_opts=-x ;;
-         * ) as_opts= ;;
-       esac
-       exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
+  export CONFIG_SHELL
+             # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
 fi
 
     if test x$as_have_required = xno; then :
@@ -331,6 +359,14 @@
 
 
 } # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
 # as_fn_append VAR VALUE
 # ----------------------
 # Append the text in VALUE to the end of the definition contained in VAR. Take
@@ -452,6 +488,10 @@
   chmod +x "$as_me.lineno" ||
     { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX 
shell" >&2; as_fn_exit 1; }
 
+  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+  # already done that, so ensure we don't try to do so again and fall
+  # in an infinite loop.  This has already happened in practice.
+  _as_can_reexec=no; export _as_can_reexec
   # Don't try to exec as it changes $[0], causing all sort of problems
   # (the dirname of $[0] is not the place where we might find the
   # original and so on.  Autoconf is especially sensitive to this).
@@ -486,16 +526,16 @@
     # ... but there are two gotchas:
     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
+    # In both cases, we have to default to `cp -pR'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
+      as_ln_s='cp -pR'
   elif ln conf$$.file conf$$ 2>/dev/null; then
     as_ln_s=ln
   else
-    as_ln_s='cp -p'
+    as_ln_s='cp -pR'
   fi
 else
-  as_ln_s='cp -p'
+  as_ln_s='cp -pR'
 fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null
@@ -507,28 +547,8 @@
   as_mkdir_p=false
 fi
 
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-       test -d "$1/.";
-      else
-       case $1 in #(
-       -*)set "./$1";;
-       esac;
-       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
-       ???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 
'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -1135,8 +1155,6 @@
 if test "x$host_alias" != x; then
   if test "x$build_alias" = x; then
     cross_compiling=maybe
-    $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't 
use --host.
-    If a cross compiler is detected then cross compile mode will be used" >&2
   elif test "x$build_alias" != "x$host_alias"; then
     cross_compiling=yes
   fi
@@ -1376,9 +1394,9 @@
 if $ac_init_version; then
   cat <<\_ACEOF
 libircclient configure 1.3
-generated by GNU Autoconf 2.68
+generated by GNU Autoconf 2.69
 
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
@@ -1747,7 +1765,7 @@
         test ! -s conftest.err
        } && test -s conftest$ac_exeext && {
         test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
+        test -x conftest$ac_exeext
        }; then :
   ac_retval=0
 else
@@ -1837,7 +1855,7 @@
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by libircclient $as_me 1.3, which was
-generated by GNU Autoconf 2.68.  Invocation command line was
+generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
 
@@ -2258,7 +2276,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
     break 2
@@ -2302,7 +2320,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CXX="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
     break 2
@@ -2759,7 +2777,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
     break 2
@@ -2799,7 +2817,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="gcc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
     break 2
@@ -2852,7 +2870,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
     break 2
@@ -2893,7 +2911,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
@@ -2951,7 +2969,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
     break 2
@@ -2995,7 +3013,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
     break 2
@@ -3191,8 +3209,7 @@
 /* end confdefs.h.  */
 #include <stdarg.h>
 #include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
 /* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
 struct buf { int x; };
 FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -3294,7 +3311,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_AR="${ac_tool_prefix}ar"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
     break 2
@@ -3334,7 +3351,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_AR="ar"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
     break 2
@@ -3386,7 +3403,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
     break 2
@@ -3426,7 +3443,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_RANLIB="ranlib"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
     break 2
@@ -3618,7 +3635,7 @@
     for ac_prog in grep ggrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+      as_fn_executable_p "$ac_path_GREP" || continue
 # Check for GNU ac_path_GREP and select it if it is found.
   # Check for GNU $ac_path_GREP
 case `"$ac_path_GREP" --version 2>&1` in
@@ -3684,7 +3701,7 @@
     for ac_prog in egrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+      as_fn_executable_p "$ac_path_EGREP" || continue
 # Check for GNU ac_path_EGREP and select it if it is found.
   # Check for GNU $ac_path_EGREP
 case `"$ac_path_EGREP" --version 2>&1` in
@@ -3871,60 +3888,60 @@
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <stdbool.h>
-#ifndef bool
- "error: bool is not defined"
-#endif
-#ifndef false
- "error: false is not defined"
-#endif
-#if false
- "error: false is not 0"
-#endif
-#ifndef true
- "error: true is not defined"
-#endif
-#if true != 1
- "error: true is not 1"
-#endif
-#ifndef __bool_true_false_are_defined
- "error: __bool_true_false_are_defined is not defined"
-#endif
-
-       struct s { _Bool s: 1; _Bool t; } s;
-
-       char a[true == 1 ? 1 : -1];
-       char b[false == 0 ? 1 : -1];
-       char c[__bool_true_false_are_defined == 1 ? 1 : -1];
-       char d[(bool) 0.5 == true ? 1 : -1];
-       /* See body of main program for 'e'.  */
-       char f[(_Bool) 0.0 == false ? 1 : -1];
-       char g[true];
-       char h[sizeof (_Bool)];
-       char i[sizeof s.t];
-       enum { j = false, k = true, l = false * true, m = true * 256 };
-       /* The following fails for
-          HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
-       _Bool n[m];
-       char o[sizeof n == m * sizeof n[0] ? 1 : -1];
-       char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
-       /* Catch a bug in an HP-UX C compiler.  See
-          http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
-          http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
-        */
-       _Bool q = true;
-       _Bool *pq = &q;
+             #include <stdbool.h>
+             #ifndef bool
+              "error: bool is not defined"
+             #endif
+             #ifndef false
+              "error: false is not defined"
+             #endif
+             #if false
+              "error: false is not 0"
+             #endif
+             #ifndef true
+              "error: true is not defined"
+             #endif
+             #if true != 1
+              "error: true is not 1"
+             #endif
+             #ifndef __bool_true_false_are_defined
+              "error: __bool_true_false_are_defined is not defined"
+             #endif
+
+             struct s { _Bool s: 1; _Bool t; } s;
+
+             char a[true == 1 ? 1 : -1];
+             char b[false == 0 ? 1 : -1];
+             char c[__bool_true_false_are_defined == 1 ? 1 : -1];
+             char d[(bool) 0.5 == true ? 1 : -1];
+             /* See body of main program for 'e'.  */
+             char f[(_Bool) 0.0 == false ? 1 : -1];
+             char g[true];
+             char h[sizeof (_Bool)];
+             char i[sizeof s.t];
+             enum { j = false, k = true, l = false * true, m = true * 256 };
+             /* The following fails for
+                HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
+             _Bool n[m];
+             char o[sizeof n == m * sizeof n[0] ? 1 : -1];
+             char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
+             /* Catch a bug in an HP-UX C compiler.  See
+                http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+                
http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+              */
+             _Bool q = true;
+             _Bool *pq = &q;
 
 int
 main ()
 {
 
-       bool e = &s;
-       *pq |= q;
-       *pq |= ! q;
-       /* Refer to every declared value, to avoid compiler optimizations.  */
-       return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
-               + !m + !n + !o + !p + !q + !pq);
+             bool e = &s;
+             *pq |= q;
+             *pq |= ! q;
+             /* Refer to every declared value, to avoid compiler 
optimizations.  */
+             return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + 
!!l
+                     + !m + !n + !o + !p + !q + !pq);
 
   ;
   return 0;
@@ -3939,7 +3956,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5
 $as_echo "$ac_cv_header_stdbool_h" >&6; }
-ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default"
+   ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" 
"$ac_includes_default"
 if test "x$ac_cv_type__Bool" = xyes; then :
 
 cat >>confdefs.h <<_ACEOF
@@ -3949,6 +3966,7 @@
 
 fi
 
+
 if test $ac_cv_header_stdbool_h = yes; then
 
 $as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h
@@ -3966,11 +3984,11 @@
 int
 main ()
 {
-/* FIXME: Include the comments suggested by Paul. */
+
 #ifndef __cplusplus
-  /* Ultrix mips cc rejects this.  */
+  /* Ultrix mips cc rejects this sort of thing.  */
   typedef int charset[2];
-  const charset cs;
+  const charset cs = { 0, 0 };
   /* SunOS 4.1.1 cc rejects this.  */
   char const *const *pcpcc;
   char **ppc;
@@ -3987,8 +4005,9 @@
   ++pcpcc;
   ppc = (char**) pcpcc;
   pcpcc = (char const *const *) ppc;
-  { /* SCO 3.2v4 cc rejects this.  */
-    char *t;
+  { /* SCO 3.2v4 cc rejects this sort of thing.  */
+    char tx;
+    char *t = &tx;
     char const *s = 0 ? (char *) 0 : (char const *) 0;
 
     *t++ = 0;
@@ -4004,10 +4023,10 @@
     iptr p = 0;
     ++p;
   }
-  { /* AIX XL C 1.02.0.0 rejects this saying
+  { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
        "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
-    struct s { int j; const int *ap[3]; };
-    struct s *b; b->j = 5;
+    struct s { int j; const int *ap[3]; } bx;
+    struct s *b = &bx; b->j = 5;
   }
   { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
     const int foo = 10;
@@ -4642,6 +4661,7 @@
 
 
 
+
 ac_config_files="$ac_config_files examples/Makefile src/Makefile"
 
 cat >confcache <<\_ACEOF
@@ -5051,16 +5071,16 @@
     # ... but there are two gotchas:
     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
+    # In both cases, we have to default to `cp -pR'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
+      as_ln_s='cp -pR'
   elif ln conf$$.file conf$$ 2>/dev/null; then
     as_ln_s=ln
   else
-    as_ln_s='cp -p'
+    as_ln_s='cp -pR'
   fi
 else
-  as_ln_s='cp -p'
+  as_ln_s='cp -pR'
 fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null
@@ -5120,28 +5140,16 @@
   as_mkdir_p=false
 fi
 
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-       test -d "$1/.";
-      else
-       case $1 in #(
-       -*)set "./$1";;
-       esac;
-       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
-       ???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 
'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -5163,7 +5171,7 @@
 # values after options handling.
 ac_log="
 This file was extended by libircclient $as_me 1.3, which was
-generated by GNU Autoconf 2.68.  Invocation command line was
+generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -5225,10 +5233,10 @@
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
 libircclient config.status 1.3
-configured by $0, generated by GNU Autoconf 2.68,
+configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
@@ -5316,7 +5324,7 @@
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 if \$ac_cs_recheck; then
-  set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create 
--no-recursion
+  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create 
--no-recursion
   shift
   \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
   CONFIG_SHELL='$SHELL'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libircclient-1.8/configure.in 
new/libircclient-1.9/configure.in
--- old/libircclient-1.8/configure.in   2012-01-22 01:46:50.000000000 +0100
+++ new/libircclient-1.9/configure.in   2014-07-30 07:51:55.000000000 +0200
@@ -108,6 +108,7 @@
 
 AC_SUBST(TARGET)
 AC_SUBST(CFLAGS)
+AC_SUBST(LDFLAGS)
 AC_SUBST(LIBS)
 AC_SUBST(PREFIX)
 AC_CONFIG_FILES([examples/Makefile src/Makefile])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libircclient-1.8/doc/conf.py 
new/libircclient-1.9/doc/conf.py
--- old/libircclient-1.8/doc/conf.py    2013-06-24 08:09:38.000000000 +0200
+++ new/libircclient-1.9/doc/conf.py    2016-05-04 02:40:24.000000000 +0200
@@ -41,16 +41,16 @@
 
 # General information about the project.
 project = u'Libircclient'
-copyright = u'2013, George Yunaev'
+copyright = u'2005-2016 George Yunaev, 
http://www.ulduzsoft.com/linux/libircclient/'
 
 # The version info for the project you're documenting, acts as replacement for
 # |version| and |release|, also used in various other places throughout the
 # built documents.
 #
 # The short X.Y version.
-version = '1.7'
+version = '1.9'
 # The full version, including alpha/beta/rc tags.
-release = '1.7'
+release = '1.9'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libircclient-1.8/doc/sources/Introduction.rst 
new/libircclient-1.9/doc/sources/Introduction.rst
--- old/libircclient-1.8/doc/sources/Introduction.rst   2013-06-21 
08:58:50.000000000 +0200
+++ new/libircclient-1.9/doc/sources/Introduction.rst   2016-05-04 
03:39:56.000000000 +0200
@@ -49,7 +49,7 @@
 Author
 ~~~~~~
 
-This library is created by George Yunaev, copyright 2004-2013.
+This library is created by George Yunaev, copyright 2004-2016. Please see 
http://www.ulduzsoft.com/linux/libircclient
 
 
 License
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libircclient-1.8/include/libircclient.h 
new/libircclient-1.9/include/libircclient.h
--- old/libircclient-1.8/include/libircclient.h 2014-05-09 19:50:01.000000000 
+0200
+++ new/libircclient-1.9/include/libircclient.h 2016-05-04 02:21:56.000000000 
+0200
@@ -15,7 +15,7 @@
 /*! 
  * \file libircclient.h
  * \author George Yunaev
- * \version 1.5
+ * \version 1.9
  * \date 01.2012
  * \brief This file defines all prototypes and functions to use libircclient.
  *
@@ -46,7 +46,7 @@
 
 #include <stdlib.h>
 
-#if !defined (WIN32)
+#if !defined (_WIN32)
        #include <sys/select.h> /* fd_set */
 #else
        #include <winsock2.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libircclient-1.8/man/libircclient.1 
new/libircclient-1.9/man/libircclient.1
--- old/libircclient-1.8/man/libircclient.1     2014-05-09 22:31:34.000000000 
+0200
+++ new/libircclient-1.9/man/libircclient.1     2016-05-04 03:42:58.000000000 
+0200
@@ -1,4 +1,6 @@
-.TH "LIBIRCCLIENT" "1" "May 09, 2014" "1.7" "Libircclient"
+.\" Man page generated from reStructuredText.
+.
+.TH "LIBIRCCLIENT" "1" "May 03, 2016" "1.9" "Libircclient"
 .SH NAME
 libircclient \- Libircclient Documentation
 .
@@ -28,8 +30,6 @@
 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
 .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
 ..
-.\" Man page generated from reStructuredText.
-.
 .SH INTRODUCTION
 .SS Introduction
 .SS Overview
@@ -98,7 +98,7 @@
 .IP \(bu 2
 You\(aqd have to handle reconnections separately by processing the relevant 
\fBirc_process_select_descriptors()\fP return values
 .IP \(bu 2
-If you wish to use poll/epoll() instead of select() you\(aqd have to write 
more logic as it is not directly supported. See the \fIFAQ\fP.
+If you wish to use poll/epoll() instead of select() you\(aqd have to write 
more logic as it is not directly supported. See the \fIFAQ\fP\&.
 .IP \(bu 2
 The library is not optimized to have a low per\-connection memory footprint, 
each non\-SSL connection uses at least 4K, with around 32K per connection for 
SSL.
 .UNINDENT
@@ -106,7 +106,7 @@
 .UNINDENT
 .SS Author
 .sp
-This library is created by George Yunaev, copyright 2004\-2013.
+This library is created by George Yunaev, copyright 2004\-2016. Please see 
\fI\%http://www.ulduzsoft.com/linux/libircclient\fP
 .SS License
 .sp
 Libircclient is licensed under Lesser General Public License version 3 or 
higher. The complete license text is provided in the Appendix.
@@ -158,7 +158,7 @@
 .SS Initialization
 .SS Include the headers
 .sp
-Before using the library you need to include the library header 
\fIlibircclient.h\fP. You may also want to include \fIlibirc_rfcnumeric.h\fP 
which provides the RFC codes:
+Before using the library you need to include the library header 
\fIlibircclient.h\fP\&. You may also want to include \fIlibirc_rfcnumeric.h\fP 
which provides the RFC codes:
 .INDENT 0.0
 .INDENT 3.5
 .sp
@@ -176,11 +176,11 @@
 action (such as joining the channel or changing your nick), some are triggered 
by other IRC users (such as sending you a message), and some are triggered by 
the IRC
 server itself (such as sending operation notes or invoking NickServ services).
 .sp
-Libircclient helps handling those events by providing the \fBevent handling 
structure\fP. It declares the events you can define in your application,
+Libircclient helps handling those events by providing the \fBevent handling 
structure\fP\&. It declares the events you can define in your application,
 and when such event is received from the server, the appropriate callback will 
be called. The number of events you need to handle depending on the complexity 
of your client
 and the functionality it supports.
 .sp
-Generally there are only two events you must handle to provide a bare minimum 
functionality: \fBevent_connect\fP and \fBevent_numeric\fP. However it is 
recommended
+Generally there are only two events you must handle to provide a bare minimum 
functionality: \fBevent_connect\fP and \fBevent_numeric\fP\&. However it is 
recommended
 to create an event dump function and use it for all unused events to make sure 
you do not miss an important event because you expected a wrong one. See 
function \fBdump_event\fP in
 the file examples/irctest.c
 .SS Windows\-specific initialization
@@ -411,7 +411,7 @@
 If the join was successful you will receive the \fBevent_join\fP event. You 
need to wait for this event before you can perform any channel operations (such 
as sending the messages). However you do NOT
 have to wait for this event to issue a second JOIN command as shown in the 
example above.
 .sp
-If the join was not successful, you will receive the error via 
\fBevent_numeric\fP.
+If the join was not successful, you will receive the error via 
\fBevent_numeric\fP\&.
 .sp
 To leave the channel call the \fBirc_cmd_part()\fP function with the channel 
name:
 .INDENT 0.0
@@ -468,20 +468,20 @@
 if the message was not sent.
 .SS Receive messages from a channel or from a user
 .sp
-You receive the channel messages by handling the \fBevent_channel\fP. Each 
time someone says something in the channel this event is called.
+You receive the channel messages by handling the \fBevent_channel\fP\&. Each 
time someone says something in the channel this event is called.
 .sp
-You receive the "private" messages from other users by handling the 
\fBevent_privmsg\fP.
+You receive the "private" messages from other users by handling the 
\fBevent_privmsg\fP\&.
 .sp
 Those event handlers should be created in your application and passed to the 
library when you \fI\%create an IRC session\fP
 .SS Send an action message
 .sp
 "Action" messages, also called /me messages, are specially formatted CTCP 
messages. However the library contains a special function to send
-them, \fBirc_cmd_me()\fP. Actions sent by other people are handled by the 
\fBevent_ctcp_action\fP event.
+them, \fBirc_cmd_me()\fP\&. Actions sent by other people are handled by the 
\fBevent_ctcp_action\fP event.
 .sp
 Same as with sending messages no confirmation is received on success.
 .SS Send a CTCP request
 .sp
-Other CTCP requests such as PING, VERSION etc should be sent by calling 
\fBirc_cmd_ctcp_request()\fP. If the CTCP response is received,
+Other CTCP requests such as PING, VERSION etc should be sent by calling 
\fBirc_cmd_ctcp_request()\fP\&. If the CTCP response is received,
 it is handled by the \fBevent_ctcp_rep\fP event.
 .SS Handling DCC chat
 .SS Implementing the DCC callback
@@ -613,7 +613,7 @@
 This section covers handling sending and receiving files via DCC.
 .SS Implementing the callback
 .sp
-No matter whether you plan to send or receive files via dcc you must implement 
the \fBDCC callback\fP.
+No matter whether you plan to send or receive files via dcc you must implement 
the \fBDCC callback\fP\&.
 While the same callback may be used both for sending and receiving, this is 
not recommended since the logic is different. Therefore
 the suggested implementation would be to use different callbacks as suggested:
 .INDENT 0.0
@@ -816,8 +816,8 @@
 For each type of event, the number of provided parameters is fixed, and their 
meaning is described in the \fBirc_callbacks_t\fP structure.
 .sp
 Every event has an origin (i.e. who originated the event). In some cases the 
\fIorigin\fP variable may be NULL, which indicates that event origin is 
unknown. The origin usually looks like \fInick!host@ircserver\fP,
-i.e. like \fItim!h...@irc.server.net\fP. Such origins can not be used in IRC 
commands, and need to be stripped (i.e. host and server part should be cut off) 
before using. This can be done either manually, by
-calling \fBirc_target_get_nick()\fP, or automatically for all the events \- by 
setting the \fBLIBIRC_OPTION_STRIPNICKS\fP option with \fBirc_option_set()\fP.
+i.e. like \fItim!h...@irc.server.net\fP\&. Such origins can not be used in IRC 
commands, and need to be stripped (i.e. host and server part should be cut off) 
before using. This can be done either manually, by
+calling \fBirc_target_get_nick()\fP, or automatically for all the events \- by 
setting the \fBLIBIRC_OPTION_STRIPNICKS\fP option with \fBirc_option_set()\fP\&.
 .SS irc_event_dcc_chat_t
 .sp
 \fBPrototype:\fP
@@ -1059,8 +1059,8 @@
 (don\(aqt expect servers to follow it closely though).
 .sp
 Every event has an origin (i.e. who originated the event). In some cases the 
\fIorigin\fP variable may be NULL, which indicates that event origin is 
unknown. The origin usually looks like \fInick!host@ircserver\fP,
-i.e. like \fItim!h...@irc.server.net\fP. Such origins can not be used in IRC 
commands, and need to be stripped (i.e. host and server part should be cut off) 
before using. This can be done either manually, by
-calling \fBirc_target_get_nick()\fP, or automatically for all the events \- by 
setting the \fBLIBIRC_OPTION_STRIPNICKS\fP option with \fBirc_option_set()\fP.
+i.e. like \fItim!h...@irc.server.net\fP\&. Such origins can not be used in IRC 
commands, and need to be stripped (i.e. host and server part should be cut off) 
before using. This can be done either manually, by
+calling \fBirc_target_get_nick()\fP, or automatically for all the events \- by 
setting the \fBLIBIRC_OPTION_STRIPNICKS\fP option with \fBirc_option_set()\fP\&.
 .SS Functions
 .sp
 This section describes the functions defined in the library which are grouped 
by the purpose.
@@ -1292,7 +1292,7 @@
 \fBDescription:\fP
 .sp
 This function enters into forever loop, processing the IRC events, and calling 
the relevant callbacks. This function will not return
-until the server connection is terminated \- either by server, or by calling 
\fBirc_cmd_quit\fP. This function should only be used
+until the server connection is terminated \- either by server, or by calling 
\fBirc_cmd_quit\fP\&. This function should only be used
 if you use a single IRC session and don\(aqt need asynchronous request 
processing (i.e. your bot just reacts on the events, and doesn\(aqt
 generate it asynchronously). Even in last case, you still can call this 
function and start the asynchronous thread in \fBevent_connect\fP handler.
 See the examples.
@@ -1345,7 +1345,7 @@
 .sp
 \fBDescription:\fP
 .sp
-This function should be used after you called \fBirc_connect()\fP. It is 
useful when you have your own select\-based event processing loop. To use it
+This function should be used after you called \fBirc_connect()\fP\&. It is 
useful when you have your own select\-based event processing loop. To use it
 you should put your own descriptors into the sets, call this function to add 
the library descriptor(s) into the set, and then call select().
 When it returns, you should call \fBirc_process_select_descriptors()\fP which 
will handle the events and calls your callbacks(!). Then you can process
 your sockets events from set. See the example.
@@ -1821,7 +1821,7 @@
 T{
 o nickname
 T}     T{
-gives (+o nickname) to, or takes (\-o nickname) the channel operator 
privileges from a \fInickname\fP. This mode affects
+gives (+o nickname) to, or takes (\-o nickname) the channel operator 
privileges from a \fInickname\fP\&. This mode affects
 the users in channel, not the channel itself. Examples: "+o tim", "\-o watson"
 T}
 _
@@ -1888,7 +1888,7 @@
 T{
 b mask
 T}     T{
-sets (+b \fI!*@\fP.mil) or removes (\-b \fI!*@\fP.mil) the ban mask on a user 
to keep him out of channel. Note that to remove the
+sets (+b \fI!*@\fP\&.mil) or removes (\-b \fI!*@\fP\&.mil) the ban mask on a 
user to keep him out of channel. Note that to remove the
 ban you must specify the ban mask to remove, not just "\-b".
 T}
 _
@@ -2723,7 +2723,7 @@
 .sp
 \fBDescription:\fP
 .sp
-For most events IRC server returns \(aqorigin\(aq (i.e. the person, who 
generated this event) in so\-called "common" form, like 
\fI\%nick!host@domain\fP.
+For most events IRC server returns \(aqorigin\(aq (i.e. the person, who 
generated this event) in so\-called "common" form, like 
\fI\%nick!host@domain\fP\&.
 However, all the irc_cmd_* functions require just a nick. This function parses 
this origin, and retrieves the nick, storing it into the user\-provided buffer.
 .sp
 A buffer of size 128 should be enough for most nicks.
@@ -2958,7 +2958,7 @@
 \fBDescription:\fP
 .sp
 This function accepts a remote DCC chat or file transfer request. After the 
request is accepted the \fIcallback\fP will be called for the further DCC 
events,
-including the termination of the DCC session. See the \fBDCC callback 
information\fP.
+including the termination of the DCC session. See the \fBDCC callback 
information\fP\&.
 .sp
 This function should be called only after either \fBevent_dcc_chat_req\fP or 
\fBevent_dcc_send_req\fP events are received. You don\(aqt have to call 
irc_dcc_accept()
 or irc_dcc_decline() immediately in the event processing function \- you may 
just store the \fIdccid\fP and return, and call those functions later. However 
to
@@ -2966,7 +2966,7 @@
 .sp
 \fBReturn value:\fP
 .sp
-Return code 0 means success. Other value means error, the error code may be 
obtained through \fBirc_errno()\fP.
+Return code 0 means success. Other value means error, the error code may be 
obtained through \fBirc_errno()\fP\&.
 .sp
 \fBThread safety:\fP
 .sp
@@ -3010,7 +3010,7 @@
 .sp
 \fBReturn value:\fP
 .sp
-Return code 0 means success. Other value means error, the error code may be 
obtained through \fBirc_errno()\fP.
+Return code 0 means success. Other value means error, the error code may be 
obtained through \fBirc_errno()\fP\&.
 .sp
 \fBThread safety:\fP
 .sp
@@ -3069,7 +3069,7 @@
 \fBDescription:\fP
 .sp
 This function generates a DCC SEND request to send the file. When it is 
accepted, the file is sent to the remote party, and the DCC session is
-closed. The send operation progress and result can be checked in the callback. 
See the \fBDCC callback information\fP.
+closed. The send operation progress and result can be checked in the callback. 
See the \fBDCC callback information\fP\&.
 .sp
 \fBReturn value:\fP
 .sp
@@ -3136,7 +3136,7 @@
 .sp
 \fBReturn value:\fP
 .sp
-Return code 0 means success. Other value means error, the error code may be 
obtained through \fBirc_errno()\fP.
+Return code 0 means success. Other value means error, the error code may be 
obtained through \fBirc_errno()\fP\&.
 .sp
 \fBThread safety:\fP
 .sp
@@ -3254,7 +3254,7 @@
 .B The possible codes are:
 .INDENT 7.0
 .IP \(bu 2
-[B] ... [/B] \- bold format mode. Everything between [B] and [/B] is written 
in \fBbold\fP.
+[B] ... [/B] \- bold format mode. Everything between [B] and [/B] is written 
in \fBbold\fP\&.
 .IP \(bu 2
 [I] ... [/I] \- italic/reverse format mode. Everything between [I] and [/I] is 
written in \fIitalic\fP, or reversed (however, because some clients are 
incapable of rendering italic text, most clients display this as normal text 
with the background and foreground colors swapped).
 .IP \(bu 2
@@ -3383,8 +3383,8 @@
 \fBDescription:\fP
 .sp
 This function sets the user\-defined context for this IRC session. This 
context is not used by libircclient. Its purpose is to store session\-specific
-user data, which may be obtained later by calling \fI\%irc_get_ctx\fP. Note 
that libircclient just carries out this pointer. If you allocate some memory,
-and store its address in ctx (most common usage), it is your responsibility to 
free it before calling \fBirc_destroy_session()\fP.
+user data, which may be obtained later by calling \fI\%irc_get_ctx\fP\&. Note 
that libircclient just carries out this pointer. If you allocate some memory,
+and store its address in ctx (most common usage), it is your responsibility to 
free it before calling \fBirc_destroy_session()\fP\&.
 .sp
 \fBThread safety:\fP
 .sp
@@ -3412,7 +3412,7 @@
 .sp
 \fBDescription:\fP
 .sp
-This function returns the IRC session context, which was set by 
\fI\%irc_set_ctx\fP.
+This function returns the IRC session context, which was set by 
\fI\%irc_set_ctx\fP\&.
 .sp
 \fBReturn value:\fP
 .sp
@@ -3577,10 +3577,10 @@
 .B typedef struct irc_session_s irc_session_t
 .UNINDENT
 .sp
-The IRC session handle created by callind \fBirc_create_session()\fP. Most of 
the library function calls expect this handle as a parameter. You can create as 
many handles as you want.
+The IRC session handle created by callind \fBirc_create_session()\fP\&. Most 
of the library function calls expect this handle as a parameter. You can create 
as many handles as you want.
 Each handle could be used to establish a single IRC connection to an IRC 
server as a single user.
 .sp
-Once the handle is not used anymore, it should be destroyed by calling 
\fBirc_destroy_session()\fP.
+Once the handle is not used anymore, it should be destroyed by calling 
\fBirc_destroy_session()\fP\&.
 .SS irc_dcc_session_t
 .INDENT 0.0
 .TP
@@ -3939,7 +3939,7 @@
 .B event_notice
 .UNINDENT
 .sp
-This event is triggered upon receipt of a NOTICE message. This message is 
similar to PRIVMSG and matches the \fI\%event_privmsg\fP.
+This event is triggered upon receipt of a NOTICE message. This message is 
similar to PRIVMSG and matches the \fI\%event_privmsg\fP\&.
 According to RFC 1459, the only difference between NOTICE and PRIVMSG is that 
you should NEVER automatically reply to NOTICE messages.
 Unfortunately, this rule is frequently violated by IRC servers itself \- for 
example, NICKSERV messages require reply, and are sent as NOTICE.
 .sp
@@ -3967,7 +3967,7 @@
 .B event_channel_notice
 .UNINDENT
 .sp
-This event is triggered upon receipt of a NOTICE message. This message is 
similar to PRIVMSG and matches the \fI\%event_channel\fP.
+This event is triggered upon receipt of a NOTICE message. This message is 
similar to PRIVMSG and matches the \fI\%event_channel\fP\&.
 According to RFC 1459, the only difference between NOTICE and PRIVMSG is that 
you should NEVER automatically reply to NOTICE messages.
 Unfortunately, this rule is frequently violated by IRC servers itself \- for 
example, NICKSERV messages require reply, and are sent as NOTICE.
 .sp
@@ -4303,7 +4303,7 @@
 .UNINDENT
 .sp
 If set, strips the event origins automatically. Every event has an origin 
(i.e. who originated the event). The origin usually looks like 
\fInick!host@ircserver\fP,
-i.e. like \fItim!h...@irc.server.net\fP. Such origins can not be used in IRC 
commands, and need to be stripped (i.e. host and server part should be cut off) 
before using.
+i.e. like \fItim!h...@irc.server.net\fP\&. Such origins can not be used in IRC 
commands, and need to be stripped (i.e. host and server part should be cut off) 
before using.
 This can be done either manually by calling \fBirc_target_get_nick()\fP, or 
automatically for all the events if this option is set.
 .INDENT 0.0
 .TP
@@ -4579,6 +4579,6 @@
 .SH AUTHOR
 George Yunaev
 .SH COPYRIGHT
-2013, George Yunaev
+2005-2016 George Yunaev, http://www.ulduzsoft.com/linux/libircclient/
 .\" Generated by docutils manpage writer.
 .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libircclient-1.8/src/Makefile.in 
new/libircclient-1.9/src/Makefile.in
--- old/libircclient-1.8/src/Makefile.in        2012-02-13 04:07:47.000000000 
+0100
+++ new/libircclient-1.9/src/Makefile.in        2014-07-30 07:51:55.000000000 
+0200
@@ -1,4 +1,4 @@
-# $Id: Makefile.in 110 2012-02-13 03:07:47Z gyunaev $
+# $Id: Makefile.in 128 2014-07-30 05:51:55Z gyunaev $
 CC = @CC@
 CFLAGS = -Wall -DIN_BUILDING_LIBIRC @CFLAGS@
 AR=@AR@ cr
@@ -27,7 +27,7 @@
        ln -fs libircclient.so.$(APIVERSION) $(DESTDIR)@libdir@/libircclient.so
 
 libircclient.so: libircclient.o
-       $(CC) -shared -s -Wl,-soname,libircclient.so.$(APIVERSION) -o 
libircclient.so libircclient.o @LIBS@
+       $(CC) -shared -s -Wl,-soname,libircclient.so.$(APIVERSION) -o 
libircclient.so libircclient.o @LDFLAGS@ @LIBS@
 
 libircclient.dll: libircclient.o
        $(CC) -shared -s -o libircclient.dll -Wl,-out-implib,libircclient.lib 
libircclient.o libircclient.def -lkernel32 -lwsock32 @LIBS@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libircclient-1.8/src/dcc.c 
new/libircclient-1.9/src/dcc.c
--- old/libircclient-1.8/src/dcc.c      2012-01-22 23:39:35.000000000 +0100
+++ new/libircclient-1.9/src/dcc.c      2016-05-04 02:25:02.000000000 +0200
@@ -224,7 +224,12 @@
                && FD_ISSET (dcc->sock, in_set) )
                {
                        socklen_t len = sizeof(dcc->remote_addr);
+
+#if defined(_WIN32)
+                       SOCKET nsock, err = 0;
+#else
                        int nsock, err = 0;
+#endif
 
                        // New connection is available; accept it.
                        if ( socket_accept (&dcc->sock, &nsock, (struct 
sockaddr *) &dcc->remote_addr, &len) )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libircclient-1.8/src/libircclient.c 
new/libircclient-1.9/src/libircclient.c
--- old/libircclient-1.8/src/libircclient.c     2014-05-09 19:50:01.000000000 
+0200
+++ new/libircclient-1.9/src/libircclient.c     2016-05-04 02:39:22.000000000 
+0200
@@ -37,10 +37,31 @@
        #define strdup _strdup
 #endif
 
+#if defined (WIN32_DLL)
+static int winsock_refcount = 0;
+#endif
 
 irc_session_t * irc_create_session (irc_callbacks_t    * callbacks)
 {
-       irc_session_t * session = malloc (sizeof(irc_session_t));
+    irc_session_t * session;
+    
+#if defined (WIN32_DLL)
+    // From MSDN: The WSAStartup function typically leads to protocol-specific 
helper 
+    // DLLs being loaded. As a result, the WSAStartup function should not be 
called 
+    // from the DllMain function in a application DLL. This can potentially 
cause deadlocks.
+    if ( winsock_refcount == 0 )
+    {
+        WORD wVersionRequested = MAKEWORD (1, 1);
+        WSADATA wsaData;
+
+        if ( WSAStartup (wVersionRequested, &wsaData) != 0 )
+            return 0;
+        
+        winsock_refcount++;
+    }
+#endif
+    
+       session = malloc (sizeof(irc_session_t));
 
        if ( !session )
                return 0;
@@ -117,7 +138,14 @@
        while ( session->dcc_sessions )
                libirc_remove_dcc_session (session, session->dcc_sessions, 0);
 
+       libirc_mutex_destroy (&session->mutex_dcc);
+
        free (session);
+    
+#if defined (WIN32_DLL)
+    if ( --winsock_refcount == 0 )
+        WSACleanup();
+#endif
 }
 
 
@@ -800,9 +828,12 @@
        libirc_dcc_process_descriptors (session, in_set, out_set);
 
        // Handle "connection succeed" / "connection failed"
-       if ( session->state == LIBIRC_STATE_CONNECTING 
-       && FD_ISSET (session->sock, out_set) )
+       if ( session->state == LIBIRC_STATE_CONNECTING )
        {
+        // If the socket is not connected yet, wait longer - it is not an error
+        if ( !FD_ISSET (session->sock, out_set) )
+            return 0;
+        
                // Now we have to determine whether the socket is connected 
                // or the connect is failed
                struct sockaddr_storage saddr, laddr;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libircclient-1.8/src/params.h 
new/libircclient-1.9/src/params.h
--- old/libircclient-1.8/src/params.h   2014-05-09 19:50:01.000000000 +0200
+++ new/libircclient-1.9/src/params.h   2016-05-04 02:21:32.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 #define LIBIRC_VERSION_HIGH                    1
-#define LIBIRC_VERSION_LOW                     8
+#define LIBIRC_VERSION_LOW                     9
 
 #define LIBIRC_BUFFER_SIZE                     1024
 #define LIBIRC_DCC_BUFFER_SIZE         1024
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libircclient-1.8/src/portable.c 
new/libircclient-1.9/src/portable.c
--- old/libircclient-1.8/src/portable.c 2013-11-05 17:37:29.000000000 +0100
+++ new/libircclient-1.9/src/portable.c 2016-05-04 02:26:32.000000000 +0200
@@ -134,20 +134,13 @@
 #if defined (WIN32_DLL)
 BOOL WINAPI DllMain (HINSTANCE hinstDll, DWORD fdwReason, LPVOID lpvReserved)
 {
-       WORD wVersionRequested = MAKEWORD (1, 1);
-    WSADATA wsaData;
-
        switch(fdwReason)
        {
                case DLL_PROCESS_ATTACH:
-                       if ( WSAStartup (wVersionRequested, &wsaData) != 0 )
-                               return FALSE;
-
                        DisableThreadLibraryCalls (hinstDll);
                        break;
 
                case DLL_PROCESS_DETACH:
-                       WSACleanup();
                        break;
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libircclient-1.8/src/sockets.c 
new/libircclient-1.9/src/sockets.c
--- old/libircclient-1.8/src/sockets.c  2013-11-05 17:37:29.000000000 +0100
+++ new/libircclient-1.9/src/sockets.c  2016-05-04 02:23:21.000000000 +0200
@@ -76,7 +76,7 @@
 #if !defined (_WIN32)
        return fcntl (*sock, F_SETFL, fcntl (*sock, F_GETFL,0 ) | O_NONBLOCK) 
!= 0;
 #else
-       unsigned long mode = 0;
+       unsigned long mode = 1;
        return ioctlsocket (*sock, FIONBIO, &mode) == SOCKET_ERROR;
 #endif
 }

++++++ libircclient-cipher-suite.diff ++++++
diff -Naur libircclient-1.9.orig/src/ssl.c libircclient-1.9/src/ssl.c
--- libircclient-1.9.orig/src/ssl.c     2013-11-05 17:37:29.983166000 +0100
+++ libircclient-1.9/src/ssl.c  2016-06-13 14:11:03.682176849 +0200
@@ -127,7 +127,7 @@
                return LIBIRC_ERR_SSL_INIT_FAILED;
 
        // Enable only strong ciphers
-       if ( SSL_CTX_set_cipher_list( ssl_context, 
"ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH" ) != 1 )
+       if ( SSL_CTX_set_cipher_list( ssl_context, 
"EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH" ) != 1 )
                return LIBIRC_ERR_SSL_INIT_FAILED;
 
        // Set the verification

Reply via email to