From 2265aef916e3b2d63d87faa68a2b51e7d747c54c Mon Sep 17 00:00:00 2001 From: Seline Date: Tue, 14 Oct 2008 11:57:03 -0500 Subject: [svn] * Merge Temp dev SVN with Assembla. * Changes include: - Implementation of w12x's Outdoor PvP and Game Event Systems. - Temporary removal of IRC Chat Bot (until infinite loop when disabled is fixed). - All mangos -> trinity (to convert your mangos_string table, please run mangos_string_to_trinity_string.sql). - Improved Config cleanup. - And many more changes. --HG-- branch : trunk --- src/game/IRCSock.cpp | 146 --------------------------------------------------- 1 file changed, 146 deletions(-) delete mode 100644 src/game/IRCSock.cpp (limited to 'src/game/IRCSock.cpp') diff --git a/src/game/IRCSock.cpp b/src/game/IRCSock.cpp deleted file mode 100644 index cf76161cc02..00000000000 --- a/src/game/IRCSock.cpp +++ /dev/null @@ -1,146 +0,0 @@ -#include "IRCClient.h" -#define MAXDATASIZE 512 -#include - -#include -#include - - -#define _UNICODE - -#ifdef _MBCS -#undef _MBCS -#endif - -bool IRCClient::InitSock() -{ - #ifdef _WIN32 - WSADATA wsaData; //WSAData - if(WSAStartup(MAKEWORD(2,0),&wsaData) != 0) - { - sLog.outError("IRC Error: Winsock Initialization Error"); - return false; - } - #endif - if ((sIRC.SOCKET = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) - { - sLog.outError("IRC Error: Socket Error"); - return false; - } - int on = 1; - if ( setsockopt ( sIRC.SOCKET, SOL_SOCKET, SO_REUSEADDR, ( const char* ) &on, sizeof ( on ) ) == -1 ) - { - sLog.outError("IRC Error: Invalid Socket"); - return false; - } - #ifdef _WIN32 - u_long iMode = 0; - ioctlsocket(sIRC.SOCKET, FIONBIO, &iMode); - #else - fcntl(sIRC.SOCKET, F_SETFL, O_NONBLOCK); // set to non-blocking - fcntl(sIRC.SOCKET, F_SETFL, O_ASYNC); // set to asynchronous I/O - #endif - return true; -} - -bool IRCClient::Connect(const char *cHost, int nPort) -{ - sIRC.Connected = false; - struct hostent *he; - if ((he=gethostbyname(cHost)) == NULL) - { - sLog.outError("IRCLIENT: Could not resolve host: %s", cHost); - return false; - } - struct sockaddr_in their_addr; - their_addr.sin_family = AF_INET; - their_addr.sin_port = htons(nPort); - their_addr.sin_addr = *((struct in_addr *)he->h_addr); - memset(&(their_addr.sin_zero), '\0', 8); - if (::connect(sIRC.SOCKET, (struct sockaddr *)&their_addr, sizeof(struct sockaddr)) == -1) - { - sLog.outError("IRCLIENT: Cannot connect to %s", cHost); - return false; - } - //FD_ZERO(&sIRC.sfdset); - //FD_SET(sIRC.SOCKET,&sIRC.sfdset); - sIRC.Connected = true; - return true; -} - -bool IRCClient::Login(std::string sNick, std::string sUser, std::string sPass) -{ - char hostname[128]; - gethostname(hostname, sizeof(hostname)); - if(SendIRC("HELLO")) - if(SendIRC("PASS " + sPass)) - if(SendIRC("NICK " + sNick)) - if(SendIRC("USER " + sUser + " " + (std::string)hostname + " MangChat :MangChat "+sIRC._Mver.c_str())) - return true; - return false; -} - -bool IRCClient::SendData(const char *data) -{ - if(sIRC.Connected) - { - if (send(sIRC.SOCKET, data, strlen(data), 0) == -1) - { - sLog.outError("IRC Error: Socket Receieve ** \n"); - //Disconnect(); - return false; - } - } - return true; -} - -bool IRCClient::SendIRC(std::string data) -{ - std::string RealData = data + "\n"; - return SendData(RealData.c_str()); -} - -void IRCClient::Disconnect() -{ - if(sIRC.SOCKET) - { - #ifdef _WIN32 - closesocket(sIRC.SOCKET); - //WSACleanup(); - #else - close(sIRC.SOCKET); - #endif - } -} - -void IRCClient::SockRecv() -{ -// wchar_t bufferdata; - - char szBuffer[MAXDATASIZE]; - - memset(szBuffer, 0, MAXDATASIZE ); - - int nBytesRecv = ::recv(sIRC.SOCKET, szBuffer, MAXDATASIZE - 1, 0 ); - if ( nBytesRecv == -1 ) - { - sLog.outError("Connection lost."); - sIRC.Connected = false; - } - else - { - if (-1 == nBytesRecv) - { - sLog.outError("Error occurred while receiving from socket."); - } - else - { - std::string reply; - std::istringstream iss(szBuffer); - while(getline(iss, reply)) - { - Handle_IRC(reply); - } - } - } -} -- cgit v1.2.3