config.h   config.h 
/* include/config.h. Generated from config.h.in by configure. */ /* src/config.h. Generated from config.h.in by configure. */
/* include/config.h.in. Generated from configure.in by autoheader. */ /* include/config.h.in. Generated from configure.in by autoheader. */
/* Define to 1 if you have the `getaddrinfo' function. */ /* Define to 1 if you have the `getaddrinfo' function. */
/* #undef HAVE_GETADDRINFO */ /* #undef HAVE_GETADDRINFO */
/* Define to 1 if you have the `gethostbyname_r' function. */ /* Define to 1 if you have the `gethostbyname_r' function. */
#define HAVE_GETHOSTBYNAME_R 1 #define HAVE_GETHOSTBYNAME_R 1
/* Define to 1 if you have the `inet_ntoa' function. */ /* Define to 1 if you have the `inet_ntoa' function. */
#define HAVE_INET_NTOA 1 #define HAVE_INET_NTOA 1
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 libirc_errors.h   libirc_errors.h 
/* /*
* Copyright (C) 2004-2009 Georgy Yunaev gyunaev@ulduzsoft.com * Copyright (C) 2004-2012 George Yunaev gyunaev@ulduzsoft.com
* *
* This library is free software; you can redistribute it and/or modify it * This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by * under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at yo ur * the Free Software Foundation; either version 3 of the License, or (at yo ur
* option) any later version. * option) any later version.
* *
* This library is distributed in the hope that it will be useful, but WITH OUT * This library is distributed in the hope that it will be useful, but WITH OUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details. * License for more details.
*/ */
/*!
* \file libirc_errors.h
* \author Georgy Yunaev
* \version 1.0
* \date 09.2004
* \brief This file defines error codes generated by libircclient.
*/
#ifndef INCLUDE_IRC_ERRORS_H #ifndef INCLUDE_IRC_ERRORS_H
#define INCLUDE_IRC_ERRORS_H #define INCLUDE_IRC_ERRORS_H
#ifndef IN_INCLUDE_LIBIRC_H #ifndef IN_INCLUDE_LIBIRC_H
#error This file should not be included directly, include just libir cclient.h #error This file should not be included directly, include just libir cclient.h
#endif #endif
/*! brief No error /*! brief No error
* \ingroup errorcodes * \ingroup errorcodes
*/ */
skipping to change at line 187 skipping to change at line 179
/*! \brief IPv6 not supported /*! \brief IPv6 not supported
* *
* The function which requires IPv6 support was called, but the IPv6 suppor t was not compiled * The function which requires IPv6 support was called, but the IPv6 suppor t was not compiled
* into the application * into the application
* *
* \ingroup errorcodes * \ingroup errorcodes
*/ */
#define LIBIRC_ERR_NOIPV6 16 #define LIBIRC_ERR_NOIPV6 16
/*! brief Internal max error value count /*! \brief SSL not supported
*
* The SSL connection was required but the library was not compiled with SS
L support
*
* \ingroup errorcodes
*/ */
#define LIBIRC_ERR_MAX 17 #define LIBIRC_ERR_SSL_NOT_SUPPORTED 17
/*! \brief SSL initialization failed
*
* The SSL connection was required but the library was not compiled with SS
L support
*
* \ingroup errorcodes
*/
#define LIBIRC_ERR_SSL_INIT_FAILED 18
/*! \brief SSL connection failed
*
* 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.
* \ingroup errorcodes
*/
#define LIBIRC_ERR_CONNECT_SSL_FAILED 19
/*! \brief SSL certificate verify failed
*
* The server is using the self-signed certificate. Use LIBIRC_OPTION_SSL_N
O_VERIFY option to connect to it.
* \ingroup errorcodes
*/
#define LIBIRC_ERR_SSL_CERT_VERIFY_FAILED 20
// Internal max error value count.
// If you added more errors, add them to errors.c too!
#define LIBIRC_ERR_MAX 21
#endif /* INCLUDE_IRC_ERRORS_H */ #endif /* INCLUDE_IRC_ERRORS_H */
 End of changes. 5 change blocks. 
12 lines changed or deleted 39 lines changed or added


 libirc_events.h   libirc_events.h 
