*/
class TreeSocket : public BufferedSocket
{
+ class BurstState;
+
std::string linkID; /* Description for this link */
ServerState LinkState; /* Link state */
CapabData* capab; /* Link setup data (held until burst is sent) */
*/
bool CheckDuplicate(const std::string& servername, const std::string& sid);
+ /** Send all ListModeBase modes set on the channel
+ */
+ void SendListModes(Channel* chan);
+
+ /** Send all known information about a channel */
+ void SyncChannel(Channel* chan, BurstState& bs);
+
+ /** Send all users and their oper state, away state and metadata */
+ void SendUsers(BurstState& bs);
+
public:
const time_t age;
*/
void Squit(TreeServer* Current, const std::string &reason);
- /* Used on nick collision ... XXX ugly function HACK */
- int DoCollision(User *u, time_t remotets, const std::string &remoteident, const std::string &remoteip, const std::string &remoteuid);
-
/** Send one or more FJOINs for a channel of users.
* If the length of a single line is more than 480-NICKMAX
* in length, it is split over multiple lines.
/** Send all known information about a channel */
void SyncChannel(Channel* chan);
- /** send all users and their oper state/modes */
- void SendUsers();
-
/** This function is called when we want to send a netburst to a local
* server. There is a set order we must do this, because for example
* users require their servers to exist, and channels require their
/** Send one or more complete lines down the socket
*/
- void WriteLine(std::string line);
+ void WriteLine(const std::string& line);
/** Handle ERROR command */
void Error(parameterlist ¶ms);
- /** Remote AWAY */
- bool Away(const std::string &prefix, parameterlist ¶ms);
-
- /** SAVE to resolve nick collisions without killing */
- bool ForceNick(const std::string &prefix, parameterlist ¶ms);
-
- /** ENCAP command
- */
- void Encap(User* who, parameterlist ¶ms);
-
- /** OPERQUIT command
- */
- bool OperQuit(const std::string &prefix, parameterlist ¶ms);
-
- /** PONG
- */
- bool LocalPong(const std::string &prefix, parameterlist ¶ms);
-
- /** VERSION
- */
- bool ServerVersion(const std::string &prefix, parameterlist ¶ms);
-
- /** ADDLINE
- */
- bool AddLine(const std::string &prefix, parameterlist ¶ms);
-
- /** DELLINE
- */
- bool DelLine(const std::string &prefix, parameterlist ¶ms);
-
- /** WHOIS
- */
- bool Whois(const std::string &prefix, parameterlist ¶ms);
-
- /** PUSH
- */
- bool Push(const std::string &prefix, parameterlist ¶ms);
-
- /** PING
- */
- bool LocalPing(const std::string &prefix, parameterlist ¶ms);
-
- /** <- (remote) <- SERVER
- */
- bool RemoteServer(const std::string &prefix, parameterlist ¶ms);
-
/** (local) -> SERVER
*/
bool Outbound_Reply_Server(parameterlist ¶ms);