1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
int IRCClient::checkServerPing( ) {
char recvBuff[4096];
char *recvNewline=NULL;
int len = recv(servSock, recvBuff, sizeof(recvBuff) - 1, 0);
recvBuff[len] = '\0';
while( (recvNewline=IRCClient::newline(recvBuff))!=NULL ) {
serverRegex.sortSock(recvNewline); //sends server input to regex class
cout << recvNewline << endl; // Output
if ( strcmp(serverRegex.returnPong(recvBuff), "failed") == -1 ) {
const char* pong = serverRegex.returnPong(recvBuff);
char sndBuffer[256];
memset(sndBuffer, '\0', 256);
//fill out sndBuffer with command + ping number
sprintf(sndBuffer, "PONG :%s\r\n", pong);
send(servSock, sndBuffer, strlen(sndBuffer), 0);
cout << sndBuffer << endl;
}
}
return 0;
}
//extreamly important function
int IRCClient::checkServerInput( ) {
char recvBuff[4096];
char *recvNewline=NULL;
int len = recv(servSock, recvBuff, sizeof(recvBuff) - 1, 0);
recvBuff[len] = '\0';
while( (recvNewline=IRCClient::newline(recvBuff))!=NULL ) {
serverRegex.sortSock(recvNewline); //sends server input to regex class
cout << recvNewline << endl; // Output
if ( serverRegex.checkCommand( serverRegex.getData("message") ) ) {
char sndBuffer[256];
memset(sndBuffer, '\0', 256);
sprintf(sndBuffer, serverRegex.sortCommand( serverRegex.getData("message") ));
send(servSock, sndBuffer, strlen(sndBuffer), 0);
cout << sndBuffer << endl;
}
}
return 0;
}
| |