diff --git a/Channel/Channel.cpp b/Channel/Channel.cpp index fe29fda..a71c934 100644 --- a/Channel/Channel.cpp +++ b/Channel/Channel.cpp @@ -48,7 +48,7 @@ void Channel::removeMember(int fd) { if (this->members[i] == fd) { - members.erase(members.begin() + 1); + members.erase(members.begin() + i); return ; } } diff --git a/commands/join.cpp b/commands/join.cpp index 0580ff6..beb70af 100644 --- a/commands/join.cpp +++ b/commands/join.cpp @@ -6,7 +6,7 @@ /* By: aortigos members = channels[channel].getMembers(); + if(channels.find(channel) == channels.end() + || !channels[channel].isMember(fd)) + { + std::string msg = "No perteneces a ese canal\r\n"; + send(fd, msg.c_str(), msg.size(), 0); + return ; + } + std::vector members = channels[channel].getMembers(); // iterador para recorrer los miembros e ir enviandoles el mensaje for (size_t i = 0; i < members.size(); i++)