void sendMetadata(){ for (int m: meta){ struct timeval timeout; timeout.tv_sec = 1; timeout.tv_usec = 0; if (setsockopt (metadata, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof(timeout)) < 0) perror("setsockopt failed\n"); if (setsockopt (metadata, SOL_SOCKET, SO_SNDTIMEO, (char *)&timeout, sizeof(timeout)) < 0) perror("setsockopt failed\n"); if (m != metadata){ for (Client *c : clients){ for (Room r : c->rooms){ string row = to_string(r.desc) + ":" + r.name + ":" + c->Name; row.append("\n"); sendMessage(m,row); } } sendMessage(m,delimeterMetaDate); } } }