/* /*
* Copyright (C) 2004-2009 Georgy Yunaev gyunaev@ulduzsoft.com * Copyright (C) 2004-2012 George Yunaev gyunaev@ulduzsoft.com
* *
* This library is free software; you can redistribute it and/or modify it * This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by * under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at yo ur * the Free Software Foundation; either version 3 of the License, or (at yo ur
* option) any later version. * option) any later version.
* *
* This library is distributed in the hope that it will be useful, but WITH OUT * This library is distributed in the hope that it will be useful, but WITH OUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details. * License for more details.
*/ */
/*!
* \file libirc_events.h
* \author Georgy Yunaev
* \version 1.0
* \date 09.2004
* \brief Describes event callbacks generated by libircclient.
*
* This file should not be included directly. Include libircclient.h instea
d.
*/
#ifndef INCLUDE_IRC_EVENTS_H #ifndef INCLUDE_IRC_EVENTS_H
#define INCLUDE_IRC_EVENTS_H #define INCLUDE_IRC_EVENTS_H
#ifndef IN_INCLUDE_LIBIRC_H #ifndef IN_INCLUDE_LIBIRC_H
#error This file should not be included directly, include just libir cclient.h #error This file should not be included directly, include just libir cclient.h
#endif #endif
/*! /*!
* \fn typedef void (*irc_event_callback_t) (irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int coun t) * \fn typedef void (*irc_event_callback_t) (irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int coun t)
* \brief A most common event callback * \brief A most common event callback
skipping to change at line 285 skipping to change at line 275
/*! /*!
* The "notice" event is triggered upon receipt of a NOTICE message * The "notice" event is triggered upon receipt of a NOTICE message
* which means that someone has sent the client a public or private * which means that someone has sent the client a public or private
* notice. According to RFC 1459, the only difference between NOTICE * notice. According to RFC 1459, the only difference between NOTICE
* and PRIVMSG is that you should NEVER automatically reply to NOTICE * and PRIVMSG is that you should NEVER automatically reply to NOTICE
* messages. Unfortunately, this rule is frequently violated by IRC * messages. Unfortunately, this rule is frequently violated by IRC
* servers itself - for example, NICKSERV messages require reply, and * servers itself - for example, NICKSERV messages require reply, and
* are NOTICEs. * are NOTICEs.
* *
* \param origin the person, who generates the message. * \param origin the person, who generates the message.
* \param params[0] mandatory, contains the channel name. * \param params[0] mandatory, contains the target nick name.
* \param params[1] optional, contains the message text * \param params[1] optional, contains the message text
*/ */
irc_event_callback_t event_notice; irc_event_callback_t event_notice;
/*! /*!
* The "channel_notice" event is triggered upon receipt of a NOTICE
* message which means that someone has sent the client a public
* notice. 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 NOTICEs.
*
* \param origin the person, who generates the message.
* \param params[0] mandatory, contains the channel name.
* \param params[1] optional, contains the message text
*/
irc_event_callback_t event_channel_notice;
/*!
* The "invite" event is triggered upon receipt of an INVITE message , * The "invite" event is triggered upon receipt of an INVITE message ,
* which means that someone is permitting the client's entry into a +i * which means that someone is permitting the client's entry into a +i
* channel. * channel.
* *
* \param origin the person, who INVITEs you. * \param origin the person, who INVITEs you.
* \param params[0] mandatory, contains your nick. * \param params[0] mandatory, contains your nick.
* \param params[1] mandatory, contains the channel name you're invi ted into. * \param params[1] mandatory, contains the channel name you're invi ted into.
* *
* \sa irc_cmd_invite irc_cmd_chanmode_invite * \sa irc_cmd_invite irc_cmd_chanmode_invite
*/ */
 End of changes. 5 change blocks. 
14 lines changed or deleted 18 lines changed or added


 libirc_options.h   libirc_options.h 
