started to update cross ircd support. Moving all sts() functions to special
functions, and will eventually remove sts() all together
This commit is contained in:
parent
b8d69718f1
commit
5a31892cd0
8 changed files with 134 additions and 76 deletions
|
@ -324,4 +324,10 @@ struct Oper_Modes {
|
|||
};
|
||||
|
||||
|
||||
/* function declarations */
|
||||
extern void sts(char *, ...);
|
||||
extern void notice(char *,char *, ...);
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
|
58
Unreal.c
58
Unreal.c
|
@ -12,6 +12,64 @@
|
|||
#include "stats.h"
|
||||
#include "Unreal.h"
|
||||
|
||||
void sts(char *fmt,...);
|
||||
|
||||
|
||||
int sserver_cmd(const char *name, const int numeric, const char *infoline) {
|
||||
sts("%s %s %s %d :%s", me.name, (me.token ? TOK_SERVER : MSG_SERVER), name, numeric, infoline);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int slogin_cmd(const char *name, const int numeric, const char *infoline, const char *pass) {
|
||||
sts("%s %s %d :%s", (me.token ? TOK_SERVER : MSG_SERVER), name, numeric, infoline);
|
||||
sts("%s %s", (me.token ? TOK_PASS : MSG_PASS), pass);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int ssquit_cmd(const char *server) {
|
||||
sts("%s %s", (me.token ? TOK_SQUIT : MSG_SQUIT), server);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int sprotocol_cmd(const char *option) {
|
||||
sts("%s %s", (me.token ? TOK_PROTOCTL : MSG_PROTOCTL), option);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int squit_cmd(const char *who, const char *quitmsg) {
|
||||
sts("%s %s :%s", who, (me.token ? TOK_QUIT : MSG_QUIT), quitmsg);
|
||||
DelUser(who);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int spart_cmd(const char *who, const char *chan) {
|
||||
sts("%s %s %s", who, (me.token ? TOK_PART : MSG_PART), chan);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int sjoin_cmd(const char *who, const char *chan) {
|
||||
sts("%s %s %s", who, (me.token ? TOK_JOIN : MSG_JOIN), chan);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int schmode_cmd(const char *who, const char *chan, const char *mode, const char *args) {
|
||||
sts(":%s %s %s %s %s", who, (me.token ? TOK_MODE : MSG_MODE), chan, mode, args);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int snick_cmd(const char *nick, const char *ident, const char *host, const char *realname) {
|
||||
sts("%s %s 1 1 %s %s %s %lu :%s", (me.token ? TOK_NICK : MSG_NICK), nick, ident, host, me.name, time(NULL), realname);
|
||||
AddUser(nick,ident, host, me.name);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int sping_cmd(const char *from, const char *reply, const char *to) {
|
||||
sts(":%s %s %s :%s", from, (me.token ? TOK_NICK : MSG_NICK), reply, to);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void sts(char *fmt,...)
|
||||
{
|
||||
va_list ap;
|
||||
|
|
19
Unreal.h
19
Unreal.h
|
@ -18,7 +18,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: Unreal.h,v 1.5 2002/03/05 06:59:06 fishwaldo Exp $
|
||||
* $Id: Unreal.h,v 1.6 2002/03/05 08:13:45 fishwaldo Exp $
|
||||
*/
|
||||
|
||||
|
||||
|
@ -351,12 +351,15 @@ struct Oper_Modes {
|
|||
|
||||
|
||||
/* function declarations */
|
||||
extern void sts(char *, ...);
|
||||
extern void notice(char *,char *, ...);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
extern int sserver_cmd(const char *, const int numeric, const char *);
|
||||
extern int slogin_cmd(const char *, const int numeric, const char *, const char *);
|
||||
extern int ssquit_cmd(const char *);
|
||||
extern int sprotocol_cmd(const char *);
|
||||
extern int squit_cmd(const char *, const char *);
|
||||
extern int spart_cmd(const char *, const char *);
|
||||
extern int sjoin_cmd(const char *, const char *);
|
||||
extern int schmode_cmd(const char *, const char *, const char *, const char *);
|
||||
extern int snick_cmd(const char *, const char *, const char *, const char *);
|
||||
extern int sping_cmd(const char *from, const char *reply, const char *to);
|
||||
#endif /* UNREAL_H Define */
|
||||
|
|
12
main.c
12
main.c
|
@ -94,7 +94,7 @@ RETSIGTYPE serv_die() {
|
|||
u = finduser(s_Services);
|
||||
log("Sigterm Recieved, Shuting Down Server!!!!");
|
||||
ns_shutdown(u,"SigTerm Recieved");
|
||||
sts("SQUIT %s",me.name);
|
||||
ssquit_cmd(me.name);
|
||||
|
||||
}
|
||||
|
||||
|
@ -143,7 +143,7 @@ RETSIGTYPE serv_segv() {
|
|||
kill(forked, 3);
|
||||
kill(forked, 9);
|
||||
exit(-1);
|
||||
sts("SQUIT %s",me.name);
|
||||
ssquit_cmd(me.name);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -242,10 +242,8 @@ void start()
|
|||
void login()
|
||||
{
|
||||
segv_location = sstrdup("login");
|
||||
sts("PASS %s", me.pass);
|
||||
sts("SERVER %s 1 :%s", me.name,me.infoline);
|
||||
sts("PROTOCTL TOKEN");
|
||||
|
||||
slogin_cmd(me.name, 1, me.infoline, me.pass);
|
||||
sprotocol_cmd("TOKEN");
|
||||
}
|
||||
|
||||
|
||||
|
@ -290,7 +288,7 @@ unsigned long HASH(const unsigned char *name, int size_of_table)
|
|||
return h % size_of_table;
|
||||
}
|
||||
|
||||
char *strlower(char *s)
|
||||
char *strlower(const char *s)
|
||||
{
|
||||
/* char *t = s;
|
||||
while ((*t++ = tolower(*t)))
|
||||
|
|
4
server.c
4
server.c
|
@ -5,7 +5,7 @@
|
|||
** Based from GeoStats 1.1.0 by Johnathan George net@lite.net
|
||||
*
|
||||
** NetStats CVS Identification
|
||||
** $Id: server.c,v 1.3 2002/02/27 13:30:59 fishwaldo Exp $
|
||||
** $Id: server.c,v 1.4 2002/03/05 08:13:45 fishwaldo Exp $
|
||||
*/
|
||||
|
||||
#include <fnmatch.h>
|
||||
|
@ -82,7 +82,7 @@ void DelServer(char *name)
|
|||
free(s);
|
||||
}
|
||||
|
||||
Server *findserver(char *name)
|
||||
Server *findserver(const char *name)
|
||||
{
|
||||
Server *s;
|
||||
hnode_t *sn;
|
||||
|
|
87
services.c
87
services.c
|
@ -257,6 +257,7 @@ extern void ns_shutdown(User *u, char *reason)
|
|||
Module *mod_ptr = NULL;
|
||||
hscan_t ms;
|
||||
hnode_t *mn;
|
||||
char quitmsg[255];
|
||||
|
||||
segv_location = sstrdup("ns_shutdown");
|
||||
if (strcasecmp(u->nick, s_Services)) {
|
||||
|
@ -276,8 +277,9 @@ extern void ns_shutdown(User *u, char *reason)
|
|||
|
||||
|
||||
globops(s_Services, "%s requested \2SHUTDOWN\2 for %s", u->nick, reason);
|
||||
sts(":%s QUIT :%s Sent SHUTDOWN: %s",s_Services,u->nick,reason);
|
||||
sts("SQUIT %s",me.name);
|
||||
sprintf(quitmsg, "%s Set SHUTDOWN: %s", u->nick, (reason ? reason : "No Reason"));
|
||||
squit_cmd(s_Services, quitmsg);
|
||||
ssquit_cmd(me.name);
|
||||
sleep(1);
|
||||
close(servsock);
|
||||
remove("stats.pid");
|
||||
|
@ -288,49 +290,37 @@ extern void ns_shutdown(User *u, char *reason)
|
|||
|
||||
static void ns_reload(User *u, char *reason)
|
||||
{
|
||||
char quitmsg[255];
|
||||
segv_location = sstrdup("ns_reload");
|
||||
if (!(UserLevel(u) >= 190)) {
|
||||
log("Access Denied (RELOAD) to %s", u->nick);
|
||||
privmsg(u->nick, s_Services, "Access Denied.");
|
||||
return;
|
||||
}
|
||||
if (reason != NULL) {
|
||||
globops(s_Services, "%s requested \2RELOAD\2 for %s", u->nick, reason);
|
||||
log("%s requested RELOAD.", u->nick);
|
||||
|
||||
sts("SQUIT %s :Reload", me.name);
|
||||
|
||||
sts(":%s QUIT :%s Sent RELOAD: %s",s_Services,u->nick,reason);
|
||||
} else {
|
||||
globops(s_Services, "%s requested \2RELOAD\2 for no Reason!", u->nick, reason);
|
||||
log("%s requested RELOAD.", u->nick);
|
||||
|
||||
sts("SQUIT %s :Reload", me.name);
|
||||
|
||||
sts(":%s QUIT :%s Sent RELOAD",s_Services,u->nick,reason);
|
||||
if (!(UserLevel(u) >= 190)) {
|
||||
log("Access Denied (RELOAD) to %s", u->nick);
|
||||
privmsg(u->nick, s_Services, "Access Denied.");
|
||||
return;
|
||||
}
|
||||
globops(s_Services, "%s requested \2RELOAD\2 for %s", u->nick, reason);
|
||||
log("%s requested RELOAD.", u->nick);
|
||||
sprintf(quitmsg, "%s Sent RELOAD: %s", u->nick, (reason ? reason : "No reason"));
|
||||
squit_cmd(s_Services, quitmsg);
|
||||
ssquit_cmd(me.name);
|
||||
sleep(1);
|
||||
close(servsock);
|
||||
init_server_hash();
|
||||
init_user_hash();
|
||||
me.onchan = 0;
|
||||
log("Connecting to %s:%d", me.uplink, me.port);
|
||||
if (servsock > 0)
|
||||
close(servsock);
|
||||
init_server_hash();
|
||||
init_user_hash();
|
||||
/* init_tld();
|
||||
*/
|
||||
|
||||
me.onchan = 0;
|
||||
log("Connecting to %s:%d", me.uplink, me.port);
|
||||
if (servsock > 0)
|
||||
close(servsock);
|
||||
|
||||
servsock = ConnectTo(me.uplink, me.port);
|
||||
servsock = ConnectTo(me.uplink, me.port);
|
||||
|
||||
if (servsock <= 0) {
|
||||
log("Unable to connect to %s", me.uplink);
|
||||
} else {
|
||||
login();
|
||||
read_loop();
|
||||
}
|
||||
log("Reconnecting to the server in %d seconds", me.r_time);
|
||||
sleep(me.r_time);
|
||||
if (servsock <= 0) {
|
||||
log("Unable to connect to %s", me.uplink);
|
||||
} else {
|
||||
login();
|
||||
read_loop();
|
||||
}
|
||||
log("Reconnecting to the server in %d seconds", me.r_time);
|
||||
sleep(me.r_time);
|
||||
|
||||
}
|
||||
|
||||
|
@ -365,6 +355,7 @@ static void ns_logs(User *u)
|
|||
|
||||
static void ns_jupe(User *u, char *server)
|
||||
{
|
||||
char infoline[255];
|
||||
segv_location = sstrdup("ns_jupe");
|
||||
if (!(UserLevel(u) >= 190)) {
|
||||
privmsg(u->nick, s_Services, "Access Denied.");
|
||||
|
@ -375,7 +366,8 @@ static void ns_jupe(User *u, char *server)
|
|||
s_Services);
|
||||
return;
|
||||
}
|
||||
sts(":%s SERVER %s 1 :[Jupitered] by %s", me.name, server, u->nick);
|
||||
sprintf(infoline, "[Jupitered by %s]", u->nick);
|
||||
sserver_cmd(server, 1, infoline);
|
||||
log("%s!%s@%s jupitered %s", u->nick, u->username, u->hostname, server);
|
||||
}
|
||||
|
||||
|
@ -394,14 +386,15 @@ static void ns_JOIN(User *u, char *chan)
|
|||
}
|
||||
globops(s_Services, "JOINING CHANNEL -\2(%s)\2- Thanks to %s!%s@%s)", chan, u->nick, u->username, u->hostname);
|
||||
privmsg(me.chan, s_Services, "%s Asked me to Join %s, So, I'm Leaving %s", u->nick, chan, me.chan);
|
||||
sts(":%s part %s", s_Services, me.chan);
|
||||
spart_cmd(s_Services, me.chan);
|
||||
log("%s!%s@%s Asked me to Join %s, I was on %s", u->nick, u->username, u->hostname, chan, me.chan);
|
||||
sprintf(me.chan,"%s",chan);
|
||||
sts(":%s JOIN %s",s_Services,chan);
|
||||
sts(":%s MODE %s +o %s",me.name,chan,s_Services);
|
||||
sjoin_cmd(s_Services, chan);
|
||||
schmode_cmd(me.name, chan, "+o", s_Services);
|
||||
}
|
||||
void ns_debug_to_coders(char *u)
|
||||
{
|
||||
char realname[63];
|
||||
segv_location = sstrdup("ns_debug_to_coders");
|
||||
if (!me.coder_debug) {
|
||||
me.coder_debug = 1;
|
||||
|
@ -412,8 +405,8 @@ void ns_debug_to_coders(char *u)
|
|||
globops(me.name, "\2DEBUG MODE\3 Active");
|
||||
}
|
||||
if (me.usesmo) {
|
||||
sts("NICK %s 1 1 %s %s %s 0 :/msg %s \2HELP\2", s_Debug, Servbot.user, Servbot.host, me.name, s_Services);
|
||||
AddUser(s_Debug, Servbot.user, Servbot.host, me.name);
|
||||
sprintf(realname, "/msg %s \2HELP\2", s_Services);
|
||||
snick_cmd(s_Debug, Servbot.user, Servbot.host, realname);
|
||||
}
|
||||
} else {
|
||||
me.coder_debug = 0;
|
||||
|
@ -424,8 +417,8 @@ void ns_debug_to_coders(char *u)
|
|||
globops(me.name, "\2DEBUG MODE\2 Deactivated");
|
||||
}
|
||||
if (me.usesmo) {
|
||||
sts(":%s QUIT :Debug Mode Deactivated by %s",s_Debug,u);
|
||||
DelUser(s_Debug);
|
||||
sprintf("Debug Mode Deactivated by %s", u);
|
||||
squit_cmd(s_Debug, realname);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
12
stats.h
12
stats.h
|
@ -95,6 +95,7 @@ struct me {
|
|||
unsigned int enable_proxy : 1;
|
||||
unsigned int coder_debug : 1;
|
||||
unsigned int noticelag : 1;
|
||||
unsigned int token : 1;
|
||||
int action;
|
||||
char message[BUFSIZE];
|
||||
char chan[BUFSIZE];
|
||||
|
@ -179,7 +180,6 @@ struct ping {
|
|||
/* sock.c */
|
||||
extern int ConnectTo(char *, int);
|
||||
extern void read_loop();
|
||||
extern void sts(char *, ...);
|
||||
extern void log(char *, ...);
|
||||
extern void ResetLogs();
|
||||
extern char *sctime(time_t);
|
||||
|
@ -201,7 +201,7 @@ extern void init_ServBot();
|
|||
extern void *smalloc(long);
|
||||
extern char *sstrdup(const char *);
|
||||
extern unsigned long HASH(const unsigned char *, int);
|
||||
extern char *strlower(char *);
|
||||
extern char *strlower(const char *);
|
||||
|
||||
/* ircd.c */
|
||||
extern void parse();
|
||||
|
@ -231,18 +231,18 @@ extern Chans *findchan(char *);
|
|||
extern void ChanMode(char *, char *);
|
||||
extern void ChanTopic(char *, char *, char *);
|
||||
extern void DelChan(char *);
|
||||
extern void AddUser(char *, char *, char *, char *);
|
||||
extern void DelUser(char *);
|
||||
extern void AddUser(const char *, const char *, const char *, const char *);
|
||||
extern void DelUser(const char *);
|
||||
extern void Change_User(User *, char *);
|
||||
extern void sendcoders(char *message,...);
|
||||
extern User *finduser(char *);
|
||||
extern User *finduser(const char *);
|
||||
extern void UserDump();
|
||||
extern void UserMode(char *, char *);
|
||||
extern void init_user_hash();
|
||||
extern void init_chan_hash();
|
||||
extern void AddServer(char *, char *,int);
|
||||
extern void DelServer(char *);
|
||||
extern Server *findserver(char *);
|
||||
extern Server *findserver(const char *);
|
||||
extern void ServerDump();
|
||||
extern void ChanDump();
|
||||
extern void init_server_hash();
|
||||
|
|
12
users.c
12
users.c
|
@ -5,7 +5,7 @@
|
|||
** Based from GeoStats 1.1.0 by Johnathan George net@lite.net
|
||||
*
|
||||
** NetStats CVS Identification
|
||||
** $Id: users.c,v 1.13 2002/02/27 16:36:40 fishwaldo Exp $
|
||||
** $Id: users.c,v 1.14 2002/03/05 08:13:45 fishwaldo Exp $
|
||||
*/
|
||||
|
||||
#include <fnmatch.h>
|
||||
|
@ -54,13 +54,13 @@ struct Oper_Modes usr_mds[] = {
|
|||
|
||||
MyUser *myuhead;
|
||||
|
||||
static User *new_user(char *);
|
||||
static User *new_user(const char *);
|
||||
|
||||
|
||||
hash_t *uh;
|
||||
|
||||
|
||||
User *new_user(char *nick)
|
||||
User *new_user(const char *nick)
|
||||
{
|
||||
User *u;
|
||||
hnode_t *un;
|
||||
|
@ -84,7 +84,7 @@ User *new_user(char *nick)
|
|||
return(u);
|
||||
}
|
||||
|
||||
void AddUser(char *nick, char *user, char *host, char *server)
|
||||
void AddUser(const char *nick, const char *user, const char *host, const char *server)
|
||||
{
|
||||
User *u;
|
||||
|
||||
|
@ -110,7 +110,7 @@ void AddUser(char *nick, char *user, char *host, char *server)
|
|||
|
||||
}
|
||||
|
||||
void DelUser(char *nick)
|
||||
void DelUser(const char *nick)
|
||||
{
|
||||
User *u;
|
||||
hnode_t *un;
|
||||
|
@ -173,7 +173,7 @@ void sendcoders(char *message,...)
|
|||
va_end (ap);
|
||||
}
|
||||
|
||||
User *finduser(char *nick)
|
||||
User *finduser(const char *nick)
|
||||
{
|
||||
User *u;
|
||||
hnode_t *un;
|
||||
|
|
Reference in a new issue