#include "inspircd_util.h"
#include "users.h"
#include "channels.h"
+#include "servers.h"
// some misc defines
typedef std::deque<std::string> file_cache;
+typedef void (handlerfunc) (char**, int, userrec*);
+
/* prototypes */
int InspIRCd(void);
int InitConfig(void);
void WriteTo(userrec *source, userrec *dest,char *data, ...);
void WriteChannel(chanrec* Ptr, userrec* user, char* text, ...);
void ChanExceptSender(chanrec* Ptr, userrec* user, char* text, ...);
-int common_channels(userrec *u, userrec *u2);
void WriteCommon(userrec *u, char* text, ...);
void WriteCommonExcept(userrec *u, char* text, ...);
void WriteWallOps(userrec *source, bool local_only, char* text, ...);
-int isnick(const char *n);
+void WriteChannelLocal(chanrec* Ptr, userrec* user, char* text, ...);
+void WriteChannelWithServ(char* ServerName, chanrec* Ptr, userrec* user, char* text, ...);
+char* chanmodes(chanrec *chan);
userrec* Find(std::string nick);
chanrec* FindChan(const char* chan);
-char* cmode(userrec *user, chanrec *chan);
std::string getservername();
std::string getserverdesc();
std::string getnetworkname();
chanrec* del_channel(userrec *user, const char* cname, const char* reason, bool local);
void force_nickchange(userrec* user,const char* newnick);
void kill_link(userrec *user,const char* r);
+void kill_link_silent(userrec *user,const char* r);
int usercount(chanrec *c);
void call_handler(const char* commandname,char **parameters, int pcnt, userrec *user);
-void send_network_quit(const char* nick, const char* reason);
-void ChangeName(userrec* user, const char* gecos);
-void ChangeDisplayedHost(userrec* user, const char* host);
long GetRevision();
+int loop_call(handlerfunc fn, char **parameters, int pcnt, userrec *u, int start, int end, int joins);
+void kick_channel(userrec *src,userrec *user, chanrec *Ptr, char* reason);
+void purge_empty_chans(void);
+char* Passwd(userrec *user);
+bool IsDenied(userrec *user);
+void AddWhoWas(userrec* u);
+void userlist(userrec *user,chanrec *c);
+std::string GetServerDescription(char* servername);
+int usercnt(void);
+int usercount_invisible(void);
+int usercount_opers(void);
+int usercount_unknown(void);
+long chancount(void);
+long count_servs(void);
+long servercount(void);
+long local_count();
+void ShowMOTD(userrec *user);
+void ShowRULES(userrec *user);
+int usercount(chanrec *c);
+int usercount_i(chanrec *c);
+void update_stats_l(int fd,int data_out);
+void ConnectUser(userrec *user);
+void DoSplitEveryone();
+char islast(const char* s);
+long map_count(const char* s);
+userrec* ReHashNick(char* Old, char* New);
+
// mesh network functions
void NetSendMyRoutingTable();
void DoSplit(const char* params);
void RemoveServer(const char* name);
+void DoSync(serverrec* serv, char* tcp_host);