/* /*
* Copyright (C) 2004-2009 Georgy Yunaev gyunaev@ulduzsoft.com * Copyright (C) 2004-2012 George Yunaev gyunaev@ulduzsoft.com
* *
* This library is free software; you can redistribute it and/or modify it * This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by * under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at yo ur * the Free Software Foundation; either version 3 of the License, or (at yo ur
* option) any later version. * option) any later version.
* *
* This library is distributed in the hope that it will be useful, but WITH OUT * This library is distributed in the hope that it will be useful, but WITH OUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details. * License for more details.
*/ */
/*!
* \file libirc_options.h
* \author Georgy Yunaev
* \version 1.0
* \date 09.2004
* \brief This file defines the options used in irc_session_options()
*/
#ifndef INCLUDE_IRC_OPTIONS_H #ifndef INCLUDE_IRC_OPTIONS_H
#define INCLUDE_IRC_OPTIONS_H #define INCLUDE_IRC_OPTIONS_H
#ifndef IN_INCLUDE_LIBIRC_H #ifndef IN_INCLUDE_LIBIRC_H
#error This file should not be included directly, include just libir cclient.h #error This file should not be included directly, include just libir cclient.h
#endif #endif
/*! /*!
* enables additional debug output * enables additional debug output
* \ingroup options * \ingroup options
*/ */
#define LIBIRC_OPTION_DEBUG (1 << 1) #define LIBIRC_OPTION_DEBUG (1 << 1)
/*! \brief allows to strip origins automatically. /*! \brief allows to strip origins automatically.
* *
* For every IRC server event, the event origin is sent in standard form: * For every IRC server event, the event origin is sent in standard form:
* nick!host\@ircserver, i.e. like tim!home\@irc.krasnogorsk.ru. Such origi ns * nick!host\@ircserver, i.e. like tim!home\@irc.freenet.org. Such origins
* can not be used in IRC commands, and need to be stripped (i.e. host and * 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 * server part should be cut off) before using. This can be done either
* explicitly, by calling irc_target_get_nick(), or implicitly for all the * explicitly, by calling irc_target_get_nick(), or implicitly for all the
* events - by setting this option with irc_option_set(). * events - by setting this option with irc_option_set().
* \ingroup options * \ingroup options
*/ */
#define LIBIRC_OPTION_STRIPNICKS (1 << 2) #define LIBIRC_OPTION_STRIPNICKS (1 << 2)
/*! \brief Disables the certificate verification for SSL connections
*
* By default the SSL connection authenticy is ensured by verifying that th
e certificate
* presented by the server is signed by a known trusted certificate authori
ty. Since those
* typically cost money, some IRC servers use the self-signed certificates.
They provide the
* benefits of the SSL connection but since they are not signed by the Cert
ificate Authority,
* their authencity cannot be verified. This option, if set, disables the c
ertificate
* verification - the library will accept any certificate presented by the
server.
*
* This option must be set before the irc_connect function is called.
* \ingroup options
*/
#define LIBIRC_OPTION_SSL_NO_VERIFY (1 << 3)
#endif /* INCLUDE_IRC_OPTIONS_H */ #endif /* INCLUDE_IRC_OPTIONS_H */
 End of changes. 5 change blocks. 
11 lines changed or deleted 23 lines changed or added


 libirc_rfcnumeric.h   libirc_rfcnumeric.h 
