- data << "<channelops>" << c->GetOppedUsers()->size() << "</channelops>";
- data << "<channelhalfops>" << c->GetHalfoppedUsers()->size() << "</channelhalfops>";
- data << "<channelvoices>" << c->GetVoicedUsers()->size() << "</channelvoices>";
- data << "<channeltopic>" << Sanitize(c->topic) << "</channeltopic>";
- data << "<channelmodes>" << Sanitize(c->ChanModes(false)) << "</channelmodes>";
- CUList* ulist = c->GetUsers();
-
- for (CUList::iterator x = ulist->begin(); x != ulist->end(); ++x)
+ data << "<channeltopic>";
+ data << "<topictext>" << Sanitize(c->topic) << "</topictext>";
+ data << "<setby>" << Sanitize(c->setby) << "</setby>";
+ data << "<settime>" << c->topicset << "</settime>";
+ data << "</channeltopic>";
+ data << "<channelmodes>" << Sanitize(c->ChanModes(true)) << "</channelmodes>";
+ const UserMembList* ulist = c->GetUsers();
+
+ for (UserMembCIter x = ulist->begin(); x != ulist->end(); ++x)