Hello community, here is the log from the commit of package libircclient for openSUSE:Factory checked in at 2020-09-08 22:50:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libircclient (Old) and /work/SRC/openSUSE:Factory/.libircclient.new.3399 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libircclient" Tue Sep 8 22:50:38 2020 rev:11 rq:832930 version:1.10 Changes: -------- --- /work/SRC/openSUSE:Factory/libircclient/libircclient.changes 2018-08-29 12:26:59.159631171 +0200 +++ /work/SRC/openSUSE:Factory/.libircclient.new.3399/libircclient.changes 2020-09-08 22:50:44.187615937 +0200 @@ -1,0 +2,10 @@ +Tue Aug 25 21:56:59 UTC 2020 - Dirk Mueller <dmuel...@suse.com> + +- update to 1.10: + * Fixed compatibility with OpenSSL 1.1.x (thanks Antoine Amarilli) + * 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() +- remove pdfgen.patch (upstream) + +------------------------------------------------------------------- Old: ---- libircclient-1.9.tar.gz pdfgen.patch New: ---- libircclient-1.10.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libircclient.spec ++++++ --- /var/tmp/diff_new_pack.qXzllF/_old 2020-09-08 22:50:45.535616594 +0200 +++ /var/tmp/diff_new_pack.qXzllF/_new 2020-09-08 22:50:45.539616595 +0200 @@ -1,7 +1,7 @@ # # spec file for package libircclient # -# Copyright (c) 2018 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 @@ -12,13 +12,13 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # %define soname 1 Name: libircclient -Version: 1.9 +Version: 1.10 Release: 0 Summary: Library implementing client-server IRC protocol License: LGPL-2.0-or-later @@ -29,7 +29,6 @@ Patch0: libircclient-memory-overflow.diff # PATCH-FIX-UPSTREAM libircclient-cipher-suite.patch bnc#857151 Patch1: libircclient-cipher-suite.diff -Patch2: pdfgen.patch BuildRequires: automake BuildRequires: gcc-c++ BuildRequires: libtool @@ -73,12 +72,10 @@ %setup -q %patch0 -p1 %patch1 -p1 -%patch2 -p1 %build export CFLAGS="%{optflags} -fno-strict-aliasing" export CXXFLAGS="$CFLAGS" -export ac_cv_lib_ssl_SSL_library_init=yes %configure --enable-ipv6 --enable-openssl --enable-shared make %{?_smp_mflags} cd doc ++++++ libircclient-1.9.tar.gz -> libircclient-1.10.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libircclient-1.9/Changelog new/libircclient-1.10/Changelog --- old/libircclient-1.9/Changelog 2016-05-04 02:39:29.162459000 +0200 +++ new/libircclient-1.10/Changelog 2018-08-27 04:28:29.498770000 +0200 @@ -1,3 +1,7 @@ +2018-08-26 George Yunaev + * libircclient 1.10 released. + * Fixed compatibility with OpenSSL 1.1.x (thanks Antoine Amarilli) + 2016-05-03 George Yunaev * libircclient 1.9 released. * Fixed a few minor Win32 compatibility bugs. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libircclient-1.9/build-release.sh new/libircclient-1.10/build-release.sh --- old/libircclient-1.9/build-release.sh 2016-05-04 03:42:49.462662000 +0200 +++ new/libircclient-1.10/build-release.sh 2018-08-27 04:31:42.802475000 +0200 @@ -32,10 +32,9 @@ svn export . "$BUILDDIR/" || exit 1 # Build the documentation -(cd $BUILDDIR/doc && make singlehtml && make man && make latexpdf) || exit 1 +(cd $BUILDDIR/doc && make singlehtml && make man) || exit 1 # Package the documentations -cp $BUILDDIR/doc/_build/latex/Libircclient.pdf $RELEASEDIR/$PKGDIR.pdf || exit 1 (cd $BUILDDIR/doc/_build/singlehtml && zip -r ../$PKGDIR-html.zip .) mv $BUILDDIR/doc/_build/$PKGDIR-html.zip $RELEASEDIR/ || exit 1 @@ -59,7 +58,7 @@ mkdir "$PKGDIR/examples" cp examples/*.c* $PKGDIR/examples || exit 1 mkdir "$PKGDIR/doc" -cp $RELEASEDIR/$PKGDIR.pdf "$PKGDIR/doc/" || exit 1 +cp $RELEASEDIR/$PKGDIR-html.zip "$PKGDIR/doc/" || exit 1 zip -r $RELEASEDIR/$PKGDIR-win32-dll.zip $PKGDIR || exit 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libircclient-1.9/configure new/libircclient-1.10/configure --- old/libircclient-1.9/configure 2014-07-30 07:51:55.869559000 +0200 +++ new/libircclient-1.10/configure 2018-08-27 02:25:37.272390000 +0200 @@ -4552,9 +4552,9 @@ esac if test "$use_openssl" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRYPTO_new_ex_data in -lcrypto" >&5 -$as_echo_n "checking for CRYPTO_new_ex_data in -lcrypto... " >&6; } -if ${ac_cv_lib_crypto_CRYPTO_new_ex_data+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRYPTO_free in -lcrypto" >&5 +$as_echo_n "checking for CRYPTO_free in -lcrypto... " >&6; } +if ${ac_cv_lib_crypto_CRYPTO_free+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -4568,27 +4568,27 @@ #ifdef __cplusplus extern "C" #endif -char CRYPTO_new_ex_data (); +char CRYPTO_free (); int main () { -return CRYPTO_new_ex_data (); +return CRYPTO_free (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_crypto_CRYPTO_new_ex_data=yes + ac_cv_lib_crypto_CRYPTO_free=yes else - ac_cv_lib_crypto_CRYPTO_new_ex_data=no + ac_cv_lib_crypto_CRYPTO_free=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_CRYPTO_new_ex_data" >&5 -$as_echo "$ac_cv_lib_crypto_CRYPTO_new_ex_data" >&6; } -if test "x$ac_cv_lib_crypto_CRYPTO_new_ex_data" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_CRYPTO_free" >&5 +$as_echo "$ac_cv_lib_crypto_CRYPTO_free" >&6; } +if test "x$ac_cv_lib_crypto_CRYPTO_free" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBCRYPTO 1 _ACEOF @@ -4596,12 +4596,12 @@ LIBS="-lcrypto $LIBS" else - as_fn_error $? "OpenSSL not found" "$LINENO" 5 + as_fn_error $? "OpenSSL not found (libcrypto)" "$LINENO" 5 fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL_library_init in -lssl" >&5 -$as_echo_n "checking for SSL_library_init in -lssl... " >&6; } -if ${ac_cv_lib_ssl_SSL_library_init+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL_CTX_new in -lssl" >&5 +$as_echo_n "checking for SSL_CTX_new in -lssl... " >&6; } +if ${ac_cv_lib_ssl_SSL_CTX_new+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -4615,27 +4615,27 @@ #ifdef __cplusplus extern "C" #endif -char SSL_library_init (); +char SSL_CTX_new (); int main () { -return SSL_library_init (); +return SSL_CTX_new (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ssl_SSL_library_init=yes + ac_cv_lib_ssl_SSL_CTX_new=yes else - ac_cv_lib_ssl_SSL_library_init=no + ac_cv_lib_ssl_SSL_CTX_new=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssl_SSL_library_init" >&5 -$as_echo "$ac_cv_lib_ssl_SSL_library_init" >&6; } -if test "x$ac_cv_lib_ssl_SSL_library_init" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssl_SSL_CTX_new" >&5 +$as_echo "$ac_cv_lib_ssl_SSL_CTX_new" >&6; } +if test "x$ac_cv_lib_ssl_SSL_CTX_new" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBSSL 1 _ACEOF @@ -4643,7 +4643,7 @@ LIBS="-lssl $LIBS" else - as_fn_error $? "OpenSSL not found" "$LINENO" 5 + as_fn_error $? "OpenSSL not found (libssl)" "$LINENO" 5 fi ac_fn_c_check_header_mongrel "$LINENO" "openssl/ssl.h" "ac_cv_header_openssl_ssl_h" "$ac_includes_default" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libircclient-1.9/configure.in new/libircclient-1.10/configure.in --- old/libircclient-1.9/configure.in 2014-07-30 07:51:55.869559000 +0200 +++ new/libircclient-1.10/configure.in 2018-08-27 02:25:37.272390000 +0200 @@ -100,8 +100,8 @@ esac if test "$use_openssl" = "yes"; then - AC_CHECK_LIB(crypto, [CRYPTO_new_ex_data], [], [AC_MSG_ERROR([OpenSSL not found])]) - AC_CHECK_LIB(ssl, [SSL_library_init], [], [AC_MSG_ERROR([OpenSSL not found])]) + AC_CHECK_LIB(crypto, [CRYPTO_free], [], [AC_MSG_ERROR([OpenSSL not found (libcrypto)])]) + AC_CHECK_LIB(ssl, [SSL_CTX_new], [], [AC_MSG_ERROR([OpenSSL not found (libssl)])]) AC_CHECK_HEADER([openssl/ssl.h], [], [AC_MSG_ERROR([OpenSSL headers not found; did you install the -dev package?])]) CFLAGS="$CFLAGS -DENABLE_SSL" fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libircclient-1.9/doc/Makefile new/libircclient-1.10/doc/Makefile --- old/libircclient-1.9/doc/Makefile 2013-06-24 08:09:38.603106000 +0200 +++ new/libircclient-1.10/doc/Makefile 2018-08-27 04:18:23.948224000 +0200 @@ -28,7 +28,7 @@ @echo " devhelp to make HTML files and a Devhelp project" @echo " epub to make an epub" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " pdf to make PDF" @echo " text to make text files" @echo " man to make manual pages" @echo " texinfo to make Texinfo files" @@ -124,6 +124,9 @@ @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." @echo "Run \`make' in that directory to run these through makeinfo" \ "(use \`make info' here to do that automatically)." + +pdf: + $(SPHINXBUILD) -b rinoh . _build/rinoh info: $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libircclient-1.9/doc/conf.py new/libircclient-1.10/doc/conf.py --- old/libircclient-1.9/doc/conf.py 2016-05-04 02:40:24.229127000 +0200 +++ new/libircclient-1.10/doc/conf.py 2018-08-27 04:29:09.461882000 +0200 @@ -24,8 +24,8 @@ #needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['sphinx.ext.doctest', 'rst2pdf.pdfbuilder'] +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.rinoh.frontend.sphinx +extensions = ['sphinx.ext.doctest'] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] @@ -169,23 +169,23 @@ # -- Options for LaTeX output -------------------------------------------------- -latex_elements = { +#latex_elements = { # The paper size ('letterpaper' or 'a4paper'). -'papersize': 'letterpaper', +#'papersize': 'letterpaper', # The font size ('10pt', '11pt' or '12pt'). -'pointsize': '10pt', +#'pointsize': '10pt', # Additional stuff for the LaTeX preamble. -'preamble': '\setcounter{tocdepth}{4}', -} +#'preamble': '\setcounter{tocdepth}{4}', +#} # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). -latex_documents = [ - ('index', 'Libircclient.tex', u'Libircclient Documentation', - u'George Yunaev', 'manual'), -] +#latex_documents = [ +# ('index', 'Libircclient.tex', u'Libircclient Documentation', +# u'George Yunaev', 'manual'), +#] # The name of an image file (relative to this directory) to place at the top of # the title page. @@ -283,3 +283,14 @@ # Allow duplicate toc entries. #epub_tocdup = True + + +# -- Options for Rhinotype output --------------------------------------------------- + +rinoh_documents = [('index', # top-level file (index.rst) + 'libircclient', # output (target.pdf) + 'Libircclient Documentation', # document title + 'George Yunaev')] # document author + +rinoh_paper_size = 'letterpaper' + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libircclient-1.9/include/libircclient.h new/libircclient-1.10/include/libircclient.h --- old/libircclient-1.9/include/libircclient.h 2016-05-04 02:21:56.177328000 +0200 +++ new/libircclient-1.10/include/libircclient.h 2018-08-27 02:25:37.272390000 +0200 @@ -1052,7 +1052,7 @@ * \fn void irc_target_get_nick (const char * target, char *nick, size_t size) * \brief Gets the nick part from the target * - * \param target A nick in common IRC server form like tim!root\@mycomain.com + * \param target A nick in common IRC server form like tim!root\@mycomain.com; cannot be NULL * \param nick A buffer to hold the nickname. * \param size A buffer size. If nick is longer than buffer size, it will * be truncated. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libircclient-1.9/man/libircclient.1 new/libircclient-1.10/man/libircclient.1 --- old/libircclient-1.9/man/libircclient.1 2016-05-04 03:42:58.866438743 +0200 +++ new/libircclient-1.10/man/libircclient.1 2018-08-27 04:31:48.226354965 +0200 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "LIBIRCCLIENT" "1" "May 03, 2016" "1.9" "Libircclient" +.TH "LIBIRCCLIENT" "1" "Aug 26, 2018" "1.9" "Libircclient" .SH NAME libircclient \- Libircclient Documentation . @@ -89,16 +89,16 @@ .UNINDENT .SS Known issues .sp -Even though possible by using multiple sessions, the library is not suitable to connect to a large number of IRC servers simultaneously. If you still want to use it, you\(aqd have to overcome the following: +Even though possible by using multiple sessions, the library is not suitable to connect to a large number of IRC servers simultaneously. If you still want to use it, you’d have to overcome the following: .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 You cannot use the main loop in \fBirc_run()\fP because it only supports one session. You would have to use \fBirc_add_select_descriptors()\fP .IP \(bu 2 -You\(aqd have to handle reconnections separately by processing the relevant \fBirc_process_select_descriptors()\fP return values +You’d 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’d have to write more logic as it is not directly supported. See the FAQ\&. .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 @@ -121,7 +121,7 @@ On Linux, FreeBSD and Mac OS X the library has to be compiled and installed before use unless you use a precompiled package provided by your operating system distribution. If it is provided, you are recommended to use it as it would be updated from the central repository when the bugs are fixed. .sp -On Microsoft Windows the official library binaries are provided, so you do not have to build it. Unless you have experience building with Cygwin, you\(aqre advised not to build from source and use the official binary. +On Microsoft Windows the official library binaries are provided, so you do not have to build it. Unless you have experience building with Cygwin, you’re advised not to build from source and use the official binary. .SS Required libraries .sp The library depends only on libc (glibc\-devel on Linux) and gcc, although the examples require also libstdc++ (libstdc++\-devel) and g++. Minimum supported version is glibc 2.2, @@ -336,7 +336,7 @@ .SS Use the custom networking loop .sp If you use multiple sessions or have your own socket handler, you can use the custom networking loop. In this case your application must be select()\-based -(\fIsee the FAQ\fP if you want to use other polling methods). And you need to run the following loop: +(see the FAQ if you want to use other polling methods). And you need to run the following loop: .INDENT 0.0 .INDENT 3.5 .sp @@ -449,7 +449,7 @@ Technically the protocol does not require one to join the channel to send the messages into the channel. However most servers by default set the channel mode which prevents the users who did not join the channel from sending the message into the channel. .sp -Same function is used to send a "private" message to another user. The "private" messages do not go through the channels, but they still go through +Same function is used to send a “private” message to another user. The “private” messages do not go through the channels, but they still go through the IRC server (sometime multiple servers) and can be seen or even logged by the IRC network operators. .INDENT 0.0 .INDENT 3.5 @@ -470,12 +470,12 @@ .sp 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 +“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. .sp Same as with sending messages no confirmation is received on success. @@ -564,7 +564,7 @@ .sp If it does, we only store this information in the callback, and return. This is because the event processing will stop until the callback returns, so popping up the dialog asking for the user confirmation would stop further events such as -channel messages from being processed. Even if your application is automatic and doesn\(aqt pop up dialogs it is still better to +channel messages from being processed. Even if your application is automatic and doesn’t pop up dialogs it is still better to separate the chat logic from the callback logic. .sp Somewhere later the application would check the queue in the GUI thread, get this information, and pop up the dialog asking the user @@ -706,7 +706,7 @@ .sp If it does, we only store this information in the callback, and return. This is because the event processing will stop until the callback returns, so popping up the dialog asking for the user confirmation would stop further events such as -channel messages from being processed. Even if your application is automatic and doesn\(aqt pop up dialogs it is still better to +channel messages from being processed. Even if your application is automatic and doesn’t pop up dialogs it is still better to separate the chat logic from the callback logic. .sp Somewhere later the application would check the queue in the GUI thread, get this information, and pop up the dialog asking the user @@ -742,9 +742,9 @@ .SS Stripping colors from the message .sp If your bot reacts on the text messages, you need to strip down the colors from the text messages before processing them. Otherwise the user sending -the colored message won\(aqt get the same reaction as the user who doesn\(aqt use colors, and some users use colors by default. +the colored message won’t get the same reaction as the user who doesn’t use colors, and some users use colors by default. .sp -Use the \fBirc_color_strip_from_mirc()\fP function to strip the ANSI colors from the text message. It does not modify the message which doesn\(aqt use colors. +Use the \fBirc_color_strip_from_mirc()\fP function to strip the ANSI colors from the text message. It does not modify the message which doesn’t use colors. .SS Color conversion .sp The library supports color translation, and can convert colors between the ANSI colors used by the IRC clients and their textual representation. @@ -1056,7 +1056,7 @@ .sp This is an advanced callback for those who want to handle events deeper. Most times the IRC server replies to your actions with numeric events. Most of those events are error codes, and some are list\-start and list\-stop markers. Every code has its own set of params; for details you can either experiment, or read RFC 1459 -(don\(aqt expect servers to follow it closely though). +(don’t 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 @@ -1090,7 +1090,7 @@ Almost every library function requires this object to be passed to, and therefore this function should be called first. Multiple sessions could be allocated to support multiple connections. .sp -When it is not needed anymore, the session must be destroyed by calling the \fBirc_destroy_session()\fP function. +When it is not needed anymore, the session must be destroyed by calling the \fI\%irc_destroy_session()\fP function. .sp \fBReturn value:\fP .sp @@ -1182,15 +1182,15 @@ \fIusername\fP T} T{ Username of the Unix account which is used to connect to the IRC server. This is for information only, will be shown in -"user properties" dialogs and returned by /whois request. Can be NULL in which case "nobody" would be used +“user properties” dialogs and returned by /whois request. Can be NULL in which case “nobody” would be used T} _ T{ \fIrealname\fP T} T{ A real name of the person, who connects to the IRC. In reality nobody uses this field for that. Instead this field is -used as user self\-description, advertising, or other purposes. This information also will be shown in "user properties" -dialogs and returned by /whois request. May be NULL, in this case "noname" will be used +used as user self\-description, advertising, or other purposes. This information also will be shown in “user properties” +dialogs and returned by /whois request. May be NULL, in this case “noname” will be used T} _ .TE @@ -1208,8 +1208,8 @@ .sp \fBReturn value:\fP .sp -Returns 0 if the connection is initiated successfully. This doesn\(aqt mean the connection is established \- the \fBevent_connect\fP is called when it happens. If the connection cannot be established, -either \fBirc_run()\fP or \fBirc_process_select_descriptors()\fP will return an error. +Returns 0 if the connection is initiated successfully. This doesn’t mean the connection is established \- the \fBevent_connect\fP is called when it happens. If the connection cannot be established, +either \fI\%irc_run()\fP or \fI\%irc_process_select_descriptors()\fP will return an error. .sp \fBThread safety:\fP .sp @@ -1235,7 +1235,7 @@ .sp \fBDescription:\fP .sp -This function closes the IRC connection. After that connection is closed, if the libirc was looped in the \fBirc_run()\fP loop, it automatically leaves the loop and \fBirc_run()\fP returns. +This function closes the IRC connection. After that connection is closed, if the libirc was looped in the \fI\%irc_run()\fP loop, it automatically leaves the loop and \fI\%irc_run()\fP returns. .sp \fBThread safety:\fP .sp @@ -1292,8 +1292,8 @@ \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 -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 +until the server connection is terminated \- either by server, or by calling \fI\%irc_cmd_quit\fP\&. This function should only be used +if you use a single IRC session and don’t need asynchronous request processing (i.e. your bot just reacts on the events, and doesn’t 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. .sp @@ -1303,7 +1303,7 @@ .sp \fBThread safety:\fP .sp -This function cannot be called from multiple threads. Use \fBirc_add_select_descriptors()\fP and \fBirc_process_select_descriptors()\fP instead. +This function cannot be called from multiple threads. Use \fI\%irc_add_select_descriptors()\fP and \fI\%irc_process_select_descriptors()\fP instead. .SS irc_add_select_descriptors .sp \fBPrototype:\fP @@ -1345,16 +1345,16 @@ .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 \fI\%irc_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 +When it returns, you should call \fI\%irc_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. .sp -What if you use epoll? \fISee the FAQ\fP +What if you use epoll? See the FAQ .sp \fBReturn value:\fP .sp -This function returns a nonzero value if the \fBirc_connect()\fP was not called before calling this function. +This function returns a nonzero value if the \fI\%irc_connect()\fP was not called before calling this function. .sp \fBThread safety:\fP .sp @@ -1394,7 +1394,7 @@ .sp \fBDescription:\fP .sp -This function should be used in pair with \fBirc_add_select_descriptors()\fP function, which documentation describes how they work together. +This function should be used in pair with \fI\%irc_add_select_descriptors()\fP function, which documentation describes how they work together. .sp Note that while processing the events this function calls your callbacks and it will not return until all your callbacks return. Keep that in mind if you pop up a dialog in your application, such as a DCC CHAT or DCC SEND confirmation dialog. @@ -1504,7 +1504,7 @@ .sp \fBDescription:\fP .sp -Use this function to leave the IRC channel you\(aqve already joined to. An attempt to leave the channel you aren\(aqt in results a LIBIRC_RFC_ERR_NOTONCHANNEL server error. +Use this function to leave the IRC channel you’ve already joined to. An attempt to leave the channel you aren’t in results a LIBIRC_RFC_ERR_NOTONCHANNEL server error. .sp \fBReturn value:\fP .sp @@ -1559,7 +1559,7 @@ .sp \fBDescription:\fP .sp -This function is used to invite someone to invite\-only channel. "Invite\-only" is a channel mode, which restricts anyone, except invided, to join this channel. +This function is used to invite someone to invite\-only channel. “Invite\-only” is a channel mode, which restricts anyone, except invided, to join this channel. After invitation, the user could join this channel. The user, who is invited, will receive the \fBevent_invite\fP event. Note that you must be a channel operator to invite the users. .sp \fBReturn value:\fP @@ -1674,8 +1674,8 @@ \fBDescription:\fP .sp This function is used to ask the IRC server for the active (existing) channels list. The list will be returned using the LIBIRC_RFC_RPL_LISTSTART, -multiple LIBIRC_RFC_RPL_LIST, and LIBIRC_RFC_RPL_LISTEND event sequence. Note that "private" channels are listed (without their topics) as channel -"Prv" unless the client generating the LIST query is actually on that channel. Likewise, secret channels are not listed at all unless the client +multiple LIBIRC_RFC_RPL_LIST, and LIBIRC_RFC_RPL_LISTEND event sequence. Note that “private” channels are listed (without their topics) as channel +“Prv” unless the client generating the LIST query is actually on that channel. Likewise, secret channels are not listed at all unless the client is active at the channel in question. .sp \fBReturn value:\fP @@ -1726,7 +1726,7 @@ T{ \fItopic\fP T} T{ -A new channel topic. If NULL, the old topic would be returned and nothing would change. To set the empty topic use "" +A new channel topic. If NULL, the old topic would be returned and nothing would change. To set the empty topic use “” T} _ .TE @@ -1813,7 +1813,7 @@ are boolean (i.e. could only be set or reset), but a few channel mode letters accept a parameter. All channel options are set by adding a plus sign before the letter, and reset by adding a minus sign before the letter. .sp -Here is the list of \(aqstandard\(aq channel modes: +Here is the list of ‘standard’ channel modes: .TS center; |l|l|. @@ -1822,26 +1822,26 @@ o nickname T} T{ 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" +the users in channel, not the channel itself. Examples: “+o tim”, “\-o watson” T} _ T{ p T} T{ -sets (+p) or resets (\-p) private channel flag. Private channels are shown in channel list as \(aqPrv\(aq, without the topic +sets (+p) or resets (\-p) private channel flag. Private channels are shown in channel list as ‘Prv’, without the topic T} _ T{ s T} T{ -sets (+s) or resets (\-s) secret channel flag. Secret channels aren\(aqt shown in channel list at all +sets (+s) or resets (\-s) secret channel flag. Secret channels aren’t shown in channel list at all T} _ T{ i T} T{ sets (+i) or resets (\-i) invite\-only channel flag. When the flag is set, only the people who are invited by the -\fBirc_cmd_invite()\fP can join this channel +\fI\%irc_cmd_invite()\fP can join this channel T} _ T{ @@ -1868,7 +1868,7 @@ T{ v nickname T} T{ -gives (+v nick) or takes (\-v nick) from user the ability to speak on a moderated channel. Examples: "+v bob", "\-v joy" +gives (+v nick) or takes (\-v nick) from user the ability to speak on a moderated channel. Examples: “+v bob”, “\-v joy” T} _ T{ @@ -1889,12 +1889,12 @@ 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 -ban you must specify the ban mask to remove, not just "\-b". +ban you must specify the ban mask to remove, not just “\-b”. T} _ .TE .sp -Note that the actual list of channel modes depends on the IRC server, and can be bigger. If you know the popular channel modes which aren\(aqt listed here \- please contact me +Note that the actual list of channel modes depends on the IRC server, and can be bigger. If you know the popular channel modes which aren’t listed here \- please contact me .sp \fBReturn value:\fP .sp @@ -1968,7 +1968,7 @@ User mode is represended by the letters combination. All the user mode letters are boolean (i.e. could only be set or reset), they are set by adding a plus sign before the letter, and reset by adding a minus sign before the letter. .sp -Here is the list of \(aqstandard\(aq user modes: +Here is the list of ‘standard’ user modes: .TS center; |l|l|. @@ -1982,13 +1982,13 @@ T{ i T} T{ -if set, marks a user as \(aqinvisible\(aq \- that is, not seen by lookups if the user is not in a channel +if set, marks a user as ‘invisible’ \- that is, not seen by lookups if the user is not in a channel T} _ T{ w T} T{ -if set, marks a user as \(aqreceiving wallops\(aq \- special messages generated by IRC operators using WALLOPS command +if set, marks a user as ‘receiving wallops’ \- special messages generated by IRC operators using WALLOPS command T} _ T{ @@ -2006,12 +2006,12 @@ T{ x T} T{ -NON\-STANDARD MODE. If set, user\(aqs real IP is masked by the IRC server +NON\-STANDARD MODE. If set, user’s real IP is masked by the IRC server T} _ .TE .sp -Note that the actual list of user modes depends on the IRC server, and can be bigger. If you know the popular user modes, which aren\(aqt mentioned here \- please contact me. +Note that the actual list of user modes depends on the IRC server, and can be bigger. If you know the popular user modes, which aren’t mentioned here \- please contact me. .sp \fBReturn value:\fP .sp @@ -2144,7 +2144,7 @@ .sp \fBDescription:\fP .sp -This function is used to send the message to the channel or privately to another nick. "Privately" here means the message is not posted to the public, +This function is used to send the message to the channel or privately to another nick. “Privately” here means the message is not posted to the public, but the message still goes through the IRC server and could be seen by the IRC netwrk operators. The message target is determined by the \fInch\fP argument: if it is a nick, this will be a private message, but if it is a channel name it will be posted into the channel. .sp @@ -2217,7 +2217,7 @@ .sp \fBDescription:\fP .sp -This function is used to send the /me message (CTCP ACTION) to the channel or privately to another nick. "Privately" here means the message is not posted to the public, +This function is used to send the /me message (CTCP ACTION) to the channel or privately to another nick. “Privately” here means the message is not posted to the public, but the message still goes through the IRC server and could be seen by the IRC netwrk operators. The message target is determined by the \fInch\fP argument: if it is a nick, this will be a private message, but if it is a channel name it will be posted into the channel. .sp @@ -2290,7 +2290,7 @@ .sp \fBDescription:\fP .sp -This function is used to send the notice to the channel or privately to another nick. "Privately" here means the message is not posted to the public, +This function is used to send the notice to the channel or privately to another nick. “Privately” here means the message is not posted to the public, but the message still goes through the IRC server and could be seen by the IRC netwrk operators. The message target is determined by the \fInch\fP argument: if it is a nick, this will be a private message, but if it is a channel name it will be posted into the channel. .sp @@ -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 ‘origin’ (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. @@ -2766,7 +2766,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 nick!host@domain. +For most events IRC server returns ‘origin’ (i.e. the person, who generated this event) in so\-called “common” form, like nick!host@domain. This function parses this origin, and retrieves the host, storing it into the user\-provided buffer. .sp \fBThread safety:\fP @@ -2960,13 +2960,13 @@ 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\&. .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() +This function should be called only after either \fBevent_dcc_chat_req\fP or \fBevent_dcc_send_req\fP events are received. You don’t 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 prevent memory leaks you must call either irc_dcc_decline() or irc_dcc_accept() for any incoming DCC request within 60 seconds after receiving it. .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 \fI\%irc_errno()\fP\&. .sp \fBThread safety:\fP .sp @@ -3002,15 +3002,15 @@ .sp This function declines a remote DCC chat or file transfer request. .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() +This function should be called only after either \fBevent_dcc_chat_req\fP or \fBevent_dcc_send_req\fP events are received. You don’t 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 prevent memory leaks you must call either irc_dcc_decline() or irc_dcc_accept() for any incoming DCC request within 60 seconds after receiving it. .sp -Do not use this function to forecefully close the previously accepted or initiated DCC session. Use \fBirc_dcc_destroy()\fP instead. +Do not use this function to forecefully close the previously accepted or initiated DCC session. Use \fI\%irc_dcc_destroy()\fP instead. .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 \fI\%irc_errno()\fP\&. .sp \fBThread safety:\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 \fI\%irc_errno()\fP\&. .sp \fBThread safety:\fP .sp @@ -3168,7 +3168,7 @@ This function strips all the ANSI color codes from the message, and returns a new message with no color information. Useful for the bots which react to strings, to make sure the bot is not confused if the string uses colors. .sp -This function does not modify the message which doesn\(aqt use colors. +This function does not modify the message which doesn’t use colors. .sp \fBReturn value:\fP .sp @@ -3254,15 +3254,15 @@ .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). +[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 -[U] ... [/U] \- underline format mode. Everything between [U] and [/U] is written underlined. +[U] … [/U] \- underline format mode. Everything between [U] and [/U] is written underlined. .IP \(bu 2 -[COLOR=RED] ... [/COLOR] \- write the text using specified foreground color. The color is set by using the COLOR keyword, and equal sign followed by text color code (see below). +[COLOR=RED] … [/COLOR] \- write the text using specified foreground color. The color is set by using the COLOR keyword, and equal sign followed by text color code (see below). .IP \(bu 2 -[COLOR=RED/BLUE] ... [/COLOR] \- write the text using specified foreground and background color. The color is set by using the COLOR keyword, an equal sign followed by text foreground color code, a dash and a text background color code. +[COLOR=RED/BLUE] … [/COLOR] \- write the text using specified foreground and background color. The color is set by using the COLOR keyword, an equal sign followed by text foreground color code, a dash and a text background color code. .UNINDENT .TP .B The following colors are supported: @@ -3384,7 +3384,7 @@ .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\&. +and store its address in ctx (most common usage), it is your responsibility to free it before calling \fI\%irc_destroy_session()\fP\&. .sp \fBThread safety:\fP .sp @@ -3443,14 +3443,14 @@ T{ \fIoption\fP T} T{ -One of the \fILibirc options\fP to set +One of the Libirc options to set T} _ .TE .sp \fBDescription:\fP .sp -This function sets the libircclient option, changing libircclient behavior. See the \fIoptions\fP list for the meaning for every option. +This function sets the libircclient option, changing libircclient behavior. See the options list for the meaning for every option. .sp \fBThread safety:\fP .sp @@ -3477,14 +3477,14 @@ T{ \fIoption\fP T} T{ -One of the \fILibirc options\fP to set +One of the Libirc options to set T} _ .TE .sp \fBDescription:\fP .sp -This function resets the libircclient option, changing libircclient behavior. See the \fIoptions\fP list for the meaning for every option. +This function resets the libircclient option, changing libircclient behavior. See the options list for the meaning for every option. .sp \fBThread safety:\fP .sp @@ -3522,7 +3522,7 @@ .IP \(bu 2 irc_errno() should be called ONLY if the called function fails; .IP \(bu 2 -irc_errno() doesn\(aqt return 0 if function succeed; actually, the return value will be undefined. +irc_errno() doesn’t return 0 if function succeed; actually, the return value will be undefined. .IP \(bu 2 you should call irc_errno() IMMEDIATELY after function fails, before calling any other libircclient function. .UNINDENT @@ -3552,7 +3552,7 @@ T{ \fIircerrno\fP T} T{ -IRC error code returned by \fBirc_errno()\fP +IRC error code returned by \fI\%irc_errno()\fP T} _ .TE @@ -3637,10 +3637,10 @@ Describes the event callbacks structure which is used in registering the callbacks. .sp All the communication with the IRC network is based on events. Generally speaking, event is anything generated by someone else in the network, or by the IRC server itself. -"Someone sends you a message", "Someone has joined the channel", "Someone has quits IRC" \- all these messages are events. +“Someone sends you a message”, “Someone has joined the channel”, “Someone has quits IRC” \- all these messages are events. .sp Every event has its own event handler, which is called when the appropriate event is received. -You don\(aqt have to define all the event handlers; define only the handlers for the events you need to intercept, and set the remaining handler pointers to NULL. +You don’t have to define all the event handlers; define only the handlers for the events you need to intercept, and set the remaining handler pointers to NULL. .INDENT 0.0 .TP .B event_connect @@ -3725,7 +3725,7 @@ .sp This event is triggered upon receipt of a JOIN message. It happens when a new user joins the channel you are watching (have joined). It also happens when you joined the new channel. .sp -Note that you may be "forced" to join the channel (and therefore receive this event) without issuing the JOIN command. A typical case is when the NickServ bot on the server is configured to auto\-join you to specific channels. +Note that you may be “forced” to join the channel (and therefore receive this event) without issuing the JOIN command. A typical case is when the NickServ bot on the server is configured to auto\-join you to specific channels. .sp This event uses \fBirc_event_callback_t\fP callback with the following values: .TS @@ -3793,7 +3793,7 @@ \fIparams\fP T} T{ params[0] contains the channel name -params[1] contains the channel mode changes, such as "+t", "\-i" +params[1] contains the channel mode changes, such as “+t”, “\-i” params[2] optional, contains the argument for the channel mode (for example, a nick for the +o mode) T} @@ -3821,7 +3821,7 @@ \fIparams\fP T} T{ params[0] contains the channel name -params[1] contains the user mode changes, such as "+t", "\-i" +params[1] contains the user mode changes, such as “+t”, “\-i” T} _ .TE @@ -3887,7 +3887,7 @@ .sp This event is triggered upon receipt of a PRIVMSG message sent to the channel. It happens when someone (but not you) sent a message to the channel you are watching (have joined). .sp -Your own messages do not trigger this event. However the server can still "force" you to send a message to the channel by generating this event. +Your own messages do not trigger this event. However the server can still “force” you to send a message to the channel by generating this event. .sp This event uses \fBirc_event_callback_t\fP callback with the following values: .TS @@ -3939,7 +3939,11 @@ .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 +.nf +event_privmsg_ +.fi +\&. 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 +3971,11 @@ .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 +.nf +event_channel_ +.fi +\&. 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 @@ -4026,7 +4034,11 @@ This event is triggered upon receipt of an CTCP request. By default, the built\-in CTCP request handler is used. .sp Mirc generates \fIPING\fP, \fIFINGER\fP, \fIVERSION\fP, \fITIME\fP and \fIACTION\fP messages which are automatically handled by the library if this event is not handled by your application. Those messages are replied automatically -except the ACTION message which triggers \fI\%event_ctcp_action\fP event. +except the ACTION message which triggers +.nf +event_ctcp_action_ +.fi + event. If you need to handle more types of the message, define this event handler, and check the source code of \fBlibirc_event_ctcp_internal\fP function to see how to write your own CTCP request handler. Note that you must support at least CTCP PING to pass the spoof check by some IRC servers. .sp @@ -4080,14 +4092,18 @@ .B event_ctcp_action .UNINDENT .sp -This event is triggered upon receipt of an CTCP ACTION message. It is only invoked if you did not define the \fI\%event_ctcp_req\fP event handler. +This event is triggered upon receipt of an CTCP ACTION message. It is only invoked if you did not define the +.nf +event_ctcp_req_ +.fi + event handler. .sp Such messages typically look like that in the IRC client: .INDENT 0.0 .TP .B :: [08:32:55] * Michael is having fun -[08:32:55] * Bobby\(aqs getting jealous +[08:32:55] * Bobby’s getting jealous .UNINDENT .sp This event uses \fBirc_event_callback_t\fP callback with the following values: @@ -4188,7 +4204,7 @@ .B LIBIRC_ERR_SOCKET .UNINDENT .sp -(3): The new socket could not be created or made non\-blocking. Usually means that the server is out of resources, or (hopefully not) a bug in libircclient. See also \fIfaq_err_socket\fP +(3): The new socket could not be created or made non\-blocking. Usually means that the server is out of resources, or (hopefully not) a bug in libircclient. See also faq_err_socket .INDENT 0.0 .TP .B LIBIRC_ERR_CONNECT @@ -4222,7 +4238,7 @@ .B LIBIRC_ERR_NODCCSEND .UNINDENT .sp -(9): A filename supplied to \fBirc_dcc_sendfile()\fP could not be sent. Either is is not a regular file (a directory or a socket, for example), or it could not be read. See also \fBLIBIRC_ERR_OPENFILE\fP +(9): A filename supplied to \fBirc_dcc_sendfile()\fP could not be sent. Either is is not a regular file (a directory or a socket, for example), or it could not be read. See also \fI\%LIBIRC_ERR_OPENFILE\fP .INDENT 0.0 .TP .B LIBIRC_ERR_READ @@ -4283,13 +4299,13 @@ .B LIBIRC_ERR_CONNECT_SSL_FAILED .UNINDENT .sp -(19): SSL handshare failed when attempting to connect to the server. Typically this means you\(aqre trying to use SSL but attempting to connect to a non\-SSL port. +(19): SSL handshare failed when attempting to connect to the server. Typically this means you’re trying to use SSL but attempting to connect to a non\-SSL port. .INDENT 0.0 .TP .B LIBIRC_ERR_SSL_CERT_VERIFY_FAILED .UNINDENT .sp -(20): The server is using an invalid or the self\-signed certificate. Use \fBLIBIRC_OPTION_SSL_NO_VERIFY\fP option to connect to it. +(20): The server is using an invalid or the self\-signed certificate. Use \fI\%LIBIRC_OPTION_SSL_NO_VERIFY\fP option to connect to it. .SS Options .INDENT 0.0 .TP @@ -4533,7 +4549,7 @@ .IP 0. 4 Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. .IP 1. 4 -Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user\(aqs computer system, and (b) will operate properly with a modified version of the Library that is interface\-compatible with the Linked Version. +Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user’s computer system, and (b) will operate properly with a modified version of the Library that is interface\-compatible with the Linked Version. .UNINDENT .UNINDENT .IP e. 3 @@ -4566,15 +4582,15 @@ .sp Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. .sp -If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy\(aqs public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. +If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy’s public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. .SS Indices and tables .INDENT 0.0 .IP \(bu 2 -\fIgenindex\fP +genindex .IP \(bu 2 -\fImodindex\fP +modindex .IP \(bu 2 -\fIsearch\fP +search .UNINDENT .SH AUTHOR George Yunaev diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libircclient-1.9/src/Makefile.in new/libircclient-1.10/src/Makefile.in --- old/libircclient-1.9/src/Makefile.in 2014-07-30 07:51:55.869559000 +0200 +++ new/libircclient-1.10/src/Makefile.in 2018-08-27 03:11:08.592295000 +0200 @@ -1,6 +1,6 @@ -# $Id: Makefile.in 128 2014-07-30 05:51:55Z gyunaev $ +# $Id: Makefile.in 137 2018-08-27 01:11:08Z gyunaev $ CC = @CC@ -CFLAGS = -Wall -DIN_BUILDING_LIBIRC @CFLAGS@ +CFLAGS = -Wall -Wno-misleading-indentation -Wno-unused-function -Wno-nonnull -DIN_BUILDING_LIBIRC @CFLAGS@ AR=@AR@ cr RANLIB=@RANLIB@ INCLUDES=-I../include diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libircclient-1.9/src/params.h new/libircclient-1.10/src/params.h --- old/libircclient-1.9/src/params.h 2016-05-04 02:21:32.529080000 +0200 +++ new/libircclient-1.10/src/params.h 2018-08-27 03:20:31.371597000 +0200 @@ -17,7 +17,7 @@ #define LIBIRC_VERSION_HIGH 1 -#define LIBIRC_VERSION_LOW 9 +#define LIBIRC_VERSION_LOW 10 #define LIBIRC_BUFFER_SIZE 1024 #define LIBIRC_DCC_BUFFER_SIZE 1024 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libircclient-1.9/src/ssl.c new/libircclient-1.10/src/ssl.c --- old/libircclient-1.9/src/ssl.c 2013-11-05 17:37:29.983166000 +0100 +++ new/libircclient-1.10/src/ssl.c 2018-08-27 03:11:28.031135000 +0200 @@ -73,9 +73,10 @@ } // OpenSSL callback to get the thread ID -static unsigned long cb_openssl_id_function() + +static void cb_openssl_id_function( CRYPTO_THREADID * id ) { - return ((unsigned long) pthread_self() ); + CRYPTO_THREADID_set_pointer( id, pthread_self() ); } static int alloc_mutexes( unsigned int total ) @@ -106,12 +107,15 @@ return LIBIRC_ERR_NOMEM; // Register our callbacks - CRYPTO_set_id_callback( cb_openssl_id_function ); + CRYPTO_THREADID_set_callback( cb_openssl_id_function ); CRYPTO_set_locking_callback( cb_openssl_locking_function ); // Init it - if ( !SSL_library_init() ) - return LIBIRC_ERR_SSL_INIT_FAILED; +#if OPENSSL_VERSION_NUMBER < 0x10100000L + SSL_library_init(); +#else + OPENSSL_init_ssl(0, NULL); +#endif if ( RAND_status() == 0 ) return LIBIRC_ERR_SSL_INIT_FAILED;