/* /*
* Copyright (C) 2004-2009 Georgy Yunaev gyunaev@ulduzsoft.com * Copyright (C) 2004-2012 George Yunaev gyunaev@ulduzsoft.com
* *
* This library is free software; you can redistribute it and/or modify it * This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by * under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at yo ur * the Free Software Foundation; either version 3 of the License, or (at yo ur
* option) any later version. * option) any later version.
* *
* This library is distributed in the hope that it will be useful, but WITH OUT * This library is distributed in the hope that it will be useful, but WITH OUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details. * License for more details.
*/ */
/*! /*!
* \file libirc_rfcnumeric.h * \file libirc_rfcnumeric.h
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 libircclient.h   libircclient.h 
/* /*
* Copyright (C) 2004-2009 Georgy Yunaev gyunaev@ulduzsoft.com * Copyright (C) 2004-2012 George Yunaev gyunaev@ulduzsoft.com
* *
* This library is free software; you can redistribute it and/or modify it * This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by * under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at yo ur * the Free Software Foundation; either version 3 of the License, or (at yo ur
* option) any later version. * option) any later version.
* *
* This library is distributed in the hope that it will be useful, but WITH OUT * This library is distributed in the hope that it will be useful, but WITH OUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details. * License for more details.
*/ */
/*! /*!
* \file libircclient.h * \file libircclient.h
* \author Georgy Yunaev * \author George Yunaev
* \version 1.0 * \version 1.5
* \date 09.2004 * \date 01.2012
* \brief This file defines all prototypes and functions to use libircclien t. * \brief This file defines all prototypes and functions to use libircclien t.
* *
* libircclient is a small but powerful library, which implements client-se rver IRC * libircclient is a small but powerful library, which implements client-se rver IRC
* protocol. It is designed to be small, fast, portable and compatible to R FC * protocol. It is designed to be small, fast, portable and compatible to R FC
* standards, and most IRC clients. libircclient features include: * standards, and most IRC clients. libircclient features include:
* - Full multi-threading support. * - Full multi-threading support.
* - Single threads handles all the IRC processing. * - Single threads handles all the IRC processing.
* - Support for single-threaded applications, and socket-based application s, * - Support for single-threaded applications, and socket-based application s,
* which use select() * which use select()
* - Synchronous and asynchronous interfaces. * - Synchronous and asynchronous interfaces.
* - CTCP support with optional build-in reply code. * - CTCP support with optional build-in reply code.
* - Flexible DCC support, including both DCC chat, and DCC file transfer. * - Flexible DCC support, including both DCC chat, and DCC file transfer.
* - Can both initiate and react to initiated DCC. * - Can both initiate and react to initiated DCC.
* - Can accept or decline DCC sessions asynchronously. * - Can accept or decline DCC sessions asynchronously.
* - Plain C interface and implementation (possible to use from C++ code, * - Plain C interface and implementation (possible to use from C++ code,
* obviously) * obviously)
* - Compatible with RFC 1459 and most IRC clients. * - Compatible with RFC 1459 and most IRC clients.
* - SSL support if compiled with --enable-openssl.
* - Free, licensed under LGPL license. * - Free, licensed under LGPL license.
* *
* Note that to use libircclient, only libircclient.h should be included in to your * Note that to use libircclient, only libircclient.h should be included in to your
* program. Do not include other libirc_* headers. * program. Do not include other libirc_* headers.
*/ */
#ifndef INCLUDE_LIBIRC_H #ifndef INCLUDE_LIBIRC_H
#define INCLUDE_LIBIRC_H #define INCLUDE_LIBIRC_H
#if !defined (WIN32) #if !defined (WIN32)
skipping to change at line 128 skipping to change at line 129
* destroyed. * destroyed.
* - \a status is 0, and \a data is not 0: new data received, \a data conta ins * - \a status is 0, and \a data is not 0: new data received, \a data conta ins
* the data received, \a length contains the amount of data received. * the data received, \a length contains the amount of data received.
* *
* \ingroup dccstuff * \ingroup dccstuff
*/ */
typedef void (*irc_dcc_callback_t) (irc_session_t * session, irc_dcc_t id, int status, void * ctx, const char * data, unsigned int length); typedef void (*irc_dcc_callback_t) (irc_session_t * session, irc_dcc_t id, int status, void * ctx, const char * data, unsigned int length);
#define IN_INCLUDE_LIBIRC_H #define IN_INCLUDE_LIBIRC_H
#include "libirc_errors.h" #include "libirc_errors.h"
#include "libirc_rfcnumeric.h"
#include "libirc_events.h" #include "libirc_events.h"
#include "libirc_options.h" #include "libirc_options.h"
#undef IN_INCLUDE_LIBIRC_H
#if defined (IN_BUILDING_LIBIRC)
#include "libirc_session.h"
#include "libirc_dcc.h"
#endif
/*! /*!
* \fn irc_session_t * irc_create_session (irc_callbacks_t * callbacks) * \fn irc_session_t * irc_create_session (irc_callbacks_t * callbacks)
* \brief Creates and initiates a new IRC session. * \brief Creates and initiates a new IRC session.
* *
* \param callbacks A structure, which defines several callbacks, which wil l * \param callbacks A structure, which defines several callbacks, which wil l
* be called on appropriate events. Must not be NULL. * be called on appropriate events. Must not be NULL.
* *
* \return An ::irc_session_t object, or 0 if creation failed. Usually, * \return An ::irc_session_t object, or 0 if creation failed. Usually,
* failure is caused by out of memory error. * failure is caused by out of memory error.
skipping to change at line 188 skipping to change at line 184
* *
* \ingroup initclose * \ingroup initclose
*/ */
void irc_destroy_session (irc_session_t * session); void irc_destroy_session (irc_session_t * session);
/*! /*!
* \fn int irc_connect (irc_session_t * session, const char * server, unsig ned short port, const char * server_password, const char * nick, const char * username, const char * realname); * \fn int irc_connect (irc_session_t * session, const char * server, unsig ned short port, const char * server_password, const char * nick, const char * username, const char * realname);
* \brief Initiates a connection to IRC server. * \brief Initiates a connection to IRC server.
* *
* \param session A session to initiate connections on. Must not be NULL. * \param session A session to initiate connections on. Must not be NULL.
* \param server A domain name or an IP address of the IRC server to conne * \param server A domain name or an IP address of the IRC server to conne
ct ct to. Cannot be NULL.
* to. Must not be NULL. * If the library is built with SSL support and the first ch
aracter is hash, tries to establish the SSL connection.
* For example, the connection to "irc.example.com" is assum
ed to be plaintext, and connection to "#irc.example.com"
* is assumed to be secured by SSL. Note that SSL will only
work if the library is built with the SSL support.
* \param port An IRC server port, usually 6667. * \param port An IRC server port, usually 6667.
* \param server_password An IRC server password, if the server requires i t. * \param server_password An IRC server password, if the server requires i t.
* May be NULL, in this case password will not be send to th e * May be NULL, in this case password will not be send to th e
* IRC server. Vast majority of IRC servers do not require p asswords. * IRC server. Vast majority of IRC servers do not require p asswords.
* \param nick A nick, which libircclient will use to login to the IRC s erver. * \param nick A nick, which libircclient will use to login to the IRC s erver.
* Must not be NULL. * Must not be NULL.
* \param username A username of the account, which is used to connect to t he * \param username A username of the account, which is used to connect to t he
* IRC server. This is for information only, will be shown i n * IRC server. This is for information only, will be shown i n
* "user properties" dialogs and returned by /whois request. * "user properties" dialogs and returned by /whois request.
* May be NULL, in this case 'nobody' will be sent as userna me. * May be NULL, in this case 'nobody' will be sent as userna me.
skipping to change at line 232 skipping to change at line 230
const char * server_password, const char * server_password,
const char * nick, const char * nick,
const char * username, const char * username,
const char * realname); const char * realname);
/*! /*!
* \fn int irc_connect6 (irc_session_t * session, const char * server, unsi gned short port, const char * server_password, const char * nick, const cha r * username, const char * realname); * \fn int irc_connect6 (irc_session_t * session, const char * server, unsi gned short port, const char * server_password, const char * nick, const cha r * username, const char * realname);
* \brief Initiates a connection to IRC server using IPv6. * \brief Initiates a connection to IRC server using IPv6.
* *
* \param session A session to initiate connections on. Must not be NULL. * \param session A session to initiate connections on. Must not be NULL.
* \param server A domain name or an IP address of the IRC server to conne * \param server A domain name or an IP address of the IRC server to conne
ct ct to. Cannot be NULL.
* to. Must not be NULL. * If the library is built with SSL support and the first ch
aracter is hash, tries to establish the SSL connection.
* For example, the connection to "irc.example.com" is assum
ed to be plaintext, and connection to "#irc.example.com"
* is assumed to be secured by SSL. Note that SSL will only
work if the library is built with the SSL support.
* \param port An IRC server port, usually 6667. * \param port An IRC server port, usually 6667.
* \param server_password An IRC server password, if the server requires i t. * \param server_password An IRC server password, if the server requires i t.
* May be NULL, in this case password will not be send to th e * May be NULL, in this case password will not be send to th e
* IRC server. Vast majority of IRC servers do not require p asswords. * IRC server. Vast majority of IRC servers do not require p asswords.
* \param nick A nick, which libircclient will use to login to the IRC s erver. * \param nick A nick, which libircclient will use to login to the IRC s erver.
* Must not be NULL. * Must not be NULL.
* \param username A username of the account, which is used to connect to t he * \param username A username of the account, which is used to connect to t he
* IRC server. This is for information only, will be shown i n * IRC server. This is for information only, will be shown i n
* "user properties" dialogs and returned by /whois request. * "user properties" dialogs and returned by /whois request.
* May be NULL, in this case 'nobody' will be sent as userna me. * May be NULL, in this case 'nobody' will be sent as userna me.
 End of changes. 8 change blocks. 
17 lines changed or deleted 23 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/