int IRC::message_loop() { char buffer[4096]; int ret_len; PRINTD("ENTER IRC::message_loop()"); if (!connected) { while (!connected && connecting) { #ifdef WIN32 Sleep(1); #else sleep(1); #endif } } int rc = 0; while (connected) { ret_len=recv(irc_socket, buffer, 4095, 0); if (ret_len==SOCKET_ERROR || !ret_len) { rc = 1; break; } buffer[ret_len]='\0'; try { split_to_replies(buffer); } catch(std::exception &e) { Logger logger = Logger::GetRootLogger(); logger.Error("ERROR DISPATCHING IRC RECEIVE BUFFER. Error=%s", e.what()); } catch(...) { Logger logger = Logger::GetRootLogger(); logger.Error("UNKNOWN EXCEPTION IN IRC RECEIVE THREAD..."); } } PRINTD("EXIT IRC::message_loop() => " << rc); return rc; }
int IRC::message_loop() { char buffer[1024]; int ret_len; if (!connected) { printf("Not connected!\n"); return 1; } while (1) { ret_len=recv(irc_socket, buffer, 1023, 0); if (ret_len==SOCKET_ERROR || !ret_len) { return 1; } buffer[ret_len]='\0'; split_to_replies(buffer); } return 0; }