diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a6a6538 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +*.o +ircd/chkconf +ircd/crypt/mkpasswd +ircd/ircd +ircd/version.c + diff --git a/Makefile b/Makefile index 1bbd7db..60e5cd3 100644 --- a/Makefile +++ b/Makefile @@ -73,7 +73,7 @@ CFLAGS= -g -I$(INCLUDEDIR) -O # # WARNING: if you are making ircd SUID or SGID, check config.h to make sure # you are not defining CMDLINE_CONFIG -IRCDMODE = 4711 +IRCDMODE = 0755 # IRCDDIR must be the same as DPATH in include/config.h # @@ -82,7 +82,7 @@ IRCDDIR=/usr/local/lib/ircd SHELL=/bin/sh SUBDIRS=common ircd BINDIR=$(IRCDDIR) -MANDIR=/usr/local/man +MANDIR=$(IRCDDIR)/man INSTALL=/usr/bin/install MAKE=make 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'IRCDLIBS=${IRCDLIBS}' \ @@ -104,7 +104,11 @@ build: @for i in $(SUBDIRS); do \ echo "Building $$i";\ cd $$i;\ - ${MAKE} build; cd ..;\ + ${MAKE} build;\ + if [ $$? -ne 0 ]; then\ + break;\ + fi;\ + cd ..;\ done clean: diff --git a/common/bsd.c b/common/bsd.c index 9853d56..77b2c5c 100644 --- a/common/bsd.c +++ b/common/bsd.c @@ -29,11 +29,6 @@ Computing Center and Jarkko Oikarinen"; #include "h.h" #include -extern int errno; /* ...seems that errno.h doesn't define this everywhere */ -#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__bsdi__) -extern char *sys_errlist[]; -#endif - extern char *last_dead_comment; #ifdef DEBUGMODE diff --git a/common/match.c b/common/match.c index 4f0a90e..8740979 100644 --- a/common/match.c +++ b/common/match.c @@ -45,10 +45,12 @@ static int calls = 0; */ static int _match(mask, name) -char *mask, *name; +const char *mask; +const char *name; { Reg1 u_char *m = (u_char *)mask, *n = (u_char *)name; - char *ma = mask, *na = name; + const char *ma = mask; + const char *na = name; int wild = 0, q = 0; while (1) @@ -112,15 +114,13 @@ char *mask, *name; /* * External interfaces to the above matching routine. */ -int match(ma, na) -char *ma, *na; +int match(const char *ma, const char *na) { calls = 0; return _match(ma, na); } -int matches(ma, na) -char *ma,*na; +int matches(const char *ma, const char *na) { int r; @@ -166,51 +166,6 @@ char *pattern; } -/* -** Case insensitive comparison of two NULL terminated strings. -** -** returns 0, if s1 equal to s2 -** <0, if s1 lexicographically less than s2 -** >0, if s1 lexicographically greater than s2 -*/ -int mycmp(s1, s2) -const char *s1; -const char *s2; - { - Reg1 const unsigned char *str1 = (const unsigned char *)s1; - Reg2 const unsigned char *str2 = (const unsigned char *)s2; - Reg3 int res; - - while ((res = toupper(*str1) - toupper(*str2)) == 0) - { - if (*str1 == '\0') - return 0; - str1++; - str2++; - } - return (res); - } - - -int myncmp(str1, str2, n) -const char *str1; -const char *str2; -int n; - { - Reg1 const unsigned char *s1 = (const unsigned char *)str1; - Reg2 const unsigned char *s2 = (const unsigned char *)str2; - Reg3 int res; - - while ((res = toupper(*s1) - toupper(*s2)) == 0) - { - s1++; s2++; n--; - if (n == 0 || (*s1 == '\0' && *s2 == '\0')) - return 0; - } - return (res); - } - - unsigned char tolowertab[] = { 0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10, 0x11, 0x12, 0x13, 0x14, diff --git a/common/parse.c b/common/parse.c index c452e16..19fc391 100644 --- a/common/parse.c +++ b/common/parse.c @@ -92,7 +92,7 @@ int *count; if (!MyClient(c2ptr)) /* implies mine and a user */ continue; if ((!host || !match(host, c2ptr->user->host)) && - mycmp(user, c2ptr->user->username) == 0) + strcasecmp(user, c2ptr->user->username) == 0) { (*count)++; res = c2ptr; @@ -135,7 +135,7 @@ char *mask; if (!IsServer(acptr) && !IsMe(acptr)) continue; if (!match(mask, acptr->name)) - break; continue; + break; } return acptr; } @@ -310,7 +310,7 @@ struct Message *mptr; if (s) *s++ = '\0'; for (; mptr->cmd; mptr++) - if (mycmp(mptr->cmd, ch) == 0) + if (strcasecmp(mptr->cmd, ch) == 0) break; if (!mptr->cmd) @@ -394,8 +394,11 @@ struct Message *mptr; } } para[++i] = NULL; - if (mptr == NULL) + if (mptr == NULL) { + numeric = (*ch - '0') * 100 + (*(ch + 1) - '0') * 10 + + (*(ch + 2) - '0'); return (do_numeric(numeric, cptr, from, i, para)); + } mptr->count++; if (!IsRegistered(cptr) && ( /* patch to avoid server flooding from unregistered connects : --dl */ diff --git a/common/send.c b/common/send.c index c9e1484..020fe77 100644 --- a/common/send.c +++ b/common/send.c @@ -36,6 +36,7 @@ Computing Center and Jarkko Oikarinen"; #include "sys.h" #include "h.h" #include +#include static char sendbuf[2048]; static void sendbufto_one PROTO((aClient *)); @@ -163,13 +164,10 @@ aClient *to; ** send message to single client */ #ifdef USE_VARARGS -void sendto_one(to, pattern, va_alist) -aClient *to; -char *pattern; -va_dcl +void sendto_one(aClient *to, char *pattern, ...) { va_list vl; - va_start(vl); + va_start(vl, pattern); vsendto_one(to, pattern, vl); va_end(vl); } @@ -287,11 +285,7 @@ aChannel *chptr; char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8; { # else -void sendto_channel_butone(one, from, chptr, pattern, va_alist) -aClient *one, *from; -aChannel *chptr; -char *pattern; -va_dcl +void sendto_channel_butone(aClient *one, aClient *from, aChannel *chptr, char *pattern, ...) { va_list vl; # endif @@ -300,7 +294,7 @@ va_dcl Reg3 int i; # ifdef USE_VARARGS - va_start(vl); + va_start(vl, pattern); # endif for (i = 0; i < MAXCONNECTIONS; i++) sentalong[i] = 0; @@ -356,17 +350,14 @@ aClient *one; char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8; { # else -void sendto_serv_butone(one, pattern, va_alist) -aClient *one; -char *pattern; -va_dcl +void sendto_serv_butone(aClient *one, char *pattern, ...) { va_list vl; # endif Reg1 Dlink *lp; # ifdef USE_VARARGS - va_start(vl); + va_start(vl, pattern); (void)vsprintf(sendbuf, pattern, vl); va_end(vl); # else @@ -395,10 +386,7 @@ aClient *user; char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8; { # else -void sendto_common_channels(user, pattern, va_alist) -aClient *user; -char *pattern; -va_dcl +void sendto_common_channels(aClient *user, char *pattern, ...) { va_list vl; # endif @@ -407,7 +395,7 @@ va_dcl Reg3 Link *lp; # ifdef USE_VARARGS - va_start(vl); + va_start(vl, pattern); # endif for (i = 0; i <= highest_fd; i++) @@ -455,19 +443,17 @@ aClient *from; char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8; { #else -void sendto_channel_butserv(chptr, from, pattern, va_alist) -aChannel *chptr; -aClient *from; -char *pattern; -va_dcl +void sendto_channel_butserv(aChannel *chptr, aClient *from, char *pattern, ...) { va_list vl; #endif Reg1 Link *lp; Reg2 aClient *acptr; + va_start(vl, pattern); + #ifdef USE_VARARGS - for (va_start(vl), lp = chptr->members; lp; lp = lp->next) + for (lp = chptr->members; lp; lp = lp->next) if (MyConnect(acptr = lp->value.cptr) && !(lp->flags & CHFL_ZOMBIE)) vsendto_prefix_one(acptr, from, pattern, vl); @@ -520,11 +506,7 @@ aClient *from; char *format, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8, *p9; { #else -void sendto_match_servs(chptr, from, format, va_alist) -aChannel *chptr; -aClient *from; -char *format; -va_dcl +void sendto_match_servs(aChannel *chptr, aClient *from, char *format, ...) { va_list vl; #endif @@ -533,13 +515,13 @@ va_dcl char *mask; #ifdef USE_VARARGS - va_start(vl); + va_start(vl, format); #endif if (chptr) { if (*chptr->chname == '&') return; - if (mask = (char *)rindex(chptr->chname, ':')) + if ((mask = (char *)rindex(chptr->chname, ':'))) mask++; } else @@ -576,11 +558,7 @@ int what; char *mask, *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8; { #else -void sendto_match_butone(one, from, mask, what, pattern, va_alist) -aClient *one, *from; -int what; -char *mask, *pattern; -va_dcl +void sendto_match_butone(aClient *one, aClient *from, char *mask, int what, char *pattern, ...) { va_list vl; #endif @@ -588,7 +566,7 @@ va_dcl Reg2 aClient *cptr, *acptr; #ifdef USE_VARARGS - va_start(vl); + va_start(vl, pattern); #endif for (i = 0; i <= highest_fd; i++) { @@ -639,10 +617,7 @@ aClient *one, *from; char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8; { #else -void sendto_all_butone(one, from, pattern, va_alist) -aClient *one, *from; -char *pattern; -va_dcl +void sendto_all_butone(aClient *one, aClient *from, char *pattern, ...) { va_list vl; #endif @@ -650,7 +625,8 @@ va_dcl Reg2 aClient *cptr; #ifdef USE_VARARGS - for (va_start(vl), i = 0; i <= highest_fd; i++) + va_start(vl, pattern); + for (i = 0; i <= highest_fd; i++) if ((cptr = local[i]) && !IsMe(cptr) && one != cptr) vsendto_prefix_one(cptr, from, pattern, vl); va_end(vl); @@ -676,10 +652,7 @@ aClient *one; char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7; { #else -void sendto_lops_butone(one, pattern, va_alist) -aClient *one; -char *pattern; -va_dcl +void sendto_lops_butone(aClient *one, char *pattern, ...) { va_list vl; #endif @@ -689,7 +662,7 @@ va_dcl (void)sprintf(nbuf, ":%s NOTICE %%s :*** Notice -- ", me.name); #ifdef USE_VARARGS - va_start(vl); + va_start(vl, pattern); (void)vsprintf(nbuf + strlen(nbuf), pattern, vl); va_end(vl); #else @@ -719,9 +692,7 @@ void sendto_ops(pattern, p1, p2, p3, p4, p5, p6, p7) char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7; { #else -void sendto_ops(pattern, va_alist) -char *pattern; -va_dcl +void sendto_ops(char *pattern, ...) { va_list vl; #endif @@ -731,7 +702,7 @@ va_dcl char *fmt_target; #ifdef USE_VARARGS - va_start(vl); + va_start(vl, pattern); #endif (void)sprintf(fmt, ":%s NOTICE ", me.name); @@ -784,10 +755,7 @@ aClient *one, *from; char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8; { #else -void sendto_ops_butone(one, from, pattern, va_alist) -aClient *one, *from; -char *pattern; -va_dcl +void sendto_ops_butone(aClient *one, aClient *from, char *pattern, ...) { va_list vl; #endif @@ -795,7 +763,7 @@ va_dcl Reg2 aClient *cptr; #ifdef USE_VARARGS - va_start(vl); + va_start(vl, pattern); #endif for (i=0; i <= highest_fd; i++) sentalong[i] = 0; @@ -829,14 +797,10 @@ va_dcl * -avalon */ #ifdef USE_VARARGS -void sendto_prefix_one(to, from, pattern, va_alist) -Reg1 aClient *to; -Reg2 aClient *from; -char *pattern; -va_dcl +void sendto_prefix_one(aClient *to, aClient *from, char *pattern, ...) { va_list vl; - va_start(vl); + va_start(vl, pattern); vsendto_prefix_one(to, from, pattern, vl); va_end(vl); } @@ -865,7 +829,7 @@ char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8; par = p1; #endif if (to && from && MyClient(to) && IsPerson(from) && - !mycmp(par, from->name)) + !strcasecmp(par, from->name)) { user = from->user; (void)strcpy(sender, from->name); @@ -918,9 +882,7 @@ void sendto_realops(pattern, p1, p2, p3, p4, p5, p6, p7) char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7; { #else -void sendto_realops(pattern, va_alist) -char *pattern; -va_dcl +void sendto_realops(char *pattern, ...) { va_list vl; #endif @@ -930,7 +892,7 @@ va_dcl Reg3 char *fmt_target; #ifdef USE_VARARGS - va_start(vl); + va_start(vl, pattern); #endif (void)sprintf(fmt, ":%s NOTICE ", me.name); diff --git a/common/support.c b/common/support.c index 22d62a0..4ec1b77 100644 --- a/common/support.c +++ b/common/support.c @@ -30,6 +30,7 @@ static char sccsid[] = "@(#)support.c 2.21 4/13/94 1990, 1991 Armin Gruner;\ #include "struct.h" #include "common.h" #include "sys.h" +#include "h.h" extern int errno; /* ...seems that errno.h doesn't define this everywhere */ extern void outofmemory(); @@ -187,7 +188,8 @@ void *tz; /* Unused */ #if defined(DEBUGMODE) void dumpcore(msg, p1, p2, p3, p4, p5, p6, p7, p8, p9) -char *msg, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8, *p9; +char *msg; +void *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8, *p9; { static time_t lastd = 0; static int dumps = 0; @@ -218,8 +220,8 @@ char *msg, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8, *p9; (void)rename("core", corename); Debug((DEBUG_FATAL, "Dumped core : core.%d", p)); sendto_ops("Dumped core : core.%d", p); - Debug((DEBUG_FATAL, msg, p1, p2, p3, p4, p5, p6, p7, p8, p9)); - sendto_ops(msg, p1, p2, p3, p4, p5, p6, p7, p8, p9); + Debug((DEBUG_FATAL, msg, (char*)p1, (char*)p2, (char*)p3, (char*)p4, (char*)p5, (char*)p6, (char*)p7, (char*)p8, (char*)p9)); + sendto_ops(msg, (char*)p1, (char*)p2, (char*)p3, (char*)p4, (char*)p5, (char*)p6, (char*)p7, (char*)p8, (char*)p9); (void)s_die(); } @@ -301,11 +303,12 @@ size_t y; return ret + SZ_CHST; } -void MyFree(x) -char *x; +void MyFree(x_) +void *x_; { size_t i; char *j; + char *x = x_; u_char k[4]; register int l; register char **s; diff --git a/include/common.h b/include/common.h index bc18ec0..58dc0b9 100644 --- a/include/common.h +++ b/include/common.h @@ -56,9 +56,6 @@ void free(); #include MALLOCH #endif -extern int matches PROTO((char *, char *)); -extern int mycmp PROTO((const char *, const char *)); -extern int myncmp PROTO((const char *, const char *, int)); #ifdef NEED_STRTOK extern char *strtok PROTO((char *, char *)); #endif @@ -67,6 +64,10 @@ extern char *strtoken PROTO((char **, char *, char *)); #endif #ifdef NEED_INET_ADDR extern unsigned long inet_addr PROTO((char *)); +#else +#include +#include +#include #endif #if defined(NEED_INET_NTOA) || defined(NEED_INET_NETOF) diff --git a/include/config.h b/include/config.h index a58af61..f972363 100644 --- a/include/config.h +++ b/include/config.h @@ -69,9 +69,12 @@ ** Define this to prevent mixed case userids that clonebots use. ** It is strongly advised to define this, unless you have a known reason ** not to. + + * In fact, I do. It's fucking 2017 and mixed case is no longer any kind of + * indicator on compromised hosts. */ -#define DISALLOW_MIXED_CASE +#undef DISALLOW_MIXED_CASE /* ** The mixed case patch can optionally notify opers when an invalid uid @@ -200,8 +203,8 @@ * FNAME_USERLOG just logs user connections, FNAME_OPERLOG logs every * successful use of /oper. These are either full paths or files within DPATH. */ -#define FNAME_USERLOG "/usr/local/lib/ircd/users" /* */ -/* #define FNAME_OPERLOG "/usr/local/lib/ircd/opers" /* */ +/* #define FNAME_USERLOG "/usr/local/lib/ircd/users" */ +/* #define FNAME_OPERLOG "/usr/local/lib/ircd/opers" */ /* CHROOTDIR * @@ -554,7 +557,7 @@ * support NOSPOOF will have to type /QUOTE PING before * registration. */ -#define CONNECTTIMEOUT 90 /* Recommended value: 90 */ +#define CONNECTTIMEOUT 10 /* Recommended value: 90 */ /* * Max time from the nickname change that still causes KILL @@ -615,11 +618,11 @@ #endif #ifdef DEBUGMODE -extern void debug(); +extern void debug(int level, char *form, ...); # define Debug(x) debug x # define LOGFILE LPATH #else -# define Debug(x) ; +# define Debug(x) do { } while(0); # if VMS # define LOGFILE "NLA0:" # else diff --git a/include/h.h b/include/h.h index 8308a35..f6e0a12 100644 --- a/include/h.h +++ b/include/h.h @@ -70,8 +70,9 @@ extern int find_restrict PROTO((aClient *)); extern int rehash PROTO((aClient *, aClient *, int)); extern int initconf PROTO((int)); -extern char *MyMalloc PROTO((int)), *MyRealloc PROTO((char *, int)); -extern char *debugmode, *configfile, *sbrk0; +extern char *MyMalloc PROTO((size_t)), *MyRealloc PROTO((char *, size_t)); +extern char *debugmode, *configfile; +extern void *sbrk0; extern char *getfield PROTO((char *)); extern void get_sockhost PROTO((aClient *, char *)); extern char *rpl_str PROTO((int)), *err_str PROTO((int)); @@ -118,34 +119,22 @@ extern void end_ping PROTO((aClient *)); extern void cancel_ping PROTO((aClient *, aClient *)); extern void send_queued PROTO((aClient *)); -/*VARARGS2*/ -extern void sendto_one(); +extern void sendto_one(aClient *to, char *pattern, ...); extern void vsendto_one(); -/*VARARGS4*/ -extern void sendto_channel_butone(); -/*VARARGS2*/ -extern void sendto_serv_butone(); -/*VARARGS2*/ -extern void sendto_common_channels(); -/*VARARGS3*/ -extern void sendto_channel_butserv(); -/*VARARGS3*/ -extern void sendto_match_servs(); -/*VARARGS5*/ -extern void sendto_match_butone(); -/*VARARGS3*/ -extern void sendto_all_butone(); -/*VARARGS1*/ -extern void sendto_ops(); -/*VARARGS2*/ -extern void sendto_lops_butone(); -/*VARARGS3*/ -extern void sendto_ops_butone(); -/*VARARGS3*/ -extern void sendto_prefix_one(); +extern void sendto_channel_butone(aClient *one, aClient *from, aChannel *chptr, char *pattern, ...); +extern void sendto_serv_butone(aClient *one, char *pattern, ...); +extern void sendto_common_channels(aClient *user, char *pattern, ...); +extern void sendto_channel_butserv(aChannel *chptr, aClient *from, char *pattern, ...); +extern void sendto_match_servs(aChannel *chptr, aClient *from, char *format, ...); +extern void sendto_match_butone(aClient *one, aClient *from, char *mask, int what, char *pattern, ...); +extern void sendto_all_butone(aClient *one, aClient *from, char *pattern, ...); +extern void sendto_ops(char *pattern, ...); +extern void sendto_lops_butone(aClient *one, char *pattern, ...); +extern void sendto_ops_butone(aClient *one, aClient *from, char *pattern, ...); +extern void sendto_prefix_one(aClient *to, aClient *from, char *pattern, ...); extern void vsendto_prefix_one(); -/*VARARGS4*/ -extern int exit_client_msg(); +extern void sendto_realops(char *pattern, ...); +extern int exit_client_msg(aClient *cptr, aClient *bcptr, aClient *sptr, char *pattern, ...); extern int writecalls, writeb[]; extern int deliver_it PROTO((aClient *, char *, int)); @@ -229,14 +218,28 @@ extern void off_history PROTO((aClient *)); extern int dopacket PROTO((aClient *, char *, int)); -/*VARARGS2*/ -extern void debug(); +extern void debug PROTO((int level, char *form, ...)); #if defined(DEBUGMODE) extern void send_usage PROTO((aClient *, char *)); extern void send_listinfo PROTO((aClient *, char *)); -extern void count_memory PROTO((aClient *, char *)); +extern void MyFree(void *x); +extern void dumpcore(); #endif +extern void count_memory PROTO((aClient *, char *)); char *crule_parse PROTO((char *)); int crule_eval PROTO((char *)); void crule_free PROTO((char **)); + +extern char *collapse PROTO((char *pattern)); +extern int match PROTO((const char *ma, const char *na)); +extern int matches PROTO((const char *ma, const char *na)); +extern void read_ping PROTO((aClient *cptr)); +extern void send_ping PROTO((aClient *cptr)); +extern int ping_server PROTO((aClient *cptr, struct hostent *hp)); +extern void delist_conf PROTO((aConfItem *aconf)); +extern u_long cres_mem PROTO((aClient *sptr)); +extern int hash_nick_name PROTO((char *nname)); +extern VOIDSIG s_die(); +extern unsigned long ircrandom(void); + diff --git a/include/inet.h b/include/inet.h index 8cf7e76..3f87de0 100644 --- a/include/inet.h +++ b/include/inet.h @@ -28,6 +28,7 @@ #define __u_l unsigned long #endif +#if 0 #ifdef __STDC__ extern __u_l inet_addr(char *); extern char *inet_ntoa(char *); @@ -48,3 +49,4 @@ extern __u_l inet_lnaof(); extern __u_l inet_netof(); #endif #undef __u_l +#endif diff --git a/include/nameser.h b/include/nameser.h index bfcc8b0..53bd89f 100644 --- a/include/nameser.h +++ b/include/nameser.h @@ -42,7 +42,7 @@ #define QUERY 0x0 /* standard query */ #define IQUERY 0x1 /* inverse query */ #define STATUS 0x2 /* nameserver status query */ -/*#define xxx 0x3 /* 0x3 reserved */ +/*#define xxx 0x3 0x3 reserved */ /* non standard */ #define UPDATEA 0x9 /* add resource record */ #define UPDATED 0xa /* delete a specific resource record */ @@ -246,3 +246,6 @@ extern u_long _getlong(); (cp)[0] = l >> 8; \ (cp) += sizeof(u_long); \ } + +int res_init(); + diff --git a/include/resolv.h b/include/resolv.h index d9feb76..d11f5bd 100644 --- a/include/resolv.h +++ b/include/resolv.h @@ -75,4 +75,7 @@ struct state { extern struct state _res; extern char *p_cdname(), *p_rr(), *p_type(), *p_class(), *p_time(); +extern int dn_comp(char *exp_dn, char *comp_dn, int length, char **dnptrs, char **lastdnptr); +extern void putshort(u_short s, char *msgp); +extern void putlong(u_long l, char *msgp); diff --git a/include/setup.h b/include/setup.h new file mode 100644 index 0000000..00e63b4 --- /dev/null +++ b/include/setup.h @@ -0,0 +1,30 @@ +#ifndef __setup_include__ +#define __setup_include__ +/* Fuck your build system and everything about it. + * Just edit this file instead of letting Config be dumb. + */ +#undef PARAMH +#define UNISTDH +#define STDLIBH +#define STDDEFH +#undef SYSSYSLOGH +#define NOINDEX +#undef NEED_STRERROR +#define NEED_STRTOKEN +#undef NEED_STRTOK +#undef NEED_INET_ADDR +#undef NEED_INET_NTOA +#undef NEED_INET_NETOF +/* This one doesn't even do anything?! */ +#define GETTIMEOFDAY +/* If set, lrand48() is used over gettimeofday... And Config seems to make + * gettimeofday the *preferred* option. + * wat + */ +#undef LRAND48 +#define MALLOCH +#define NBLOCK_POSIX +#define POSIX_SIGNALS +#undef TIMES_2 +#define GETRUSAGE_2 +#endif diff --git a/include/sys.h b/include/sys.h index 4d1da7a..af63f24 100644 --- a/include/sys.h +++ b/include/sys.h @@ -37,23 +37,8 @@ #include #endif -#ifdef STRINGSH #include -#else -# ifdef STRINGH -# include -# endif -#endif -#define strcasecmp mycmp -#define strncasecmp myncmp -#ifdef NOINDEX -#define index strchr -#define rindex strrchr -/* -extern char *index PROTO((char *, char)); -extern char *rindex PROTO((char *, char)); -*/ -#endif +#include #ifdef AIX #include @@ -108,7 +93,7 @@ typedef unsigned int u_int; #endif #ifdef USE_VARARGS -#include +#include #endif #endif /* __sys_include__ */ diff --git a/ircd/Makefile b/ircd/Makefile index db41de0..1bab3ef 100644 --- a/ircd/Makefile +++ b/ircd/Makefile @@ -75,7 +75,7 @@ LINTFLAGS=-hba # are not part of your system libraries. In all cases you should try your # system libraries before these. # -#RES=res_init.o res_comp.o res_mkquery.o +RES=res_init.o res_comp.o res_mkquery.o COMMONOBJS=../common/bsd.o ../common/dbuf.o ../common/packet.o \ ../common/send.o ../common/match.o ../common/parse.o \ @@ -92,7 +92,6 @@ COMMONSRC=$(COMMONOBJS:%.o=%.c) MAKE = make 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'IRCDLIBS=${IRCDLIBS}' \ 'LDFLAGS=${LDFLAGS}' 'IRCDMODE=${IRCDMODE}' - all: build build: ircd chkconf @@ -100,7 +99,7 @@ build: ircd chkconf ircd: $(OBJS) ../include/patchlevel.h $(SHELL) version.c.SH $(CC) $(CFLAGS) -c version.c - $(CC) $(CFLAGS) $(OBJS) version.o $(LDFLAGS) $(IRCDLIBS) -o ircd + $(CC) $(CFLAGS) $(OBJS) version.o $(LDFLAGS) -lcrypt $(IRCDLIBS) -o ircd chmod $(IRCDMODE) ircd chkconf: ../include/struct.h ../include/config.h ../include/sys.h \ diff --git a/ircd/channel.c b/ircd/channel.c index c16088e..709b538 100644 --- a/ircd/channel.c +++ b/ircd/channel.c @@ -204,7 +204,7 @@ char *banid; !match(banid, ban->value.ban.banstr)) return -1; } - else if (!mycmp(ban->value.ban.banstr, banid)) + else if (!strcasecmp(ban->value.ban.banstr, banid)) return -1; } @@ -235,7 +235,7 @@ char *banid; if (!banid) return -1; for (ban = &(chptr->banlist); *ban; ban = &((*ban)->next)) - if (mycmp(banid, (*ban)->value.ban.banstr)==0) + if (strcasecmp(banid, (*ban)->value.ban.banstr)==0) { tmp = *ban; *ban = tmp->next; @@ -428,10 +428,10 @@ aChannel *chptr; member = IsMember(cptr, chptr); lp = find_user_link(chptr->members, cptr); -if ((!lp || !(lp->flags & (CHFL_CHANOP|CHFL_VOICE)) || - (lp->flags & CHFL_ZOMBIE)) && MyClient(cptr) && - is_banned(cptr, chptr)) - return (MODE_BAN); + if ((!lp || !(lp->flags & (CHFL_CHANOP|CHFL_VOICE)) || + (lp->flags & CHFL_ZOMBIE)) && MyClient(cptr) && + is_banned(cptr, chptr)) + return (MODE_BAN); if (chptr->mode.mode & MODE_MODERATED && (!lp || !(lp->flags & (CHFL_CHANOP|CHFL_VOICE)) || @@ -489,6 +489,27 @@ aChannel *chptr; return; } +static inline int DoesOp(modebuf) +char *modebuf; +{ + modebuf--; /* Is it possible that a mode starts with o and not +o ? */ + while (*++modebuf) if (*modebuf=='o' || *modebuf=='v') return(1); + return 0; +} + +static void sendmodeto_one(cptr, from, name, mode, param, creationtime) +Reg2 aClient *cptr; +char *from,*name,*mode,*param; +time_t creationtime; +{ + if (IsServer(cptr) && DoesOp(mode) && creationtime) + sendto_one(cptr,":%s MODE %s %s %s %lu", + from, name, mode, param, creationtime); + else + sendto_one(cptr,":%s MODE %s %s %s", + from, name, mode, param); +} + static int send_mode_list(cptr, chname, creationtime, top, mask, flag) aClient *cptr; Link *top; @@ -679,27 +700,6 @@ char *parv[]; return 0; } -int DoesOp(modebuf) -char *modebuf; -{ - modebuf--; /* Is it possible that a mode starts with o and not +o ? */ - while (*++modebuf) if (*modebuf=='o' || *modebuf=='v') return(1); - return 0; -} - -int sendmodeto_one(cptr, from, name, mode, param, creationtime) -Reg2 aClient *cptr; -char *from,*name,*mode,*param; -time_t creationtime; -{ - if (IsServer(cptr) && DoesOp(mode) && creationtime) - sendto_one(cptr,":%s MODE %s %s %s %lu", - from, name, mode, param, creationtime); - else - sendto_one(cptr,":%s MODE %s %s %s", - from, name, mode, param); -} - char *pretty_mask(mask) char *mask; { Reg1 char *cp; @@ -739,7 +739,7 @@ char *parv[], *mbuf, *pbuf; Link *member, *tmp = NULL; u_int whatt = MODE_ADD, bwhatt = 0; int limitset = 0, chasing = 0, bounce; - int nusers, new, len, blen, keychange = 0, opcnt = 0, banlsent = 0; + int nusers = 0, new, len, blen, keychange = 0, opcnt = 0, banlsent = 0; int doesdeop = 0, doesop = 0, hacknotice = 0, change, gotts = 0; char fm = '\0'; aClient *who; @@ -888,7 +888,7 @@ char *parv[], *mbuf, *pbuf; } else if (whatt == MODE_DEL) { - if (mycmp(mode->key, *parv) == 0 || + if (strcasecmp(mode->key, *parv) == 0 || IsServer(cptr)) { lp = &chops[opcnt++]; @@ -968,7 +968,7 @@ char *parv[], *mbuf, *pbuf; break; case 'i' : /* falls through for default case */ if (whatt == MODE_DEL) - while (lp = chptr->invites) + while ((lp = chptr->invites)) del_invite(lp->value.cptr, chptr); default: for (ip = flags; *ip; ip += 2) @@ -1128,7 +1128,7 @@ char *parv[], *mbuf, *pbuf; Reg1 int i = 0; Reg2 char c; char *user, *host; - u_int prev_whatt; + u_int prev_whatt = 0; for (; i < opcnt; i++) { @@ -1136,7 +1136,7 @@ char *parv[], *mbuf, *pbuf; /* * make sure we have correct mode change sign */ - if (whatt != (lp->flags & (MODE_ADD|MODE_DEL))) + if (whatt != (lp->flags & (MODE_ADD|MODE_DEL))) { if (lp->flags & MODE_ADD) { *mbuf++ = '+'; @@ -1149,6 +1149,7 @@ char *parv[], *mbuf, *pbuf; prev_whatt = whatt; whatt = MODE_DEL; } + } len = strlen(pbuf); /* * get c as the mode char and tmp as a pointer to @@ -1185,6 +1186,8 @@ char *parv[], *mbuf, *pbuf; *cp = '\0'; cp = numeric; break; + default: + return -1; } if (len + strlen(cp) + 12 > (size_t) MODEBUFLEN) @@ -1195,7 +1198,7 @@ char *parv[], *mbuf, *pbuf; if (strlen(cp) > (size_t) KEYLEN) *(cp+KEYLEN) = '\0'; if ((whatt == MODE_ADD && (*mode->key=='\0' || - mycmp(mode->key,cp)!=0)) || + strcasecmp(mode->key,cp)!=0)) || (whatt == MODE_DEL && (*mode->key!='\0'))) { if (bounce) { if (*mode->key=='\0') @@ -1326,10 +1329,10 @@ char *parv[], *mbuf, *pbuf; * effect. */ if (*badop!=2 && - ((whatt & MODE_ADD) && - !add_banid(sptr, chptr, cp) || - (whatt & MODE_DEL) && - !del_banid(chptr, cp))) + (((whatt & MODE_ADD) && + !add_banid(sptr, chptr, cp)) || + ((whatt & MODE_DEL) && + !del_banid(chptr, cp)))) { *mbuf++ = c; (void)strcat(pbuf, cp); @@ -1734,8 +1737,9 @@ char *parv[]; if (!zombie) { if (!MyConnect(sptr)) flags = CHFL_DEOPPED; if (sptr->flags & FLAGS_TS8) flags|=CHFL_SERVOPOK; } - if (!chptr || - (MyConnect(sptr) && (i = can_join(sptr, chptr, keys)))) + if (!chptr) + continue; + if ((MyConnect(sptr) && (i = can_join(sptr, chptr, keys)))) /* only a variable change key->keys, just because it's better */ { /* we have the error str in s_err.c, so USE it! -Kev */ @@ -1963,8 +1967,8 @@ char *parv[]; parv[0], user, chptr->chname); continue; } - if ((lp=find_user_link(chptr->members, who)) && - !(lp->flags & CHFL_ZOMBIE) || IsServer(sptr)) + if (((lp=find_user_link(chptr->members, who)) && + !(lp->flags & CHFL_ZOMBIE)) || IsServer(sptr)) { if (who->from!=cptr && ((lp2 && (lp2->flags & CHFL_DEOPPED)) || @@ -2263,7 +2267,7 @@ char *parv[]; defparc = 1; defparv[defparc++] = t = strtok(s, " "); while (t && defparc < MAXPARA) { - if (t = strtok(NULL, " ")) + if ((t = strtok(NULL, " "))) defparv[defparc++] = t; } } @@ -2409,6 +2413,7 @@ char *parv[]; { if (max_users > min_users + 1 && max_time > min_time && max_topic_time > min_topic_time) /* Sanity check */ + { for (chptr = channel; chptr; chptr = chptr->nextch) { if (!sptr->user || @@ -2426,6 +2431,7 @@ char *parv[]; chptr->users, ShowChannel(sptr, chptr)?chptr->topic:""); } + } sendto_one(sptr, rpl_str(RPL_LISTEND), me.name, parv[0]); return 0; } @@ -2581,7 +2587,7 @@ char *parv[]; aChannel *ch3ptr; int showflag = 0, secret = 0; - if (!IsPerson(c2ptr) || sptr!=c2ptr && IsInvisible(c2ptr)) + if (!IsPerson(c2ptr) || (sptr!=c2ptr && IsInvisible(c2ptr))) continue; lp = c2ptr->user->channel; /* diff --git a/ircd/chkconf.c b/ircd/chkconf.c index 2f8351c..08c4a04 100644 --- a/ircd/chkconf.c +++ b/ircd/chkconf.c @@ -47,6 +47,7 @@ static char sccsid[] = "@(#)chkconf.c 1.9 1/30/94 (C) 1993 Darren Reed"; ** but i see h.h isn't included for some reason.. so they're here */ char *crule_parse PROTO((char *rule)); void crule_free PROTO((char **elem)); +int dgets PROTO((int, char *, int)); #undef free #define MyMalloc(x) malloc(x) @@ -62,7 +63,7 @@ static char *configfile = CONFIGFILE; static char nullfield[] = ""; static char maxsendq[12]; -main(argc, argv) +int main(argc, argv) int argc; char *argv[]; { @@ -171,10 +172,10 @@ int opt; aconf->passwd = (char *)NULL; aconf->name = (char *)NULL; aconf->class = (aClass *)NULL; - if (tmp = (char *)index(line, '\n')) + if ((tmp = (char *)index(line, '\n'))) *tmp = 0; else while(dgets(fd, c, sizeof(c) - 1)) - if (tmp = (char *)index(c, '\n')) + if ((tmp = (char *)index(c, '\n'))) { *tmp = 0; break; @@ -207,7 +208,7 @@ int opt; if (!*(tmp+1)) break; else - for (s = tmp; *s = *++s; ) + for (s = tmp; (*s = *(s+1)); ++s) ; tmp++; } @@ -690,7 +691,7 @@ aConfItem *top; { if (aconf->status & CONF_CONNECT_SERVER) otype = CONF_NOCONNECT_SERVER; - else if (aconf->status & CONF_NOCONNECT_SERVER) + else/* if (aconf->status & CONF_NOCONNECT_SERVER)*/ otype = CONF_CONNECT_SERVER; for (bconf = top; bconf; bconf = bconf->next) @@ -698,8 +699,8 @@ aConfItem *top; if (bconf == aconf || !(bconf->status & otype)) continue; if (bconf->class == aconf->class && - !mycmp(bconf->name, aconf->name) && - !mycmp(bconf->host, aconf->host)) + !strcasecmp(bconf->name, aconf->name) && + !strcasecmp(bconf->host, aconf->host)) { aconf->status |= CONF_MATCH; bconf->status |= CONF_MATCH; @@ -713,7 +714,7 @@ aConfItem *top; if ((bconf == aconf) || !(bconf->status & CONF_SERVER_MASK)) continue; - if (!mycmp(bconf->name, aconf->name)) + if (!strcasecmp(bconf->name, aconf->name)) { aconf->status |= CONF_MATCH; break; @@ -746,7 +747,7 @@ u_int status; return '-'; } -outofmemory() +void outofmemory() { (void)write(2, "Out of memory\n", 14); exit(-1); diff --git a/ircd/crule.c b/ircd/crule.c index b5fe368..5bbb449 100644 --- a/ircd/crule.c +++ b/ircd/crule.c @@ -46,7 +46,7 @@ extern aClient *client, *local[]; #include #define BadPtr(x) (!(x) || (*(x) == '\0')) #define DupString(x,y) do{x=(char *)MyMalloc(strlen(y)+1);(void)strcpy(x,y);}while(0) -#define mycmp strcasecmp +#define strcasecmp strcasecmp #endif #ifndef PROTO @@ -164,6 +164,8 @@ void *crulearg[]; return (1); } return (0); +#else + return 1; #endif } @@ -185,6 +187,8 @@ void *crulearg[]; return (1); } return (0); +#else + return 1; #endif } @@ -207,6 +211,8 @@ void *crulearg[]; return (1); } return (0); +#else + return 1; #endif } @@ -226,6 +232,8 @@ void *crulearg[]; return (1); } return (0); +#else + return 1; #endif } @@ -373,16 +381,20 @@ char *rule; crule_treeptr ruleroot = NULL; int errcode = CR_NOERR; - if ((errcode = crule_gettoken (&next_tok, &ruleptr)) == CR_NOERR) + if ((errcode = crule_gettoken (&next_tok, &ruleptr)) == CR_NOERR) { if ((errcode = crule_parseorexpr (&ruleroot, &next_tok, - &ruleptr)) == CR_NOERR) - if (ruleroot != NULL) + &ruleptr)) == CR_NOERR) { + if (ruleroot != NULL) { if (next_tok == CR_END) return ((char *) ruleroot); else errcode = CR_UNEXPCTTOK; - else + } + else { errcode = CR_EXPCTOR; + } + } + } if (ruleroot != NULL) crule_free ((char **) &ruleroot); #if !defined(CR_DEBUG) && !defined(CR_CHKCONF) @@ -583,7 +595,7 @@ char **ruleptr; { for (funcnum = 0; ; funcnum++) { - if (mycmp (crule_funclist[funcnum].name, funcname) == 0) + if (strcasecmp (crule_funclist[funcnum].name, funcname) == 0) break; if (crule_funclist[funcnum].name[0] == '\0') return (CR_UNKNWFUNC); @@ -653,7 +665,7 @@ char **ruleptr; #if !defined(CR_DEBUG) && !defined(CR_CHKCONF) (void) collapse (currarg); #endif - if (!BadPtr (currarg)) + /*if (!BadPtr (currarg)) -- always true */ { DupString (argelemp, currarg); argrootp->arg[argrootp->numargs++] = (void *) argelemp; diff --git a/ircd/crypt/Makefile b/ircd/crypt/Makefile index 7c31ddf..e1a0208 100644 --- a/ircd/crypt/Makefile +++ b/ircd/crypt/Makefile @@ -19,13 +19,13 @@ # # Change this to the path of your local ircd.conf file # -IRCDCONF = /home/407/avalon/ircd.conf +IRCDCONF = /usr/local/lib/ircd/ircd.conf all: mkpasswd crypt: install mkpasswd: mkpasswd.c - cc -O mkpasswd.c -o mkpasswd + cc -O0 -g mkpasswd.c -o mkpasswd -lcrypt install: crypter ${IRCDCONF} diff --git a/ircd/crypt/mkpasswd.c b/ircd/crypt/mkpasswd.c index eb6a855..d4aa931 100644 --- a/ircd/crypt/mkpasswd.c +++ b/ircd/crypt/mkpasswd.c @@ -3,9 +3,14 @@ * You can use this code as long as my name stays with it. */ +#define _XOPEN_SOURCE 500 + +#include +#include #include #include #include +#include extern char *getpass(); @@ -16,6 +21,7 @@ char *argv[]; static char saltChars[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./"; char salt[3]; char * plaintext; + char *key; int i; if (argc < 2) { @@ -28,13 +34,20 @@ char *argv[]; salt[0] = argv[1][0]; salt[1] = argv[1][1]; salt[2] = '\0'; - if ((strchr(saltChars, salt[0]) == NULL) || (strchr(saltChars, salt[1]) == NULL)) + if ((strchr(saltChars, salt[0]) == NULL) || (strchr(saltChars, salt[1]) == NULL)) { fprintf(stderr, "illegal salt %s\n", salt), exit(1); + return 1; + } } plaintext = getpass("plaintext: "); - printf("%s\n", crypt(plaintext, salt)); + key = crypt(plaintext, salt); + if (key == NULL) { + fprintf(stderr, "unable to crypt: %s\n", strerror(errno)); + return 1; + } + printf("%s\n", key); return 0; } diff --git a/ircd/hash.c b/ircd/hash.c index 5deb929..48d0515 100644 --- a/ircd/hash.c +++ b/ircd/hash.c @@ -282,7 +282,7 @@ aClient *cptr; if (IsPing(tmp)) continue; #ifdef TESTNET - if (mycmp(name, tmp->name) == 0) + if (strcasecmp(name, tmp->name) == 0) { if (tmp_fnd) sendto_ops("*** DEBUG ERROR *** : Found %s TWICE !", @@ -294,7 +294,7 @@ aClient *cptr; } } #else - if (mycmp(name, tmp->name) == 0) + if (strcasecmp(name, tmp->name) == 0) goto c_move_to_top; #endif } @@ -355,8 +355,8 @@ aClient *cptr; * Got the bucket, now search the chain. */ for (tmp = (aClient *)tmp3->list; tmp; prv = tmp, tmp = tmp->hnext) - if (mycmp(name, tmp->name) == 0 && tmp->user && - mycmp(serv, tmp->user->server->name) == 0) + if (strcasecmp(name, tmp->name) == 0 && tmp->user && + strcasecmp(serv, tmp->user->server->name) == 0) goto c_move_to_top; #ifdef DEBUGMODE @@ -410,7 +410,7 @@ aClient *cptr; { if (!IsServer(tmp) && !IsMe(tmp)) continue; - if (mycmp(server, tmp->name) == 0) + if (strcasecmp(server, tmp->name) == 0) goto s_move_to_top; } t = ((char *)server + strlen(server)); @@ -476,7 +476,7 @@ aChannel *chptr; tmp3 = &channelTable[hashv]; for (tmp = (aChannel *)tmp3->list; tmp; prv = tmp, tmp = tmp->hnextch) - if (mycmp(name, tmp->chname) == 0) + if (strcasecmp(name, tmp->chname) == 0) goto c_move_to_top; #ifdef DEBUGMODE chmiss++; diff --git a/ircd/ircd.c b/ircd/ircd.c index b875525..8e38174 100644 --- a/ircd/ircd.c +++ b/ircd/ircd.c @@ -52,7 +52,7 @@ char *configfile = CONFIGFILE; /* Server configuration file */ int debuglevel = -1; /* Server debug level */ int bootopt = 0; /* Server boot option flags */ char *debugmode = ""; /* -"- -"- -"- */ -char *sbrk0; /* initial sbrk(0) */ +void *sbrk0; /* initial sbrk(0) */ int dorehash = 0; static char *dpath = DPATH; @@ -434,7 +434,7 @@ char *argv[]; struct rlimit corelim; #endif - sbrk0 = (char *)sbrk((size_t)0); + sbrk0 = sbrk(0); uid = getuid(); euid = geteuid(); now = time(NULL); @@ -482,7 +482,7 @@ char *argv[]; char *p = argv[0]+1; int flag = *p++; - if (flag == '\0' || *p == '\0') + if (flag == '\0' || *p == '\0') { if (argc > 1 && argv[1][0] != '-') { p = *++argv; @@ -490,6 +490,7 @@ char *argv[]; } else p = ""; + } switch (flag) { @@ -797,8 +798,8 @@ static void open_debugfile() local[2] = cptr; (void)strcpy(cptr->sockhost, me.sockhost); - (void)printf("isatty = %d ttyname = %#x\n", - isatty(2), (u_int)ttyname(2)); + (void)printf("isatty = %d ttyname = 0x%p\n", + isatty(2), ttyname(2)); if (!(bootopt & BOOT_TTY)) /* leave debugging output on fd 2 */ { (void)truncate(LOGFILE, 0); diff --git a/ircd/list.c b/ircd/list.c index 88aa450..054a209 100644 --- a/ircd/list.c +++ b/ircd/list.c @@ -312,13 +312,14 @@ Link *find_user_link(lp, ptr) Reg1 Link *lp; Reg2 aClient *ptr; { - if (ptr) + if (ptr) { while (lp) { if (lp->value.cptr == ptr) return (lp); lp = lp->next; } + } return NULL; } diff --git a/ircd/note.c b/ircd/note.c index 5f6e68e..a9107ab 100644 --- a/ircd/note.c +++ b/ircd/note.c @@ -81,10 +81,10 @@ #define FLAGS_NEWNICK_DISPLAYED (1<<30) #define DupNewString(x,y) if (!StrEq(x,y)) { MyFree(x); DupString(x,y); } -#define MyEq(x,y) (!myncmp(x,y,strlen(x))) -#undef mycmp -#define mycmp mystrcasecmp /* mycmp sux, making note use double cpu */ -#define Usermycmp(x,y) mycmp(x,y) +#define MyEq(x,y) (!strncasecmp(x,y,strlen(x))) +#undef strcasecmp +#define strcasecmp mystrcasecmp /* strcasecmp sux, making note use double cpu */ +#define Userstrcasecmp(x,y) strcasecmp(x,y) #define Key(sptr) KeyFlags(sptr,-1) #define Message(msgclient) get_msg(msgclient, 'm') #define IsOperHere(sptr) (IsOper(sptr) && MyConnect(sptr)) @@ -375,7 +375,7 @@ aMsgClient *msgclient; msg = Message(msgclient); while (*msg == '%') { msg++; c = split_string(msg, 1, 1); - if (!mycmp(c, nick)) { + if (!strcasecmp(c, nick)) { strcpy(buf, "*"); return buf; } @@ -407,7 +407,7 @@ char *name; while ((s = (b+t) >> 1) != b) { msgclient = ToNameList[s]; tname = (msgclient->flags & FLAGS_SORT_BY_TONAME) ? 1 : 0; - if (mycmp(tname ? msgclient->toname : msgclient->tonick, name) < 0) + if (strcasecmp(tname ? msgclient->toname : msgclient->tonick, name) < 0) b = s; else t = s; } return t; @@ -423,7 +423,7 @@ char *name; while ((s = (b+t) >> 1) != b) { msgclient = ToNameList[s]; tname = (msgclient->flags & FLAGS_SORT_BY_TONAME) ? 1 : 0; - if (mycmp(tname ? msgclient->toname : msgclient->tonick, name) > 0) + if (strcasecmp(tname ? msgclient->toname : msgclient->tonick, name) > 0) t = s; else b = s; } return b; @@ -436,7 +436,7 @@ char *fromname; if (!t) return 0; while ((s = (b+t) >> 1) != b) - if (mycmp(FromNameList[s]->fromname,fromname)<0) b = s; else t = s; + if (strcasecmp(FromNameList[s]->fromname,fromname)<0) b = s; else t = s; return t; } @@ -447,7 +447,7 @@ char *fromname; if (!t) return 0; while ((s = (b+t) >> 1) != b) - if (mycmp(FromNameList[s]->fromname,fromname)>0) t = s; else b = s; + if (strcasecmp(FromNameList[s]->fromname,fromname)>0) t = s; else b = s; return b; } @@ -550,10 +550,10 @@ long32 flags; last = last_fnl_indexnode(fromname); if (!(n = first)) n = 1; index_p = FromNameList+n; - while (n <= last && mycmp(msgclient->fromhost,(*index_p)->fromhost)>0) { + while (n <= last && strcasecmp(msgclient->fromhost,(*index_p)->fromhost)>0) { index_p++;n++; } - while (n <= last && mycmp(msgclient->fromnick,(*index_p)->fromnick)>=0){ + while (n <= last && strcasecmp(msgclient->fromnick,(*index_p)->fromnick)>=0){ index_p++;n++; } index_p = FromNameList+fromname_index; @@ -772,7 +772,7 @@ char *host1,*host2; if (numeric_host(host1) != numeric_host(host2)) return 0; strcpy(buf,local_host(host1)); - if (!mycmp(buf,local_host(host2))) return 1; + if (!strcasecmp(buf,local_host(host2))) return 1; return 0; } @@ -866,8 +866,8 @@ int id; || msgclient->flags & FLAGS_DENY || !matches(msgclient->toname, UserName(sptr)) && !matches(msgclient->tohost, sptr->user->host)) - || !Usermycmp(UserName(sptr),msgclient->fromname)) - && (chn || !mycmp(sptr->name, msgclient->fromnick) + || !Userstrcasecmp(UserName(sptr),msgclient->fromname)) + && (chn || !strcasecmp(sptr->name, msgclient->fromnick) || wild_fromnick(sptr->name, msgclient)) && (!time_l || msgclient->time >= time_l && msgclient->time < time_l+SECONDS_DAY) @@ -1393,14 +1393,14 @@ aChannel *sptr_chn; if (!(msgclient->flags & FLAGS_FROM_REG)) qptr = 0; else for (qptr = client; qptr; qptr = qptr->next) if (qptr->user && !strcmp(UserName(qptr),msgclient->fromname) - && (!mycmp(qptr->name,msgclient->fromnick) + && (!strcasecmp(qptr->name,msgclient->fromnick) || wild_fromnick(qptr->name, msgclient)) && host_check(qptr->user->host,msgclient->fromhost)) break; if (!qptr) msgclient->flags &= ~FLAGS_FROM_REG; } - if (!mycmp(nick, msgclient->tonick) - || !mycmp(nick, get_msg(msgclient, 'n'))) right_tonick = 1; + if (!strcasecmp(nick, msgclient->tonick) + || !strcasecmp(nick, get_msg(msgclient, 'n'))) right_tonick = 1; if (!sptr->user->channel && !IsInvisible(sptr)) secret = 0; if (secret && !IsInvisible(sptr)) for (link = sptr->user->channel; link; link = link->next) @@ -1452,11 +1452,11 @@ aChannel *sptr_chn; if (fmsgclient->flags & FLAGS_DISPLAY_IF_DEST_REGISTER && now < fmsgclient->timeout && fmsgclient != msgclient - && (!mycmp(mode == 'g' ? qptr_nick : qptr->name, + && (!strcasecmp(mode == 'g' ? qptr_nick : qptr->name, fmsgclient->fromnick) || wild_fromnick(mode == 'g' ? qptr_nick :qptr->name, fmsgclient)) - && !Usermycmp(UserName(qptr), fmsgclient->fromname) + && !Userstrcasecmp(UserName(qptr), fmsgclient->fromname) && host_check(qptr->user->host, fmsgclient->fromhost) && !matches(fmsgclient->tonick, nick) && !matches(fmsgclient->toname, UserName(sptr)) @@ -1586,7 +1586,7 @@ aChannel *sptr_chn; qptr->name, nick, buf, "signs off", message); } else { - if (mycmp(nick, newnick) + if (strcasecmp(nick, newnick) && !(msgclient->flags & FLAGS_NO_NICKCHANGE_SPY)) sendto_one(qptr, "NOTICE %s :### %s (%s) %s <%s> %s", @@ -1626,11 +1626,11 @@ aChannel *sptr_chn; while (last && t <= last) { if (ToNameList[t]->timeout > now && ToNameList[t]->flags & FLAGS_SERVER_GENERATED && - !Usermycmp(ToNameList[t]->toname, msgclient->fromname) && - !mycmp(ToNameList[t]->tohost, + !Userstrcasecmp(ToNameList[t]->toname, msgclient->fromname) && + !strcasecmp(ToNameList[t]->tohost, local_host(msgclient->fromhost))) { t1++; - if (!mycmp(Message(ToNameList[t]),mbuf)) { + if (!strcasecmp(Message(ToNameList[t]),mbuf)) { t1 = -1; break; } } @@ -1685,13 +1685,13 @@ while (send && qptr != sptr && last = last_tnl_indexnode(UserName(sptr)); while (last && t <= last) { if (ToNameList[t]->flags & FLAGS_SERVER_GENERATED_DESTINATION - && (!mycmp(ToNameList[t]->fromnick,msgclient->fromnick) + && (!strcasecmp(ToNameList[t]->fromnick,msgclient->fromnick) || wild_fromnick(ToNameList[t]->fromnick, msgclient)) - && !Usermycmp(ToNameList[t]->fromname,msgclient->fromname) + && !Userstrcasecmp(ToNameList[t]->fromname,msgclient->fromname) && host_check(ToNameList[t]->fromhost,msgclient->fromhost) && (!(msgclient->flags & FLAGS_REGISTER_NEWNICK) - || !mycmp(ToNameList[t]->tonick,nick)) - && !Usermycmp(ToNameList[t]->toname,UserName(sptr)) + || !strcasecmp(ToNameList[t]->tonick,nick)) + && !Userstrcasecmp(ToNameList[t]->toname,UserName(sptr)) && host_check(ToNameList[t]->tohost,sptr->user->host)) { send = 0; break; } @@ -1753,7 +1753,7 @@ char mode; if (!host_check(msgclient->fromhost, sptr->user->host)) { t++; continue; } - if (!mycmp(qptr_nick, msgclient->fromnick) + if (!strcasecmp(qptr_nick, msgclient->fromnick) || wild_fromnick(qptr_nick, msgclient)) { if (msgclient->flags & FLAGS_DISPLAY_IF_DEST_REGISTER) update_spymsg(msgclient); @@ -1810,7 +1810,7 @@ char mode; && !matches(msgclient->tohost, sptr->user->host) && (mode != 's' && mode != 'g' || (wild_fromnick(qptr_nick, msgclient) - || !mycmp(qptr_nick, msgclient->fromnick)) + || !strcasecmp(qptr_nick, msgclient->fromnick)) && host_check(msgclient->fromhost, qptr->user->host))) { message = check_flags(aptr, sptr, qptr, tonick, newnick, @@ -1943,8 +1943,8 @@ char *param; long32 gflags = 0; name = split_string(param, 2, 1); - if (!mycmp(name, "CHANNEL")) channel = 1; - else if (!mycmp(name, "DENY")) deny = 1; + if (!strcasecmp(name, "CHANNEL")) channel = 1; + else if (!strcasecmp(name, "DENY")) deny = 1; else return; strncpyzt(toserver, split_string(param, 1, 1), BUF_LEN-1); strncpyzt(password_s, split_string(param, 3, 1), BUF_LEN-1); @@ -1960,7 +1960,7 @@ char *param; if (channel && (!index(toserver, '.') || strlen(message) < 10 || !note_headchannel(tonick))) return; - if (!mycmp(me.name, sptr->name) + if (!strcasecmp(me.name, sptr->name) || !xrm_distribute_privs(fromname, fromhost)) goto just_distribute; #ifdef EPATH @@ -1988,9 +1988,9 @@ char *param; if (now < msgclient->timeout && (!channel || msgclient->flags & FLAGS_CHANNEL) && (!deny || msgclient->flags & FLAGS_DENY) - && !mycmp(msgclient->tonick, tonick) - && (channel || !mycmp(msgclient->toname, toname)) - && (channel || !mycmp(msgclient->tohost, tohost))) { + && !strcasecmp(msgclient->tonick, tonick) + && (channel || !strcasecmp(msgclient->toname, toname)) + && (channel || !strcasecmp(msgclient->tohost, tohost))) { index_p = WildCardList; break; } t++; @@ -2009,14 +2009,14 @@ char *param; /* If new request isn't equal, but matches old, remove old */ if (!matches(toname, msgclient->toname) && !matches(tohost, msgclient->tohost) - && (mycmp(toname, msgclient->toname) - || mycmp(tohost, msgclient->tohost))) msgclient->timeout = 0; + && (strcasecmp(toname, msgclient->toname) + || strcasecmp(tohost, msgclient->tohost))) msgclient->timeout = 0; /* If old request matches new... */ else if (!matches(msgclient->toname, toname) && !matches(msgclient->tohost, tohost)) { if (root_call && (!strcmp(password, msgclient->passwd) - || !mycmp(fromname, msgclient->fromname) + || !strcasecmp(fromname, msgclient->fromname) && host_check(fromhost, msgclient->fromhost) || !*msgclient->passwd || !msgclient->passwd[1])) root_access = 1; @@ -2224,9 +2224,9 @@ char *message; long32 gflags = 0; char buf[MSG_LEN], *c; - if ((!mycmp(sptr->name, msgclient->fromnick) + if ((!strcasecmp(sptr->name, msgclient->fromnick) || wild_fromnick(sptr->name, msgclient)) - && !Usermycmp(UserName(sptr),msgclient->fromname) + && !Userstrcasecmp(UserName(sptr),msgclient->fromname) && host_check(sptr->user->host, msgclient->fromhost)) return; sprintf(buf,"%s (%s@%s) %s for %s@%s", sptr->name, UserName(sptr), @@ -2249,7 +2249,7 @@ char *arg, *passwd, *flag_s, *id_s, *name, *time_s; time_t flags = 0, time_l; char dibuf[40], tonick[BUF_LEN], toname[BUF_LEN], tohost[BUF_LEN]; - if (!mycmp(arg,"XRM")) xrm = 1; + if (!strcasecmp(arg,"XRM")) xrm = 1; if (xrm && (!IsOper(sptr) || !xrm_distribute_privs(sptr->user->username, sptr->user->host))) { @@ -2377,12 +2377,12 @@ char *arg, *value; aMsgClient *msgclient; if (*arg) { - if (!mycmp(arg,"MSM")) setvar(sptr,¬e_msm,0,value); else - if (!mycmp(arg,"MSW")) setvar(sptr,¬e_msw,3,value); else - if (!mycmp(arg,"MUM")) setvar(sptr,¬e_mum,6,value); else - if (!mycmp(arg,"MUW")) setvar(sptr,¬e_muw,9,value); else - if (!mycmp(arg,"MST")) setvar(sptr,¬e_mst,12,value); else - if (!mycmp(arg,"MSF")) setvar(sptr,¬e_msf,15,value); else + if (!strcasecmp(arg,"MSM")) setvar(sptr,¬e_msm,0,value); else + if (!strcasecmp(arg,"MSW")) setvar(sptr,¬e_msw,3,value); else + if (!strcasecmp(arg,"MUM")) setvar(sptr,¬e_mum,6,value); else + if (!strcasecmp(arg,"MUW")) setvar(sptr,¬e_muw,9,value); else + if (!strcasecmp(arg,"MST")) setvar(sptr,¬e_mst,12,value); else + if (!strcasecmp(arg,"MSF")) setvar(sptr,¬e_msf,15,value); else if (MyEq(arg,"USED")) { while (last && t <= last) { msgclient = FromNameList[t]; @@ -2399,11 +2399,11 @@ char *arg, *value; fromhost = msgclient->fromhost; fromname = msgclient->fromname; fromnick = msgclient->fromnick; - } else if (Usermycmp(msgclient->fromname,fromname)) { + } else if (Userstrcasecmp(msgclient->fromname,fromname)) { nicks++;names++; fromname = msgclient->fromname; fromnick = msgclient->fromnick; - } else if (mycmp(msgclient->fromnick,fromnick)) { + } else if (strcasecmp(msgclient->fromnick,fromnick)) { nicks++; fromnick = msgclient->fromnick; } @@ -2436,7 +2436,7 @@ char *arg, *value; "H-header: ",flag_destination); sendto_one(sptr,"NOTICE %s :### %s",sptr->name,buf); } - } else if (!mycmp(arg,"RESET")) { + } else if (!strcasecmp(arg,"RESET")) { if (!IsOperHere(sptr)) sendto_one(sptr,"NOTICE %s :### %s",sptr->name, "Wrong button - try another next time..."); @@ -2562,7 +2562,7 @@ char mode, *name; int ret = 0, only_users = 0, only_head = 0; if (mode == 'l' && (MyEq("tail", name) || !*name)) only_users = 1; - if (mode == 'l' && (MyEq("head", name) || !mycmp(name, "."))) { + if (mode == 'l' && (MyEq("head", name) || !strcasecmp(name, "."))) { only_head = 1; name = wildcard; } if (!only_users) ret = check_channel(sptr, mode, name, "", ""); @@ -2638,8 +2638,8 @@ char *passwd, *flag_s, *timeout_s, *name, *message; while (last && t <= last) { msgclient = FromNameList[t]; if (now > msgclient->timeout) { t++; continue; } - if (!mycmp(sptr->name, msgclient->fromnick) - && !Usermycmp(UserName(sptr), msgclient->fromname) + if (!strcasecmp(sptr->name, msgclient->fromnick) + && !Userstrcasecmp(UserName(sptr), msgclient->fromname) && host_check(sptr->user->host, msgclient->fromhost) && StrEq(msgclient->tonick, tonick) && StrEq(msgclient->toname, toname) @@ -2655,7 +2655,7 @@ char *passwd, *flag_s, *timeout_s, *name, *message; if (!join && !(flags & FLAGS_WASOPER) && !Key(sptr)) { t = first; while (last && t <= last) { - if (!Usermycmp(UserName(sptr),FromNameList[t]->fromname)) { + if (!Userstrcasecmp(UserName(sptr),FromNameList[t]->fromname)) { if (host_check(sptr->user->host,FromNameList[t]->fromhost)) { sent++; if (wildcards(FromNameList[t]->tonick) @@ -2766,8 +2766,8 @@ char *passwd, *flag_s, *timeout_s, *name, *message; strncat(buf, message, msg_len); strcat(flag_s, "-RS"); while (fromname_index && t <= fromname_index) { msgclient = FromNameList[t]; - if (!Usermycmp(UserName(sptr), msgclient->fromname) - && (!mycmp(sptr->name, msgclient->fromnick) + if (!Userstrcasecmp(UserName(sptr), msgclient->fromname) + && (!strcasecmp(sptr->name, msgclient->fromnick) || wild_fromnick(sptr->name, msgclient) && host_check(sptr->user->host,msgclient->fromhost))) { t++; continue; @@ -2781,10 +2781,10 @@ char *passwd, *flag_s, *timeout_s, *name, *message; && !matches(msgclient->tohost, sptr->user->host) && (!matches(toname, msgclient->tonick) || matches(toname, tonick) - && !mycmp(msgclient->tonick, tonick)) + && !strcasecmp(msgclient->tonick, tonick)) && (!*Message(msgclient) || !matches(Message(msgclient), message)) - || !mycmp(tonick, "admin.users")) + || !strcasecmp(tonick, "admin.users")) && !matches(tohost, msgclient->fromhost) && !(msgclient->flags & FLAGS_KEY_TO_OPEN_OPER_LOCKS)) { c = wild_fromnick(msgclient->fromnick, msgclient); @@ -3013,13 +3013,13 @@ char *arg, *name, *time_s, *delete; && (!matches(fromnick,msgclient->fromnick)) && (!matches(fromname,msgclient->fromname)) && (!matches(fromhost,msgclient->fromhost)) - && (!*delete || !mycmp(delete,"RM") - || !mycmp(delete,"RMBF") && + && (!*delete || !strcasecmp(delete,"RM") + || !strcasecmp(delete,"RMBF") && (msgclient->flags & FLAGS_RETURN_CORRECT_DESTINATION || msgclient->flags & FLAGS_FIND_CORRECT_DEST_SEND_ONCE))) { if (*delete || !next_msgclient - || mycmp(next_msgclient->fromnick,msgclient->fromnick) - || mycmp(next_msgclient->fromname,msgclient->fromname) + || strcasecmp(next_msgclient->fromnick,msgclient->fromnick) + || strcasecmp(next_msgclient->fromname,msgclient->fromname) || !(host_check(next_msgclient->fromhost, msgclient->fromhost))) { sendto_one(sptr,"NOTICE %s :### %s[%d] %s (%s@%s) @%s", @@ -3044,8 +3044,8 @@ char *arg, *name, *time_s, *delete; while (last && t <= last) { msgclient = FromNameList[t]; if (now > msgclient->timeout) { t++; continue; } - if (!Usermycmp(UserName(sptr),msgclient->fromname) - && (!nick || !mycmp(sptr->name,msgclient->fromnick))) { + if (!Userstrcasecmp(UserName(sptr),msgclient->fromname) + && (!nick || !strcasecmp(sptr->name,msgclient->fromnick))) { if (host_check(sptr->user->host,msgclient->fromhost)) { if (!count) sendto_one(sptr,"NOTICE %s :### Queued %s from host %s", @@ -3349,10 +3349,10 @@ char *parv[]; if (parc < 2 || BadPtr(parv[1])) name = empty; else name = strtoken(&p, parv[1], ","); - if (!mycmp(name, "all") || !note_channel(cptr, sptr, 'c', "*" )) + if (!strcasecmp(name, "all") || !note_channel(cptr, sptr, 'c', "*" )) return n_list(cptr, sptr, parc, parv); note_channel(cptr, sptr, 'l', name); - if (!mycmp(name, "help")) + if (!strcasecmp(name, "help")) sendto_one(sptr, "NOTICE %s :*** /list #first_characters_in_chn %s", sptr->name, "or /list . (opermade) or /list (usermade)"); @@ -3393,7 +3393,7 @@ char *parv[]; return -1; } param = parv[1]; - if (parc > 1 && !myncmp(param,"service ",8)) { + if (parc > 1 && !strncasecmp(param,"service ",8)) { if (!IsOperHere(sptr)) { sendto_one(sptr,"NOTICE %s :### %s",sptr->name, "Beyond your power poor soul..."); @@ -3422,7 +3422,7 @@ char *parv[]; } else for (acptr = client; acptr; acptr = acptr->next) if (IsServer(acptr) && acptr != cptr - && !mycmp(c, acptr->name)) { + && !strcasecmp(c, acptr->name)) { sendto_one(acptr, ":%s NOTE %s", sptr->name, param); break; @@ -3497,11 +3497,11 @@ char *parv[]; if (MyEq(option,"VERSION")) sendto_one(sptr,"NOTICE %s :Running version %s", sptr->name, VERSION); else if (remote < 0 - && mycmp(option, "NEWS") - && mycmp(option, "XRM") - && mycmp(option, "FLAG") - && mycmp(option, "DENY") - && mycmp(option, "XLS")) return 0; else + && strcasecmp(option, "NEWS") + && strcasecmp(option, "XRM") + && strcasecmp(option, "FLAG") + && strcasecmp(option, "DENY") + && strcasecmp(option, "XLS")) return 0; else if (alias_send(sptr,option, &flags, &msg, &timeout) || MyEq(option,"USER")) { if (!*buf1) { if (MyEq(option,"SPY")) check_messages(sptr, sptr, sptr->name, 'g'); @@ -3513,7 +3513,7 @@ char *parv[]; name = buf1;if (!*name) name = wildcard; if (name_len_error(sptr, name)) return 0; if (!timeout || !*timeout) timeout = default_timeout; - if (mycmp(option, "NEWS") || !msg) { + if (strcasecmp(option, "NEWS") || !msg) { msg_send(sptr, silent, passwd, flags, timeout, name, msg); } else msg_news(sptr, silent, passwd, flags, timeout == default_timeout ? deft : timeout, @@ -3545,7 +3545,7 @@ char *parv[]; if (name_len_error(sptr, name)) return 0; note_channel(cptr, sptr, 'l', name); } else - if (!mycmp(option,"RM") || !mycmp(option,"XRM")) { + if (!strcasecmp(option,"RM") || !strcasecmp(option,"XRM")) { if (!*buf1 && !id && !*flags) { sendto_one(sptr, "NOTICE %s :#?# Please specify at least one argument", diff --git a/ircd/res.c b/ircd/res.c index be42652..7e48749 100644 --- a/ircd/res.c +++ b/ircd/res.c @@ -248,7 +248,7 @@ time_t timeout_query_list() { r2ptr = rptr->next; tout = rptr->sentat + rptr->timeout; - if (now >= tout) + if (now >= tout) { if (--rptr->retries <= 0) { #ifdef DEBUG @@ -289,6 +289,7 @@ time_t timeout_query_list() rptr->cinfo.value.cptr)); #endif } + } if (!next || tout < next) next = tout; } @@ -674,9 +675,10 @@ char *lp; static char buf[sizeof(HEADER) + MAXPACKET]; Reg1 HEADER *hptr; Reg2 ResRQ *rptr = NULL; - aCache *cp; + aCache *cp = NULL; struct sockaddr_in sin; - int rc, a, len = sizeof(sin), max; + socklen_t len = sizeof(sin); + int rc, a, max; (void)alarm((unsigned)4); rc = recvfrom(resfd, buf, sizeof(buf), 0, (struct sockaddr *)&sin, @@ -964,7 +966,7 @@ aCache *cachep; if (addrcount >= MAXALIASES - 1) break; for (j = 0, t = cp->he.h_name; t; t = cp->he.h_aliases[j++]) - if (!mycmp(t, s)) + if (!strcasecmp(t, s)) break; if (!t) { @@ -1048,7 +1050,7 @@ char *name; for (; cp; cp = cp->hname_next) for (i = 0, s = cp->he.h_name; s; s = cp->he.h_aliases[i++]) - if (mycmp(s, name) == 0) + if (strcasecmp(s, name) == 0) { cainfo.ca_na_hits++; update_list(NULL, cp); @@ -1066,7 +1068,7 @@ char *name; if (hashv == hash_name(cp->he.h_name)) continue; for (i = 0, s = cp->he.h_aliases[i]; s && i < MAXALIASES; i++) - if (!mycmp(name, s)) { + if (!strcasecmp(name, s)) { cainfo.ca_na_hits++; update_list(NULL, cp); return cp; diff --git a/ircd/res_comp.c b/ircd/res_comp.c index 338b22b..c50b7f7 100644 --- a/ircd/res_comp.c +++ b/ircd/res_comp.c @@ -25,7 +25,7 @@ static char sccsid[] = "@(#)res_comp.c 6.18 (Berkeley) 6/27/90"; #include #include "nameser.h" -static dn_find(); +static int dn_find(); /* * Expand compressed domain name 'comp_dn' to full domain name. @@ -34,7 +34,7 @@ static dn_find(); * 'exp_dn' is a pointer to a buffer of size 'length' for the result. * Return size of compressed name or -1 if there was an error. */ -dn_expand(msg, eomorig, comp_dn, exp_dn, length) +int dn_expand(msg, eomorig, comp_dn, exp_dn, length) u_char *msg, *eomorig, *comp_dn, *exp_dn; int length; { @@ -49,7 +49,7 @@ dn_expand(msg, eomorig, comp_dn, exp_dn, length) /* * fetch next label in domain name */ - while (n = *cp++) { + while ((n = *cp++)) { /* * Check for indirection */ @@ -113,15 +113,15 @@ dn_expand(msg, eomorig, comp_dn, exp_dn, length) * If 'dnptr' is NULL, we don't try to compress names. If 'lastdnptr' * is NULL, we don't update the list. */ -dn_comp(exp_dn, comp_dn, length, dnptrs, lastdnptr) - u_char *exp_dn, *comp_dn; +int dn_comp(exp_dn, comp_dn, length, dnptrs, lastdnptr) + char *exp_dn, *comp_dn; int length; - u_char **dnptrs, **lastdnptr; + char **dnptrs, **lastdnptr; { - register u_char *cp, *dn; + register char *cp, *dn, *eob; register int c, l; - u_char **cpp, **lpp, *sp, *eob; - u_char *msg; + char **cpp = NULL, **lpp = NULL, *sp; + char *msg; dn = exp_dn; cp = comp_dn; @@ -191,7 +191,7 @@ dn_comp(exp_dn, comp_dn, length, dnptrs, lastdnptr) /* * Skip over a compressed domain name. Return the size or -1. */ -dn_skipname(comp_dn, eom) +int dn_skipname(comp_dn, eom) u_char *comp_dn, *eom; { register u_char *cp; @@ -222,7 +222,7 @@ dn_skipname(comp_dn, eom) * dnptrs is the pointer to the first name on the list, * not the pointer to the start of the message. */ -static +static int dn_find(exp_dn, msg, dnptrs, lastdnptr) u_char *exp_dn, *msg; u_char **dnptrs, **lastdnptr; @@ -234,7 +234,7 @@ dn_find(exp_dn, msg, dnptrs, lastdnptr) for (cpp = dnptrs; cpp < lastdnptr; cpp++) { dn = exp_dn; sp = cp = *cpp; - while (n = *cp++) { + while ((n = *cp++)) { /* * check for indirection */ @@ -308,18 +308,18 @@ _getlong(msgp) } -putshort(s, msgp) +void putshort(s, msgp) register u_short s; - register u_char *msgp; + register char *msgp; { msgp[1] = s; msgp[0] = s >> 8; } -putlong(l, msgp) +void putlong(l, msgp) register u_long l; - register u_char *msgp; + register char *msgp; { msgp[3] = l; diff --git a/ircd/res_init.c b/ircd/res_init.c index 13feca0..4d286bb 100644 --- a/ircd/res_init.c +++ b/ircd/res_init.c @@ -34,12 +34,7 @@ static char sccsid[] = "@(#)res_init.c 6.14.1 (Berkeley) 6/27/90"; * Resolver state default settings */ -struct state _res = { - RES_TIMEOUT, /* retransmition time interval */ - 4, /* number of times to retransmit */ - RES_DEFAULT, /* options flags */ - 1, /* number of name servers */ -}; +struct state _res; /* * Set up default settings. If the configuration file exist, the values @@ -51,7 +46,7 @@ struct state _res = { * * Return 0 if completes successfully, -1 on error */ -res_init() +int res_init() { register FILE *fp; register char *cp, *dp, **pp; @@ -64,6 +59,10 @@ res_init() int haveenv = 0; int havesearch = 0; + _res.retrans = RES_TIMEOUT; + _res.retry = 4; + _res.options = RES_DEFAULT; + _res.nscount = 1; _res.nsaddr.sin_addr.s_addr = INADDR_ANY; _res.nsaddr.sin_family = AF_INET; _res.nsaddr.sin_port = htons(NAMESERVER_PORT); diff --git a/ircd/res_mkquery.c b/ircd/res_mkquery.c index 3a78ec9..0e299d1 100644 --- a/ircd/res_mkquery.c +++ b/ircd/res_mkquery.c @@ -33,7 +33,7 @@ static char sccsid[] = "@(#)res_mkquery.c 6.12 (Berkeley) 6/1/90"; * Form all types of queries. * Returns the size of the result or -1. */ -res_mkquery(op, dname, class, type, data, datalen, newrr, buf, buflen) +int res_mkquery(op, dname, class, type, data, datalen, newrr, buf, buflen) int op; /* opcode of query */ char *dname; /* domain name */ int class, type; /* class and type of query */ diff --git a/ircd/s_auth.c b/ircd/s_auth.c index acd06fd..ffea8a7 100644 --- a/ircd/s_auth.c +++ b/ircd/s_auth.c @@ -27,6 +27,7 @@ static char sccsid[] = "@(#)s_auth.c 1.18 4/18/94 (C) 1992 Darren Reed"; #include "res.h" #include "numeric.h" #include "patchlevel.h" +#include #include #include #include @@ -146,7 +147,7 @@ aClient *cptr; { struct sockaddr_in us, them; char authbuf[32]; - int ulen, tlen; + socklen_t ulen, tlen; Debug((DEBUG_NOTICE,"write_authports(%x) fd %d authfd %d stat %d", cptr, cptr->fd, cptr->authfd, cptr->status)); @@ -154,9 +155,11 @@ aClient *cptr; if (getsockname(cptr->fd, (struct sockaddr *)&us, &ulen) || getpeername(cptr->fd, (struct sockaddr *)&them, &tlen)) { + Debug((DEBUG_NOTICE, "auth get{sock,peer}name error for %s: ", + get_client_name(cptr, TRUE), strerror(errno))); #ifdef USE_SYSLOG - syslog(LOG_ERR, "auth get{sock,peer}name error for %s:%m", - get_client_name(cptr, TRUE)); + syslog(LOG_ERR, "auth get{sock,peer}name error for %s: ", + get_client_name(cptr, TRUE), strerror(errno)); #endif goto authsenderr; } @@ -218,7 +221,7 @@ Reg1 aClient *cptr; cptr->lasttime = now; if ((len > 0) && (cptr->count != (sizeof(cptr->buffer) - 1)) && - (sscanf(cptr->buffer, "%hd , %hd : USERID : %*[^:]: %10s", + (sscanf(cptr->buffer, "%hu , %hu : USERID : %*[^:]: %10s", &remp, &locp, ruser) == 3)) { s = rindex(cptr->buffer, ':'); diff --git a/ircd/s_bsd.c b/ircd/s_bsd.c index 575d4ac..f872b26 100644 --- a/ircd/s_bsd.c +++ b/ircd/s_bsd.c @@ -48,6 +48,7 @@ Computing Center and Jarkko Oikarinen"; #include #include #include +#include #if defined(SOL20) #include #endif @@ -172,7 +173,8 @@ aClient *cptr; { Reg1 int errtmp = errno; /* debug may change 'errno' */ Reg2 char *host; - int err, len = sizeof(err); + int err; + socklen_t len = sizeof(err); extern char *strerror(); host = (cptr) ? get_client_name(cptr, FALSE) : ""; @@ -211,7 +213,8 @@ char *name; int port; { static struct sockaddr_in server; - int ad[4], len = sizeof(server), opt; + socklen_t len = sizeof(server); + int ad[4], opt; char ipname[20]; #ifdef VIRTUAL_HOST struct hostent *hep; @@ -512,7 +515,7 @@ void init_sys() # endif { (void)fprintf(stderr,"ircd fd table too big\n"); - (void)fprintf(stderr,"Hard Limit: %d IRC max: %d\n", + (void)fprintf(stderr,"Hard Limit: %lu IRC max: %d\n", limit.rlim_max, MAXCONNECTIONS); (void)fprintf(stderr,"Fix MAXCONNECTIONS\n"); exit(-1); @@ -521,7 +524,7 @@ void init_sys() limit.rlim_cur = limit.rlim_max; /* make soft limit the max */ if (setrlimit(RLIMIT_FD_MAX, &limit) == -1) { - (void)fprintf(stderr,"error setting max fd's to %d\n", + (void)fprintf(stderr,"error setting max fd's to %lu\n", limit.rlim_cur); exit(-1); } @@ -630,7 +633,7 @@ Reg1 aClient *cptr; Reg2 char *sockn; { struct sockaddr_in sk; - int len = sizeof(struct sockaddr_in); + socklen_t len = sizeof(struct sockaddr_in); #ifdef UNIXPORT if (IsUnixSocket(cptr)) @@ -1148,7 +1151,7 @@ static void set_sock_opts(fd, cptr) int fd; aClient *cptr; { - int opt; + socklen_t opt; #ifdef SO_REUSEADDR opt = 1; if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (OPT_TYPE *)&opt, sizeof(opt)) < 0) @@ -1194,7 +1197,7 @@ aClient *cptr; else if (opt > 0 && opt != sizeof(readbuf) / 8) { for (*readbuf = '\0'; opt > 0; opt--, s+= 3) - (void)sprintf(s, "%02.2x:", *t++); + (void)sprintf(s, "%02x:", *t++); *s = '\0'; sendto_ops("Connection %s using IP opts: (%s)", get_client_name(cptr, TRUE), readbuf); @@ -1209,7 +1212,8 @@ aClient *cptr; int get_sockerr(cptr) aClient *cptr; { - int errtmp = errno, err = 0, len = sizeof(err); + int errtmp = errno, err = 0; + socklen_t len = sizeof(err); #ifdef SO_ERROR if (cptr->fd >= 0) if (!getsockopt(cptr->fd, SOL_SOCKET, SO_ERROR, (OPT_TYPE *)&err, &len)) @@ -1287,7 +1291,7 @@ int fd; { Reg1 char *s, *t; struct sockaddr_in addr; - int len = sizeof(struct sockaddr_in); + socklen_t len = sizeof(struct sockaddr_in); if (getpeername(fd, (struct sockaddr *) &addr, &len) == -1) { @@ -2389,10 +2393,10 @@ int len; ** later for making the right one is used ** for connecting to other hosts. */ - if (!mycmp(me.name, tmp)) + if (!strcasecmp(me.name, tmp)) break; } - if (mycmp(me.name, tmp)) + if (strcasecmp(me.name, tmp)) strncpyzt(name, hp->h_name, len); else strncpyzt(name, tmp, len); @@ -2473,7 +2477,8 @@ static void polludp() { Reg1 char *s; struct sockaddr_in from; - int n, fromlen = sizeof(from); + socklen_t fromlen = sizeof(from); + int n; static time_t last = 0; static int cnt = 0, mlen = 0; @@ -2579,7 +2584,7 @@ static void do_dns_async() if (hp) { bcopy(hp->h_addr, (char *)&cptr->ip, sizeof(struct in_addr)); - if (ping_server(cptr, NULL, hp) == -1) + if (ping_server(cptr, hp) == -1) end_ping(cptr); } else diff --git a/ircd/s_conf.c b/ircd/s_conf.c index a3b405d..4713ab0 100644 --- a/ircd/s_conf.c +++ b/ircd/s_conf.c @@ -327,7 +327,7 @@ int statmask; } else if ((tmp->status & statmask) && !IsIllegal(tmp) && (tmp->status & (CONF_SERVER_MASK|CONF_HUB)) && - tmp->name && !mycmp(tmp->name, name)) + tmp->name && !strcasecmp(tmp->name, name)) { if (!attach_conf(cptr, tmp) && !first) first = tmp; @@ -362,7 +362,7 @@ int statmask; } else if ((tmp->status & statmask) && !IsIllegal(tmp) && (tmp->status & CONF_SERVER_MASK) && - (tmp->host && mycmp(tmp->host, host) == 0)) + (tmp->host && strcasecmp(tmp->host, host) == 0)) { if (!attach_conf(cptr, tmp) && !first) first = tmp; @@ -386,7 +386,7 @@ int statmask; for (tmp = conf; tmp; tmp = tmp->next) { if (!(tmp->status & statmask) || !tmp->name || !tmp->host || - mycmp(tmp->name, name)) + strcasecmp(tmp->name, name)) continue; /* ** Accept if the *real* hostname (usually sockecthost) @@ -443,7 +443,7 @@ int statmask; tmp = lp->value.aconf; if ((tmp->status & statmask) && (((tmp->status & (CONF_SERVER_MASK|CONF_HUB)) && - tmp->name && !mycmp(tmp->name, name)) || + tmp->name && !strcasecmp(tmp->name, name)) || ((tmp->status & (CONF_SERVER_MASK|CONF_HUB)) == 0 && tmp->name && !match(tmp->name, name)))) return tmp; @@ -527,20 +527,20 @@ u_int mask; if ((BadPtr(bconf->host) && !BadPtr(aconf->host)) || (BadPtr(aconf->host) && !BadPtr(bconf->host))) continue; - if (!BadPtr(bconf->host) && mycmp(bconf->host, aconf->host)) + if (!BadPtr(bconf->host) && strcasecmp(bconf->host, aconf->host)) continue; if ((BadPtr(bconf->passwd) && !BadPtr(aconf->passwd)) || (BadPtr(aconf->passwd) && !BadPtr(bconf->passwd))) continue; - if (!BadPtr(bconf->passwd) && mycmp(bconf->passwd, "ONE") && - mycmp(bconf->passwd, aconf->passwd)) + if (!BadPtr(bconf->passwd) && strcasecmp(bconf->passwd, "ONE") && + strcasecmp(bconf->passwd, aconf->passwd)) continue; if ((BadPtr(bconf->name) && !BadPtr(aconf->name)) || (BadPtr(aconf->name) && !BadPtr(bconf->name))) continue; - if (!BadPtr(bconf->name) && mycmp(bconf->name, aconf->name)) + if (!BadPtr(bconf->name) && strcasecmp(bconf->name, aconf->name)) continue; break; } @@ -650,7 +650,7 @@ int sig; (void)attach_confs(acptr, acptr->name, CONF_HUB|CONF_LEAF|CONF_UWORLD); } - if (found_g = find_kill(acptr)) + if ((found_g = find_kill(acptr))) { sendto_ops(found_g == -2 ? "G-line active for %s" : "K-line active for %s", @@ -781,7 +781,7 @@ int opt; if (!*(tmp+1)) break; else - for (s = tmp; *s = *(s+1); s++) + for (s = tmp; (*s = *(s+1)); s++) ; } else if (*tmp == '#') @@ -941,7 +941,7 @@ int opt; { aConfItem *bconf; - if (bconf = find_conf_entry(aconf, aconf->status)) + if ((bconf = find_conf_entry(aconf, aconf->status))) { delist_conf(bconf); bconf->status &= ~CONF_ILLEGAL; @@ -1146,7 +1146,7 @@ aClient *cptr; if ((tmp->status == CONF_KILL) && tmp->host && tmp->name && (match(tmp->host, host) == 0) && (!name || match(tmp->name, name) == 0) && - (!tmp->port || (tmp->port == cptr->acpt->port))) + (!tmp->port || (tmp->port == cptr->acpt->port))) { /* can short-circuit evaluation - not taking chances cos check_time_interval destroys tmp->passwd - Mmmm @@ -1157,6 +1157,7 @@ aClient *cptr; break; else if (check_time_interval(tmp->passwd, reply)) break; + } if (reply[0]) @@ -1318,7 +1319,6 @@ char *parv, *filename; char line[80]; Reg1 char *tmp; struct stat sb; - struct tm *tm; /* * stop NFS hangs...most systems should be able to open a file in @@ -1336,7 +1336,6 @@ char *parv, *filename; return 0; } (void)fstat(fd, &sb); - tm = localtime((time_t *)&sb.st_mtime); /* NetBSD needs cast */ (void)dgets(-1, NULL, 0); /* make sure buffer is at empty pos */ while (dgets(fd, line, sizeof(line)-1) > 0) { diff --git a/ircd/s_debug.c b/ircd/s_debug.c index d90a7ef..16a64ae 100644 --- a/ircd/s_debug.c +++ b/ircd/s_debug.c @@ -167,19 +167,17 @@ char *form, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8, *p9, *p10; { int err = errno; #else -void debug(level, form, va_alist) -int level; -char *form; -va_dcl +void debug(int level, char *form, ...) { va_list vl; int err = errno; - va_start(vl); + va_start(vl, form); #endif if ((debuglevel >= 0) && (level <= debuglevel)) { + fprintf(stderr, "[%ld] ", clock()); #ifndef USE_VARARGS (void)sprintf(debugbuf, form, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); @@ -227,7 +225,7 @@ char *nick; if (getrusage(RUSAGE_SELF, &rus) == -1) { -#if !defined(__FreeBSD__) && !defined(__NetBSD__) +#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__linux__) extern char *sys_errlist[]; #endif sendto_one(cptr,":%s NOTICE %s :Getruseage error: %s.", @@ -468,8 +466,8 @@ char *nick; sendto_one(cptr, ":%s %d %s :Total: ww %d ch %d cl %d co %d db %d", me.name, RPL_STATSDEBUG, nick, totww, totch, totcl, com, db); - sendto_one(cptr, ":%s %d %s :TOTAL: %d sbrk(0)-etext: %u", + sendto_one(cptr, ":%s %d %s :TOTAL: %d sbrk(0)-etext: %td", me.name, RPL_STATSDEBUG, nick, tot, - (u_int)sbrk((size_t)0)-(u_int)sbrk0); + ((unsigned char *)sbrk(0))-(unsigned char *)sbrk0); return; } diff --git a/ircd/s_err.c b/ircd/s_err.c index d0f840d..88584ba 100644 --- a/ircd/s_err.c +++ b/ircd/s_err.c @@ -34,261 +34,261 @@ static char numbuff[512]; static char numbers[] = "0123456789"; static Numeric local_replies[] = { -/* 000 */ 0, (char *)NULL, -/* 001 */ RPL_WELCOME, ":Welcome to the Internet Relay Network %s", -/* 002 */ RPL_YOURHOST, ":Your host is %s, running version %s", -/* 003 */ RPL_CREATED, ":This server was created %s", -/* 004 */ RPL_MYINFO, "%s %s dioswk biklmnopstv", -/* 005 */ RPL_MAP, ":%s%s", -/* 006 */ RPL_MAPMORE, ":%s%s --> *more*", -/* 007 */ RPL_MAPEND, ":End of /MAP", - 0, (char *)NULL +{/* 000 */ 0, (char *)NULL}, +{/* 001 */ RPL_WELCOME, ":Welcome to the Internet Relay Network %s"}, +{/* 002 */ RPL_YOURHOST, ":Your host is %s, running version %s"}, +{/* 003 */ RPL_CREATED, ":This server was created %s"}, +{/* 004 */ RPL_MYINFO, "%s %s dioswk biklmnopstv"}, +{/* 005 */ RPL_MAP, ":%s%s"}, +{/* 006 */ RPL_MAPMORE, ":%s%s --> *more*"}, +{/* 007 */ RPL_MAPEND, ":End of /MAP"}, +{ 0, (char *)NULL} }; static Numeric numeric_errors[] = { -/* 401 */ ERR_NOSUCHNICK, "%s :No such nick/channel", -/* 402 */ ERR_NOSUCHSERVER, "%s :No such server", -/* 402 */ ERR_NOSUCHCHANNEL, "%s :No such channel", -/* 402 */ ERR_CANNOTSENDTOCHAN, "%s :Cannot send to channel", -/* 402 */ ERR_TOOMANYCHANNELS, "%s :You have joined too many channels", -/* 402 */ ERR_WASNOSUCHNICK, "%s :There was no such nickname", -/* 402 */ ERR_TOOMANYTARGETS, - "%s :Duplicate recipients. No message delivered", -/* 402 */ ERR_NOSUCHSERVICE, (char *)NULL, -/* 402 */ ERR_NOORIGIN, ":No origin specified", - 0, (char *)NULL, -/* 411 */ ERR_NORECIPIENT, ":No recipient given (%s)", -/* 411 */ ERR_NOTEXTTOSEND, ":No text to send", -/* 411 */ ERR_NOTOPLEVEL, "%s :No toplevel domain specified", -/* 411 */ ERR_WILDTOPLEVEL, "%s :Wildcard in toplevel Domain", - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, -/* 421 */ ERR_UNKNOWNCOMMAND, "%s :Unknown command", -/* 422 */ ERR_NOMOTD, ":MOTD File is missing", -/* 422 */ ERR_NOADMININFO, - "%s :No administrative info available", -/* 422 */ ERR_FILEERROR, ":File error doing %s on %s", - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, -/* 431 */ ERR_NONICKNAMEGIVEN, ":No nickname given", -/* 432 */ ERR_ERRONEUSNICKNAME, "%s :Erroneus Nickname", -/* 433 */ ERR_NICKNAMEINUSE, "%s :Nickname is already in use.", -/* 434 */ ERR_SERVICENAMEINUSE, (char *)NULL, -/* 435 */ ERR_SERVICECONFUSED, (char *)NULL, -/* 436 */ ERR_NICKCOLLISION, "%s :Nickname collision KILL", -/* 437 */ ERR_BANNICKCHANGE, - "%s :Cannot change nickname while banned on channel", -/* 438 */ ERR_NICKTOOFAST, "%s :Nick change too fast. Please wait %d seconds.", - 0, (char *)NULL, 0, (char *)NULL, -/* 441 */ ERR_USERNOTINCHANNEL, "%s %s :They aren't on that channel", -/* 442 */ ERR_NOTONCHANNEL, "%s :You're not on that channel", -/* 443 */ ERR_USERONCHANNEL, "%s %s :is already on channel", -/* 444 */ ERR_NOLOGIN, "%s :User not logged in", +{/* 401 */ ERR_NOSUCHNICK, "%s :No such nick/channel"}, +{/* 402 */ ERR_NOSUCHSERVER, "%s :No such server"}, +{/* 402 */ ERR_NOSUCHCHANNEL, "%s :No such channel"}, +{/* 402 */ ERR_CANNOTSENDTOCHAN, "%s :Cannot send to channel"}, +{/* 402 */ ERR_TOOMANYCHANNELS, "%s :You have joined too many channels"}, +{/* 402 */ ERR_WASNOSUCHNICK, "%s :There was no such nickname"}, +{/* 402 */ ERR_TOOMANYTARGETS, + "%s :Duplicate recipients. No message delivered"}, +{/* 402 */ ERR_NOSUCHSERVICE, (char *)NULL}, +{/* 402 */ ERR_NOORIGIN, ":No origin specified"}, +{ 0, (char *)NULL}, +{/* 411 */ ERR_NORECIPIENT, ":No recipient given (%s)"}, +{/* 411 */ ERR_NOTEXTTOSEND, ":No text to send"}, +{/* 411 */ ERR_NOTOPLEVEL, "%s :No toplevel domain specified"}, +{/* 411 */ ERR_WILDTOPLEVEL, "%s :Wildcard in toplevel Domain"}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{/* 421 */ ERR_UNKNOWNCOMMAND, "%s :Unknown command"}, +{/* 422 */ ERR_NOMOTD, ":MOTD File is missing"}, +{/* 422 */ ERR_NOADMININFO, + "%s :No administrative info available"}, +{/* 422 */ ERR_FILEERROR, ":File error doing %s on %s"}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{/* 431 */ ERR_NONICKNAMEGIVEN, ":No nickname given"}, +{/* 432 */ ERR_ERRONEUSNICKNAME, "%s :Erroneus Nickname"}, +{/* 433 */ ERR_NICKNAMEINUSE, "%s :Nickname is already in use."}, +{/* 434 */ ERR_SERVICENAMEINUSE, (char *)NULL}, +{/* 435 */ ERR_SERVICECONFUSED, (char *)NULL}, +{/* 436 */ ERR_NICKCOLLISION, "%s :Nickname collision KILL"}, +{/* 437 */ ERR_BANNICKCHANGE, + "%s :Cannot change nickname while banned on channel"}, +{/* 438 */ ERR_NICKTOOFAST, "%s :Nick change too fast. Please wait %d seconds."}, +{ 0, (char *)NULL}, {0, (char *)NULL}, +{/* 441 */ ERR_USERNOTINCHANNEL, "%s %s :They aren't on that channel"}, +{/* 442 */ ERR_NOTONCHANNEL, "%s :You're not on that channel"}, +{/* 443 */ ERR_USERONCHANNEL, "%s %s :is already on channel"}, +{/* 444 */ ERR_NOLOGIN, "%s :User not logged in"}, #ifndef ENABLE_SUMMON -/* 445 */ ERR_SUMMONDISABLED, ":SUMMON has been disabled", +{/* 445 */ ERR_SUMMONDISABLED, ":SUMMON has been disabled"}, #else - 0, (char *)NULL, +{ 0, (char *)NULL}, #endif #ifndef ENABLE_USERS -/* 446 */ ERR_USERSDISABLED, ":USERS has been disabled", +{/* 446 */ ERR_USERSDISABLED, ":USERS has been disabled"}, #else - 0, (char *)NULL, +{ 0, (char *)NULL}, #endif - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, -/* 451 */ ERR_NOTREGISTERED, ":You have not registered", - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, -/* 461 */ ERR_NEEDMOREPARAMS, "%s :Not enough parameters", -/* 462 */ ERR_ALREADYREGISTRED, ":You may not reregister", -/* 463 */ ERR_NOPERMFORHOST, ":Your host isn't among the privileged", -/* 464 */ ERR_PASSWDMISMATCH, ":Password Incorrect", -/* 465 */ ERR_YOUREBANNEDCREEP, ":You are banned from this server", -/* 466 */ ERR_YOUWILLBEBANNED, (char *)NULL, -/* 467 */ ERR_KEYSET, "%s :Channel key already set", - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, -/* 471 */ ERR_CHANNELISFULL, "%s :Cannot join channel (+l)", -/* 472 */ ERR_UNKNOWNMODE , "%c :is unknown mode char to me", -/* 473 */ ERR_INVITEONLYCHAN, "%s :Cannot join channel (+i)", -/* 474 */ ERR_BANNEDFROMCHAN, "%s :Cannot join channel (+b)", -/* 475 */ ERR_BADCHANNELKEY, "%s :Cannot join channel (+k)", -/* 476 */ ERR_BADCHANMASK, "%s :Bad Channel Mask", - 0, (char *)NULL, -/* 478 */ ERR_BANLISTFULL, "%s %s :Channel ban/ignore list is full", - 0, (char *)NULL, 0, (char *)NULL, -/* 481 */ ERR_NOPRIVILEGES, - ":Permission Denied- You're not an IRC operator", -/* 482 */ ERR_CHANOPRIVSNEEDED, "%s :You're not channel operator", -/* 483 */ ERR_CANTKILLSERVER, ":You cant kill a server!", -/* 484 */ ERR_ISCHANSERVICE, "%s %s :Cannot kick or deop channel service", - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, -/* 491 */ ERR_NOOPERHOST, ":No O-lines for your host", -/* 492 */ ERR_NOSERVICEHOST, (char *)NULL, - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, 0, (char *)NULL, -/* 501 */ ERR_UMODEUNKNOWNFLAG, ":Unknown MODE flag", -/* 502 */ ERR_USERSDONTMATCH, ":Cant change mode for other users", - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, 0, (char *)NULL, -/* 511 */ ERR_SILELISTFULL, "%s :Your silence list is full", -/* 512 */ ERR_NOSUCHGLINE, "%s@%s :No such gline", -/* 513 */ ERR_BADPING, (char*)NULL +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, +{/* 451 */ ERR_NOTREGISTERED, ":You have not registered"}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{/* 461 */ ERR_NEEDMOREPARAMS, "%s :Not enough parameters"}, +{/* 462 */ ERR_ALREADYREGISTRED, ":You may not reregister"}, +{/* 463 */ ERR_NOPERMFORHOST, ":Your host isn't among the privileged"}, +{/* 464 */ ERR_PASSWDMISMATCH, ":Password Incorrect"}, +{/* 465 */ ERR_YOUREBANNEDCREEP, ":You are banned from this server"}, +{/* 466 */ ERR_YOUWILLBEBANNED, (char *)NULL}, +{/* 467 */ ERR_KEYSET, "%s :Channel key already set"}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{/* 471 */ ERR_CHANNELISFULL, "%s :Cannot join channel (+l)"}, +{/* 472 */ ERR_UNKNOWNMODE , "%c :is unknown mode char to me"}, +{/* 473 */ ERR_INVITEONLYCHAN, "%s :Cannot join channel (+i)"}, +{/* 474 */ ERR_BANNEDFROMCHAN, "%s :Cannot join channel (+b)"}, +{/* 475 */ ERR_BADCHANNELKEY, "%s :Cannot join channel (+k)"}, +{/* 476 */ ERR_BADCHANMASK, "%s :Bad Channel Mask"}, +{ 0, (char *)NULL}, +{/* 478 */ ERR_BANLISTFULL, "%s %s :Channel ban/ignore list is full"}, +{ 0, (char *)NULL}, {0, (char *)NULL}, +{/* 481 */ ERR_NOPRIVILEGES, + ":Permission Denied- You're not an IRC operator"}, +{/* 482 */ ERR_CHANOPRIVSNEEDED, "%s :You're not channel operator"}, +{/* 483 */ ERR_CANTKILLSERVER, ":You cant kill a server!"}, +{/* 484 */ ERR_ISCHANSERVICE, "%s %s :Cannot kick or deop channel service"}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{/* 491 */ ERR_NOOPERHOST, ":No O-lines for your host"}, +{/* 492 */ ERR_NOSERVICEHOST, (char *)NULL}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, {0, (char *)NULL}, +{/* 501 */ ERR_UMODEUNKNOWNFLAG, ":Unknown MODE flag"}, +{/* 502 */ ERR_USERSDONTMATCH, ":Cant change mode for other users"}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, {0, (char *)NULL}, +{/* 511 */ ERR_SILELISTFULL, "%s :Your silence list is full"}, +{/* 512 */ ERR_NOSUCHGLINE, "%s@%s :No such gline"}, +{/* 513 */ ERR_BADPING, (char*)NULL} }; static Numeric numeric_replies[] = { -/* 300 */ RPL_NONE, (char *)NULL, -/* 301 */ RPL_AWAY, "%s :%s", -/* 302 */ RPL_USERHOST, ":", -/* 303 */ RPL_ISON, ":", -/* 304 */ RPL_TEXT, (char *)NULL, -/* 305 */ RPL_UNAWAY, ":You are no longer marked as being away", -/* 306 */ RPL_NOWAWAY, ":You have been marked as being away", - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, -/* 311 */ RPL_WHOISUSER, "%s %s %s * :%s", -/* 312 */ RPL_WHOISSERVER, "%s %s :%s", -/* 313 */ RPL_WHOISOPERATOR, "%s :is an IRC Operator", -/* 314 */ RPL_WHOWASUSER, "%s %s %s * :%s", -/* 315 */ RPL_ENDOFWHO, "%s :End of /WHO list.", -/* 316 */ RPL_WHOISCHANOP, (char *)NULL, -/* 317 */ RPL_WHOISIDLE, "%s %ld %ld :seconds idle, signon time", -/* 318 */ RPL_ENDOFWHOIS, "%s :End of /WHOIS list.", -/* 319 */ RPL_WHOISCHANNELS, "%s :%s", - 0, (char *)NULL, -/* 321 */ RPL_LISTSTART, "Channel :Users Name", -/* 322 */ RPL_LIST, "%s %d :%s", -/* 323 */ RPL_LISTEND, ":End of /LIST", -/* 324 */ RPL_CHANNELMODEIS, "%s %s %s", - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, -/* 329 */ RPL_CREATIONTIME, "%s %lu", - 0, (char *)NULL, -/* 331 */ RPL_NOTOPIC, "%s :No topic is set.", -/* 332 */ RPL_TOPIC, "%s :%s", -/* 333 */ RPL_TOPICWHOTIME, "%s %s %lu", -/* 334 */ RPL_LISTUSAGE, ":%s", - 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, -/* 341 */ RPL_INVITING, "%s %s", -/* 342 */ RPL_SUMMONING, "%s :User summoned to irc", - 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, -/* 351 */ RPL_VERSION, "%s.%s %s :%s", -/* 352 */ RPL_WHOREPLY, "%s %s %s %s %s %s :%d %s", -/* 353 */ RPL_NAMREPLY, "%s", - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, -/* 361 */ RPL_KILLDONE, (char *)NULL, -/* 362 */ RPL_CLOSING, "%s :Closed. Status = %d", -/* 363 */ RPL_CLOSEEND, "%d: Connections Closed", -/* 364 */ RPL_LINKS, "%s %s :%d P%u %s", -/* 365 */ RPL_ENDOFLINKS, "%s :End of /LINKS list.", -/* 366 */ RPL_ENDOFNAMES, "%s :End of /NAMES list.", -/* 367 */ RPL_BANLIST, "%s %s %s %lu", -/* 368 */ RPL_ENDOFBANLIST, "%s :End of Channel Ban List", -/* 369 */ RPL_ENDOFWHOWAS, "%s :End of WHOWAS", - 0, (char *)NULL, -/* 371 */ RPL_INFO, ":%s", -/* 372 */ RPL_MOTD, ":- %s", -/* 373 */ RPL_INFOSTART, ":Server INFO", -/* 374 */ RPL_ENDOFINFO, ":End of /INFO list.", -/* 375 */ RPL_MOTDSTART, ":- %s Message of the Day - ", -/* 376 */ RPL_ENDOFMOTD, ":End of /MOTD command.", - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, -/* 381 */ RPL_YOUREOPER, ":You are now an IRC Operator", -/* 382 */ RPL_REHASHING, "%s :Rehashing", -/* 383 */ RPL_YOURESERVICE, (char *)NULL, -/* 384 */ RPL_MYPORTIS, "%d :Port to local server is\r\n", -/* 385 */ RPL_NOTOPERANYMORE, (char *)NULL, - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, 0, (char *)NULL, -/* 391 */ RPL_TIME, "%s %lu %ld :%s", +{/* 300 */ RPL_NONE, (char *)NULL}, +{/* 301 */ RPL_AWAY, "%s :%s"}, +{/* 302 */ RPL_USERHOST, ":"}, +{/* 303 */ RPL_ISON, ":"}, +{/* 304 */ RPL_TEXT, (char *)NULL}, +{/* 305 */ RPL_UNAWAY, ":You are no longer marked as being away"}, +{/* 306 */ RPL_NOWAWAY, ":You have been marked as being away"}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, +{/* 311 */ RPL_WHOISUSER, "%s %s %s * :%s"}, +{/* 312 */ RPL_WHOISSERVER, "%s %s :%s"}, +{/* 313 */ RPL_WHOISOPERATOR, "%s :is an IRC Operator"}, +{/* 314 */ RPL_WHOWASUSER, "%s %s %s * :%s"}, +{/* 315 */ RPL_ENDOFWHO, "%s :End of /WHO list."}, +{/* 316 */ RPL_WHOISCHANOP, (char *)NULL}, +{/* 317 */ RPL_WHOISIDLE, "%s %ld %ld :seconds idle, signon time"}, +{/* 318 */ RPL_ENDOFWHOIS, "%s :End of /WHOIS list."}, +{/* 319 */ RPL_WHOISCHANNELS, "%s :%s"}, +{ 0, (char *)NULL}, +{/* 321 */ RPL_LISTSTART, "Channel :Users Name"}, +{/* 322 */ RPL_LIST, "%s %d :%s"}, +{/* 323 */ RPL_LISTEND, ":End of /LIST"}, +{/* 324 */ RPL_CHANNELMODEIS, "%s %s %s"}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, +{/* 329 */ RPL_CREATIONTIME, "%s %lu"}, +{ 0, (char *)NULL}, +{/* 331 */ RPL_NOTOPIC, "%s :No topic is set."}, +{/* 332 */ RPL_TOPIC, "%s :%s"}, +{/* 333 */ RPL_TOPICWHOTIME, "%s %s %lu"}, +{/* 334 */ RPL_LISTUSAGE, ":%s"}, +{ 0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, +{/* 341 */ RPL_INVITING, "%s %s"}, +{/* 342 */ RPL_SUMMONING, "%s :User summoned to irc"}, +{ 0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{/* 351 */ RPL_VERSION, "%s.%s %s :%s"}, +{/* 352 */ RPL_WHOREPLY, "%s %s %s %s %s %s :%d %s"}, +{/* 353 */ RPL_NAMREPLY, "%s"}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, +{/* 361 */ RPL_KILLDONE, (char *)NULL}, +{/* 362 */ RPL_CLOSING, "%s :Closed. Status = %d"}, +{/* 363 */ RPL_CLOSEEND, "%d: Connections Closed"}, +{/* 364 */ RPL_LINKS, "%s %s :%d P%u %s"}, +{/* 365 */ RPL_ENDOFLINKS, "%s :End of /LINKS list."}, +{/* 366 */ RPL_ENDOFNAMES, "%s :End of /NAMES list."}, +{/* 367 */ RPL_BANLIST, "%s %s %s %lu"}, +{/* 368 */ RPL_ENDOFBANLIST, "%s :End of Channel Ban List"}, +{/* 369 */ RPL_ENDOFWHOWAS, "%s :End of WHOWAS"}, +{ 0, (char *)NULL}, +{/* 371 */ RPL_INFO, ":%s"}, +{/* 372 */ RPL_MOTD, ":- %s"}, +{/* 373 */ RPL_INFOSTART, ":Server INFO"}, +{/* 374 */ RPL_ENDOFINFO, ":End of /INFO list."}, +{/* 375 */ RPL_MOTDSTART, ":- %s Message of the Day - "}, +{/* 376 */ RPL_ENDOFMOTD, ":End of /MOTD command."}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, +{/* 381 */ RPL_YOUREOPER, ":You are now an IRC Operator"}, +{/* 382 */ RPL_REHASHING, "%s :Rehashing"}, +{/* 383 */ RPL_YOURESERVICE, (char *)NULL}, +{/* 384 */ RPL_MYPORTIS, "%d :Port to local server is\r\n"}, +{/* 385 */ RPL_NOTOPERANYMORE, (char *)NULL}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, {0, (char *)NULL}, +{/* 391 */ RPL_TIME, "%s %lu %ld :%s"}, #ifdef ENABLE_USERS -/* 392 */ RPL_USERSSTART, ":UserID Terminal Host", -/* 393 */ RPL_USERS, ":%-8s %-9s %-8s", -/* 394 */ RPL_ENDOFUSERS, ":End of Users", -/* 395 */ RPL_NOUSERS, ":Nobody logged in.", +{/* 392 */ RPL_USERSSTART, ":UserID Terminal Host"}, +{/* 393 */ RPL_USERS, ":%-8s %-9s %-8s"}, +{/* 394 */ RPL_ENDOFUSERS, ":End of Users"}, +{/* 395 */ RPL_NOUSERS, ":Nobody logged in."}, #else - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, #endif - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, -/* 200 */ RPL_TRACELINK, "Link %s%s %s %s", -/* 201 */ RPL_TRACECONNECTING, "Try. %d %s", -/* 202 */ RPL_TRACEHANDSHAKE, "H.S. %d %s", -/* 203 */ RPL_TRACEUNKNOWN, "???? %d %s", -/* 204 */ RPL_TRACEOPERATOR, "Oper %d %s %ld", -/* 205 */ RPL_TRACEUSER, "User %d %s %ld", -/* 206 */ RPL_TRACESERVER, "Serv %d %dS %dC %s %s!%s@%s %ld", -/* 207 */ RPL_TRACESERVICE, "Service %d %s", -/* 208 */ RPL_TRACENEWTYPE, " 0 %s", -/* 209 */ RPL_TRACECLASS, "Class %d %d", - 0, (char *)NULL, -/* 211 */ RPL_STATSLINKINFO, (char *)NULL, -/* 212 */ RPL_STATSCOMMANDS, "%s %u %u", -/* 213 */ RPL_STATSCLINE, "%c %s * %s %d %d", -/* 214 */ RPL_STATSNLINE, "%c %s * %s %d %d", -/* 215 */ RPL_STATSILINE, "%c %s * %s %d %d", -/* 216 */ RPL_STATSKLINE, "%c %s %s %s %d %d", -/* 217 */ RPL_STATSQLINE, "%c %s * %s %d %d", -/* 218 */ RPL_STATSYLINE, "%c %d %d %d %d %ld", -/* 219 */ RPL_ENDOFSTATS, "%c :End of /STATS report", - 0, (char *)NULL, -/* 221 */ RPL_UMODEIS, "%s", - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, -/* 231 */ RPL_SERVICEINFO, (char *)NULL, -/* 232 */ RPL_ENDOFSERVICES, (char *)NULL, -/* 233 */ RPL_SERVICE, (char *)NULL, -/* 234 */ RPL_SERVLIST, (char *)NULL, -/* 235 */ RPL_SERVLISTEND, (char *)NULL, - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, 0, (char *)NULL, -/* 241 */ RPL_STATSLLINE, "%c %s * %s %d %d", -/* 242 */ RPL_STATSUPTIME, ":Server Up %d days, %d:%02d:%02d", -/* 243 */ RPL_STATSOLINE, "%c %s * %s %d %d", -/* 244 */ RPL_STATSHLINE, "%c %s * %s %d %d", -/* 245 */ RPL_STATSSLINE, "%c %s * %s %d %d", -/* 246 */ RPL_STATSTLINE, "%c %s %s", -/* 247 */ RPL_STATSGLINE, "%c %s@%s %lu :%s", -/* 248 */ RPL_STATSULINE, "%c %s * %s %d %d", - 0, (char *)NULL, -/* 250 */ RPL_STATSCONN, - ":Highest connection count: %d (%d clients)", -/* 251 */ RPL_LUSERCLIENT, - ":There are %d users and %d invisible on %d servers", -/* 252 */ RPL_LUSEROP, "%d :operator(s) online", -/* 253 */ RPL_LUSERUNKNOWN, "%d :unknown connection(s)", -/* 254 */ RPL_LUSERCHANNELS, "%d :channels formed", -/* 255 */ RPL_LUSERME, ":I have %d clients and %d servers", -/* 256 */ RPL_ADMINME, ":Administrative info about %s", -/* 257 */ RPL_ADMINLOC1, ":%s", -/* 258 */ RPL_ADMINLOC2, ":%s", -/* 259 */ RPL_ADMINEMAIL, ":%s", - 0, (char *)NULL, -/* 261 */ RPL_TRACELOG, "File %s %d", -/* 262 */ RPL_TRACEPING, "Ping %s %s", - 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, -/* 271 */ RPL_SILELIST, "%s %s", -/* 272 */ RPL_ENDOFSILELIST, ":End of Silence List", - 0, (char *)NULL, 0, (char *)NULL, -/* 275 */ RPL_STATSDLINE, "%c %s %s", - 0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, - 0, (char *)NULL, -/* 280 */ RPL_GLIST, "%s@%s %lu %s%s", -/* 281 */ RPL_ENDOFGLIST, ":End of G-line List" +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, +{/* 200 */ RPL_TRACELINK, "Link %s%s %s %s"}, +{/* 201 */ RPL_TRACECONNECTING, "Try. %d %s"}, +{/* 202 */ RPL_TRACEHANDSHAKE, "H.S. %d %s"}, +{/* 203 */ RPL_TRACEUNKNOWN, "???? %d %s"}, +{/* 204 */ RPL_TRACEOPERATOR, "Oper %d %s %ld"}, +{/* 205 */ RPL_TRACEUSER, "User %d %s %ld"}, +{/* 206 */ RPL_TRACESERVER, "Serv %d %dS %dC %s %s!%s@%s %ld"}, +{/* 207 */ RPL_TRACESERVICE, "Service %d %s"}, +{/* 208 */ RPL_TRACENEWTYPE, " 0 %s"}, +{/* 209 */ RPL_TRACECLASS, "Class %d %d"}, +{ 0, (char *)NULL}, +{/* 211 */ RPL_STATSLINKINFO, (char *)NULL}, +{/* 212 */ RPL_STATSCOMMANDS, "%s %u %u"}, +{/* 213 */ RPL_STATSCLINE, "%c %s * %s %d %d"}, +{/* 214 */ RPL_STATSNLINE, "%c %s * %s %d %d"}, +{/* 215 */ RPL_STATSILINE, "%c %s * %s %d %d"}, +{/* 216 */ RPL_STATSKLINE, "%c %s %s %s %d %d"}, +{/* 217 */ RPL_STATSQLINE, "%c %s * %s %d %d"}, +{/* 218 */ RPL_STATSYLINE, "%c %d %d %d %d %ld"}, +{/* 219 */ RPL_ENDOFSTATS, "%c :End of /STATS report"}, +{ 0, (char *)NULL}, +{/* 221 */ RPL_UMODEIS, "%s"}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{/* 231 */ RPL_SERVICEINFO, (char *)NULL}, +{/* 232 */ RPL_ENDOFSERVICES, (char *)NULL}, +{/* 233 */ RPL_SERVICE, (char *)NULL}, +{/* 234 */ RPL_SERVLIST, (char *)NULL}, +{/* 235 */ RPL_SERVLISTEND, (char *)NULL}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, {0, (char *)NULL}, +{/* 241 */ RPL_STATSLLINE, "%c %s * %s %d %d"}, +{/* 242 */ RPL_STATSUPTIME, ":Server Up %d days, %d:%02d:%02d"}, +{/* 243 */ RPL_STATSOLINE, "%c %s * %s %d %d"}, +{/* 244 */ RPL_STATSHLINE, "%c %s * %s %d %d"}, +{/* 245 */ RPL_STATSSLINE, "%c %s * %s %d %d"}, +{/* 246 */ RPL_STATSTLINE, "%c %s %s"}, +{/* 247 */ RPL_STATSGLINE, "%c %s@%s %lu :%s"}, +{/* 248 */ RPL_STATSULINE, "%c %s * %s %d %d"}, +{ 0, (char *)NULL}, +{/* 250 */ RPL_STATSCONN, + ":Highest connection count: %d (%d clients)"}, +{/* 251 */ RPL_LUSERCLIENT, + ":There are %d users and %d invisible on %d servers"}, +{/* 252 */ RPL_LUSEROP, "%d :operator(s) online"}, +{/* 253 */ RPL_LUSERUNKNOWN, "%d :unknown connection(s)"}, +{/* 254 */ RPL_LUSERCHANNELS, "%d :channels formed"}, +{/* 255 */ RPL_LUSERME, ":I have %d clients and %d servers"}, +{/* 256 */ RPL_ADMINME, ":Administrative info about %s"}, +{/* 257 */ RPL_ADMINLOC1, ":%s"}, +{/* 258 */ RPL_ADMINLOC2, ":%s"}, +{/* 259 */ RPL_ADMINEMAIL, ":%s"}, +{ 0, (char *)NULL}, +{/* 261 */ RPL_TRACELOG, "File %s %d"}, +{/* 262 */ RPL_TRACEPING, "Ping %s %s"}, +{ 0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{/* 271 */ RPL_SILELIST, "%s %s"}, +{/* 272 */ RPL_ENDOFSILELIST, ":End of Silence List"}, +{ 0, (char *)NULL}, {0, (char *)NULL}, +{/* 275 */ RPL_STATSDLINE, "%c %s %s"}, +{ 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL}, +{ 0, (char *)NULL}, +{/* 280 */ RPL_GLIST, "%s@%s %lu %s%s"}, +{/* 281 */ RPL_ENDOFGLIST, ":End of G-line List"} }; char *err_str(numeric) diff --git a/ircd/s_misc.c b/ircd/s_misc.c index 70b73d9..94720e0 100644 --- a/ircd/s_misc.c +++ b/ircd/s_misc.c @@ -220,7 +220,7 @@ int showip; inetntoa((char *)&sptr->ip)); else { - if (mycmp(sptr->name, sptr->sockhost)) + if (strcasecmp(sptr->name, sptr->sockhost)) (void)sprintf(nbuf, "%s[%s]", sptr->name, sptr->sockhost); else @@ -422,10 +422,10 @@ char *comment; /* Reason for the exit */ { (void)alarm(0); (void)sprintf(linebuf, - "%s (%3d:%02d:%02d): %s@%s [%s]\n", + "%s (%3llu:%02llu:%02llu): %s@%s [%s]\n", myctime(bcptr->firsttime), - on_for / 3600, (on_for % 3600)/60, - on_for % 60, + (unsigned long long)on_for / 3600, ((unsigned long long)on_for % 3600)/60, + (unsigned long long)on_for % 60, bcptr->user->username, bcptr->user->host, bcptr->username); (void)alarm(3); @@ -530,17 +530,14 @@ aClient *cptr, *bcptr, *sptr; char *pattern, *p1, *p2, *p3, *p4, *p5, *p6; { #else -int exit_client_msg(cptr, bcptr, sptr, pattern, va_alist) -aClient *cptr, *bcptr, *sptr; -char *pattern; -va_dcl +int exit_client_msg(aClient *cptr, aClient *bcptr, aClient *sptr, char *pattern, ...) { va_list vl; #endif char msgbuf[1024]; #ifdef USE_VARARGS - va_start(vl); + va_start(vl, pattern); (void)vsprintf(msgbuf, pattern, vl); va_end(vl); #else diff --git a/ircd/s_ping.c b/ircd/s_ping.c index d6c3e99..f734ce7 100644 --- a/ircd/s_ping.c +++ b/ircd/s_ping.c @@ -43,8 +43,6 @@ static char sccsid[] = "@(#)s_ping.c 1.0 9/21/94 (C) 1994 Carlo Kid"; #define UPINGBUFSIZE 2000 /* Lot bigger then 1024, bit smaller then 2048 */ #define UPINGTIMEOUT 120 /* Timeout waitting for first ping response */ -extern u_long inet_addr(); - /* * start_ping * @@ -163,9 +161,9 @@ aClient *cptr; * */ void read_ping(cptr) -Reg1 aClient *cptr; +aClient *cptr; { - int addr_len = sizeof(struct sockaddr_in); + socklen_t addr_len = sizeof(struct sockaddr_in); struct sockaddr_in remote_addr; struct timeval tv; int len; @@ -211,7 +209,7 @@ Reg1 aClient *cptr; cptr->since = 2; cptr->firsttime = tv.tv_sec + cptr->since; - Debug(("read_ping: %d bytes, ti %lu: [%s %s] %u ms", + Debug((DEBUG_DEBUG, "read_ping: %d bytes, ti %lu: [%s %s] %u ms", len, cptr->since, (char *)cptr->confs, (char *)cptr->confs + strlen((char *)cptr->confs) + 1, pingtime)); @@ -273,7 +271,7 @@ int parc; char *parv[]; { aConfItem *aconf; - int port, fd, opt; + int port = 7007, fd, opt; if (!IsPrivileged(sptr)) { diff --git a/ircd/s_serv.c b/ircd/s_serv.c index fd66dea..6cfb0b1 100644 --- a/ircd/s_serv.c +++ b/ircd/s_serv.c @@ -170,7 +170,7 @@ char *parv[]; */ if ((*server == '*') && IsServer(cptr) && (aconf = cptr->serv->nline) && - !mycmp(server, my_name_for_link(me.name, aconf))) + !strcasecmp(server, my_name_for_link(me.name, aconf))) { server = cptr->name; acptr = cptr; @@ -291,7 +291,7 @@ char *fmt, *p1, *p2, *p3, *host; static int a_kills_b_too(a, b) register aClient *a, *b; { - for (; b != a && b != &me; b = b->serv->up) + for (; b != a && b != &me; b = b->serv->up); return (a == b ? 1 : 0); } @@ -314,11 +314,11 @@ char *parv[]; Reg2 int i; Reg3 Link *lp; char info[REALLEN+1], *inpath, *host, *s; - aClient *acptr, *bcptr, *LHcptr; - aConfItem *aconf, *bconf, *cconf, *lhconf; + aClient *acptr, *bcptr, *LHcptr = NULL; + aConfItem *aconf, *bconf = NULL, *cconf, *lhconf = NULL; int hop, ret, active_lh_line = 0; u_short prot; - time_t start_timestamp, timestamp=0, recv_time, ghost=0; + time_t start_timestamp=0, timestamp=0, recv_time, ghost=0; recv_time = TStime(); info[0] = '\0'; @@ -349,7 +349,7 @@ char *parv[]; Debug((DEBUG_INFO, "Got SERVER %s with timestamp [%s] age %lu (%lu)", host, parv[4], start_timestamp, me.serv->timestamp)); if (prot>4 && - (timestamp<780000000 || hop==1 && start_timestamp<780000000)) + (timestamp<780000000 || (hop==1 && start_timestamp<780000000))) { return exit_client_msg(cptr, sptr, &me, "Bogus timestamps (%s %s)", parv[3], parv[4]); @@ -979,13 +979,12 @@ Reg2 aConfItem *aconf, *bconf; { Reg3 aClient *acptr; Reg4 Link *lp; - char *inpath, *host, *s; + char *inpath, *s; int split, i; - split = (mycmp(cptr->name, cptr->sockhost) && + split = (strcasecmp(cptr->name, cptr->sockhost) && strncasecmp(cptr->info, "JUPE", 4)); inpath = get_client_name(cptr,TRUE); - host = cptr->name; if (IsUnknown(cptr)) { @@ -1098,7 +1097,7 @@ Reg2 aConfItem *aconf, *bconf; acptr->name) == 0) continue; split = (MyConnect(acptr) && - mycmp(acptr->name, acptr->sockhost) && + strcasecmp(acptr->name, acptr->sockhost) && strncasecmp(acptr->info, "JUPE", 4)); if (split && Protocol(cptr)<9) { @@ -1432,7 +1431,7 @@ int mask; port = (int)tmp->port; /* * On K line the passwd contents can be - /* displayed on STATS reply. -Vesa + * displayed on STATS reply. -Vesa */ if (tmp->status == CONF_KILL) sendto_one(sptr, rpl_str(p[1]), me.name, @@ -1477,7 +1476,7 @@ char *parv[]; if (parc > 2) { name = parv[2]; - if (!mycmp(name, me.name)) + if (!strcasecmp(name, me.name)) doall = 2; else if (matches(name, me.name) == 0) doall = 1; @@ -1507,7 +1506,7 @@ char *parv[]; continue; if (!doall && wilds && matches(name, acptr->name)) continue; - if (!(doall || wilds) && mycmp(name, acptr->name)) + if (!(doall || wilds) && strcasecmp(name, acptr->name)) continue; sendto_one(sptr, Lformat, me.name, RPL_STATSLINKINFO, parv[0], @@ -1755,15 +1754,18 @@ char *parv[]; (void)collapse(parv[1]); for (acptr = client; acptr; acptr = acptr->next) { - if (parc>1) + if (parc>1) { if (!IsServer(acptr) && acptr->user) { if (match(parv[1], acptr->user->server->name)) continue; } else + { if (match(parv[1], acptr->name)) continue; + } + } switch (acptr->status) { @@ -2074,7 +2076,7 @@ char *parv[]; ** parv[1] = new time ** parv[2] = servername */ -m_settime(cptr, sptr, parc, parv) +int m_settime(cptr, sptr, parc, parv) aClient *cptr, *sptr; int parc; char *parv[]; @@ -2417,8 +2419,8 @@ char *parv[]; for (i = 0; i < MAXCONNECTIONS; i++) link_s[i] = 0, link_u[i] = 0; - if (doall) - for (acptr = client; acptr; acptr = acptr->next) + if (doall) { + for (acptr = client; acptr; acptr = acptr->next) { #ifdef SHOW_INVISIBLE_LUSERS if (IsPerson(acptr)) link_u[acptr->from->fd]++; @@ -2429,6 +2431,8 @@ char *parv[]; #endif else if (IsServer(acptr)) link_s[acptr->from->fd]++; + } + } /* report all direct connections */ @@ -2445,7 +2449,7 @@ char *parv[]; continue; if (!doall && wilds && matches(tname, acptr->name)) continue; - if (!dow && mycmp(tname, acptr->name)) + if (!dow && strcasecmp(tname, acptr->name)) continue; name = get_client_name(acptr,FALSE); class = get_client_class(acptr); @@ -2473,8 +2477,8 @@ char *parv[]; /* Only opers see users if there is a wildcard * but anyone can see all the opers. */ - if (IsOper(sptr) && - (MyClient(sptr) || !(dow && IsInvisible(acptr))) + if ((IsOper(sptr) && + (MyClient(sptr) || !(dow && IsInvisible(acptr)))) || !dow || IsAnOper(acptr)) { if (IsAnOper(acptr)) @@ -2754,7 +2758,7 @@ char *parv[]; continue; } - if (!mycmp(agline->name, user) && !mycmp(agline->host, host)) + if (!strcasecmp(agline->name, user) && !strcasecmp(agline->host, host)) break; a2gline = agline; @@ -2934,8 +2938,8 @@ char *parv[]; continue; } - if ((!match(agline->name, user) || !mycmp(agline->name, user)) && - (!match(agline->host, host) || !mycmp(agline->host, host))) + if ((!match(agline->name, user) || !strcasecmp(agline->name, user)) && + (!match(agline->host, host) || !strcasecmp(agline->host, host))) break; a2gline = agline; diff --git a/ircd/s_user.c b/ircd/s_user.c index 63d9c63..14d8083 100644 --- a/ircd/s_user.c +++ b/ircd/s_user.c @@ -269,7 +269,7 @@ char *buffer; { for (p2 = NULL, t = strtoken(&p2, cbuf, ","); t; t = strtoken(&p2, NULL, ",")) - if (!mycmp(s, t)) + if (!strcasecmp(s, t)) break; else if (p2) p2[-1] = ','; @@ -464,7 +464,8 @@ char *nick, *username; } #endif -#ifdef DISALLOW_MIXED_CASE +#if 0 +/*#ifdef DISALLOW_MIXED_CASE*/ /* check for mixed case usernames, meaning probably hacked Jon2 3-94 Summary of rules now implemented in this patch: Ensor 11-94 In a mixed-case name, if first char is upper, one more upper may @@ -632,8 +633,8 @@ char *parv[]; me.name, parv[0]); return 0; } - else if (IsServer(sptr) && parc < 7 || - IsServer(cptr) && parc < 3) + else if ((IsServer(sptr) && parc < 7) || + (IsServer(cptr) && parc < 3)) { sendto_one(sptr, err_str(ERR_NEEDMOREPARAMS), me.name, parv[0], "NICK"); @@ -775,7 +776,7 @@ char *parv[]; ** is concerned (user is changing the case of his/her ** nickname or somesuch) */ - if (acptr == sptr) + if (acptr == sptr) { if (strcmp(acptr->name, nick) != 0) /* ** Allows change of case in his/her nick @@ -790,6 +791,7 @@ char *parv[]; ** version would treat it as nick collision. */ return 0; /* NICK Message ignored */ + } /* ** Note: From this point forward it can be assumed that ** acptr != sptr (point to different client structures). @@ -844,8 +846,8 @@ char *parv[]; ** server (e.g. message type ":server NICK new ..." received) */ lastnick = atoi(parv[3]); - differ = (mycmp(acptr->user->username, parv[4]) || - mycmp(acptr->user->host, parv[5])); + differ = (strcasecmp(acptr->user->username, parv[4]) || + strcasecmp(acptr->user->host, parv[5])); sendto_ops("Nick collision on %s (%s %d <- %s %d (%s user@host))", acptr->name, acptr->from->name, acptr->lastnick, get_client_name(cptr, FALSE), lastnick, @@ -857,8 +859,8 @@ char *parv[]; ** A NICK change has collided (e.g. message type ":old NICK new"). */ lastnick = atoi(parv[2]); - differ = (mycmp(acptr->user->username, sptr->user->username) || - mycmp(acptr->user->host, sptr->user->host)); + differ = (strcasecmp(acptr->user->username, sptr->user->username) || + strcasecmp(acptr->user->host, sptr->user->host)); sendto_ops("Nick change collision from %s to %s (%s %d <- %s %d)", sptr->name, acptr->name, acptr->from->name, acptr->lastnick, get_client_name(cptr, FALSE), lastnick); @@ -871,8 +873,8 @@ char *parv[]; ** acptr->from != cptr should *always* be true (?). */ if (acptr->from != cptr) - { if (differ && lastnick >= acptr->lastnick || - !differ && lastnick <= acptr->lastnick) + { if ((differ && lastnick >= acptr->lastnick) || + (!differ && lastnick <= acptr->lastnick)) { if (!IsServer(sptr)) { ircstp->is_kill++; sendto_serv_butone(cptr, /* Kill old from outgoing servers */ @@ -949,7 +951,7 @@ nickkilldone: ** on a channel, send note of change to all clients ** on that channel. Propagate notice to other servers. */ - if (mycmp(parv[0], nick)) + if (strcasecmp(parv[0], nick)) sptr->lastnick = (sptr == cptr) ? TStime(): atoi(parv[2]); if (sptr->user) { @@ -1638,7 +1640,7 @@ int parc; char *parv[]; { #define UFLAGS (FLAGS_INVISIBLE|FLAGS_WALLOP|FLAGS_SERVNOTICE) - char *username, *host, *server, *realname; + char *username, *host, *realname; anUser *user; if (IsServer(cptr)) @@ -1658,7 +1660,6 @@ char *parv[]; username = (parc < 2 || BadPtr(parv[1])) ? "" : parv[1]; host = (parc < 3 || BadPtr(parv[2])) ? "" : parv[2]; - server = (parc < 4 || BadPtr(parv[3])) ? "" : parv[3]; realname = (parc < 5 || BadPtr(parv[4])) ? "" : parv[4]; user = make_user(sptr); @@ -2003,7 +2004,7 @@ char *parv[]; acptr = find_server(origin, NULL); if (acptr && acptr != sptr) origin = cptr->name; - if (!BadPtr(destination) && mycmp(destination, me.name) != 0) + if (!BadPtr(destination) && strcasecmp(destination, me.name) != 0) { if ((acptr = find_server(destination, NULL))) sendto_one(acptr,":%s PING %s :%s", parv[0], @@ -2071,7 +2072,7 @@ char *parv[]; cptr->flags &= ~FLAGS_PINGSENT; sptr->flags &= ~FLAGS_PINGSENT; - if (!BadPtr(destination) && mycmp(destination, me.name) != 0) + if (!BadPtr(destination) && strcasecmp(destination, me.name) != 0) { if ((acptr = find_client(destination, NULL)) || (acptr = find_server(destination, NULL))) @@ -2419,7 +2420,7 @@ char *parv[]; else for (acptr = client; acptr; acptr = acptr->next) if (IsServer(acptr) && acptr != cptr - && !mycmp(nbuf, acptr->name)) + && !strcasecmp(nbuf, acptr->name)) { sendto_one(acptr, ":%s NOTE :%s", parv[0], parv[1]); @@ -2477,15 +2478,16 @@ char *parv[]; if (IsServer(sptr) || sptr != acptr) { - if (IsServer(cptr)) + if (IsServer(cptr)) { sendto_ops_butone(NULL, &me, ":%s WALLOPS :MODE for User %s From %s!%s", me.name, parv[1], get_client_name(cptr, FALSE), sptr->name); - else + } else { sendto_one(sptr, err_str(ERR_USERSDONTMATCH), me.name, parv[0]); return 0; + } } if (parc < 3) @@ -2697,7 +2699,7 @@ char *mask; Reg2 Link *tmp; for (lp = &(sptr->user->silence); *lp; lp = &((*lp)->next)) - if (mycmp(mask, (*lp)->value.cp)==0) + if (strcasecmp(mask, (*lp)->value.cp)==0) { tmp = *lp; *lp = tmp->next; MyFree(tmp->value.cp); @@ -2721,7 +2723,7 @@ char *mask; else { if (!matches(lp->value.cp, mask)) return -1; } - else if (!mycmp(lp->value.cp, mask)) + else if (!strcasecmp(lp->value.cp, mask)) return -1; } lp = make_link(); diff --git a/ircd/userload.c b/ircd/userload.c index 79ba307..63df708 100644 --- a/ircd/userload.c +++ b/ircd/userload.c @@ -89,7 +89,7 @@ aClient *sptr; char *parv; /* we only get passed the original parv[0] */ { register struct load_entry *cur_load_entry; - struct load_entry *last; + struct load_entry *last = NULL; u_long secs = 0, adj_secs, total[3], adj[3];/*[local,client,conn]*/ int i, times[5][3]; /* [min,hour,day,Yest,YYest][local,client,conn] */ char what[3][HOSTLEN + 1]; diff --git a/ircd/whowas.c b/ircd/whowas.c index 2457074..fb8652a 100644 --- a/ircd/whowas.c +++ b/ircd/whowas.c @@ -87,7 +87,7 @@ time_t timelimit; timelimit = now-timelimit; do { - if (!mycmp(nick, wp->ww_nick) && wp->ww_logout >= timelimit) + if (!strcasecmp(nick, wp->ww_nick) && wp->ww_logout >= timelimit) break; if (wp == was) { @@ -156,7 +156,7 @@ char *parv[]; do { if (wp < was) wp = &was[NICKNAMEHISTORYLENGTH - 1]; - if (mycmp(nick, wp->ww_nick) == 0) + if (strcasecmp(nick, wp->ww_nick) == 0) { up = wp->ww_user; sendto_one(sptr, rpl_str(RPL_WHOWASUSER),