| ## Obj-C/Swift specific | ## Obj-C/Swift specific | ||||
| *.hmap | *.hmap | ||||
| *.ipa | |||||
| *.ipa | |||||
| libirc* |
| /* Begin PBXBuildFile section */ | /* Begin PBXBuildFile section */ | ||||
| 86B6232C1C21FD7C00D6E3AF /* README in Resources */ = {isa = PBXBuildFile; fileRef = 86B6232B1C21FD7C00D6E3AF /* README */; }; | 86B6232C1C21FD7C00D6E3AF /* README in Resources */ = {isa = PBXBuildFile; fileRef = 86B6232B1C21FD7C00D6E3AF /* README */; }; | ||||
| 86B623341C21FF4200D6E3AF /* libirc_errors.h in Headers */ = {isa = PBXBuildFile; fileRef = 86B6232E1C21FF4200D6E3AF /* libirc_errors.h */; }; | |||||
| 86B623351C21FF4200D6E3AF /* libirc_events.h in Headers */ = {isa = PBXBuildFile; fileRef = 86B6232F1C21FF4200D6E3AF /* libirc_events.h */; }; | |||||
| 86B623361C21FF4200D6E3AF /* libirc_options.h in Headers */ = {isa = PBXBuildFile; fileRef = 86B623301C21FF4200D6E3AF /* libirc_options.h */; }; | |||||
| 86B623371C21FF4200D6E3AF /* libirc_rfcnumeric.h in Headers */ = {isa = PBXBuildFile; fileRef = 86B623311C21FF4200D6E3AF /* libirc_rfcnumeric.h */; }; | |||||
| 86B623381C21FF4200D6E3AF /* libircclient.h in Headers */ = {isa = PBXBuildFile; fileRef = 86B623321C21FF4200D6E3AF /* libircclient.h */; }; | |||||
| 86B623391C21FF4200D6E3AF /* libircclient.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 86B623331C21FF4200D6E3AF /* libircclient.a */; }; | |||||
| 86F2EFEA1C21F73600B033A4 /* IRCClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 86F2EFE91C21F73600B033A4 /* IRCClient.h */; settings = {ATTRIBUTES = (Public, ); }; }; | 86F2EFEA1C21F73600B033A4 /* IRCClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 86F2EFE91C21F73600B033A4 /* IRCClient.h */; settings = {ATTRIBUTES = (Public, ); }; }; | ||||
| 86F2EFF81C21F81900B033A4 /* IRCClientChannel_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 86F2EFF11C21F81900B033A4 /* IRCClientChannel_Private.h */; }; | 86F2EFF81C21F81900B033A4 /* IRCClientChannel_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 86F2EFF11C21F81900B033A4 /* IRCClientChannel_Private.h */; }; | ||||
| 86F2EFF91C21F81900B033A4 /* IRCClientChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 86F2EFF21C21F81900B033A4 /* IRCClientChannel.h */; }; | 86F2EFF91C21F81900B033A4 /* IRCClientChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 86F2EFF21C21F81900B033A4 /* IRCClientChannel.h */; }; | ||||
| /* Begin PBXFileReference section */ | /* Begin PBXFileReference section */ | ||||
| 86B6232B1C21FD7C00D6E3AF /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; }; | 86B6232B1C21FD7C00D6E3AF /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; }; | ||||
| 86B6232E1C21FF4200D6E3AF /* libirc_errors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = libirc_errors.h; sourceTree = "<group>"; }; | |||||
| 86B6232F1C21FF4200D6E3AF /* libirc_events.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = libirc_events.h; sourceTree = "<group>"; }; | |||||
| 86B623301C21FF4200D6E3AF /* libirc_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = libirc_options.h; sourceTree = "<group>"; }; | |||||
| 86B623311C21FF4200D6E3AF /* libirc_rfcnumeric.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = libirc_rfcnumeric.h; sourceTree = "<group>"; }; | |||||
| 86B623321C21FF4200D6E3AF /* libircclient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = libircclient.h; sourceTree = "<group>"; }; | |||||
| 86B623331C21FF4200D6E3AF /* libircclient.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libircclient.a; sourceTree = "<group>"; }; | |||||
| 86F2EFE61C21F73600B033A4 /* IRCClient.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IRCClient.framework; sourceTree = BUILT_PRODUCTS_DIR; }; | 86F2EFE61C21F73600B033A4 /* IRCClient.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IRCClient.framework; sourceTree = BUILT_PRODUCTS_DIR; }; | ||||
| 86F2EFE91C21F73600B033A4 /* IRCClient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IRCClient.h; sourceTree = "<group>"; }; | 86F2EFE91C21F73600B033A4 /* IRCClient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IRCClient.h; sourceTree = "<group>"; }; | ||||
| 86F2EFEB1C21F73600B033A4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; | 86F2EFEB1C21F73600B033A4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; | ||||
| isa = PBXFrameworksBuildPhase; | isa = PBXFrameworksBuildPhase; | ||||
| buildActionMask = 2147483647; | buildActionMask = 2147483647; | ||||
| files = ( | files = ( | ||||
| 86B623391C21FF4200D6E3AF /* libircclient.a in Frameworks */, | |||||
| ); | ); | ||||
| runOnlyForDeploymentPostprocessing = 0; | runOnlyForDeploymentPostprocessing = 0; | ||||
| }; | }; | ||||
| /* End PBXFrameworksBuildPhase section */ | /* End PBXFrameworksBuildPhase section */ | ||||
| /* Begin PBXGroup section */ | /* Begin PBXGroup section */ | ||||
| 86B6232D1C21FF2100D6E3AF /* libircclient */ = { | |||||
| isa = PBXGroup; | |||||
| children = ( | |||||
| 86B6232E1C21FF4200D6E3AF /* libirc_errors.h */, | |||||
| 86B6232F1C21FF4200D6E3AF /* libirc_events.h */, | |||||
| 86B623301C21FF4200D6E3AF /* libirc_options.h */, | |||||
| 86B623311C21FF4200D6E3AF /* libirc_rfcnumeric.h */, | |||||
| 86B623321C21FF4200D6E3AF /* libircclient.h */, | |||||
| 86B623331C21FF4200D6E3AF /* libircclient.a */, | |||||
| ); | |||||
| name = libircclient; | |||||
| sourceTree = "<group>"; | |||||
| }; | |||||
| 86F2EFDC1C21F73600B033A4 = { | 86F2EFDC1C21F73600B033A4 = { | ||||
| isa = PBXGroup; | isa = PBXGroup; | ||||
| children = ( | children = ( | ||||
| 86B6232D1C21FF2100D6E3AF /* libircclient */, | |||||
| 86B6232B1C21FD7C00D6E3AF /* README */, | 86B6232B1C21FD7C00D6E3AF /* README */, | ||||
| 86F2EFE81C21F73600B033A4 /* IRCClient */, | 86F2EFE81C21F73600B033A4 /* IRCClient */, | ||||
| 86F2EFE71C21F73600B033A4 /* Products */, | 86F2EFE71C21F73600B033A4 /* Products */, | ||||
| buildActionMask = 2147483647; | buildActionMask = 2147483647; | ||||
| files = ( | files = ( | ||||
| 86F2EFFE1C21F81900B033A4 /* IRCClientSessionDelegate.h in Headers */, | 86F2EFFE1C21F81900B033A4 /* IRCClientSessionDelegate.h in Headers */, | ||||
| 86B623381C21FF4200D6E3AF /* libircclient.h in Headers */, | |||||
| 86F2EFF91C21F81900B033A4 /* IRCClientChannel.h in Headers */, | 86F2EFF91C21F81900B033A4 /* IRCClientChannel.h in Headers */, | ||||
| 86B623341C21FF4200D6E3AF /* libirc_errors.h in Headers */, | |||||
| 86F2EFFB1C21F81900B033A4 /* IRCClientChannelDelegate.h in Headers */, | 86F2EFFB1C21F81900B033A4 /* IRCClientChannelDelegate.h in Headers */, | ||||
| 86F2EFFC1C21F81900B033A4 /* IRCClientSession.h in Headers */, | 86F2EFFC1C21F81900B033A4 /* IRCClientSession.h in Headers */, | ||||
| 86F2EFF81C21F81900B033A4 /* IRCClientChannel_Private.h in Headers */, | 86F2EFF81C21F81900B033A4 /* IRCClientChannel_Private.h in Headers */, | ||||
| 86B623351C21FF4200D6E3AF /* libirc_events.h in Headers */, | |||||
| 86B623371C21FF4200D6E3AF /* libirc_rfcnumeric.h in Headers */, | |||||
| 86B623361C21FF4200D6E3AF /* libirc_options.h in Headers */, | |||||
| 86F2EFEA1C21F73600B033A4 /* IRCClient.h in Headers */, | 86F2EFEA1C21F73600B033A4 /* IRCClient.h in Headers */, | ||||
| ); | ); | ||||
| runOnlyForDeploymentPostprocessing = 0; | runOnlyForDeploymentPostprocessing = 0; | ||||
| INFOPLIST_FILE = IRCClient/Info.plist; | INFOPLIST_FILE = IRCClient/Info.plist; | ||||
| INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; | ||||
| LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; | ||||
| LIBRARY_SEARCH_PATHS = ( | |||||
| "$(inherited)", | |||||
| "$(PROJECT_DIR)", | |||||
| ); | |||||
| MACOSX_DEPLOYMENT_TARGET = 10.6; | MACOSX_DEPLOYMENT_TARGET = 10.6; | ||||
| PRODUCT_BUNDLE_IDENTIFIER = saidachmiz.IRCClient; | PRODUCT_BUNDLE_IDENTIFIER = saidachmiz.IRCClient; | ||||
| PRODUCT_NAME = "$(TARGET_NAME)"; | PRODUCT_NAME = "$(TARGET_NAME)"; | ||||
| INFOPLIST_FILE = IRCClient/Info.plist; | INFOPLIST_FILE = IRCClient/Info.plist; | ||||
| INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; | ||||
| LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; | ||||
| LIBRARY_SEARCH_PATHS = ( | |||||
| "$(inherited)", | |||||
| "$(PROJECT_DIR)", | |||||
| ); | |||||
| MACOSX_DEPLOYMENT_TARGET = 10.6; | MACOSX_DEPLOYMENT_TARGET = 10.6; | ||||
| PRODUCT_BUNDLE_IDENTIFIER = saidachmiz.IRCClient; | PRODUCT_BUNDLE_IDENTIFIER = saidachmiz.IRCClient; | ||||
| PRODUCT_NAME = "$(TARGET_NAME)"; | PRODUCT_NAME = "$(TARGET_NAME)"; |
| /* | |||||
| * Copyright (C) 2004-2012 George Yunaev gyunaev@ulduzsoft.com | |||||
| * | |||||
| * 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 | |||||
| * the Free Software Foundation; either version 3 of the License, or (at your | |||||
| * option) any later version. | |||||
| * | |||||
| * This library is distributed in the hope that it will be useful, but WITHOUT | |||||
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |||||
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public | |||||
| * License for more details. | |||||
| */ | |||||
| #ifndef INCLUDE_IRC_ERRORS_H | |||||
| #define INCLUDE_IRC_ERRORS_H | |||||
| #ifndef IN_INCLUDE_LIBIRC_H | |||||
| #error This file should not be included directly, include just libircclient.h | |||||
| #endif | |||||
| /*! brief No error | |||||
| * \ingroup errorcodes | |||||
| */ | |||||
| #define LIBIRC_ERR_OK 0 | |||||
| /*! \brief Invalid argument | |||||
| * | |||||
| * An invalid value was given for one of the arguments to a function. | |||||
| * For example, supplying the NULL value for \a channel argument of | |||||
| * irc_cmd_join() produces LIBIRC_ERR_INVAL error. You should fix the code. | |||||
| * | |||||
| * \ingroup errorcodes | |||||
| */ | |||||
| #define LIBIRC_ERR_INVAL 1 | |||||
| /*! \brief Could not resolve host. | |||||
| * | |||||
| * The host name supplied for irc_connect() function could not be resolved | |||||
| * into valid IP address. Usually means that host name is invalid. | |||||
| * | |||||
| * \ingroup errorcodes | |||||
| */ | |||||
| #define LIBIRC_ERR_RESOLV 2 | |||||
| /*! \brief Could not create socket. | |||||
| * | |||||
| * The new socket could not be created or made non-blocking. Usually means | |||||
| * that the server is out of resources, or (rarely :) a bug in libircclient. | |||||
| * | |||||
| * \ingroup errorcodes | |||||
| */ | |||||
| #define LIBIRC_ERR_SOCKET 3 | |||||
| /*! \brief Could not connect. | |||||
| * | |||||
| * The socket could not connect to the IRC server, or to the destination DCC | |||||
| * part. Usually means that either the IRC server is down or its address is | |||||
| * invalid. For DCC the reason usually is the firewall on your or destination | |||||
| * computer, which refuses DCC transfer. | |||||
| * | |||||
| * \sa irc_run irc_connect | |||||
| * \ingroup errorcodes | |||||
| */ | |||||
| #define LIBIRC_ERR_CONNECT 4 | |||||
| /*! \brief Connection closed by remote peer. | |||||
| * | |||||
| * The IRC connection was closed by the IRC server (which could mean that an | |||||
| * IRC operator just have banned you from the server :)), or the DCC connection | |||||
| * was closed by remote peer - for example, the other side just quits his mIrc. | |||||
| * Usually it is not an error. | |||||
| * | |||||
| * \sa irc_run irc_connect irc_dcc_callback_t | |||||
| * \ingroup errorcodes | |||||
| */ | |||||
| #define LIBIRC_ERR_CLOSED 5 | |||||
| /*! \brief Out of memory | |||||
| * | |||||
| * There are two possible reasons for this error. First is that memory could | |||||
| * not be allocated for libircclient use, and this error usually is fatal. | |||||
| * Second reason is that the command queue (which keeps command ready to be | |||||
| * sent to the IRC server) is full, and could not accept more commands yet. | |||||
| * In this case you should just wait, and repeat the command later. | |||||
| * | |||||
| * \ingroup errorcodes | |||||
| */ | |||||
| #define LIBIRC_ERR_NOMEM 6 | |||||
| /*! \brief Could not accept new connection | |||||
| * | |||||
| * A DCC chat/send connection from the remote peer could not be accepted. | |||||
| * Either the connection was just terminated before it is accepted, or there | |||||
| * is a bug in libircclient. | |||||
| * | |||||
| * \ingroup errorcodes | |||||
| */ | |||||
| #define LIBIRC_ERR_ACCEPT 7 | |||||
| /*! \brief Could not send this | |||||
| * | |||||
| * A \a filename supplied to irc_dcc_sendfile() could not be sent. Either is | |||||
| * is not a file (a directory or a socket, for example), or it is not readable. * | |||||
| * | |||||
| * \sa LIBIRC_ERR_OPENFILE | |||||
| * \ingroup errorcodes | |||||
| */ | |||||
| #define LIBIRC_ERR_NODCCSEND 9 | |||||
| /*! \brief Could not read DCC file or socket | |||||
| * | |||||
| * Either a DCC file could not be read (for example, was truncated during | |||||
| * sending), or a DCC socket returns a read error, which usually means that | |||||
| * the network connection is terminated. | |||||
| * | |||||
| * \ingroup errorcodes | |||||
| */ | |||||
| #define LIBIRC_ERR_READ 10 | |||||
| /*! \brief Could not write DCC file or socket | |||||
| * | |||||
| * Either a DCC file could not be written (for example, there is no free space | |||||
| * on disk), or a DCC socket returns a write error, which usually means that | |||||
| * the network connection is terminated. | |||||
| * | |||||
| * \ingroup errorcodes | |||||
| */ | |||||
| #define LIBIRC_ERR_WRITE 11 | |||||
| /*! \brief Invalid state | |||||
| * | |||||
| * The function is called when it is not allowed to be called. For example, | |||||
| * irc_cmd_join() was called before the connection to IRC server succeed, and | |||||
| * ::event_connect is called. | |||||
| * | |||||
| * \ingroup errorcodes | |||||
| */ | |||||
| #define LIBIRC_ERR_STATE 12 | |||||
| /*! \brief Operation timed out | |||||
| * | |||||
| * The DCC request is timed out. | |||||
| * There is a timer for each DCC request, which tracks connecting, accepting | |||||
| * and non-accepted/declined DCC requests. For every request this timer | |||||
| * is currently 60 seconds. If the DCC request was not connected, accepted | |||||
| * or declined during this time, it will be terminated with this error. | |||||
| * | |||||
| * \ingroup errorcodes | |||||
| */ | |||||
| #define LIBIRC_ERR_TIMEOUT 13 | |||||
| /*! \brief Could not open file for DCC send | |||||
| * | |||||
| * The file specified in irc_dcc_sendfile() could not be opened. | |||||
| * | |||||
| * \ingroup errorcodes | |||||
| */ | |||||
| #define LIBIRC_ERR_OPENFILE 14 | |||||
| /*! \brief IRC server connection terminated | |||||
| * | |||||
| * The connection to the IRC server was terminated - possibly, by network | |||||
| * error. Try to irc_connect() again. | |||||
| * | |||||
| * \ingroup errorcodes | |||||
| */ | |||||
| #define LIBIRC_ERR_TERMINATED 15 | |||||
| /*! \brief IPv6 not supported | |||||
| * | |||||
| * The function which requires IPv6 support was called, but the IPv6 support was not compiled | |||||
| * into the application | |||||
| * | |||||
| * \ingroup errorcodes | |||||
| */ | |||||
| #define LIBIRC_ERR_NOIPV6 16 | |||||
| /*! \brief SSL not supported | |||||
| * | |||||
| * The SSL connection was required but the library was not compiled with SSL support | |||||
| * | |||||
| * \ingroup errorcodes | |||||
| */ | |||||
| #define LIBIRC_ERR_SSL_NOT_SUPPORTED 17 | |||||
| /*! \brief SSL initialization failed | |||||
| * | |||||
| * The SSL connection was required but the library was not compiled with SSL 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_NO_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 */ |
| /* | |||||
| * Copyright (C) 2004-2012 George Yunaev gyunaev@ulduzsoft.com | |||||
| * | |||||
| * 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 | |||||
| * the Free Software Foundation; either version 3 of the License, or (at your | |||||
| * option) any later version. | |||||
| * | |||||
| * This library is distributed in the hope that it will be useful, but WITHOUT | |||||
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |||||
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public | |||||
| * License for more details. | |||||
| */ | |||||
| #ifndef INCLUDE_IRC_EVENTS_H | |||||
| #define INCLUDE_IRC_EVENTS_H | |||||
| #ifndef IN_INCLUDE_LIBIRC_H | |||||
| #error This file should not be included directly, include just libircclient.h | |||||
| #endif | |||||
| /*! | |||||
| * \fn typedef void (*irc_event_callback_t) (irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int count) | |||||
| * \brief A most common event callback | |||||
| * | |||||
| * \param session the session, which generates an event | |||||
| * \param event the text name of the event. Useful in case you use a single | |||||
| * event handler for several events simultaneously. | |||||
| * \param origin the originator of the event. See the note below. | |||||
| * \param params a list of event params. Depending on the event nature, it | |||||
| * could have zero or more params. The actual number of params | |||||
| * is specified in count. None of the params can be NULL, but | |||||
| * 'params' pointer itself could be NULL for some events. | |||||
| * \param count the total number of params supplied. | |||||
| * | |||||
| * Every event generates a callback. This callback is generated by most events. | |||||
| * Depending on the event nature, it can provide zero or more params. For each | |||||
| * event, the number of provided params is fixed, and their meaning is | |||||
| * described. | |||||
| * | |||||
| * Every event has origin, though the \a origin variable may be NULL, which | |||||
| * means that event origin is unknown. The origin usually looks like | |||||
| * nick!host\@ircserver, i.e. like tim!home\@irc.krasnogorsk.ru. 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 | |||||
| * explicitly, by calling irc_target_get_nick(), or implicitly for all the | |||||
| * events - by setting the #LIBIRC_OPTION_STRIPNICKS option with irc_option_set(). | |||||
| * | |||||
| * \ingroup events | |||||
| */ | |||||
| typedef void (*irc_event_callback_t) (irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int count); | |||||
| /*! | |||||
| * \fn typedef void (*irc_eventcode_callback_t) (irc_session_t * session, unsigned int event, const char * origin, const char ** params, unsigned int count) | |||||
| * \brief A numeric event callback | |||||
| * | |||||
| * \param session the session, which generates an event | |||||
| * \param event the numeric code of the event. Useful in case you use a | |||||
| * single event handler for several events simultaneously. | |||||
| * \param origin the originator of the event. See the note below. | |||||
| * \param params a list of event params. Depending on the event nature, it | |||||
| * could have zero or more params. The actual number of params | |||||
| * is specified in count. None of the params can be NULL, but | |||||
| * 'params' pointer itself could be NULL for some events. | |||||
| * \param count the total number of params supplied. | |||||
| * | |||||
| * Most times in reply to your actions the IRC server generates numeric | |||||
| * callbacks. Most of them are error codes, and some of them mark list start | |||||
| * and list stop markers. Every code has its own set of params; for details | |||||
| * you can either experiment, or read RFC 1459. | |||||
| * | |||||
| * Every event has origin, though the \a origin variable may be NULL, which | |||||
| * means that event origin is unknown. The origin usually looks like | |||||
| * nick!host\@ircserver, i.e. like tim!home\@irc.krasnogorsk.ru. 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 | |||||
| * explicitly, by calling irc_target_get_nick(), or implicitly for all the | |||||
| * events - by setting the #LIBIRC_OPTION_STRIPNICKS option with irc_option_set(). | |||||
| * | |||||
| * \ingroup events | |||||
| */ | |||||
| typedef void (*irc_eventcode_callback_t) (irc_session_t * session, unsigned int event, const char * origin, const char ** params, unsigned int count); | |||||
| /*! | |||||
| * \fn typedef void (*irc_event_dcc_chat_t) (irc_session_t * session, const char * nick, const char * addr, irc_dcc_t dccid) | |||||
| * \brief A remote DCC CHAT request callback | |||||
| * | |||||
| * \param session the session, which generates an event | |||||
| * \param nick the person who requested DCC CHAT with you. | |||||
| * \param addr the person's IP address in decimal-dot notation. | |||||
| * \param dccid an id associated with this request. Use it in calls to | |||||
| * irc_dcc_accept() or irc_dcc_decline(). | |||||
| * | |||||
| * This callback is called when someone requests DCC CHAT with you. In respond | |||||
| * you should call either irc_dcc_accept() to accept chat request, or | |||||
| * irc_dcc_decline() to decline chat request. | |||||
| * | |||||
| * \sa irc_dcc_accept or irc_dcc_decline | |||||
| * \ingroup events | |||||
| */ | |||||
| typedef void (*irc_event_dcc_chat_t) (irc_session_t * session, const char * nick, const char * addr, irc_dcc_t dccid); | |||||
| /*! | |||||
| * \fn typedef void (*irc_event_dcc_send_t) (irc_session_t * session, const char * nick, const char * addr, const char * filename, unsigned long size, irc_dcc_t dccid) | |||||
| * \brief A remote DCC CHAT request callback | |||||
| * | |||||
| * \param session the session, which generates an event | |||||
| * \param nick the person who requested DCC CHAT with you. | |||||
| * \param addr the person's IP address in decimal-dot notation. | |||||
| * \param filename the sent filename. | |||||
| * \param size the filename size. | |||||
| * \param dccid an id associated with this request. Use it in calls to | |||||
| * irc_dcc_accept() or irc_dcc_decline(). | |||||
| * | |||||
| * This callback is called when someone wants to send a file to you using | |||||
| * DCC SEND. As with chat, in respond you should call either irc_dcc_accept() | |||||
| * to accept this request and receive the file, or irc_dcc_decline() to | |||||
| * decline this request. | |||||
| * | |||||
| * \sa irc_dcc_accept or irc_dcc_decline | |||||
| * \ingroup events | |||||
| */ | |||||
| typedef void (*irc_event_dcc_send_t) (irc_session_t * session, const char * nick, const char * addr, const char * filename, unsigned long size, irc_dcc_t dccid); | |||||
| /*! \brief Event callbacks structure. | |||||
| * | |||||
| * 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. | |||||
| * | |||||
| * Every event has its own event handler, which is called when the | |||||
| * appropriate event is received. You don't have to define all the event | |||||
| * handlers; define only the handlers for the events you need to intercept. | |||||
| * | |||||
| * Most event callbacks are the types of ::irc_event_callback_t. There are | |||||
| * also events, which generate ::irc_eventcode_callback_t, | |||||
| * ::irc_event_dcc_chat_t and ::irc_event_dcc_send_t callbacks. | |||||
| * | |||||
| * \ingroup events | |||||
| */ | |||||
| typedef struct | |||||
| { | |||||
| /*! | |||||
| * The "on_connect" event is triggered when the client successfully | |||||
| * connects to the server, and could send commands to the server. | |||||
| * No extra params supplied; \a params is 0. | |||||
| */ | |||||
| irc_event_callback_t event_connect; | |||||
| /*! | |||||
| * The "nick" event is triggered when the client receives a NICK message, | |||||
| * meaning that someone (including you) on a channel with the client has | |||||
| * changed their nickname. | |||||
| * | |||||
| * \param origin the person, who changes the nick. Note that it can be you! | |||||
| * \param params[0] mandatory, contains the new nick. | |||||
| */ | |||||
| irc_event_callback_t event_nick; | |||||
| /*! | |||||
| * The "quit" event is triggered upon receipt of a QUIT message, which | |||||
| * means that someone on a channel with the client has disconnected. | |||||
| * | |||||
| * \param origin the person, who is disconnected | |||||
| * \param params[0] optional, contains the reason message (user-specified). | |||||
| */ | |||||
| irc_event_callback_t event_quit; | |||||
| /*! | |||||
| * The "join" event is triggered upon receipt of a JOIN message, which | |||||
| * means that someone has entered a channel that the client is on. | |||||
| * | |||||
| * \param origin the person, who joins the channel. By comparing it with | |||||
| * your own nickname, you can check whether your JOIN | |||||
| * command succeed. | |||||
| * \param params[0] mandatory, contains the channel name. | |||||
| */ | |||||
| irc_event_callback_t event_join; | |||||
| /*! | |||||
| * The "part" event is triggered upon receipt of a PART message, which | |||||
| * means that someone has left a channel that the client is on. | |||||
| * | |||||
| * \param origin the person, who leaves the channel. By comparing it with | |||||
| * your own nickname, you can check whether your PART | |||||
| * command succeed. | |||||
| * \param params[0] mandatory, contains the channel name. | |||||
| * \param params[1] optional, contains the reason message (user-defined). | |||||
| */ | |||||
| irc_event_callback_t event_part; | |||||
| /*! | |||||
| * The "mode" event is triggered upon receipt of a channel MODE message, | |||||
| * which means that someone on a channel with the client has changed the | |||||
| * channel's parameters. | |||||
| * | |||||
| * \param origin the person, who changed the channel mode. | |||||
| * \param params[0] mandatory, contains the channel name. | |||||
| * \param params[1] mandatory, contains the changed channel mode, like | |||||
| * '+t', '-i' and so on. | |||||
| * \param params[2] optional, contains the mode argument (for example, a | |||||
| * key for +k mode, or user who got the channel operator status for | |||||
| * +o mode) | |||||
| */ | |||||
| irc_event_callback_t event_mode; | |||||
| /*! | |||||
| * The "umode" event is triggered upon receipt of a user MODE message, | |||||
| * which means that your user mode has been changed. | |||||
| * | |||||
| * \param origin the person, who changed the channel mode. | |||||
| * \param params[0] mandatory, contains the user changed mode, like | |||||
| * '+t', '-i' and so on. | |||||
| */ | |||||
| irc_event_callback_t event_umode; | |||||
| /*! | |||||
| * The "topic" event is triggered upon receipt of a TOPIC message, which | |||||
| * means that someone on a channel with the client has changed the | |||||
| * channel's topic. | |||||
| * | |||||
| * \param origin the person, who changes the channel topic. | |||||
| * \param params[0] mandatory, contains the channel name. | |||||
| * \param params[1] optional, contains the new topic. | |||||
| */ | |||||
| irc_event_callback_t event_topic; | |||||
| /*! | |||||
| * The "kick" event is triggered upon receipt of a KICK message, which | |||||
| * means that someone on a channel with the client (or possibly the | |||||
| * client itself!) has been forcibly ejected. | |||||
| * | |||||
| * \param origin the person, who kicked the poor. | |||||
| * \param params[0] mandatory, contains the channel name. | |||||
| * \param params[0] optional, contains the nick of kicked person. | |||||
| * \param params[1] optional, contains the kick text | |||||
| */ | |||||
| irc_event_callback_t event_kick; | |||||
| /*! | |||||
| * The "channel" event is triggered upon receipt of a PRIVMSG message | |||||
| * to an entire channel, which means that someone on a channel with | |||||
| * the client has said something aloud. Your own messages don't trigger | |||||
| * PRIVMSG event. | |||||
| * | |||||
| * \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; | |||||
| /*! | |||||
| * The "privmsg" event is triggered upon receipt of a PRIVMSG message | |||||
| * which is addressed to one or more clients, which means that someone | |||||
| * is sending the client a private message. | |||||
| * | |||||
| * \param origin the person, who generates the message. | |||||
| * \param params[0] mandatory, contains your nick. | |||||
| * \param params[1] optional, contains the message text | |||||
| */ | |||||
| irc_event_callback_t event_privmsg; | |||||
| /*! | |||||
| * The "notice" event is triggered upon receipt of a NOTICE message | |||||
| * which means that someone has sent the client a public or private | |||||
| * 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 target nick name. | |||||
| * \param params[1] optional, contains the message text | |||||
| */ | |||||
| 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, | |||||
| * which means that someone is permitting the client's entry into a +i | |||||
| * channel. | |||||
| * | |||||
| * \param origin the person, who INVITEs you. | |||||
| * \param params[0] mandatory, contains your nick. | |||||
| * \param params[1] mandatory, contains the channel name you're invited into. | |||||
| * | |||||
| * \sa irc_cmd_invite irc_cmd_chanmode_invite | |||||
| */ | |||||
| irc_event_callback_t event_invite; | |||||
| /*! | |||||
| * The "ctcp" event is triggered when the client receives the CTCP | |||||
| * request. By default, the built-in CTCP request handler is used. The | |||||
| * build-in handler automatically replies on most CTCP messages, so you | |||||
| * will rarely need to override it. | |||||
| * | |||||
| * \param origin the person, who generates the message. | |||||
| * \param params[0] mandatory, the complete CTCP message, including its | |||||
| * arguments. | |||||
| * | |||||
| * Mirc generates PING, FINGER, VERSION, TIME and ACTION messages, | |||||
| * check the source code of \c libirc_event_ctcp_internal function to | |||||
| * see how to write your own CTCP request handler. Also you may find | |||||
| * useful this question in FAQ: \ref faq4 | |||||
| */ | |||||
| irc_event_callback_t event_ctcp_req; | |||||
| /*! | |||||
| * The "ctcp" event is triggered when the client receives the CTCP reply. | |||||
| * | |||||
| * \param origin the person, who generates the message. | |||||
| * \param params[0] mandatory, the CTCP message itself with its arguments. | |||||
| */ | |||||
| irc_event_callback_t event_ctcp_rep; | |||||
| /*! | |||||
| * The "action" event is triggered when the client receives the CTCP | |||||
| * ACTION message. These messages usually looks like:\n | |||||
| * \code | |||||
| * [23:32:55] * Tim gonna sleep. | |||||
| * \endcode | |||||
| * | |||||
| * \param origin the person, who generates the message. | |||||
| * \param params[0] mandatory, the ACTION message. | |||||
| */ | |||||
| irc_event_callback_t event_ctcp_action; | |||||
| /*! | |||||
| * The "unknown" event is triggered upon receipt of any number of | |||||
| * unclassifiable miscellaneous messages, which aren't handled by the | |||||
| * library. | |||||
| */ | |||||
| irc_event_callback_t event_unknown; | |||||
| /*! | |||||
| * The "numeric" event is triggered upon receipt of any numeric response | |||||
| * from the server. There is a lot of such responses, see the full list | |||||
| * here: \ref rfcnumbers. | |||||
| * | |||||
| * See the params in ::irc_eventcode_callback_t specification. | |||||
| */ | |||||
| irc_eventcode_callback_t event_numeric; | |||||
| /*! | |||||
| * The "dcc chat" event is triggered when someone requests a DCC CHAT from | |||||
| * you. | |||||
| * | |||||
| * See the params in ::irc_event_dcc_chat_t specification. | |||||
| */ | |||||
| irc_event_dcc_chat_t event_dcc_chat_req; | |||||
| /*! | |||||
| * The "dcc chat" event is triggered when someone wants to send a file | |||||
| * to you via DCC SEND request. | |||||
| * | |||||
| * See the params in ::irc_event_dcc_send_t specification. | |||||
| */ | |||||
| irc_event_dcc_send_t event_dcc_send_req; | |||||
| } irc_callbacks_t; | |||||
| #endif /* INCLUDE_IRC_EVENTS_H */ |
| /* | |||||
| * Copyright (C) 2004-2012 George Yunaev gyunaev@ulduzsoft.com | |||||
| * | |||||
| * 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 | |||||
| * the Free Software Foundation; either version 3 of the License, or (at your | |||||
| * option) any later version. | |||||
| * | |||||
| * This library is distributed in the hope that it will be useful, but WITHOUT | |||||
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |||||
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public | |||||
| * License for more details. | |||||
| */ | |||||
| #ifndef INCLUDE_IRC_OPTIONS_H | |||||
| #define INCLUDE_IRC_OPTIONS_H | |||||
| #ifndef IN_INCLUDE_LIBIRC_H | |||||
| #error This file should not be included directly, include just libircclient.h | |||||
| #endif | |||||
| /*! | |||||
| * enables additional debug output | |||||
| * \ingroup options | |||||
| */ | |||||
| #define LIBIRC_OPTION_DEBUG (1 << 1) | |||||
| /*! \brief allows to strip origins automatically. | |||||
| * | |||||
| * For every IRC server event, the event origin is sent in standard form: | |||||
| * 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 | |||||
| * 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 | |||||
| * events - by setting this option with irc_option_set(). | |||||
| * \ingroup options | |||||
| */ | |||||
| #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 the certificate | |||||
| * presented by the server is signed by a known trusted certificate authority. 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 Certificate Authority, | |||||
| * their authencity cannot be verified. This option, if set, disables the certificate | |||||
| * 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 */ |