int TestLList() { LList<char *> *llist = new LList<char *>(); TEST_ASSERT(llist); TEST_ASSERT(!llist->valid((unsigned int)-1)); TEST_ASSERT(!llist->valid(1)); TEST_ASSERT(!llist->valid(0)); llist->insert(newStr("one")); llist->insert(newStr("two")); llist->insert(newStr("three")); llist->insert(newStr("four")); TEST_ASSERT(strcmp(llist->get(0), "one") == 0); TEST_ASSERT(strcmp(llist->get(2), "three") == 0); TEST_ASSERT(strcmp(llist->get(3), "four") == 0); TEST_ASSERT(strcmp(llist->get(1), "two") == 0); delete [] llist->get(1); llist->remove(1); TEST_ASSERT(strcmp(llist->get(0), "one") == 0); TEST_ASSERT(strcmp(llist->get(1), "three") == 0); TEST_ASSERT(strcmp(llist->get(2), "four") == 0); while (llist->valid(0)) { delete [] llist->get(0); llist->remove(0); } TEST_ASSERT(!llist->valid((unsigned int)-1)); TEST_ASSERT(!llist->valid(1)); TEST_ASSERT(!llist->valid(0)); delete llist; return 0; }
int IRC::connect(char *server,char *nick,u_short port,char *pass) { ccerr = conn->Connect(server,port); if (ccerr != 0) return ccerr; this->my_server = server; if (pass != NULL) { strcpy(this->msg_buf,"PASS "); strcat(this->msg_buf,pass); this->send(this->msg_buf); } this->nick(nick); this->my_nick = nick; this->user(nick,"0",this->my_server); char *line = this->readline(); LList<char *> results = this->split(line," "); int i = 0; while (!results.valid(1)) { char *line = this->readline(); results = this->split(line," "); } while (!strcmp(results.get(1),"001")) { if (strcmp(results.get(1),"PING")) { strcpy(this->msg_buf,"PONG "); strcat(this->msg_buf,results.get(2)); this->send(this->msg_buf); } else if (strcmp(results.get(1),"433") || strcmp(results.get(1),"432")) { stringstream out; out << ++i; this->nick(strcat(nick,out.str().c_str())); this->my_nick = strcat(nick,out.str().c_str()); } line = this->readline(); results = this->split(line," "); } strcpy(this->msg_buf,"WHOIS "); strcat(this->msg_buf,this->my_nick); this->send(this->msg_buf); do { line = this->readline(); results = this->split(line," "); if (strcmp(results.get(1),"311")) this->my_host = strcat(results.get(4),strcat("@",results.get(5))); } while (this->my_host == NULL); return 0; }