diff --git a/ChangeLog b/ChangeLog index fc1b1921..ce2d539b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,5 @@ NeoStats ChangeLog - Anything we add/remove/fix/change is in here (even our rants) -* NeoStats * Fish & Shmad * Version 2.5.0 Final? +* NeoStats * Fish & Shmad * Version 2.5.0-Release Candidate 3 - Added support to makeconf for WALLOP_INTERVAL (S) - Fixed up --enable-auth==TYPE typo in configure script - Moved to AutoConf2.13 to fix bsd ./configure issues @@ -23,6 +23,7 @@ NeoStats ChangeLog - Anything we add/remove/fix/change is in here (even our rant - Removed Bignet Support, and made lists dynamic now - Added ChangePass and Banned Vhosts to HostServ, and moved HostServ to Hash tables. - Fixed a bug with users being marked away multiple times, thus, screwing up statserv stats :( + - Compile fixes and warnings * NeoStats * Shmad & Fish * Version 2.5.0-Release Candidate 2 - Misc. Updates (S) diff --git a/TODO b/TODO index 59d5952f..0635fe4d 100644 --- a/TODO +++ b/TODO @@ -7,19 +7,6 @@ Shmad: -HostServ TODO: --------------- - -- make CHPASSWD. In order for a user to change a password their nick, host and password all have to match. - This is how we get around just anyone changing passwords to "GROUP" vhosts. -Syntax: /msg HostServ CHPASS NICK OLDPASS NEWPASS - - - btw another suggest Fish... banned hosts.. or banned masks - like i could ban *.mil - and *.gov - and then it just doesn't let a vhost added like that - and you could ban *fbi* too Fish: ----- @@ -31,16 +18,33 @@ save u 3x a table lookup) fnmatch is Baaaad news... find a good ircmatch function and port it over... +join 0 is really broken atm :) + +"make dist" option. 2.6.0 Series - Yep, I'm already thinking about this.... ------------ -Channel Based Logging... Means we can get rid of the #ifdef DEBUG, log(... +Channel (Not IRC Channels, Event Channels) Based Logging... Means we can get rid of the #ifdef DEBUG, log(... stuff, and define what gets logged when. -Module Config File Support improvements. (I got ideas :) +Module Config File Support improvements. (I got ideas - Find Keeper Config libary for more info:) -Re-Do the send/recv code... Its Horrible.. +Re-Do the send/recv code... Its Horrible.. (Backup Server links etc can +then be implemented) Move all the stuff in ircd.c into relevent ircd support files. ircd.c is -getting just way to hard to manage now \ No newline at end of file +getting just way to hard to manage now and will get worse as +we add aditional IRCd support. + +"Driver" modules??? (eg, Unreal, Ultimate are drivers. So is DB/SQL +or WebServer) + +Redo Config files. I pretty much got Bison/Flex figured out... + +libwebserver module :) + +make NeoStats Bot commands list based, so it can be extended via other +modules + +DCC chat interface??? \ No newline at end of file diff --git a/Ultimate.c b/Ultimate.c index 72b8f85c..da37e64d 100644 --- a/Ultimate.c +++ b/Ultimate.c @@ -20,7 +20,7 @@ ** USA ** ** NeoStats CVS Identification -** $Id: Ultimate.c,v 1.34 2003/01/06 12:07:25 fishwaldo Exp $ +** $Id: Ultimate.c,v 1.35 2003/01/13 07:20:53 fishwaldo Exp $ */ #include "stats.h" @@ -116,7 +116,6 @@ Oper_Modes usr_mds[] = { {UMODE_SERVICESADMIN, 'P',200}, {UMODE_RBOT, 'B',0}, {UMODE_SBOT, 'b', 0}, - {UMODE_DEAF, 'd',0}, {UMODE_ADMIN, 'z',70}, {UMODE_NETADMIN, 'N',185}, {UMODE_TECHADMIN, 'T',190}, @@ -128,7 +127,6 @@ Oper_Modes usr_mds[] = { {UMODE_SERVICESOPER, 'a', 100}, {UMODE_SUPER, 'p', 40}, {UMODE_IRCADMIN, 'Z', 100}, - {UMODE_DEAF, 'd', 0}, {0, 0, 0 } }; #endif diff --git a/Ultimate.h b/Ultimate.h index 758fb16e..5388ec3a 100644 --- a/Ultimate.h +++ b/Ultimate.h @@ -20,7 +20,7 @@ ** USA ** ** NeoStats CVS Identification -** $Id: Ultimate.h,v 1.15 2003/01/06 12:25:04 fishwaldo Exp $ +** $Id: Ultimate.h,v 1.16 2003/01/13 07:20:53 fishwaldo Exp $ */ #ifndef ULTIMATE_H #define ULTIMATE_H @@ -426,7 +426,7 @@ typedef struct { typedef struct { - long umodes; + unsigned long umodes; char mode; int level; } Oper_Modes; @@ -474,6 +474,7 @@ extern int sswhois_cmd(const char *target, const char *swhois); extern int ssvsnick_cmd(const char *target, const char *newnick); extern int ssvsjoin_cmd(const char *target, const char *chan); extern int ssvspart_cmd(const char *target, const char *chan); +extern int ssvshost_cmd(const char *who, const char *vhost); extern int skick_cmd(const char *who, const char *target, const char *chan, const char *reason); extern int swallops_cmd(const char *who, const char *msg,...); extern int vctrl_cmd(); diff --git a/Unreal.c b/Unreal.c index 21cdd1d8..5ee1fdb7 100644 --- a/Unreal.c +++ b/Unreal.c @@ -20,7 +20,7 @@ ** USA ** ** NeoStats CVS Identification -** $Id: Unreal.c,v 1.31 2002/09/16 04:27:20 fishwaldo Exp $ +** $Id: Unreal.c,v 1.32 2003/01/13 07:20:53 fishwaldo Exp $ */ #include "stats.h" @@ -287,6 +287,7 @@ int ssvsmode_cmd(const char *target, const char *modes) { sts(":%s %s %s %s", me.name, (me.token ? TOK_SVSMODE : MSG_SVSMODE), target, modes); UserMode(target, modes); } + return 1; } int ssvskill_cmd(const char *target, const char *reason, ...) { diff --git a/Unreal.h b/Unreal.h index f1114665..b79012bd 100644 --- a/Unreal.h +++ b/Unreal.h @@ -44,7 +44,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.24 2002/09/16 04:27:20 fishwaldo Exp $ + * $Id: Unreal.h,v 1.25 2003/01/13 07:20:53 fishwaldo Exp $ */ @@ -469,6 +469,7 @@ extern int sswhois_cmd(const char *target, const char *swhois); extern int ssvsnick_cmd(const char *target, const char *newnick); extern int ssvsjoin_cmd(const char *target, const char *chan); extern int ssvspart_cmd(const char *target, const char *chan); +extern int ssvshost_cmd(const char *who, const char *vhost); extern int skick_cmd(const char *who, const char *target, const char *chan, const char *reason); extern int swallops_cmd(const char *who, const char *msg,...); extern int ssvsmode_cmd(const char *target, const char *modes); diff --git a/chans.c b/chans.c index 8a6618d0..3a8e99c9 100644 --- a/chans.c +++ b/chans.c @@ -19,7 +19,7 @@ ** USA ** ** NeoStats CVS Identification -** $Id: chans.c,v 1.37 2002/12/26 15:15:04 fishwaldo Exp $ +** $Id: chans.c,v 1.38 2003/01/13 07:20:53 fishwaldo Exp $ */ #include @@ -436,6 +436,14 @@ void join_chan(User *u, char *chan) { log("ehhh, Joining a Unknown user to %s: %s", chan, recbuf); return; } + if (!strcasecmp("0", chan)) { + /* join 0 is actually part all chans */ +#ifdef DEBUG + log("join_chan() -> Parting all chans %s", u->nick); +#endif + list_process(u->chans, u, part_u_chan); + return; + } c = findchan(chan); if (!c) { /* its a new Channel */ diff --git a/dl/cs/cs.h b/dl/cs/cs.h index 6b191a13..e7196c26 100644 --- a/dl/cs/cs.h +++ b/dl/cs/cs.h @@ -20,7 +20,7 @@ ** USA ** ** NeoStats CVS Identification -** $Id: cs.h,v 1.6 2002/10/27 05:55:31 fishwaldo Exp $ +** $Id: cs.h,v 1.7 2003/01/13 07:20:53 fishwaldo Exp $ */ @@ -45,7 +45,7 @@ ** If we are compiled to Use Ultimate 2.8.x use these modes and flags */ #define LOCOP_MODE 'O' - #define OPER_MODE, 'o' + #define OPER_MODE 'o' #define GUESTADMIN_MODE '7' /* Set to a number as we dont use */ #define COSERVERADMIN_MODE 'J' #define SERVERADMIN_MODE 'A' diff --git a/dl/neoserv/neoserv.c b/dl/neoserv/neoserv.c index deec3d33..0a3c121d 100644 --- a/dl/neoserv/neoserv.c +++ b/dl/neoserv/neoserv.c @@ -20,7 +20,7 @@ ** USA ** ** NeoStats CVS Identification -** $Id: neoserv.c,v 1.6 2002/10/27 05:55:31 fishwaldo Exp $ +** $Id: neoserv.c,v 1.7 2003/01/13 07:20:53 fishwaldo Exp $ */ #include @@ -246,8 +246,11 @@ int Online(char **av, int ac) { s_NeoServ = strcat(s_NeoServ, "_"); init_bot(s_NeoServ,"NeoServ",me.name,"Network NeoStats Help Service", "+Sqd-x", my_info[0].module_name); } - +#ifdef ULTIMATE3 + sjoin_cmd(s_NeoServ, "#NeoStats", MODE_CHANOP); +#else sjoin_cmd(s_NeoServ, "#NeoStats"); +#endif return 1; }; diff --git a/dl/statserv/Makefile b/dl/statserv/Makefile index a77d5c03..770fdbb6 100644 --- a/dl/statserv/Makefile +++ b/dl/statserv/Makefile @@ -11,7 +11,6 @@ all: statserv .c.o: $(CC) -c $< $(CFLAGS) $(INCLUDES) - $(CC) -c $< $(CFLAGS) $(INCLUDES) statserv: $(OBJECTS) ld $(MODLDFLAGS) -o $(TARGET) $(LIBS) $(OBJECTS) diff --git a/hybrid7.c b/hybrid7.c index 01ff156b..d91baf9e 100644 --- a/hybrid7.c +++ b/hybrid7.c @@ -18,7 +18,7 @@ ** USA ** ** NeoStats CVS Identification -** $Id: hybrid7.c,v 1.7 2002/09/16 03:31:46 fishwaldo Exp $ +** $Id: hybrid7.c,v 1.8 2003/01/13 07:20:53 fishwaldo Exp $ */ #include "stats.h" @@ -245,6 +245,7 @@ int swallops_cmd(const char *who, const char *msg,...) { int ssvshost_cmd(const char *who, const char *vhost) { notice(s_Services, "Warning Module %s tried to SVSHOST, which is not supported in Hybrid", segvinmodule); log("Warning. Module %s tried to SVSHOST, which is not supported in Hybrid", segvinmodule); + return 1; } int ssvinfo_cmd() { sts("SVINFO 5 3 0 :%d", time(NULL)); diff --git a/hybrid7.h b/hybrid7.h index 780e44ea..2ac81dcc 100644 --- a/hybrid7.h +++ b/hybrid7.h @@ -18,7 +18,7 @@ ** USA ** ** NeoStats CVS Identification -** $Id: hybrid7.h,v 1.6 2002/09/04 08:40:26 fishwaldo Exp $ +** $Id: hybrid7.h,v 1.7 2003/01/13 07:20:53 fishwaldo Exp $ */ @@ -277,6 +277,7 @@ extern int sswhois_cmd(const char *target, const char *swhois); extern int ssvsnick_cmd(const char *target, const char *newnick); extern int ssvsjoin_cmd(const char *target, const char *chan); extern int ssvspart_cmd(const char *target, const char *chan); +extern int ssvshost_cmd(const char *who, const char *vhost); extern int skick_cmd(const char *who, const char *target, const char *chan, const char *reason); extern int swallops_cmd(const char *who, const char *msg,...); extern int vctrl_cmd(); diff --git a/ircd.c b/ircd.c index adb97bad..2fbe289f 100755 --- a/ircd.c +++ b/ircd.c @@ -22,7 +22,7 @@ ** USA ** ** NeoStats CVS Identification -** $Id: ircd.c,v 1.105 2003/01/07 13:23:13 fishwaldo Exp $ +** $Id: ircd.c,v 1.106 2003/01/13 07:20:53 fishwaldo Exp $ */ #include @@ -280,7 +280,9 @@ void init_main() { int init_bot(char *nick, char *user, char *host, char *rname, char *modes, char *mod_name) { User *u; +#ifndef ULTIMATE3 char cmd[63]; +#endif char **av; int ac = 0; strcpy(segv_location, "init_bot"); @@ -937,7 +939,11 @@ void Usr_Mode(char *origin, char **argv, int argc) { #ifdef DEBUG log("Mode: UserMode: %s",argv[0]); #endif +#ifdef ULTIMATE3 UserMode(argv[0], argv[1], 0); +#else + UserMode(argv[0], argv[1]); +#endif AddStringToList(&av, argv[0], &ac); AddStringToList(&av, argv[1], &ac); Module_Event("UMODE", av, ac); diff --git a/main.c b/main.c index 85b5ddbf..5e63d399 100755 --- a/main.c +++ b/main.c @@ -22,7 +22,7 @@ ** USA ** ** NeoStats CVS Identification -** $Id: main.c,v 1.77 2003/01/06 12:07:25 fishwaldo Exp $ +** $Id: main.c,v 1.78 2003/01/13 07:20:53 fishwaldo Exp $ */ #include @@ -129,7 +129,6 @@ int main() init_server_hash(); init_user_hash(); init_chan_hash(); - /** This section ALWAYS craps out so we ignore it-- for now */ if (init_modules()) { /* printf("WARNING: Some Modules Failed to Load"); */ diff --git a/neoircd.h b/neoircd.h index ea81e229..69c0f4e4 100644 --- a/neoircd.h +++ b/neoircd.h @@ -18,7 +18,7 @@ ** USA ** ** NeoStats CVS Identification -** $Id: neoircd.h,v 1.2 2002/10/16 03:13:59 fishwaldo Exp $ +** $Id: neoircd.h,v 1.3 2003/01/13 07:20:53 fishwaldo Exp $ */ @@ -281,6 +281,7 @@ extern int sswhois_cmd(const char *target, const char *swhois); extern int ssvsnick_cmd(const char *target, const char *newnick); extern int ssvsjoin_cmd(const char *target, const char *chan); extern int ssvspart_cmd(const char *target, const char *chan); +extern int ssvshost_cmd(const char *who, const char *vhost); extern int skick_cmd(const char *who, const char *target, const char *chan, const char *reason); extern int swallops_cmd(const char *who, const char *msg,...); extern int vctrl_cmd(); diff --git a/stats.h b/stats.h index 891cbd61..88e7f3eb 100644 --- a/stats.h +++ b/stats.h @@ -20,7 +20,7 @@ ** USA ** ** NeoStats CVS Identification -** $Id: stats.h,v 1.65 2003/01/06 15:03:19 fishwaldo Exp $ +** $Id: stats.h,v 1.66 2003/01/13 07:20:53 fishwaldo Exp $ */ #ifndef STATS_H @@ -305,6 +305,7 @@ extern void Change_User(User *, const char *); extern void sendcoders(char *message,...); extern User *finduser(const char *); extern void UserDump(char *); +extern void part_u_chan(list_t *, lnode_t *, void *); #ifdef ULTIMATE3 extern void UserMode(const char *, const char *, int); #else