diff options
Diffstat (limited to 'protocols/IRCG/src/irclib.h')
-rw-r--r-- | protocols/IRCG/src/irclib.h | 175 |
1 files changed, 175 insertions, 0 deletions
diff --git a/protocols/IRCG/src/irclib.h b/protocols/IRCG/src/irclib.h new file mode 100644 index 0000000000..7dcb5a4c01 --- /dev/null +++ b/protocols/IRCG/src/irclib.h @@ -0,0 +1,175 @@ +/*
+IRC plugin for Miranda IM
+
+Copyright (C) 2003-05 Jurgen Persson
+Copyright (C) 2007-09 George Hazan
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
+#ifndef _IRC_H_
+#define _IRC_H_
+
+#pragma warning (disable: 4786)
+
+void DoIdent(HANDLE hConnection, DWORD dwRemoteIP, void* extra);
+void DoIncomingDcc(HANDLE hConnection, DWORD dwRemoteIP, void* extra);
+unsigned long ConvertIPToInteger(char * IP);
+char* ConvertIntegerToIP(unsigned long int_ip_addr);
+
+////////////////////////////////////////////////////////////////////
+namespace irc {
+////////////////////////////////////////////////////////////////////
+
+struct DCCINFO : public MZeroedObject
+{
+ DWORD dwAdr;
+ unsigned __int64 dwSize;
+ DWORD iType;
+ CMString sToken;
+ int iPort;
+ BOOL bTurbo;
+ BOOL bSSL;
+ BOOL bSender;
+ BOOL bReverse;
+ CMString sPath;
+ CMString sFile;
+ CMString sFileAndPath;
+ CMString sHostmask;
+ HANDLE hContact;
+ CMString sContactName;
+};
+
+class CIrcMessage
+{
+public :
+ struct Prefix
+ {
+ CMString sNick, sUser, sHost;
+ }
+ prefix;
+
+ CIrcProto* m_proto;
+ CMString sCommand;
+ OBJLIST<CMString> parameters;
+ bool m_bIncoming;
+ bool m_bNotify;
+ int m_codePage;
+
+ //CIrcMessage( CIrcProto* ); // default constructor
+ CIrcMessage( CIrcProto*, const TCHAR* lpszCmdLine, int codepage, bool bIncoming=false, bool bNotify = true); // parser constructor
+ CIrcMessage( const CIrcMessage& m ); // copy constructor
+ ~CIrcMessage();
+
+ void Reset();
+
+ CIrcMessage& operator = (const CIrcMessage& m);
+ CIrcMessage& operator = (const TCHAR* lpszCmdLine);
+
+private :
+ void ParseIrcCommand(const TCHAR* lpszCmdLine);
+};
+
+////////////////////////////////////////////////////////////////////
+
+struct CIrcSessionInfo
+{
+ String sServer;
+ CMString sServerName;
+ CMString sNick;
+ CMString sUserID;
+ CMString sFullName;
+ String sPassword;
+ CMString sIdentServerType;
+ CMString sNetwork;
+ bool bIdentServer;
+ bool bNickFlag;
+ int m_iSSL;
+ unsigned int iIdentServerPort;
+ unsigned int iPort;
+
+ CIrcSessionInfo();
+ CIrcSessionInfo(const CIrcSessionInfo& si);
+
+ void Reset();
+};
+
+////////////////////////////////////////////////////////////////////
+
+struct CIrcIgnoreItem
+{
+ CIrcIgnoreItem( const TCHAR*, const TCHAR*, const TCHAR* );
+ CIrcIgnoreItem( int codepage, const char*, const char*, const char* );
+ ~CIrcIgnoreItem();
+
+ CMString mask, flags, network;
+};
+
+////////////////////////////////////////////////////////////////////
+
+class CDccSession
+{
+protected:
+ CIrcProto* m_proto;
+ HANDLE con; // connection handle
+ HANDLE hBindPort; // handle for listening port
+ static int nDcc; // number of dcc objects
+ unsigned __int64 dwTotal; // total bytes sent/received
+
+ int iPacketSize; // size of outgoing packets
+ int iGlobalToken;
+
+ PROTOFILETRANSFERSTATUS pfts; // structure used to setup and update the filetransfer dialogs of miranda
+ TCHAR* file[2];
+
+ int SetupConnection();
+ void DoSendFile();
+ void DoReceiveFile();
+ void DoChatReceive();
+ int NLSend( const unsigned char* buf, int cbBuf);
+ int NLReceive(const unsigned char* buf, int cbBuf);
+ static void __cdecl ThreadProc(void *pparam);
+ static void __cdecl ConnectProc(void *pparam);
+
+public:
+
+ CDccSession(CIrcProto*, DCCINFO* pdci); // constructor
+ ~CDccSession(); // destructor, что характерно
+
+ time_t tLastPercentageUpdate; // time of last update of the filetransfer dialog
+ time_t tLastActivity; // time of last in/out activity of the object
+ time_t tLastAck; // last acked filesize
+
+ HANDLE hEvent; // Manual object
+ long dwWhatNeedsDoing; // Set to indicate what FILERESUME_ action is chosen by the user
+ TCHAR* NewFileName; // contains new file name if FILERESUME_RENAME chosen
+ unsigned __int64 dwResumePos; // position to resume from if FILERESUME_RESUME
+
+ int iToken; // used to identify (find) objects in reverse dcc filetransfers
+
+ DCCINFO* di; // details regarding the filetrasnfer
+
+ int Connect();
+ void SetupPassive( DWORD adr, DWORD port );
+ int SendStuff(const TCHAR* fmt);
+ int IncomingConnection(HANDLE hConnection, DWORD dwIP);
+ int Disconnect();
+};
+
+////////////////////////////////////////////////////////////////////
+}; // end of namespace irc
+////////////////////////////////////////////////////////////////////
+
+#endif // _IRC_H_
|