2 Commits

40 changed files with 738 additions and 742 deletions

6
.gitignore vendored Normal file
View File

@@ -0,0 +1,6 @@
*.o
ircd/chkconf
ircd/crypt/mkpasswd
ircd/ircd
ircd/version.c

View File

@@ -73,7 +73,7 @@ CFLAGS= -g -I$(INCLUDEDIR) -O
# #
# WARNING: if you are making ircd SUID or SGID, check config.h to make sure # WARNING: if you are making ircd SUID or SGID, check config.h to make sure
# you are not defining CMDLINE_CONFIG # you are not defining CMDLINE_CONFIG
IRCDMODE = 4711 IRCDMODE = 0755
# IRCDDIR must be the same as DPATH in include/config.h # IRCDDIR must be the same as DPATH in include/config.h
# #
@@ -82,7 +82,7 @@ IRCDDIR=/usr/local/lib/ircd
SHELL=/bin/sh SHELL=/bin/sh
SUBDIRS=common ircd SUBDIRS=common ircd
BINDIR=$(IRCDDIR) BINDIR=$(IRCDDIR)
MANDIR=/usr/local/man MANDIR=$(IRCDDIR)/man
INSTALL=/usr/bin/install INSTALL=/usr/bin/install
MAKE=make 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'IRCDLIBS=${IRCDLIBS}' \ MAKE=make 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'IRCDLIBS=${IRCDLIBS}' \
@@ -104,7 +104,11 @@ build:
@for i in $(SUBDIRS); do \ @for i in $(SUBDIRS); do \
echo "Building $$i";\ echo "Building $$i";\
cd $$i;\ cd $$i;\
${MAKE} build; cd ..;\ ${MAKE} build;\
if [ $$? -ne 0 ]; then\
break;\
fi;\
cd ..;\
done done
clean: clean:

View File

@@ -29,11 +29,6 @@ Computing Center and Jarkko Oikarinen";
#include "h.h" #include "h.h"
#include <signal.h> #include <signal.h>
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; extern char *last_dead_comment;
#ifdef DEBUGMODE #ifdef DEBUGMODE

View File

@@ -45,10 +45,12 @@ static int calls = 0;
*/ */
static int _match(mask, name) 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; 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; int wild = 0, q = 0;
while (1) while (1)
@@ -112,15 +114,13 @@ char *mask, *name;
/* /*
* External interfaces to the above matching routine. * External interfaces to the above matching routine.
*/ */
int match(ma, na) int match(const char *ma, const char *na)
char *ma, *na;
{ {
calls = 0; calls = 0;
return _match(ma, na); return _match(ma, na);
} }
int matches(ma, na) int matches(const char *ma, const char *na)
char *ma,*na;
{ {
int r; 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[] = unsigned char tolowertab[] =
{ 0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, { 0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa,
0xb, 0xc, 0xd, 0xe, 0xf, 0x10, 0x11, 0x12, 0x13, 0x14, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10, 0x11, 0x12, 0x13, 0x14,

View File

@@ -92,7 +92,7 @@ int *count;
if (!MyClient(c2ptr)) /* implies mine and a user */ if (!MyClient(c2ptr)) /* implies mine and a user */
continue; continue;
if ((!host || !match(host, c2ptr->user->host)) && if ((!host || !match(host, c2ptr->user->host)) &&
mycmp(user, c2ptr->user->username) == 0) strcasecmp(user, c2ptr->user->username) == 0)
{ {
(*count)++; (*count)++;
res = c2ptr; res = c2ptr;
@@ -135,7 +135,7 @@ char *mask;
if (!IsServer(acptr) && !IsMe(acptr)) if (!IsServer(acptr) && !IsMe(acptr))
continue; continue;
if (!match(mask, acptr->name)) if (!match(mask, acptr->name))
break; continue; break;
} }
return acptr; return acptr;
} }
@@ -310,7 +310,7 @@ struct Message *mptr;
if (s) if (s)
*s++ = '\0'; *s++ = '\0';
for (; mptr->cmd; mptr++) for (; mptr->cmd; mptr++)
if (mycmp(mptr->cmd, ch) == 0) if (strcasecmp(mptr->cmd, ch) == 0)
break; break;
if (!mptr->cmd) if (!mptr->cmd)
@@ -394,8 +394,11 @@ struct Message *mptr;
} }
} }
para[++i] = NULL; 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)); return (do_numeric(numeric, cptr, from, i, para));
}
mptr->count++; mptr->count++;
if (!IsRegistered(cptr) && ( if (!IsRegistered(cptr) && (
/* patch to avoid server flooding from unregistered connects : --dl */ /* patch to avoid server flooding from unregistered connects : --dl */

144
common/send.c Normal file → Executable file
View File

@@ -36,6 +36,7 @@ Computing Center and Jarkko Oikarinen";
#include "sys.h" #include "sys.h"
#include "h.h" #include "h.h"
#include <stdio.h> #include <stdio.h>
#include <string.h>
static char sendbuf[2048]; static char sendbuf[2048];
static void sendbufto_one PROTO((aClient *)); static void sendbufto_one PROTO((aClient *));
@@ -163,21 +164,15 @@ aClient *to;
** send message to single client ** send message to single client
*/ */
#ifdef USE_VARARGS #ifdef USE_VARARGS
void sendto_one(to, pattern, va_alist) void sendto_one(aClient *to, char *pattern, ...)
aClient *to;
char *pattern;
va_dcl
{ {
va_list vl; va_list vl;
va_start(vl); va_start(vl, pattern);
vsendto_one(to, pattern, vl); vsendto_one(to, pattern, &vl);
va_end(vl); va_end(vl);
} }
void vsendto_one(to, pattern, vl) void vsendto_one(aClient *to, char *pattern, const va_list *cvlp)
aClient *to;
char *pattern;
va_list vl;
{ {
#else #else
void sendto_one(to, pattern, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) void sendto_one(to, pattern, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11)
@@ -187,6 +182,8 @@ char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8, *p9, *p10, *p11;
#endif #endif
#ifdef USE_VARARGS #ifdef USE_VARARGS
va_list vl;
va_copy(vl, *cvlp);
(void)vsprintf(sendbuf, pattern, vl); (void)vsprintf(sendbuf, pattern, vl);
#else #else
(void)sprintf(sendbuf, pattern, p1, p2, p3, p4, p5, p6, (void)sprintf(sendbuf, pattern, p1, p2, p3, p4, p5, p6,
@@ -287,11 +284,7 @@ aChannel *chptr;
char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8; char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8;
{ {
# else # else
void sendto_channel_butone(one, from, chptr, pattern, va_alist) void sendto_channel_butone(aClient *one, aClient *from, aChannel *chptr, char *pattern, ...)
aClient *one, *from;
aChannel *chptr;
char *pattern;
va_dcl
{ {
va_list vl; va_list vl;
# endif # endif
@@ -300,7 +293,7 @@ va_dcl
Reg3 int i; Reg3 int i;
# ifdef USE_VARARGS # ifdef USE_VARARGS
va_start(vl); va_start(vl, pattern);
# endif # endif
for (i = 0; i < MAXCONNECTIONS; i++) for (i = 0; i < MAXCONNECTIONS; i++)
sentalong[i] = 0; sentalong[i] = 0;
@@ -314,7 +307,7 @@ va_dcl
if (MyConnect(acptr) && IsRegisteredUser(acptr)) if (MyConnect(acptr) && IsRegisteredUser(acptr))
{ {
# ifdef USE_VARARGS # ifdef USE_VARARGS
vsendto_prefix_one(acptr, from, pattern, vl); vsendto_prefix_one(acptr, from, pattern, &vl);
# else # else
sendto_prefix_one(acptr, from, pattern, p1, p2, sendto_prefix_one(acptr, from, pattern, p1, p2,
p3, p4, p5, p6, p7, p8); p3, p4, p5, p6, p7, p8);
@@ -328,7 +321,7 @@ va_dcl
if (sentalong[i] == 0) if (sentalong[i] == 0)
{ {
# ifdef USE_VARARGS # ifdef USE_VARARGS
vsendto_prefix_one(acptr, from, pattern, vl); vsendto_prefix_one(acptr, from, pattern, &vl);
# else # else
sendto_prefix_one(acptr, from, pattern, sendto_prefix_one(acptr, from, pattern,
p1, p2, p3, p4, p1, p2, p3, p4,
@@ -356,17 +349,14 @@ aClient *one;
char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8; char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8;
{ {
# else # else
void sendto_serv_butone(one, pattern, va_alist) void sendto_serv_butone(aClient *one, char *pattern, ...)
aClient *one;
char *pattern;
va_dcl
{ {
va_list vl; va_list vl;
# endif # endif
Reg1 Dlink *lp; Reg1 Dlink *lp;
# ifdef USE_VARARGS # ifdef USE_VARARGS
va_start(vl); va_start(vl, pattern);
(void)vsprintf(sendbuf, pattern, vl); (void)vsprintf(sendbuf, pattern, vl);
va_end(vl); va_end(vl);
# else # else
@@ -395,10 +385,7 @@ aClient *user;
char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8; char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8;
{ {
# else # else
void sendto_common_channels(user, pattern, va_alist) void sendto_common_channels(aClient *user, char *pattern, ...)
aClient *user;
char *pattern;
va_dcl
{ {
va_list vl; va_list vl;
# endif # endif
@@ -407,7 +394,7 @@ va_dcl
Reg3 Link *lp; Reg3 Link *lp;
# ifdef USE_VARARGS # ifdef USE_VARARGS
va_start(vl); va_start(vl, pattern);
# endif # endif
for (i = 0; i <= highest_fd; i++) for (i = 0; i <= highest_fd; i++)
@@ -420,7 +407,7 @@ va_dcl
IsMember(cptr, lp->value.chptr)) IsMember(cptr, lp->value.chptr))
{ {
# ifdef USE_VARARGS # ifdef USE_VARARGS
vsendto_prefix_one(cptr, user, pattern, vl); vsendto_prefix_one(cptr, user, pattern, &vl);
# else # else
sendto_prefix_one(cptr, user, pattern, sendto_prefix_one(cptr, user, pattern,
p1, p2, p3, p4, p1, p2, p3, p4,
@@ -431,7 +418,7 @@ va_dcl
} }
if (MyConnect(user)) if (MyConnect(user))
# ifdef USE_VARARGS # ifdef USE_VARARGS
vsendto_prefix_one(user, user, pattern, vl); vsendto_prefix_one(user, user, pattern, &vl);
va_end(vl); va_end(vl);
# else # else
sendto_prefix_one(user, user, pattern, p1, p2, p3, p4, sendto_prefix_one(user, user, pattern, p1, p2, p3, p4,
@@ -455,22 +442,20 @@ aClient *from;
char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8; char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8;
{ {
#else #else
void sendto_channel_butserv(chptr, from, pattern, va_alist) void sendto_channel_butserv(aChannel *chptr, aClient *from, char *pattern, ...)
aChannel *chptr;
aClient *from;
char *pattern;
va_dcl
{ {
va_list vl; va_list vl;
#endif #endif
Reg1 Link *lp; Reg1 Link *lp;
Reg2 aClient *acptr; Reg2 aClient *acptr;
va_start(vl, pattern);
#ifdef USE_VARARGS #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) && if (MyConnect(acptr = lp->value.cptr) &&
!(lp->flags & CHFL_ZOMBIE)) !(lp->flags & CHFL_ZOMBIE))
vsendto_prefix_one(acptr, from, pattern, vl); vsendto_prefix_one(acptr, from, pattern, &vl);
va_end(vl); va_end(vl);
#else #else
for (lp = chptr->members; lp; lp = lp->next) for (lp = chptr->members; lp; lp = lp->next)
@@ -520,11 +505,7 @@ aClient *from;
char *format, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8, *p9; char *format, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8, *p9;
{ {
#else #else
void sendto_match_servs(chptr, from, format, va_alist) void sendto_match_servs(aChannel *chptr, aClient *from, char *format, ...)
aChannel *chptr;
aClient *from;
char *format;
va_dcl
{ {
va_list vl; va_list vl;
#endif #endif
@@ -533,13 +514,13 @@ va_dcl
char *mask; char *mask;
#ifdef USE_VARARGS #ifdef USE_VARARGS
va_start(vl); va_start(vl, format);
#endif #endif
if (chptr) if (chptr)
{ {
if (*chptr->chname == '&') if (*chptr->chname == '&')
return; return;
if (mask = (char *)rindex(chptr->chname, ':')) if ((mask = (char *)rindex(chptr->chname, ':')))
mask++; mask++;
} }
else else
@@ -576,11 +557,7 @@ int what;
char *mask, *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8; char *mask, *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8;
{ {
#else #else
void sendto_match_butone(one, from, mask, what, pattern, va_alist) void sendto_match_butone(aClient *one, aClient *from, char *mask, int what, char *pattern, ...)
aClient *one, *from;
int what;
char *mask, *pattern;
va_dcl
{ {
va_list vl; va_list vl;
#endif #endif
@@ -588,7 +565,7 @@ va_dcl
Reg2 aClient *cptr, *acptr; Reg2 aClient *cptr, *acptr;
#ifdef USE_VARARGS #ifdef USE_VARARGS
va_start(vl); va_start(vl, pattern);
#endif #endif
for (i = 0; i <= highest_fd; i++) for (i = 0; i <= highest_fd; i++)
{ {
@@ -615,7 +592,7 @@ va_dcl
match_it(cptr, mask, what))) match_it(cptr, mask, what)))
continue; continue;
#ifdef USE_VARARGS #ifdef USE_VARARGS
vsendto_prefix_one(cptr, from, pattern, vl); vsendto_prefix_one(cptr, from, pattern, &vl);
} }
va_end(vl); va_end(vl);
#else #else
@@ -639,10 +616,7 @@ aClient *one, *from;
char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8; char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8;
{ {
#else #else
void sendto_all_butone(one, from, pattern, va_alist) void sendto_all_butone(aClient *one, aClient *from, char *pattern, ...)
aClient *one, *from;
char *pattern;
va_dcl
{ {
va_list vl; va_list vl;
#endif #endif
@@ -650,9 +624,10 @@ va_dcl
Reg2 aClient *cptr; Reg2 aClient *cptr;
#ifdef USE_VARARGS #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) if ((cptr = local[i]) && !IsMe(cptr) && one != cptr)
vsendto_prefix_one(cptr, from, pattern, vl); vsendto_prefix_one(cptr, from, pattern, &vl);
va_end(vl); va_end(vl);
#else #else
for (i = 0; i <= highest_fd; i++) for (i = 0; i <= highest_fd; i++)
@@ -676,10 +651,7 @@ aClient *one;
char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7; char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7;
{ {
#else #else
void sendto_lops_butone(one, pattern, va_alist) void sendto_lops_butone(aClient *one, char *pattern, ...)
aClient *one;
char *pattern;
va_dcl
{ {
va_list vl; va_list vl;
#endif #endif
@@ -689,7 +661,7 @@ va_dcl
(void)sprintf(nbuf, ":%s NOTICE %%s :*** Notice -- ", me.name); (void)sprintf(nbuf, ":%s NOTICE %%s :*** Notice -- ", me.name);
#ifdef USE_VARARGS #ifdef USE_VARARGS
va_start(vl); va_start(vl, pattern);
(void)vsprintf(nbuf + strlen(nbuf), pattern, vl); (void)vsprintf(nbuf + strlen(nbuf), pattern, vl);
va_end(vl); va_end(vl);
#else #else
@@ -719,9 +691,7 @@ void sendto_ops(pattern, p1, p2, p3, p4, p5, p6, p7)
char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7; char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7;
{ {
#else #else
void sendto_ops(pattern, va_alist) void sendto_ops(char *pattern, ...)
char *pattern;
va_dcl
{ {
va_list vl; va_list vl;
#endif #endif
@@ -731,7 +701,7 @@ va_dcl
char *fmt_target; char *fmt_target;
#ifdef USE_VARARGS #ifdef USE_VARARGS
va_start(vl); va_start(vl, pattern);
#endif #endif
(void)sprintf(fmt, ":%s NOTICE ", me.name); (void)sprintf(fmt, ":%s NOTICE ", me.name);
@@ -745,7 +715,7 @@ va_dcl
strcat(fmt_target, " :*** Notice -- "); strcat(fmt_target, " :*** Notice -- ");
strcat(fmt_target, pattern); strcat(fmt_target, pattern);
#ifdef USE_VARARGS #ifdef USE_VARARGS
vsendto_one(cptr, fmt, vl); vsendto_one(cptr, fmt, &vl);
#else #else
sendto_one(cptr, fmt, p1, p2, p3, p4, p5, p6, p7); sendto_one(cptr, fmt, p1, p2, p3, p4, p5, p6, p7);
#endif #endif
@@ -758,7 +728,7 @@ va_dcl
strcat(fmt, " :*** Notice -- "); strcat(fmt, " :*** Notice -- ");
strcat(fmt, pattern); strcat(fmt, pattern);
# ifdef USE_VARARGS # ifdef USE_VARARGS
vsendto_one(cptr, fmt, vl); vsendto_one(cptr, fmt, &vl);
# else # else
sendto_one(cptr, fmt, cptr->name, p1, p2, p3, p4, p5, p6, p7); sendto_one(cptr, fmt, cptr->name, p1, p2, p3, p4, p5, p6, p7);
# endif # endif
@@ -784,10 +754,7 @@ aClient *one, *from;
char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8; char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8;
{ {
#else #else
void sendto_ops_butone(one, from, pattern, va_alist) void sendto_ops_butone(aClient *one, aClient *from, char *pattern, ...)
aClient *one, *from;
char *pattern;
va_dcl
{ {
va_list vl; va_list vl;
#endif #endif
@@ -795,7 +762,7 @@ va_dcl
Reg2 aClient *cptr; Reg2 aClient *cptr;
#ifdef USE_VARARGS #ifdef USE_VARARGS
va_start(vl); va_start(vl, pattern);
#endif #endif
for (i=0; i <= highest_fd; i++) for (i=0; i <= highest_fd; i++)
sentalong[i] = 0; sentalong[i] = 0;
@@ -810,7 +777,7 @@ va_dcl
continue; /* ...was the one I should skip */ continue; /* ...was the one I should skip */
sentalong[i] = 1; sentalong[i] = 1;
# ifdef USE_VARARGS # ifdef USE_VARARGS
vsendto_prefix_one(cptr->from, from, pattern, vl); vsendto_prefix_one(cptr->from, from, pattern, &vl);
} }
va_end(vl); va_end(vl);
# else # else
@@ -829,23 +796,16 @@ va_dcl
* -avalon * -avalon
*/ */
#ifdef USE_VARARGS #ifdef USE_VARARGS
void sendto_prefix_one(to, from, pattern, va_alist) void sendto_prefix_one(aClient *to, aClient *from, char *pattern, ...)
Reg1 aClient *to;
Reg2 aClient *from;
char *pattern;
va_dcl
{ {
va_list vl; va_list vl;
va_start(vl); va_start(vl, pattern);
vsendto_prefix_one(to, from, pattern, vl); vsendto_prefix_one(to, from, pattern, &vl);
va_end(vl); va_end(vl);
} }
void vsendto_prefix_one(to, from, pattern, vl) void vsendto_prefix_one(register aClient *to, register aClient *from,
Reg1 aClient *to; char *pattern, const va_list *cvlp)
Reg2 aClient *from;
char *pattern;
va_list vl;
{ {
#else #else
void sendto_prefix_one(to, from, pattern, p1, p2, p3, p4, p5, p6, p7, p8) void sendto_prefix_one(to, from, pattern, p1, p2, p3, p4, p5, p6, p7, p8)
@@ -860,12 +820,14 @@ char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8;
int flag = 0; int flag = 0;
#ifdef USE_VARARGS #ifdef USE_VARARGS
va_list vl;
va_copy(vl, *cvlp);
par = va_arg(vl, char *); par = va_arg(vl, char *);
#else #else
par = p1; par = p1;
#endif #endif
if (to && from && MyClient(to) && IsPerson(from) && if (to && from && MyClient(to) && IsPerson(from) &&
!mycmp(par, from->name)) !strcasecmp(par, from->name))
{ {
user = from->user; user = from->user;
(void)strcpy(sender, from->name); (void)strcpy(sender, from->name);
@@ -918,9 +880,7 @@ void sendto_realops(pattern, p1, p2, p3, p4, p5, p6, p7)
char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7; char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7;
{ {
#else #else
void sendto_realops(pattern, va_alist) void sendto_realops(char *pattern, ...)
char *pattern;
va_dcl
{ {
va_list vl; va_list vl;
#endif #endif
@@ -930,7 +890,7 @@ va_dcl
Reg3 char *fmt_target; Reg3 char *fmt_target;
#ifdef USE_VARARGS #ifdef USE_VARARGS
va_start(vl); va_start(vl, pattern);
#endif #endif
(void)sprintf(fmt, ":%s NOTICE ", me.name); (void)sprintf(fmt, ":%s NOTICE ", me.name);
@@ -943,7 +903,7 @@ va_dcl
strcat(fmt_target, " :*** Notice -- "); strcat(fmt_target, " :*** Notice -- ");
strcat(fmt_target, pattern); strcat(fmt_target, pattern);
#ifdef USE_VARARGS #ifdef USE_VARARGS
vsendto_one(cptr, fmt, vl); vsendto_one(cptr, fmt, &vl);
#else #else
sendto_one(cptr, fmt, p1, p2, p3, p4, p5, p6, p7); sendto_one(cptr, fmt, p1, p2, p3, p4, p5, p6, p7);
#endif #endif

View File

@@ -30,6 +30,7 @@ static char sccsid[] = "@(#)support.c 2.21 4/13/94 1990, 1991 Armin Gruner;\
#include "struct.h" #include "struct.h"
#include "common.h" #include "common.h"
#include "sys.h" #include "sys.h"
#include "h.h"
extern int errno; /* ...seems that errno.h doesn't define this everywhere */ extern int errno; /* ...seems that errno.h doesn't define this everywhere */
extern void outofmemory(); extern void outofmemory();
@@ -187,7 +188,8 @@ void *tz; /* Unused */
#if defined(DEBUGMODE) #if defined(DEBUGMODE)
void dumpcore(msg, p1, p2, p3, p4, p5, p6, p7, p8, p9) 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 time_t lastd = 0;
static int dumps = 0; static int dumps = 0;
@@ -218,8 +220,8 @@ char *msg, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8, *p9;
(void)rename("core", corename); (void)rename("core", corename);
Debug((DEBUG_FATAL, "Dumped core : core.%d", p)); Debug((DEBUG_FATAL, "Dumped core : core.%d", p));
sendto_ops("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)); 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, p1, p2, p3, p4, p5, p6, p7, p8, 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(); (void)s_die();
} }
@@ -301,11 +303,12 @@ size_t y;
return ret + SZ_CHST; return ret + SZ_CHST;
} }
void MyFree(x) void MyFree(x_)
char *x; void *x_;
{ {
size_t i; size_t i;
char *j; char *j;
char *x = x_;
u_char k[4]; u_char k[4];
register int l; register int l;
register char **s; register char **s;

View File

@@ -56,9 +56,6 @@ void free();
#include MALLOCH #include MALLOCH
#endif #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 #ifdef NEED_STRTOK
extern char *strtok PROTO((char *, char *)); extern char *strtok PROTO((char *, char *));
#endif #endif
@@ -67,6 +64,10 @@ extern char *strtoken PROTO((char **, char *, char *));
#endif #endif
#ifdef NEED_INET_ADDR #ifdef NEED_INET_ADDR
extern unsigned long inet_addr PROTO((char *)); extern unsigned long inet_addr PROTO((char *));
#else
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#endif #endif
#if defined(NEED_INET_NTOA) || defined(NEED_INET_NETOF) #if defined(NEED_INET_NTOA) || defined(NEED_INET_NETOF)

View File

@@ -69,9 +69,12 @@
** Define this to prevent mixed case userids that clonebots use. ** Define this to prevent mixed case userids that clonebots use.
** It is strongly advised to define this, unless you have a known reason ** It is strongly advised to define this, unless you have a known reason
** not to. ** 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 ** 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 * FNAME_USERLOG just logs user connections, FNAME_OPERLOG logs every
* successful use of /oper. These are either full paths or files within DPATH. * successful use of /oper. These are either full paths or files within DPATH.
*/ */
#define FNAME_USERLOG "/usr/local/lib/ircd/users" /* */ /* #define FNAME_USERLOG "/usr/local/lib/ircd/users" */
/* #define FNAME_OPERLOG "/usr/local/lib/ircd/opers" /* */ /* #define FNAME_OPERLOG "/usr/local/lib/ircd/opers" */
/* CHROOTDIR /* CHROOTDIR
* *
@@ -554,7 +557,7 @@
* support NOSPOOF will have to type /QUOTE PING <bignumber> before * support NOSPOOF will have to type /QUOTE PING <bignumber> before
* registration. * registration.
*/ */
#define CONNECTTIMEOUT 90 /* Recommended value: 90 */ #define CONNECTTIMEOUT 10 /* Recommended value: 90 */
/* /*
* Max time from the nickname change that still causes KILL * Max time from the nickname change that still causes KILL
@@ -615,11 +618,11 @@
#endif #endif
#ifdef DEBUGMODE #ifdef DEBUGMODE
extern void debug(); extern void debug(int level, char *form, ...);
# define Debug(x) debug x # define Debug(x) debug x
# define LOGFILE LPATH # define LOGFILE LPATH
#else #else
# define Debug(x) ; # define Debug(x) do { } while(0);
# if VMS # if VMS
# define LOGFILE "NLA0:" # define LOGFILE "NLA0:"
# else # else

View File

@@ -70,8 +70,9 @@ extern int find_restrict PROTO((aClient *));
extern int rehash PROTO((aClient *, aClient *, int)); extern int rehash PROTO((aClient *, aClient *, int));
extern int initconf PROTO((int)); extern int initconf PROTO((int));
extern char *MyMalloc PROTO((int)), *MyRealloc PROTO((char *, int)); extern char *MyMalloc PROTO((size_t)), *MyRealloc PROTO((char *, size_t));
extern char *debugmode, *configfile, *sbrk0; extern char *debugmode, *configfile;
extern void *sbrk0;
extern char *getfield PROTO((char *)); extern char *getfield PROTO((char *));
extern void get_sockhost PROTO((aClient *, char *)); extern void get_sockhost PROTO((aClient *, char *));
extern char *rpl_str PROTO((int)), *err_str PROTO((int)); 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 cancel_ping PROTO((aClient *, aClient *));
extern void send_queued PROTO((aClient *)); extern void send_queued PROTO((aClient *));
/*VARARGS2*/ extern void sendto_one(aClient *to, char *pattern, ...);
extern void sendto_one();
extern void vsendto_one(); extern void vsendto_one();
/*VARARGS4*/ extern void sendto_channel_butone(aClient *one, aClient *from, aChannel *chptr, char *pattern, ...);
extern void sendto_channel_butone(); extern void sendto_serv_butone(aClient *one, char *pattern, ...);
/*VARARGS2*/ extern void sendto_common_channels(aClient *user, char *pattern, ...);
extern void sendto_serv_butone(); extern void sendto_channel_butserv(aChannel *chptr, aClient *from, char *pattern, ...);
/*VARARGS2*/ extern void sendto_match_servs(aChannel *chptr, aClient *from, char *format, ...);
extern void sendto_common_channels(); extern void sendto_match_butone(aClient *one, aClient *from, char *mask, int what, char *pattern, ...);
/*VARARGS3*/ extern void sendto_all_butone(aClient *one, aClient *from, char *pattern, ...);
extern void sendto_channel_butserv(); extern void sendto_ops(char *pattern, ...);
/*VARARGS3*/ extern void sendto_lops_butone(aClient *one, char *pattern, ...);
extern void sendto_match_servs(); extern void sendto_ops_butone(aClient *one, aClient *from, char *pattern, ...);
/*VARARGS5*/ extern void sendto_prefix_one(aClient *to, aClient *from, char *pattern, ...);
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 vsendto_prefix_one(); extern void vsendto_prefix_one();
/*VARARGS4*/ extern void sendto_realops(char *pattern, ...);
extern int exit_client_msg(); extern int exit_client_msg(aClient *cptr, aClient *bcptr, aClient *sptr, char *pattern, ...);
extern int writecalls, writeb[]; extern int writecalls, writeb[];
extern int deliver_it PROTO((aClient *, char *, int)); 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)); extern int dopacket PROTO((aClient *, char *, int));
/*VARARGS2*/ extern void debug PROTO((int level, char *form, ...));
extern void debug();
#if defined(DEBUGMODE) #if defined(DEBUGMODE)
extern void send_usage PROTO((aClient *, char *)); extern void send_usage PROTO((aClient *, char *));
extern void send_listinfo 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 #endif
extern void count_memory PROTO((aClient *, char *));
char *crule_parse PROTO((char *)); char *crule_parse PROTO((char *));
int crule_eval PROTO((char *)); int crule_eval PROTO((char *));
void crule_free 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);

View File

@@ -28,6 +28,7 @@
#define __u_l unsigned long #define __u_l unsigned long
#endif #endif
#if 0
#ifdef __STDC__ #ifdef __STDC__
extern __u_l inet_addr(char *); extern __u_l inet_addr(char *);
extern char *inet_ntoa(char *); extern char *inet_ntoa(char *);
@@ -48,3 +49,4 @@ extern __u_l inet_lnaof();
extern __u_l inet_netof(); extern __u_l inet_netof();
#endif #endif
#undef __u_l #undef __u_l
#endif

View File

@@ -42,7 +42,7 @@
#define QUERY 0x0 /* standard query */ #define QUERY 0x0 /* standard query */
#define IQUERY 0x1 /* inverse query */ #define IQUERY 0x1 /* inverse query */
#define STATUS 0x2 /* nameserver status query */ #define STATUS 0x2 /* nameserver status query */
/*#define xxx 0x3 /* 0x3 reserved */ /*#define xxx 0x3 0x3 reserved */
/* non standard */ /* non standard */
#define UPDATEA 0x9 /* add resource record */ #define UPDATEA 0x9 /* add resource record */
#define UPDATED 0xa /* delete a specific resource record */ #define UPDATED 0xa /* delete a specific resource record */
@@ -246,3 +246,6 @@ extern u_long _getlong();
(cp)[0] = l >> 8; \ (cp)[0] = l >> 8; \
(cp) += sizeof(u_long); \ (cp) += sizeof(u_long); \
} }
int res_init();

View File

@@ -75,4 +75,7 @@ struct state {
extern struct state _res; extern struct state _res;
extern char *p_cdname(), *p_rr(), *p_type(), *p_class(), *p_time(); 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);

30
include/setup.h Normal file
View File

@@ -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 <stdlib.h>
#define NBLOCK_POSIX
#define POSIX_SIGNALS
#undef TIMES_2
#define GETRUSAGE_2
#endif

View File

@@ -37,23 +37,8 @@
#include <stdlib.h> #include <stdlib.h>
#endif #endif
#ifdef STRINGSH
#include <strings.h> #include <strings.h>
#else #include <string.h>
# ifdef STRINGH
# include <string.h>
# 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
#ifdef AIX #ifdef AIX
#include <sys/select.h> #include <sys/select.h>
@@ -108,7 +93,7 @@ typedef unsigned int u_int;
#endif #endif
#ifdef USE_VARARGS #ifdef USE_VARARGS
#include <varargs.h> #include <stdarg.h>
#endif #endif
#endif /* __sys_include__ */ #endif /* __sys_include__ */

View File

@@ -75,7 +75,7 @@ LINTFLAGS=-hba
# are not part of your system libraries. In all cases you should try your # are not part of your system libraries. In all cases you should try your
# system libraries before these. # 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 \ COMMONOBJS=../common/bsd.o ../common/dbuf.o ../common/packet.o \
../common/send.o ../common/match.o ../common/parse.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}' \ MAKE = make 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'IRCDLIBS=${IRCDLIBS}' \
'LDFLAGS=${LDFLAGS}' 'IRCDMODE=${IRCDMODE}' 'LDFLAGS=${LDFLAGS}' 'IRCDMODE=${IRCDMODE}'
all: build all: build
build: ircd chkconf build: ircd chkconf
@@ -100,7 +99,7 @@ build: ircd chkconf
ircd: $(OBJS) ../include/patchlevel.h ircd: $(OBJS) ../include/patchlevel.h
$(SHELL) version.c.SH $(SHELL) version.c.SH
$(CC) $(CFLAGS) -c version.c $(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 chmod $(IRCDMODE) ircd
chkconf: ../include/struct.h ../include/config.h ../include/sys.h \ chkconf: ../include/struct.h ../include/config.h ../include/sys.h \

View File

@@ -204,7 +204,7 @@ char *banid;
!match(banid, ban->value.ban.banstr)) !match(banid, ban->value.ban.banstr))
return -1; return -1;
} }
else if (!mycmp(ban->value.ban.banstr, banid)) else if (!strcasecmp(ban->value.ban.banstr, banid))
return -1; return -1;
} }
@@ -235,7 +235,7 @@ char *banid;
if (!banid) if (!banid)
return -1; return -1;
for (ban = &(chptr->banlist); *ban; ban = &((*ban)->next)) 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; tmp = *ban;
*ban = tmp->next; *ban = tmp->next;
@@ -428,10 +428,10 @@ aChannel *chptr;
member = IsMember(cptr, chptr); member = IsMember(cptr, chptr);
lp = find_user_link(chptr->members, cptr); lp = find_user_link(chptr->members, cptr);
if ((!lp || !(lp->flags & (CHFL_CHANOP|CHFL_VOICE)) || if ((!lp || !(lp->flags & (CHFL_CHANOP|CHFL_VOICE)) ||
(lp->flags & CHFL_ZOMBIE)) && MyClient(cptr) && (lp->flags & CHFL_ZOMBIE)) && MyClient(cptr) &&
is_banned(cptr, chptr)) is_banned(cptr, chptr))
return (MODE_BAN); return (MODE_BAN);
if (chptr->mode.mode & MODE_MODERATED && if (chptr->mode.mode & MODE_MODERATED &&
(!lp || !(lp->flags & (CHFL_CHANOP|CHFL_VOICE)) || (!lp || !(lp->flags & (CHFL_CHANOP|CHFL_VOICE)) ||
@@ -489,6 +489,27 @@ aChannel *chptr;
return; 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) static int send_mode_list(cptr, chname, creationtime, top, mask, flag)
aClient *cptr; aClient *cptr;
Link *top; Link *top;
@@ -679,27 +700,6 @@ char *parv[];
return 0; 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 *pretty_mask(mask)
char *mask; char *mask;
{ Reg1 char *cp; { Reg1 char *cp;
@@ -739,7 +739,7 @@ char *parv[], *mbuf, *pbuf;
Link *member, *tmp = NULL; Link *member, *tmp = NULL;
u_int whatt = MODE_ADD, bwhatt = 0; u_int whatt = MODE_ADD, bwhatt = 0;
int limitset = 0, chasing = 0, bounce; 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; int doesdeop = 0, doesop = 0, hacknotice = 0, change, gotts = 0;
char fm = '\0'; char fm = '\0';
aClient *who; aClient *who;
@@ -888,7 +888,7 @@ char *parv[], *mbuf, *pbuf;
} }
else if (whatt == MODE_DEL) else if (whatt == MODE_DEL)
{ {
if (mycmp(mode->key, *parv) == 0 || if (strcasecmp(mode->key, *parv) == 0 ||
IsServer(cptr)) IsServer(cptr))
{ {
lp = &chops[opcnt++]; lp = &chops[opcnt++];
@@ -968,7 +968,7 @@ char *parv[], *mbuf, *pbuf;
break; break;
case 'i' : /* falls through for default case */ case 'i' : /* falls through for default case */
if (whatt == MODE_DEL) if (whatt == MODE_DEL)
while (lp = chptr->invites) while ((lp = chptr->invites))
del_invite(lp->value.cptr, chptr); del_invite(lp->value.cptr, chptr);
default: default:
for (ip = flags; *ip; ip += 2) for (ip = flags; *ip; ip += 2)
@@ -1128,7 +1128,7 @@ char *parv[], *mbuf, *pbuf;
Reg1 int i = 0; Reg1 int i = 0;
Reg2 char c; Reg2 char c;
char *user, *host; char *user, *host;
u_int prev_whatt; u_int prev_whatt = 0;
for (; i < opcnt; i++) for (; i < opcnt; i++)
{ {
@@ -1136,7 +1136,7 @@ char *parv[], *mbuf, *pbuf;
/* /*
* make sure we have correct mode change sign * 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) if (lp->flags & MODE_ADD)
{ {
*mbuf++ = '+'; *mbuf++ = '+';
@@ -1149,6 +1149,7 @@ char *parv[], *mbuf, *pbuf;
prev_whatt = whatt; prev_whatt = whatt;
whatt = MODE_DEL; whatt = MODE_DEL;
} }
}
len = strlen(pbuf); len = strlen(pbuf);
/* /*
* get c as the mode char and tmp as a pointer to * get c as the mode char and tmp as a pointer to
@@ -1185,6 +1186,8 @@ char *parv[], *mbuf, *pbuf;
*cp = '\0'; *cp = '\0';
cp = numeric; cp = numeric;
break; break;
default:
return -1;
} }
if (len + strlen(cp) + 12 > (size_t) MODEBUFLEN) if (len + strlen(cp) + 12 > (size_t) MODEBUFLEN)
@@ -1195,7 +1198,7 @@ char *parv[], *mbuf, *pbuf;
if (strlen(cp) > (size_t) KEYLEN) if (strlen(cp) > (size_t) KEYLEN)
*(cp+KEYLEN) = '\0'; *(cp+KEYLEN) = '\0';
if ((whatt == MODE_ADD && (*mode->key=='\0' || if ((whatt == MODE_ADD && (*mode->key=='\0' ||
mycmp(mode->key,cp)!=0)) || strcasecmp(mode->key,cp)!=0)) ||
(whatt == MODE_DEL && (*mode->key!='\0'))) (whatt == MODE_DEL && (*mode->key!='\0')))
{ if (bounce) { if (bounce)
{ if (*mode->key=='\0') { if (*mode->key=='\0')
@@ -1326,10 +1329,10 @@ char *parv[], *mbuf, *pbuf;
* effect. * effect.
*/ */
if (*badop!=2 && if (*badop!=2 &&
((whatt & MODE_ADD) && (((whatt & MODE_ADD) &&
!add_banid(sptr, chptr, cp) || !add_banid(sptr, chptr, cp)) ||
(whatt & MODE_DEL) && ((whatt & MODE_DEL) &&
!del_banid(chptr, cp))) !del_banid(chptr, cp))))
{ {
*mbuf++ = c; *mbuf++ = c;
(void)strcat(pbuf, cp); (void)strcat(pbuf, cp);
@@ -1734,8 +1737,9 @@ char *parv[];
if (!zombie) if (!zombie)
{ if (!MyConnect(sptr)) flags = CHFL_DEOPPED; { if (!MyConnect(sptr)) flags = CHFL_DEOPPED;
if (sptr->flags & FLAGS_TS8) flags|=CHFL_SERVOPOK; } if (sptr->flags & FLAGS_TS8) flags|=CHFL_SERVOPOK; }
if (!chptr || if (!chptr)
(MyConnect(sptr) && (i = can_join(sptr, chptr, keys)))) continue;
if ((MyConnect(sptr) && (i = can_join(sptr, chptr, keys))))
/* only a variable change key->keys, just because it's better */ /* only a variable change key->keys, just because it's better */
{ {
/* we have the error str in s_err.c, so USE it! -Kev */ /* we have the error str in s_err.c, so USE it! -Kev */
@@ -1963,8 +1967,8 @@ char *parv[];
parv[0], user, chptr->chname); parv[0], user, chptr->chname);
continue; continue;
} }
if ((lp=find_user_link(chptr->members, who)) && if (((lp=find_user_link(chptr->members, who)) &&
!(lp->flags & CHFL_ZOMBIE) || IsServer(sptr)) !(lp->flags & CHFL_ZOMBIE)) || IsServer(sptr))
{ {
if (who->from!=cptr && if (who->from!=cptr &&
((lp2 && (lp2->flags & CHFL_DEOPPED)) || ((lp2 && (lp2->flags & CHFL_DEOPPED)) ||
@@ -2263,7 +2267,7 @@ char *parv[];
defparc = 1; defparc = 1;
defparv[defparc++] = t = strtok(s, " "); defparv[defparc++] = t = strtok(s, " ");
while (t && defparc < MAXPARA) { while (t && defparc < MAXPARA) {
if (t = strtok(NULL, " ")) if ((t = strtok(NULL, " ")))
defparv[defparc++] = t; defparv[defparc++] = t;
} }
} }
@@ -2409,6 +2413,7 @@ char *parv[];
{ {
if (max_users > min_users + 1 && max_time > min_time && if (max_users > min_users + 1 && max_time > min_time &&
max_topic_time > min_topic_time) /* Sanity check */ max_topic_time > min_topic_time) /* Sanity check */
{
for (chptr = channel; chptr; chptr = chptr->nextch) for (chptr = channel; chptr; chptr = chptr->nextch)
{ {
if (!sptr->user || if (!sptr->user ||
@@ -2426,6 +2431,7 @@ char *parv[];
chptr->users, chptr->users,
ShowChannel(sptr, chptr)?chptr->topic:""); ShowChannel(sptr, chptr)?chptr->topic:"");
} }
}
sendto_one(sptr, rpl_str(RPL_LISTEND), me.name, parv[0]); sendto_one(sptr, rpl_str(RPL_LISTEND), me.name, parv[0]);
return 0; return 0;
} }
@@ -2581,7 +2587,7 @@ char *parv[];
aChannel *ch3ptr; aChannel *ch3ptr;
int showflag = 0, secret = 0; int showflag = 0, secret = 0;
if (!IsPerson(c2ptr) || sptr!=c2ptr && IsInvisible(c2ptr)) if (!IsPerson(c2ptr) || (sptr!=c2ptr && IsInvisible(c2ptr)))
continue; continue;
lp = c2ptr->user->channel; lp = c2ptr->user->channel;
/* /*

View File

@@ -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 */ ** but i see h.h isn't included for some reason.. so they're here */
char *crule_parse PROTO((char *rule)); char *crule_parse PROTO((char *rule));
void crule_free PROTO((char **elem)); void crule_free PROTO((char **elem));
int dgets PROTO((int, char *, int));
#undef free #undef free
#define MyMalloc(x) malloc(x) #define MyMalloc(x) malloc(x)
@@ -62,7 +63,7 @@ static char *configfile = CONFIGFILE;
static char nullfield[] = ""; static char nullfield[] = "";
static char maxsendq[12]; static char maxsendq[12];
main(argc, argv) int main(argc, argv)
int argc; int argc;
char *argv[]; char *argv[];
{ {
@@ -171,10 +172,10 @@ int opt;
aconf->passwd = (char *)NULL; aconf->passwd = (char *)NULL;
aconf->name = (char *)NULL; aconf->name = (char *)NULL;
aconf->class = (aClass *)NULL; aconf->class = (aClass *)NULL;
if (tmp = (char *)index(line, '\n')) if ((tmp = (char *)index(line, '\n')))
*tmp = 0; *tmp = 0;
else while(dgets(fd, c, sizeof(c) - 1)) else while(dgets(fd, c, sizeof(c) - 1))
if (tmp = (char *)index(c, '\n')) if ((tmp = (char *)index(c, '\n')))
{ {
*tmp = 0; *tmp = 0;
break; break;
@@ -207,7 +208,7 @@ int opt;
if (!*(tmp+1)) if (!*(tmp+1))
break; break;
else else
for (s = tmp; *s = *++s; ) for (s = tmp; (*s = *(s+1)); ++s)
; ;
tmp++; tmp++;
} }
@@ -690,7 +691,7 @@ aConfItem *top;
{ {
if (aconf->status & CONF_CONNECT_SERVER) if (aconf->status & CONF_CONNECT_SERVER)
otype = CONF_NOCONNECT_SERVER; otype = CONF_NOCONNECT_SERVER;
else if (aconf->status & CONF_NOCONNECT_SERVER) else/* if (aconf->status & CONF_NOCONNECT_SERVER)*/
otype = CONF_CONNECT_SERVER; otype = CONF_CONNECT_SERVER;
for (bconf = top; bconf; bconf = bconf->next) for (bconf = top; bconf; bconf = bconf->next)
@@ -698,8 +699,8 @@ aConfItem *top;
if (bconf == aconf || !(bconf->status & otype)) if (bconf == aconf || !(bconf->status & otype))
continue; continue;
if (bconf->class == aconf->class && if (bconf->class == aconf->class &&
!mycmp(bconf->name, aconf->name) && !strcasecmp(bconf->name, aconf->name) &&
!mycmp(bconf->host, aconf->host)) !strcasecmp(bconf->host, aconf->host))
{ {
aconf->status |= CONF_MATCH; aconf->status |= CONF_MATCH;
bconf->status |= CONF_MATCH; bconf->status |= CONF_MATCH;
@@ -713,7 +714,7 @@ aConfItem *top;
if ((bconf == aconf) || if ((bconf == aconf) ||
!(bconf->status & CONF_SERVER_MASK)) !(bconf->status & CONF_SERVER_MASK))
continue; continue;
if (!mycmp(bconf->name, aconf->name)) if (!strcasecmp(bconf->name, aconf->name))
{ {
aconf->status |= CONF_MATCH; aconf->status |= CONF_MATCH;
break; break;
@@ -746,7 +747,7 @@ u_int status;
return '-'; return '-';
} }
outofmemory() void outofmemory()
{ {
(void)write(2, "Out of memory\n", 14); (void)write(2, "Out of memory\n", 14);
exit(-1); exit(-1);

View File

@@ -46,7 +46,7 @@ extern aClient *client, *local[];
#include <string.h> #include <string.h>
#define BadPtr(x) (!(x) || (*(x) == '\0')) #define BadPtr(x) (!(x) || (*(x) == '\0'))
#define DupString(x,y) do{x=(char *)MyMalloc(strlen(y)+1);(void)strcpy(x,y);}while(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 #endif
#ifndef PROTO #ifndef PROTO
@@ -164,6 +164,8 @@ void *crulearg[];
return (1); return (1);
} }
return (0); return (0);
#else
return 1;
#endif #endif
} }
@@ -185,6 +187,8 @@ void *crulearg[];
return (1); return (1);
} }
return (0); return (0);
#else
return 1;
#endif #endif
} }
@@ -207,6 +211,8 @@ void *crulearg[];
return (1); return (1);
} }
return (0); return (0);
#else
return 1;
#endif #endif
} }
@@ -226,6 +232,8 @@ void *crulearg[];
return (1); return (1);
} }
return (0); return (0);
#else
return 1;
#endif #endif
} }
@@ -373,16 +381,20 @@ char *rule;
crule_treeptr ruleroot = NULL; crule_treeptr ruleroot = NULL;
int errcode = CR_NOERR; 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, if ((errcode = crule_parseorexpr (&ruleroot, &next_tok,
&ruleptr)) == CR_NOERR) &ruleptr)) == CR_NOERR) {
if (ruleroot != NULL) if (ruleroot != NULL) {
if (next_tok == CR_END) if (next_tok == CR_END)
return ((char *) ruleroot); return ((char *) ruleroot);
else else
errcode = CR_UNEXPCTTOK; errcode = CR_UNEXPCTTOK;
else }
else {
errcode = CR_EXPCTOR; errcode = CR_EXPCTOR;
}
}
}
if (ruleroot != NULL) if (ruleroot != NULL)
crule_free ((char **) &ruleroot); crule_free ((char **) &ruleroot);
#if !defined(CR_DEBUG) && !defined(CR_CHKCONF) #if !defined(CR_DEBUG) && !defined(CR_CHKCONF)
@@ -583,7 +595,7 @@ char **ruleptr;
{ {
for (funcnum = 0; ; funcnum++) for (funcnum = 0; ; funcnum++)
{ {
if (mycmp (crule_funclist[funcnum].name, funcname) == 0) if (strcasecmp (crule_funclist[funcnum].name, funcname) == 0)
break; break;
if (crule_funclist[funcnum].name[0] == '\0') if (crule_funclist[funcnum].name[0] == '\0')
return (CR_UNKNWFUNC); return (CR_UNKNWFUNC);
@@ -653,7 +665,7 @@ char **ruleptr;
#if !defined(CR_DEBUG) && !defined(CR_CHKCONF) #if !defined(CR_DEBUG) && !defined(CR_CHKCONF)
(void) collapse (currarg); (void) collapse (currarg);
#endif #endif
if (!BadPtr (currarg)) /*if (!BadPtr (currarg)) -- always true */
{ {
DupString (argelemp, currarg); DupString (argelemp, currarg);
argrootp->arg[argrootp->numargs++] = (void *) argelemp; argrootp->arg[argrootp->numargs++] = (void *) argelemp;

View File

@@ -19,13 +19,13 @@
# #
# Change this to the path of your local ircd.conf file # 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 all: mkpasswd
crypt: install crypt: install
mkpasswd: mkpasswd.c mkpasswd: mkpasswd.c
cc -O mkpasswd.c -o mkpasswd cc -O0 -g mkpasswd.c -o mkpasswd -lcrypt
install: install:
crypter ${IRCDCONF} crypter ${IRCDCONF}

View File

@@ -3,9 +3,14 @@
* You can use this code as long as my name stays with it. * You can use this code as long as my name stays with it.
*/ */
#define _XOPEN_SOURCE 500
#include <errno.h>
#include <time.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <unistd.h>
extern char *getpass(); extern char *getpass();
@@ -16,6 +21,7 @@ char *argv[];
static char saltChars[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./"; static char saltChars[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./";
char salt[3]; char salt[3];
char * plaintext; char * plaintext;
char *key;
int i; int i;
if (argc < 2) { if (argc < 2) {
@@ -28,13 +34,20 @@ char *argv[];
salt[0] = argv[1][0]; salt[0] = argv[1][0];
salt[1] = argv[1][1]; salt[1] = argv[1][1];
salt[2] = '\0'; 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); fprintf(stderr, "illegal salt %s\n", salt), exit(1);
return 1;
}
} }
plaintext = getpass("plaintext: "); 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; return 0;
} }

View File

@@ -282,7 +282,7 @@ aClient *cptr;
if (IsPing(tmp)) if (IsPing(tmp))
continue; continue;
#ifdef TESTNET #ifdef TESTNET
if (mycmp(name, tmp->name) == 0) if (strcasecmp(name, tmp->name) == 0)
{ {
if (tmp_fnd) if (tmp_fnd)
sendto_ops("*** DEBUG ERROR *** : Found %s TWICE !", sendto_ops("*** DEBUG ERROR *** : Found %s TWICE !",
@@ -294,7 +294,7 @@ aClient *cptr;
} }
} }
#else #else
if (mycmp(name, tmp->name) == 0) if (strcasecmp(name, tmp->name) == 0)
goto c_move_to_top; goto c_move_to_top;
#endif #endif
} }
@@ -355,8 +355,8 @@ aClient *cptr;
* Got the bucket, now search the chain. * Got the bucket, now search the chain.
*/ */
for (tmp = (aClient *)tmp3->list; tmp; prv = tmp, tmp = tmp->hnext) for (tmp = (aClient *)tmp3->list; tmp; prv = tmp, tmp = tmp->hnext)
if (mycmp(name, tmp->name) == 0 && tmp->user && if (strcasecmp(name, tmp->name) == 0 && tmp->user &&
mycmp(serv, tmp->user->server->name) == 0) strcasecmp(serv, tmp->user->server->name) == 0)
goto c_move_to_top; goto c_move_to_top;
#ifdef DEBUGMODE #ifdef DEBUGMODE
@@ -410,7 +410,7 @@ aClient *cptr;
{ {
if (!IsServer(tmp) && !IsMe(tmp)) if (!IsServer(tmp) && !IsMe(tmp))
continue; continue;
if (mycmp(server, tmp->name) == 0) if (strcasecmp(server, tmp->name) == 0)
goto s_move_to_top; goto s_move_to_top;
} }
t = ((char *)server + strlen(server)); t = ((char *)server + strlen(server));
@@ -476,7 +476,7 @@ aChannel *chptr;
tmp3 = &channelTable[hashv]; tmp3 = &channelTable[hashv];
for (tmp = (aChannel *)tmp3->list; tmp; prv = tmp, tmp = tmp->hnextch) 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; goto c_move_to_top;
#ifdef DEBUGMODE #ifdef DEBUGMODE
chmiss++; chmiss++;

View File

@@ -52,7 +52,7 @@ char *configfile = CONFIGFILE; /* Server configuration file */
int debuglevel = -1; /* Server debug level */ int debuglevel = -1; /* Server debug level */
int bootopt = 0; /* Server boot option flags */ int bootopt = 0; /* Server boot option flags */
char *debugmode = ""; /* -"- -"- -"- */ char *debugmode = ""; /* -"- -"- -"- */
char *sbrk0; /* initial sbrk(0) */ void *sbrk0; /* initial sbrk(0) */
int dorehash = 0; int dorehash = 0;
static char *dpath = DPATH; static char *dpath = DPATH;
@@ -434,7 +434,7 @@ char *argv[];
struct rlimit corelim; struct rlimit corelim;
#endif #endif
sbrk0 = (char *)sbrk((size_t)0); sbrk0 = sbrk(0);
uid = getuid(); uid = getuid();
euid = geteuid(); euid = geteuid();
now = time(NULL); now = time(NULL);
@@ -482,7 +482,7 @@ char *argv[];
char *p = argv[0]+1; char *p = argv[0]+1;
int flag = *p++; int flag = *p++;
if (flag == '\0' || *p == '\0') if (flag == '\0' || *p == '\0') {
if (argc > 1 && argv[1][0] != '-') if (argc > 1 && argv[1][0] != '-')
{ {
p = *++argv; p = *++argv;
@@ -490,6 +490,7 @@ char *argv[];
} }
else else
p = ""; p = "";
}
switch (flag) switch (flag)
{ {
@@ -797,8 +798,8 @@ static void open_debugfile()
local[2] = cptr; local[2] = cptr;
(void)strcpy(cptr->sockhost, me.sockhost); (void)strcpy(cptr->sockhost, me.sockhost);
(void)printf("isatty = %d ttyname = %#x\n", (void)printf("isatty = %d ttyname = 0x%p\n",
isatty(2), (u_int)ttyname(2)); isatty(2), ttyname(2));
if (!(bootopt & BOOT_TTY)) /* leave debugging output on fd 2 */ if (!(bootopt & BOOT_TTY)) /* leave debugging output on fd 2 */
{ {
(void)truncate(LOGFILE, 0); (void)truncate(LOGFILE, 0);

View File

@@ -312,13 +312,14 @@ Link *find_user_link(lp, ptr)
Reg1 Link *lp; Reg1 Link *lp;
Reg2 aClient *ptr; Reg2 aClient *ptr;
{ {
if (ptr) if (ptr) {
while (lp) while (lp)
{ {
if (lp->value.cptr == ptr) if (lp->value.cptr == ptr)
return (lp); return (lp);
lp = lp->next; lp = lp->next;
} }
}
return NULL; return NULL;
} }

View File

@@ -81,10 +81,10 @@
#define FLAGS_NEWNICK_DISPLAYED (1<<30) #define FLAGS_NEWNICK_DISPLAYED (1<<30)
#define DupNewString(x,y) if (!StrEq(x,y)) { MyFree(x); DupString(x,y); } #define DupNewString(x,y) if (!StrEq(x,y)) { MyFree(x); DupString(x,y); }
#define MyEq(x,y) (!myncmp(x,y,strlen(x))) #define MyEq(x,y) (!strncasecmp(x,y,strlen(x)))
#undef mycmp #undef strcasecmp
#define mycmp mystrcasecmp /* mycmp sux, making note use double cpu */ #define strcasecmp mystrcasecmp /* strcasecmp sux, making note use double cpu */
#define Usermycmp(x,y) mycmp(x,y) #define Userstrcasecmp(x,y) strcasecmp(x,y)
#define Key(sptr) KeyFlags(sptr,-1) #define Key(sptr) KeyFlags(sptr,-1)
#define Message(msgclient) get_msg(msgclient, 'm') #define Message(msgclient) get_msg(msgclient, 'm')
#define IsOperHere(sptr) (IsOper(sptr) && MyConnect(sptr)) #define IsOperHere(sptr) (IsOper(sptr) && MyConnect(sptr))
@@ -375,7 +375,7 @@ aMsgClient *msgclient;
msg = Message(msgclient); msg = Message(msgclient);
while (*msg == '%') { while (*msg == '%') {
msg++; c = split_string(msg, 1, 1); msg++; c = split_string(msg, 1, 1);
if (!mycmp(c, nick)) { if (!strcasecmp(c, nick)) {
strcpy(buf, "*"); strcpy(buf, "*");
return buf; return buf;
} }
@@ -407,7 +407,7 @@ char *name;
while ((s = (b+t) >> 1) != b) { while ((s = (b+t) >> 1) != b) {
msgclient = ToNameList[s]; msgclient = ToNameList[s];
tname = (msgclient->flags & FLAGS_SORT_BY_TONAME) ? 1 : 0; 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; b = s; else t = s;
} }
return t; return t;
@@ -423,7 +423,7 @@ char *name;
while ((s = (b+t) >> 1) != b) { while ((s = (b+t) >> 1) != b) {
msgclient = ToNameList[s]; msgclient = ToNameList[s];
tname = (msgclient->flags & FLAGS_SORT_BY_TONAME) ? 1 : 0; 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; t = s; else b = s;
} }
return b; return b;
@@ -436,7 +436,7 @@ char *fromname;
if (!t) return 0; if (!t) return 0;
while ((s = (b+t) >> 1) != b) 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; return t;
} }
@@ -447,7 +447,7 @@ char *fromname;
if (!t) return 0; if (!t) return 0;
while ((s = (b+t) >> 1) != b) 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; return b;
} }
@@ -550,10 +550,10 @@ long32 flags;
last = last_fnl_indexnode(fromname); last = last_fnl_indexnode(fromname);
if (!(n = first)) n = 1; if (!(n = first)) n = 1;
index_p = FromNameList+n; 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++; 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++;n++;
} }
index_p = FromNameList+fromname_index; index_p = FromNameList+fromname_index;
@@ -772,7 +772,7 @@ char *host1,*host2;
if (numeric_host(host1) != numeric_host(host2)) return 0; if (numeric_host(host1) != numeric_host(host2)) return 0;
strcpy(buf,local_host(host1)); strcpy(buf,local_host(host1));
if (!mycmp(buf,local_host(host2))) return 1; if (!strcasecmp(buf,local_host(host2))) return 1;
return 0; return 0;
} }
@@ -866,8 +866,8 @@ int id;
|| msgclient->flags & FLAGS_DENY || msgclient->flags & FLAGS_DENY
|| !matches(msgclient->toname, UserName(sptr)) || !matches(msgclient->toname, UserName(sptr))
&& !matches(msgclient->tohost, sptr->user->host)) && !matches(msgclient->tohost, sptr->user->host))
|| !Usermycmp(UserName(sptr),msgclient->fromname)) || !Userstrcasecmp(UserName(sptr),msgclient->fromname))
&& (chn || !mycmp(sptr->name, msgclient->fromnick) && (chn || !strcasecmp(sptr->name, msgclient->fromnick)
|| wild_fromnick(sptr->name, msgclient)) || wild_fromnick(sptr->name, msgclient))
&& (!time_l || msgclient->time >= time_l && (!time_l || msgclient->time >= time_l
&& msgclient->time < time_l+SECONDS_DAY) && msgclient->time < time_l+SECONDS_DAY)
@@ -1393,14 +1393,14 @@ aChannel *sptr_chn;
if (!(msgclient->flags & FLAGS_FROM_REG)) qptr = 0; if (!(msgclient->flags & FLAGS_FROM_REG)) qptr = 0;
else for (qptr = client; qptr; qptr = qptr->next) else for (qptr = client; qptr; qptr = qptr->next)
if (qptr->user && !strcmp(UserName(qptr),msgclient->fromname) if (qptr->user && !strcmp(UserName(qptr),msgclient->fromname)
&& (!mycmp(qptr->name,msgclient->fromnick) && (!strcasecmp(qptr->name,msgclient->fromnick)
|| wild_fromnick(qptr->name, msgclient)) || wild_fromnick(qptr->name, msgclient))
&& host_check(qptr->user->host,msgclient->fromhost)) && host_check(qptr->user->host,msgclient->fromhost))
break; break;
if (!qptr) msgclient->flags &= ~FLAGS_FROM_REG; if (!qptr) msgclient->flags &= ~FLAGS_FROM_REG;
} }
if (!mycmp(nick, msgclient->tonick) if (!strcasecmp(nick, msgclient->tonick)
|| !mycmp(nick, get_msg(msgclient, 'n'))) right_tonick = 1; || !strcasecmp(nick, get_msg(msgclient, 'n'))) right_tonick = 1;
if (!sptr->user->channel && !IsInvisible(sptr)) secret = 0; if (!sptr->user->channel && !IsInvisible(sptr)) secret = 0;
if (secret && !IsInvisible(sptr)) if (secret && !IsInvisible(sptr))
for (link = sptr->user->channel; link; link = link->next) for (link = sptr->user->channel; link; link = link->next)
@@ -1452,11 +1452,11 @@ aChannel *sptr_chn;
if (fmsgclient->flags & FLAGS_DISPLAY_IF_DEST_REGISTER if (fmsgclient->flags & FLAGS_DISPLAY_IF_DEST_REGISTER
&& now < fmsgclient->timeout && now < fmsgclient->timeout
&& fmsgclient != msgclient && fmsgclient != msgclient
&& (!mycmp(mode == 'g' ? qptr_nick : qptr->name, && (!strcasecmp(mode == 'g' ? qptr_nick : qptr->name,
fmsgclient->fromnick) fmsgclient->fromnick)
|| wild_fromnick(mode == 'g' ? qptr_nick :qptr->name, || wild_fromnick(mode == 'g' ? qptr_nick :qptr->name,
fmsgclient)) fmsgclient))
&& !Usermycmp(UserName(qptr), fmsgclient->fromname) && !Userstrcasecmp(UserName(qptr), fmsgclient->fromname)
&& host_check(qptr->user->host, fmsgclient->fromhost) && host_check(qptr->user->host, fmsgclient->fromhost)
&& !matches(fmsgclient->tonick, nick) && !matches(fmsgclient->tonick, nick)
&& !matches(fmsgclient->toname, UserName(sptr)) && !matches(fmsgclient->toname, UserName(sptr))
@@ -1586,7 +1586,7 @@ aChannel *sptr_chn;
qptr->name, nick, buf, qptr->name, nick, buf,
"signs off", message); "signs off", message);
} else { } else {
if (mycmp(nick, newnick) if (strcasecmp(nick, newnick)
&& !(msgclient->flags & FLAGS_NO_NICKCHANGE_SPY)) && !(msgclient->flags & FLAGS_NO_NICKCHANGE_SPY))
sendto_one(qptr, sendto_one(qptr,
"NOTICE %s :### %s (%s) %s <%s> %s", "NOTICE %s :### %s (%s) %s <%s> %s",
@@ -1626,11 +1626,11 @@ aChannel *sptr_chn;
while (last && t <= last) { while (last && t <= last) {
if (ToNameList[t]->timeout > now && if (ToNameList[t]->timeout > now &&
ToNameList[t]->flags & FLAGS_SERVER_GENERATED && ToNameList[t]->flags & FLAGS_SERVER_GENERATED &&
!Usermycmp(ToNameList[t]->toname, msgclient->fromname) && !Userstrcasecmp(ToNameList[t]->toname, msgclient->fromname) &&
!mycmp(ToNameList[t]->tohost, !strcasecmp(ToNameList[t]->tohost,
local_host(msgclient->fromhost))) { local_host(msgclient->fromhost))) {
t1++; t1++;
if (!mycmp(Message(ToNameList[t]),mbuf)) { if (!strcasecmp(Message(ToNameList[t]),mbuf)) {
t1 = -1; break; t1 = -1; break;
} }
} }
@@ -1685,13 +1685,13 @@ while (send && qptr != sptr &&
last = last_tnl_indexnode(UserName(sptr)); last = last_tnl_indexnode(UserName(sptr));
while (last && t <= last) { while (last && t <= last) {
if (ToNameList[t]->flags & FLAGS_SERVER_GENERATED_DESTINATION 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)) || 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) && host_check(ToNameList[t]->fromhost,msgclient->fromhost)
&& (!(msgclient->flags & FLAGS_REGISTER_NEWNICK) && (!(msgclient->flags & FLAGS_REGISTER_NEWNICK)
|| !mycmp(ToNameList[t]->tonick,nick)) || !strcasecmp(ToNameList[t]->tonick,nick))
&& !Usermycmp(ToNameList[t]->toname,UserName(sptr)) && !Userstrcasecmp(ToNameList[t]->toname,UserName(sptr))
&& host_check(ToNameList[t]->tohost,sptr->user->host)) { && host_check(ToNameList[t]->tohost,sptr->user->host)) {
send = 0; break; send = 0; break;
} }
@@ -1753,7 +1753,7 @@ char mode;
if (!host_check(msgclient->fromhost, sptr->user->host)) { if (!host_check(msgclient->fromhost, sptr->user->host)) {
t++; continue; t++; continue;
} }
if (!mycmp(qptr_nick, msgclient->fromnick) if (!strcasecmp(qptr_nick, msgclient->fromnick)
|| wild_fromnick(qptr_nick, msgclient)) { || wild_fromnick(qptr_nick, msgclient)) {
if (msgclient->flags & FLAGS_DISPLAY_IF_DEST_REGISTER) if (msgclient->flags & FLAGS_DISPLAY_IF_DEST_REGISTER)
update_spymsg(msgclient); update_spymsg(msgclient);
@@ -1810,7 +1810,7 @@ char mode;
&& !matches(msgclient->tohost, sptr->user->host) && !matches(msgclient->tohost, sptr->user->host)
&& (mode != 's' && mode != 'g' && (mode != 's' && mode != 'g'
|| (wild_fromnick(qptr_nick, msgclient) || (wild_fromnick(qptr_nick, msgclient)
|| !mycmp(qptr_nick, msgclient->fromnick)) || !strcasecmp(qptr_nick, msgclient->fromnick))
&& host_check(msgclient->fromhost, && host_check(msgclient->fromhost,
qptr->user->host))) { qptr->user->host))) {
message = check_flags(aptr, sptr, qptr, tonick, newnick, message = check_flags(aptr, sptr, qptr, tonick, newnick,
@@ -1943,8 +1943,8 @@ char *param;
long32 gflags = 0; long32 gflags = 0;
name = split_string(param, 2, 1); name = split_string(param, 2, 1);
if (!mycmp(name, "CHANNEL")) channel = 1; if (!strcasecmp(name, "CHANNEL")) channel = 1;
else if (!mycmp(name, "DENY")) deny = 1; else if (!strcasecmp(name, "DENY")) deny = 1;
else return; else return;
strncpyzt(toserver, split_string(param, 1, 1), BUF_LEN-1); strncpyzt(toserver, split_string(param, 1, 1), BUF_LEN-1);
strncpyzt(password_s, split_string(param, 3, 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 || if (channel && (!index(toserver, '.') || strlen(message) < 10 ||
!note_headchannel(tonick))) return; !note_headchannel(tonick))) return;
if (!mycmp(me.name, sptr->name) if (!strcasecmp(me.name, sptr->name)
|| !xrm_distribute_privs(fromname, fromhost)) goto just_distribute; || !xrm_distribute_privs(fromname, fromhost)) goto just_distribute;
#ifdef EPATH #ifdef EPATH
@@ -1988,9 +1988,9 @@ char *param;
if (now < msgclient->timeout if (now < msgclient->timeout
&& (!channel || msgclient->flags & FLAGS_CHANNEL) && (!channel || msgclient->flags & FLAGS_CHANNEL)
&& (!deny || msgclient->flags & FLAGS_DENY) && (!deny || msgclient->flags & FLAGS_DENY)
&& !mycmp(msgclient->tonick, tonick) && !strcasecmp(msgclient->tonick, tonick)
&& (channel || !mycmp(msgclient->toname, toname)) && (channel || !strcasecmp(msgclient->toname, toname))
&& (channel || !mycmp(msgclient->tohost, tohost))) { && (channel || !strcasecmp(msgclient->tohost, tohost))) {
index_p = WildCardList; break; index_p = WildCardList; break;
} }
t++; t++;
@@ -2009,14 +2009,14 @@ char *param;
/* If new request isn't equal, but matches old, remove old */ /* If new request isn't equal, but matches old, remove old */
if (!matches(toname, msgclient->toname) if (!matches(toname, msgclient->toname)
&& !matches(tohost, msgclient->tohost) && !matches(tohost, msgclient->tohost)
&& (mycmp(toname, msgclient->toname) && (strcasecmp(toname, msgclient->toname)
|| mycmp(tohost, msgclient->tohost))) msgclient->timeout = 0; || strcasecmp(tohost, msgclient->tohost))) msgclient->timeout = 0;
/* If old request matches new... */ /* If old request matches new... */
else if (!matches(msgclient->toname, toname) else if (!matches(msgclient->toname, toname)
&& !matches(msgclient->tohost, tohost)) { && !matches(msgclient->tohost, tohost)) {
if (root_call && if (root_call &&
(!strcmp(password, msgclient->passwd) (!strcmp(password, msgclient->passwd)
|| !mycmp(fromname, msgclient->fromname) || !strcasecmp(fromname, msgclient->fromname)
&& host_check(fromhost, msgclient->fromhost) && host_check(fromhost, msgclient->fromhost)
|| !*msgclient->passwd || !*msgclient->passwd
|| !msgclient->passwd[1])) root_access = 1; || !msgclient->passwd[1])) root_access = 1;
@@ -2224,9 +2224,9 @@ char *message;
long32 gflags = 0; long32 gflags = 0;
char buf[MSG_LEN], *c; char buf[MSG_LEN], *c;
if ((!mycmp(sptr->name, msgclient->fromnick) if ((!strcasecmp(sptr->name, msgclient->fromnick)
|| wild_fromnick(sptr->name, msgclient)) || wild_fromnick(sptr->name, msgclient))
&& !Usermycmp(UserName(sptr),msgclient->fromname) && !Userstrcasecmp(UserName(sptr),msgclient->fromname)
&& host_check(sptr->user->host, msgclient->fromhost)) return; && host_check(sptr->user->host, msgclient->fromhost)) return;
sprintf(buf,"%s (%s@%s) %s for %s@%s", sptr->name, UserName(sptr), 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; time_t flags = 0, time_l;
char dibuf[40], tonick[BUF_LEN], toname[BUF_LEN], tohost[BUF_LEN]; 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) || if (xrm && (!IsOper(sptr) ||
!xrm_distribute_privs(sptr->user->username, !xrm_distribute_privs(sptr->user->username,
sptr->user->host))) { sptr->user->host))) {
@@ -2377,12 +2377,12 @@ char *arg, *value;
aMsgClient *msgclient; aMsgClient *msgclient;
if (*arg) { if (*arg) {
if (!mycmp(arg,"MSM")) setvar(sptr,&note_msm,0,value); else if (!strcasecmp(arg,"MSM")) setvar(sptr,&note_msm,0,value); else
if (!mycmp(arg,"MSW")) setvar(sptr,&note_msw,3,value); else if (!strcasecmp(arg,"MSW")) setvar(sptr,&note_msw,3,value); else
if (!mycmp(arg,"MUM")) setvar(sptr,&note_mum,6,value); else if (!strcasecmp(arg,"MUM")) setvar(sptr,&note_mum,6,value); else
if (!mycmp(arg,"MUW")) setvar(sptr,&note_muw,9,value); else if (!strcasecmp(arg,"MUW")) setvar(sptr,&note_muw,9,value); else
if (!mycmp(arg,"MST")) setvar(sptr,&note_mst,12,value); else if (!strcasecmp(arg,"MST")) setvar(sptr,&note_mst,12,value); else
if (!mycmp(arg,"MSF")) setvar(sptr,&note_msf,15,value); else if (!strcasecmp(arg,"MSF")) setvar(sptr,&note_msf,15,value); else
if (MyEq(arg,"USED")) { if (MyEq(arg,"USED")) {
while (last && t <= last) { while (last && t <= last) {
msgclient = FromNameList[t]; msgclient = FromNameList[t];
@@ -2399,11 +2399,11 @@ char *arg, *value;
fromhost = msgclient->fromhost; fromhost = msgclient->fromhost;
fromname = msgclient->fromname; fromname = msgclient->fromname;
fromnick = msgclient->fromnick; fromnick = msgclient->fromnick;
} else if (Usermycmp(msgclient->fromname,fromname)) { } else if (Userstrcasecmp(msgclient->fromname,fromname)) {
nicks++;names++; nicks++;names++;
fromname = msgclient->fromname; fromname = msgclient->fromname;
fromnick = msgclient->fromnick; fromnick = msgclient->fromnick;
} else if (mycmp(msgclient->fromnick,fromnick)) { } else if (strcasecmp(msgclient->fromnick,fromnick)) {
nicks++; nicks++;
fromnick = msgclient->fromnick; fromnick = msgclient->fromnick;
} }
@@ -2436,7 +2436,7 @@ char *arg, *value;
"H-header: ",flag_destination); "H-header: ",flag_destination);
sendto_one(sptr,"NOTICE %s :### %s",sptr->name,buf); sendto_one(sptr,"NOTICE %s :### %s",sptr->name,buf);
} }
} else if (!mycmp(arg,"RESET")) { } else if (!strcasecmp(arg,"RESET")) {
if (!IsOperHere(sptr)) if (!IsOperHere(sptr))
sendto_one(sptr,"NOTICE %s :### %s",sptr->name, sendto_one(sptr,"NOTICE %s :### %s",sptr->name,
"Wrong button - try another next time..."); "Wrong button - try another next time...");
@@ -2562,7 +2562,7 @@ char mode, *name;
int ret = 0, only_users = 0, only_head = 0; int ret = 0, only_users = 0, only_head = 0;
if (mode == 'l' && (MyEq("tail", name) || !*name)) only_users = 1; 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; only_head = 1; name = wildcard;
} }
if (!only_users) ret = check_channel(sptr, mode, name, "", ""); 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) { while (last && t <= last) {
msgclient = FromNameList[t]; msgclient = FromNameList[t];
if (now > msgclient->timeout) { t++; continue; } if (now > msgclient->timeout) { t++; continue; }
if (!mycmp(sptr->name, msgclient->fromnick) if (!strcasecmp(sptr->name, msgclient->fromnick)
&& !Usermycmp(UserName(sptr), msgclient->fromname) && !Userstrcasecmp(UserName(sptr), msgclient->fromname)
&& host_check(sptr->user->host, msgclient->fromhost) && host_check(sptr->user->host, msgclient->fromhost)
&& StrEq(msgclient->tonick, tonick) && StrEq(msgclient->tonick, tonick)
&& StrEq(msgclient->toname, toname) && StrEq(msgclient->toname, toname)
@@ -2655,7 +2655,7 @@ char *passwd, *flag_s, *timeout_s, *name, *message;
if (!join && !(flags & FLAGS_WASOPER) && !Key(sptr)) { if (!join && !(flags & FLAGS_WASOPER) && !Key(sptr)) {
t = first; t = first;
while (last && t <= last) { 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)) { if (host_check(sptr->user->host,FromNameList[t]->fromhost)) {
sent++; sent++;
if (wildcards(FromNameList[t]->tonick) 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"); strncat(buf, message, msg_len); strcat(flag_s, "-RS");
while (fromname_index && t <= fromname_index) { while (fromname_index && t <= fromname_index) {
msgclient = FromNameList[t]; msgclient = FromNameList[t];
if (!Usermycmp(UserName(sptr), msgclient->fromname) if (!Userstrcasecmp(UserName(sptr), msgclient->fromname)
&& (!mycmp(sptr->name, msgclient->fromnick) && (!strcasecmp(sptr->name, msgclient->fromnick)
|| wild_fromnick(sptr->name, msgclient) || wild_fromnick(sptr->name, msgclient)
&& host_check(sptr->user->host,msgclient->fromhost))) { && host_check(sptr->user->host,msgclient->fromhost))) {
t++; continue; t++; continue;
@@ -2781,10 +2781,10 @@ char *passwd, *flag_s, *timeout_s, *name, *message;
&& !matches(msgclient->tohost, sptr->user->host) && !matches(msgclient->tohost, sptr->user->host)
&& (!matches(toname, msgclient->tonick) && (!matches(toname, msgclient->tonick)
|| matches(toname, tonick) || matches(toname, tonick)
&& !mycmp(msgclient->tonick, tonick)) && !strcasecmp(msgclient->tonick, tonick))
&& (!*Message(msgclient) && (!*Message(msgclient)
|| !matches(Message(msgclient), message)) || !matches(Message(msgclient), message))
|| !mycmp(tonick, "admin.users")) || !strcasecmp(tonick, "admin.users"))
&& !matches(tohost, msgclient->fromhost) && !matches(tohost, msgclient->fromhost)
&& !(msgclient->flags & FLAGS_KEY_TO_OPEN_OPER_LOCKS)) { && !(msgclient->flags & FLAGS_KEY_TO_OPEN_OPER_LOCKS)) {
c = wild_fromnick(msgclient->fromnick, msgclient); c = wild_fromnick(msgclient->fromnick, msgclient);
@@ -3013,13 +3013,13 @@ char *arg, *name, *time_s, *delete;
&& (!matches(fromnick,msgclient->fromnick)) && (!matches(fromnick,msgclient->fromnick))
&& (!matches(fromname,msgclient->fromname)) && (!matches(fromname,msgclient->fromname))
&& (!matches(fromhost,msgclient->fromhost)) && (!matches(fromhost,msgclient->fromhost))
&& (!*delete || !mycmp(delete,"RM") && (!*delete || !strcasecmp(delete,"RM")
|| !mycmp(delete,"RMBF") && || !strcasecmp(delete,"RMBF") &&
(msgclient->flags & FLAGS_RETURN_CORRECT_DESTINATION || (msgclient->flags & FLAGS_RETURN_CORRECT_DESTINATION ||
msgclient->flags & FLAGS_FIND_CORRECT_DEST_SEND_ONCE))) { msgclient->flags & FLAGS_FIND_CORRECT_DEST_SEND_ONCE))) {
if (*delete || !next_msgclient if (*delete || !next_msgclient
|| mycmp(next_msgclient->fromnick,msgclient->fromnick) || strcasecmp(next_msgclient->fromnick,msgclient->fromnick)
|| mycmp(next_msgclient->fromname,msgclient->fromname) || strcasecmp(next_msgclient->fromname,msgclient->fromname)
|| !(host_check(next_msgclient->fromhost, || !(host_check(next_msgclient->fromhost,
msgclient->fromhost))) { msgclient->fromhost))) {
sendto_one(sptr,"NOTICE %s :### %s[%d] %s (%s@%s) @%s", 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) { while (last && t <= last) {
msgclient = FromNameList[t]; msgclient = FromNameList[t];
if (now > msgclient->timeout) { t++; continue; } if (now > msgclient->timeout) { t++; continue; }
if (!Usermycmp(UserName(sptr),msgclient->fromname) if (!Userstrcasecmp(UserName(sptr),msgclient->fromname)
&& (!nick || !mycmp(sptr->name,msgclient->fromnick))) { && (!nick || !strcasecmp(sptr->name,msgclient->fromnick))) {
if (host_check(sptr->user->host,msgclient->fromhost)) { if (host_check(sptr->user->host,msgclient->fromhost)) {
if (!count) if (!count)
sendto_one(sptr,"NOTICE %s :### Queued %s from host %s", sendto_one(sptr,"NOTICE %s :### Queued %s from host %s",
@@ -3349,10 +3349,10 @@ char *parv[];
if (parc < 2 || BadPtr(parv[1])) name = empty; if (parc < 2 || BadPtr(parv[1])) name = empty;
else name = strtoken(&p, parv[1], ","); 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); return n_list(cptr, sptr, parc, parv);
note_channel(cptr, sptr, 'l', name); note_channel(cptr, sptr, 'l', name);
if (!mycmp(name, "help")) if (!strcasecmp(name, "help"))
sendto_one(sptr, sendto_one(sptr,
"NOTICE %s :*** /list #first_characters_in_chn %s", "NOTICE %s :*** /list #first_characters_in_chn %s",
sptr->name, "or /list . (opermade) or /list (usermade)"); sptr->name, "or /list . (opermade) or /list (usermade)");
@@ -3393,7 +3393,7 @@ char *parv[];
return -1; return -1;
} }
param = parv[1]; param = parv[1];
if (parc > 1 && !myncmp(param,"service ",8)) { if (parc > 1 && !strncasecmp(param,"service ",8)) {
if (!IsOperHere(sptr)) { if (!IsOperHere(sptr)) {
sendto_one(sptr,"NOTICE %s :### %s",sptr->name, sendto_one(sptr,"NOTICE %s :### %s",sptr->name,
"Beyond your power poor soul..."); "Beyond your power poor soul...");
@@ -3422,7 +3422,7 @@ char *parv[];
} }
else for (acptr = client; acptr; acptr = acptr->next) else for (acptr = client; acptr; acptr = acptr->next)
if (IsServer(acptr) && acptr != cptr if (IsServer(acptr) && acptr != cptr
&& !mycmp(c, acptr->name)) { && !strcasecmp(c, acptr->name)) {
sendto_one(acptr, sendto_one(acptr,
":%s NOTE %s", sptr->name, param); ":%s NOTE %s", sptr->name, param);
break; break;
@@ -3497,11 +3497,11 @@ char *parv[];
if (MyEq(option,"VERSION")) sendto_one(sptr,"NOTICE %s :Running version %s", if (MyEq(option,"VERSION")) sendto_one(sptr,"NOTICE %s :Running version %s",
sptr->name, VERSION); sptr->name, VERSION);
else if (remote < 0 else if (remote < 0
&& mycmp(option, "NEWS") && strcasecmp(option, "NEWS")
&& mycmp(option, "XRM") && strcasecmp(option, "XRM")
&& mycmp(option, "FLAG") && strcasecmp(option, "FLAG")
&& mycmp(option, "DENY") && strcasecmp(option, "DENY")
&& mycmp(option, "XLS")) return 0; else && strcasecmp(option, "XLS")) return 0; else
if (alias_send(sptr,option, &flags, &msg, &timeout) || MyEq(option,"USER")) { if (alias_send(sptr,option, &flags, &msg, &timeout) || MyEq(option,"USER")) {
if (!*buf1) { if (!*buf1) {
if (MyEq(option,"SPY")) check_messages(sptr, sptr, sptr->name, 'g'); if (MyEq(option,"SPY")) check_messages(sptr, sptr, sptr->name, 'g');
@@ -3513,7 +3513,7 @@ char *parv[];
name = buf1;if (!*name) name = wildcard; name = buf1;if (!*name) name = wildcard;
if (name_len_error(sptr, name)) return 0; if (name_len_error(sptr, name)) return 0;
if (!timeout || !*timeout) timeout = default_timeout; 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); msg_send(sptr, silent, passwd, flags, timeout, name, msg);
} else msg_news(sptr, silent, passwd, flags, } else msg_news(sptr, silent, passwd, flags,
timeout == default_timeout ? deft : timeout, timeout == default_timeout ? deft : timeout,
@@ -3545,7 +3545,7 @@ char *parv[];
if (name_len_error(sptr, name)) return 0; if (name_len_error(sptr, name)) return 0;
note_channel(cptr, sptr, 'l', name); note_channel(cptr, sptr, 'l', name);
} else } else
if (!mycmp(option,"RM") || !mycmp(option,"XRM")) { if (!strcasecmp(option,"RM") || !strcasecmp(option,"XRM")) {
if (!*buf1 && !id && !*flags) { if (!*buf1 && !id && !*flags) {
sendto_one(sptr, sendto_one(sptr,
"NOTICE %s :#?# Please specify at least one argument", "NOTICE %s :#?# Please specify at least one argument",

View File

@@ -248,7 +248,7 @@ time_t timeout_query_list()
{ {
r2ptr = rptr->next; r2ptr = rptr->next;
tout = rptr->sentat + rptr->timeout; tout = rptr->sentat + rptr->timeout;
if (now >= tout) if (now >= tout) {
if (--rptr->retries <= 0) if (--rptr->retries <= 0)
{ {
#ifdef DEBUG #ifdef DEBUG
@@ -289,6 +289,7 @@ time_t timeout_query_list()
rptr->cinfo.value.cptr)); rptr->cinfo.value.cptr));
#endif #endif
} }
}
if (!next || tout < next) if (!next || tout < next)
next = tout; next = tout;
} }
@@ -674,9 +675,10 @@ char *lp;
static char buf[sizeof(HEADER) + MAXPACKET]; static char buf[sizeof(HEADER) + MAXPACKET];
Reg1 HEADER *hptr; Reg1 HEADER *hptr;
Reg2 ResRQ *rptr = NULL; Reg2 ResRQ *rptr = NULL;
aCache *cp; aCache *cp = NULL;
struct sockaddr_in sin; struct sockaddr_in sin;
int rc, a, len = sizeof(sin), max; socklen_t len = sizeof(sin);
int rc, a, max;
(void)alarm((unsigned)4); (void)alarm((unsigned)4);
rc = recvfrom(resfd, buf, sizeof(buf), 0, (struct sockaddr *)&sin, rc = recvfrom(resfd, buf, sizeof(buf), 0, (struct sockaddr *)&sin,
@@ -964,7 +966,7 @@ aCache *cachep;
if (addrcount >= MAXALIASES - 1) if (addrcount >= MAXALIASES - 1)
break; break;
for (j = 0, t = cp->he.h_name; t; t = cp->he.h_aliases[j++]) for (j = 0, t = cp->he.h_name; t; t = cp->he.h_aliases[j++])
if (!mycmp(t, s)) if (!strcasecmp(t, s))
break; break;
if (!t) if (!t)
{ {
@@ -1048,7 +1050,7 @@ char *name;
for (; cp; cp = cp->hname_next) for (; cp; cp = cp->hname_next)
for (i = 0, s = cp->he.h_name; s; s = cp->he.h_aliases[i++]) 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++; cainfo.ca_na_hits++;
update_list(NULL, cp); update_list(NULL, cp);
@@ -1066,7 +1068,7 @@ char *name;
if (hashv == hash_name(cp->he.h_name)) if (hashv == hash_name(cp->he.h_name))
continue; continue;
for (i = 0, s = cp->he.h_aliases[i]; s && i < MAXALIASES; i++) 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++; cainfo.ca_na_hits++;
update_list(NULL, cp); update_list(NULL, cp);
return cp; return cp;

View File

@@ -25,7 +25,7 @@ static char sccsid[] = "@(#)res_comp.c 6.18 (Berkeley) 6/27/90";
#include <stdio.h> #include <stdio.h>
#include "nameser.h" #include "nameser.h"
static dn_find(); static int dn_find();
/* /*
* Expand compressed domain name 'comp_dn' to full domain name. * 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. * '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. * 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; u_char *msg, *eomorig, *comp_dn, *exp_dn;
int length; int length;
{ {
@@ -49,7 +49,7 @@ dn_expand(msg, eomorig, comp_dn, exp_dn, length)
/* /*
* fetch next label in domain name * fetch next label in domain name
*/ */
while (n = *cp++) { while ((n = *cp++)) {
/* /*
* Check for indirection * 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' * If 'dnptr' is NULL, we don't try to compress names. If 'lastdnptr'
* is NULL, we don't update the list. * is NULL, we don't update the list.
*/ */
dn_comp(exp_dn, comp_dn, length, dnptrs, lastdnptr) int dn_comp(exp_dn, comp_dn, length, dnptrs, lastdnptr)
u_char *exp_dn, *comp_dn; char *exp_dn, *comp_dn;
int length; int length;
u_char **dnptrs, **lastdnptr; char **dnptrs, **lastdnptr;
{ {
register u_char *cp, *dn; register char *cp, *dn, *eob;
register int c, l; register int c, l;
u_char **cpp, **lpp, *sp, *eob; char **cpp = NULL, **lpp = NULL, *sp;
u_char *msg; char *msg;
dn = exp_dn; dn = exp_dn;
cp = comp_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. * 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; u_char *comp_dn, *eom;
{ {
register u_char *cp; register u_char *cp;
@@ -222,7 +222,7 @@ dn_skipname(comp_dn, eom)
* dnptrs is the pointer to the first name on the list, * dnptrs is the pointer to the first name on the list,
* not the pointer to the start of the message. * not the pointer to the start of the message.
*/ */
static static int
dn_find(exp_dn, msg, dnptrs, lastdnptr) dn_find(exp_dn, msg, dnptrs, lastdnptr)
u_char *exp_dn, *msg; u_char *exp_dn, *msg;
u_char **dnptrs, **lastdnptr; u_char **dnptrs, **lastdnptr;
@@ -234,7 +234,7 @@ dn_find(exp_dn, msg, dnptrs, lastdnptr)
for (cpp = dnptrs; cpp < lastdnptr; cpp++) { for (cpp = dnptrs; cpp < lastdnptr; cpp++) {
dn = exp_dn; dn = exp_dn;
sp = cp = *cpp; sp = cp = *cpp;
while (n = *cp++) { while ((n = *cp++)) {
/* /*
* check for indirection * check for indirection
*/ */
@@ -308,18 +308,18 @@ _getlong(msgp)
} }
putshort(s, msgp) void putshort(s, msgp)
register u_short s; register u_short s;
register u_char *msgp; register char *msgp;
{ {
msgp[1] = s; msgp[1] = s;
msgp[0] = s >> 8; msgp[0] = s >> 8;
} }
putlong(l, msgp) void putlong(l, msgp)
register u_long l; register u_long l;
register u_char *msgp; register char *msgp;
{ {
msgp[3] = l; msgp[3] = l;

View File

@@ -34,12 +34,7 @@ static char sccsid[] = "@(#)res_init.c 6.14.1 (Berkeley) 6/27/90";
* Resolver state default settings * Resolver state default settings
*/ */
struct state _res = { struct state _res;
RES_TIMEOUT, /* retransmition time interval */
4, /* number of times to retransmit */
RES_DEFAULT, /* options flags */
1, /* number of name servers */
};
/* /*
* Set up default settings. If the configuration file exist, the values * 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 * Return 0 if completes successfully, -1 on error
*/ */
res_init() int res_init()
{ {
register FILE *fp; register FILE *fp;
register char *cp, *dp, **pp; register char *cp, *dp, **pp;
@@ -64,6 +59,10 @@ res_init()
int haveenv = 0; int haveenv = 0;
int havesearch = 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_addr.s_addr = INADDR_ANY;
_res.nsaddr.sin_family = AF_INET; _res.nsaddr.sin_family = AF_INET;
_res.nsaddr.sin_port = htons(NAMESERVER_PORT); _res.nsaddr.sin_port = htons(NAMESERVER_PORT);

View File

@@ -33,7 +33,7 @@ static char sccsid[] = "@(#)res_mkquery.c 6.12 (Berkeley) 6/1/90";
* Form all types of queries. * Form all types of queries.
* Returns the size of the result or -1. * 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 */ int op; /* opcode of query */
char *dname; /* domain name */ char *dname; /* domain name */
int class, type; /* class and type of query */ int class, type; /* class and type of query */

View File

@@ -27,6 +27,7 @@ static char sccsid[] = "@(#)s_auth.c 1.18 4/18/94 (C) 1992 Darren Reed";
#include "res.h" #include "res.h"
#include "numeric.h" #include "numeric.h"
#include "patchlevel.h" #include "patchlevel.h"
#include <sys/types.h>
#include <sys/socket.h> #include <sys/socket.h>
#include <sys/file.h> #include <sys/file.h>
#include <sys/ioctl.h> #include <sys/ioctl.h>
@@ -146,7 +147,7 @@ aClient *cptr;
{ {
struct sockaddr_in us, them; struct sockaddr_in us, them;
char authbuf[32]; char authbuf[32];
int ulen, tlen; socklen_t ulen, tlen;
Debug((DEBUG_NOTICE,"write_authports(%x) fd %d authfd %d stat %d", Debug((DEBUG_NOTICE,"write_authports(%x) fd %d authfd %d stat %d",
cptr, cptr->fd, cptr->authfd, cptr->status)); cptr, cptr->fd, cptr->authfd, cptr->status));
@@ -154,9 +155,11 @@ aClient *cptr;
if (getsockname(cptr->fd, (struct sockaddr *)&us, &ulen) || if (getsockname(cptr->fd, (struct sockaddr *)&us, &ulen) ||
getpeername(cptr->fd, (struct sockaddr *)&them, &tlen)) 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 #ifdef USE_SYSLOG
syslog(LOG_ERR, "auth get{sock,peer}name error for %s:%m", syslog(LOG_ERR, "auth get{sock,peer}name error for %s: ",
get_client_name(cptr, TRUE)); get_client_name(cptr, TRUE), strerror(errno));
#endif #endif
goto authsenderr; goto authsenderr;
} }
@@ -218,7 +221,7 @@ Reg1 aClient *cptr;
cptr->lasttime = now; cptr->lasttime = now;
if ((len > 0) && (cptr->count != (sizeof(cptr->buffer) - 1)) && 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)) &remp, &locp, ruser) == 3))
{ {
s = rindex(cptr->buffer, ':'); s = rindex(cptr->buffer, ':');

View File

@@ -48,6 +48,7 @@ Computing Center and Jarkko Oikarinen";
#include <sys/socket.h> #include <sys/socket.h>
#include <sys/file.h> #include <sys/file.h>
#include <sys/ioctl.h> #include <sys/ioctl.h>
#include <sys/stat.h>
#if defined(SOL20) #if defined(SOL20)
#include <sys/filio.h> #include <sys/filio.h>
#endif #endif
@@ -172,7 +173,8 @@ aClient *cptr;
{ {
Reg1 int errtmp = errno; /* debug may change 'errno' */ Reg1 int errtmp = errno; /* debug may change 'errno' */
Reg2 char *host; Reg2 char *host;
int err, len = sizeof(err); int err;
socklen_t len = sizeof(err);
extern char *strerror(); extern char *strerror();
host = (cptr) ? get_client_name(cptr, FALSE) : ""; host = (cptr) ? get_client_name(cptr, FALSE) : "";
@@ -211,7 +213,8 @@ char *name;
int port; int port;
{ {
static struct sockaddr_in server; static struct sockaddr_in server;
int ad[4], len = sizeof(server), opt; socklen_t len = sizeof(server);
int ad[4], opt;
char ipname[20]; char ipname[20];
#ifdef VIRTUAL_HOST #ifdef VIRTUAL_HOST
struct hostent *hep; struct hostent *hep;
@@ -512,7 +515,7 @@ void init_sys()
# endif # endif
{ {
(void)fprintf(stderr,"ircd fd table too big\n"); (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); limit.rlim_max, MAXCONNECTIONS);
(void)fprintf(stderr,"Fix MAXCONNECTIONS\n"); (void)fprintf(stderr,"Fix MAXCONNECTIONS\n");
exit(-1); exit(-1);
@@ -521,7 +524,7 @@ void init_sys()
limit.rlim_cur = limit.rlim_max; /* make soft limit the max */ limit.rlim_cur = limit.rlim_max; /* make soft limit the max */
if (setrlimit(RLIMIT_FD_MAX, &limit) == -1) 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); limit.rlim_cur);
exit(-1); exit(-1);
} }
@@ -630,7 +633,7 @@ Reg1 aClient *cptr;
Reg2 char *sockn; Reg2 char *sockn;
{ {
struct sockaddr_in sk; struct sockaddr_in sk;
int len = sizeof(struct sockaddr_in); socklen_t len = sizeof(struct sockaddr_in);
#ifdef UNIXPORT #ifdef UNIXPORT
if (IsUnixSocket(cptr)) if (IsUnixSocket(cptr))
@@ -1148,7 +1151,7 @@ static void set_sock_opts(fd, cptr)
int fd; int fd;
aClient *cptr; aClient *cptr;
{ {
int opt; socklen_t opt;
#ifdef SO_REUSEADDR #ifdef SO_REUSEADDR
opt = 1; opt = 1;
if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (OPT_TYPE *)&opt, sizeof(opt)) < 0) 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) else if (opt > 0 && opt != sizeof(readbuf) / 8)
{ {
for (*readbuf = '\0'; opt > 0; opt--, s+= 3) for (*readbuf = '\0'; opt > 0; opt--, s+= 3)
(void)sprintf(s, "%02.2x:", *t++); (void)sprintf(s, "%02x:", *t++);
*s = '\0'; *s = '\0';
sendto_ops("Connection %s using IP opts: (%s)", sendto_ops("Connection %s using IP opts: (%s)",
get_client_name(cptr, TRUE), readbuf); get_client_name(cptr, TRUE), readbuf);
@@ -1209,7 +1212,8 @@ aClient *cptr;
int get_sockerr(cptr) int get_sockerr(cptr)
aClient *cptr; aClient *cptr;
{ {
int errtmp = errno, err = 0, len = sizeof(err); int errtmp = errno, err = 0;
socklen_t len = sizeof(err);
#ifdef SO_ERROR #ifdef SO_ERROR
if (cptr->fd >= 0) if (cptr->fd >= 0)
if (!getsockopt(cptr->fd, SOL_SOCKET, SO_ERROR, (OPT_TYPE *)&err, &len)) if (!getsockopt(cptr->fd, SOL_SOCKET, SO_ERROR, (OPT_TYPE *)&err, &len))
@@ -1287,7 +1291,7 @@ int fd;
{ {
Reg1 char *s, *t; Reg1 char *s, *t;
struct sockaddr_in addr; 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) if (getpeername(fd, (struct sockaddr *) &addr, &len) == -1)
{ {
@@ -2389,10 +2393,10 @@ int len;
** later for making the right one is used ** later for making the right one is used
** for connecting to other hosts. ** for connecting to other hosts.
*/ */
if (!mycmp(me.name, tmp)) if (!strcasecmp(me.name, tmp))
break; break;
} }
if (mycmp(me.name, tmp)) if (strcasecmp(me.name, tmp))
strncpyzt(name, hp->h_name, len); strncpyzt(name, hp->h_name, len);
else else
strncpyzt(name, tmp, len); strncpyzt(name, tmp, len);
@@ -2473,7 +2477,8 @@ static void polludp()
{ {
Reg1 char *s; Reg1 char *s;
struct sockaddr_in from; struct sockaddr_in from;
int n, fromlen = sizeof(from); socklen_t fromlen = sizeof(from);
int n;
static time_t last = 0; static time_t last = 0;
static int cnt = 0, mlen = 0; static int cnt = 0, mlen = 0;
@@ -2579,7 +2584,7 @@ static void do_dns_async()
if (hp) if (hp)
{ {
bcopy(hp->h_addr, (char *)&cptr->ip, sizeof(struct in_addr)); 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); end_ping(cptr);
} }
else else

View File

@@ -327,7 +327,7 @@ int statmask;
} }
else if ((tmp->status & statmask) && !IsIllegal(tmp) && else if ((tmp->status & statmask) && !IsIllegal(tmp) &&
(tmp->status & (CONF_SERVER_MASK|CONF_HUB)) && (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) if (!attach_conf(cptr, tmp) && !first)
first = tmp; first = tmp;
@@ -362,7 +362,7 @@ int statmask;
} }
else if ((tmp->status & statmask) && !IsIllegal(tmp) && else if ((tmp->status & statmask) && !IsIllegal(tmp) &&
(tmp->status & CONF_SERVER_MASK) && (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) if (!attach_conf(cptr, tmp) && !first)
first = tmp; first = tmp;
@@ -386,7 +386,7 @@ int statmask;
for (tmp = conf; tmp; tmp = tmp->next) for (tmp = conf; tmp; tmp = tmp->next)
{ {
if (!(tmp->status & statmask) || !tmp->name || !tmp->host || if (!(tmp->status & statmask) || !tmp->name || !tmp->host ||
mycmp(tmp->name, name)) strcasecmp(tmp->name, name))
continue; continue;
/* /*
** Accept if the *real* hostname (usually sockecthost) ** Accept if the *real* hostname (usually sockecthost)
@@ -443,7 +443,7 @@ int statmask;
tmp = lp->value.aconf; tmp = lp->value.aconf;
if ((tmp->status & statmask) && if ((tmp->status & statmask) &&
(((tmp->status & (CONF_SERVER_MASK|CONF_HUB)) && (((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->status & (CONF_SERVER_MASK|CONF_HUB)) == 0 &&
tmp->name && !match(tmp->name, name)))) tmp->name && !match(tmp->name, name))))
return tmp; return tmp;
@@ -527,20 +527,20 @@ u_int mask;
if ((BadPtr(bconf->host) && !BadPtr(aconf->host)) || if ((BadPtr(bconf->host) && !BadPtr(aconf->host)) ||
(BadPtr(aconf->host) && !BadPtr(bconf->host))) (BadPtr(aconf->host) && !BadPtr(bconf->host)))
continue; continue;
if (!BadPtr(bconf->host) && mycmp(bconf->host, aconf->host)) if (!BadPtr(bconf->host) && strcasecmp(bconf->host, aconf->host))
continue; continue;
if ((BadPtr(bconf->passwd) && !BadPtr(aconf->passwd)) || if ((BadPtr(bconf->passwd) && !BadPtr(aconf->passwd)) ||
(BadPtr(aconf->passwd) && !BadPtr(bconf->passwd))) (BadPtr(aconf->passwd) && !BadPtr(bconf->passwd)))
continue; continue;
if (!BadPtr(bconf->passwd) && mycmp(bconf->passwd, "ONE") && if (!BadPtr(bconf->passwd) && strcasecmp(bconf->passwd, "ONE") &&
mycmp(bconf->passwd, aconf->passwd)) strcasecmp(bconf->passwd, aconf->passwd))
continue; continue;
if ((BadPtr(bconf->name) && !BadPtr(aconf->name)) || if ((BadPtr(bconf->name) && !BadPtr(aconf->name)) ||
(BadPtr(aconf->name) && !BadPtr(bconf->name))) (BadPtr(aconf->name) && !BadPtr(bconf->name)))
continue; continue;
if (!BadPtr(bconf->name) && mycmp(bconf->name, aconf->name)) if (!BadPtr(bconf->name) && strcasecmp(bconf->name, aconf->name))
continue; continue;
break; break;
} }
@@ -650,7 +650,7 @@ int sig;
(void)attach_confs(acptr, acptr->name, (void)attach_confs(acptr, acptr->name,
CONF_HUB|CONF_LEAF|CONF_UWORLD); 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" : sendto_ops(found_g == -2 ? "G-line active for %s" :
"K-line active for %s", "K-line active for %s",
@@ -781,7 +781,7 @@ int opt;
if (!*(tmp+1)) if (!*(tmp+1))
break; break;
else else
for (s = tmp; *s = *(s+1); s++) for (s = tmp; (*s = *(s+1)); s++)
; ;
} }
else if (*tmp == '#') else if (*tmp == '#')
@@ -941,7 +941,7 @@ int opt;
{ {
aConfItem *bconf; aConfItem *bconf;
if (bconf = find_conf_entry(aconf, aconf->status)) if ((bconf = find_conf_entry(aconf, aconf->status)))
{ {
delist_conf(bconf); delist_conf(bconf);
bconf->status &= ~CONF_ILLEGAL; bconf->status &= ~CONF_ILLEGAL;
@@ -1146,7 +1146,7 @@ aClient *cptr;
if ((tmp->status == CONF_KILL) && tmp->host && tmp->name && if ((tmp->status == CONF_KILL) && tmp->host && tmp->name &&
(match(tmp->host, host) == 0) && (match(tmp->host, host) == 0) &&
(!name || match(tmp->name, name) == 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 /* can short-circuit evaluation - not taking chances
cos check_time_interval destroys tmp->passwd cos check_time_interval destroys tmp->passwd
- Mmmm - Mmmm
@@ -1157,6 +1157,7 @@ aClient *cptr;
break; break;
else if (check_time_interval(tmp->passwd, reply)) else if (check_time_interval(tmp->passwd, reply))
break; break;
}
if (reply[0]) if (reply[0])
@@ -1318,7 +1319,6 @@ char *parv, *filename;
char line[80]; char line[80];
Reg1 char *tmp; Reg1 char *tmp;
struct stat sb; struct stat sb;
struct tm *tm;
/* /*
* stop NFS hangs...most systems should be able to open a file in * stop NFS hangs...most systems should be able to open a file in
@@ -1336,7 +1336,6 @@ char *parv, *filename;
return 0; return 0;
} }
(void)fstat(fd, &sb); (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 */ (void)dgets(-1, NULL, 0); /* make sure buffer is at empty pos */
while (dgets(fd, line, sizeof(line)-1) > 0) while (dgets(fd, line, sizeof(line)-1) > 0)
{ {

View File

@@ -167,19 +167,17 @@ char *form, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8, *p9, *p10;
{ {
int err = errno; int err = errno;
#else #else
void debug(level, form, va_alist) void debug(int level, char *form, ...)
int level;
char *form;
va_dcl
{ {
va_list vl; va_list vl;
int err = errno; int err = errno;
va_start(vl); va_start(vl, form);
#endif #endif
if ((debuglevel >= 0) && (level <= debuglevel)) if ((debuglevel >= 0) && (level <= debuglevel))
{ {
fprintf(stderr, "[%ld] ", clock());
#ifndef USE_VARARGS #ifndef USE_VARARGS
(void)sprintf(debugbuf, form, (void)sprintf(debugbuf, form,
p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); p1, p2, p3, p4, p5, p6, p7, p8, p9, p10);
@@ -227,7 +225,7 @@ char *nick;
if (getrusage(RUSAGE_SELF, &rus) == -1) if (getrusage(RUSAGE_SELF, &rus) == -1)
{ {
#if !defined(__FreeBSD__) && !defined(__NetBSD__) #if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__linux__)
extern char *sys_errlist[]; extern char *sys_errlist[];
#endif #endif
sendto_one(cptr,":%s NOTICE %s :Getruseage error: %s.", 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", 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); 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, me.name, RPL_STATSDEBUG, nick, tot,
(u_int)sbrk((size_t)0)-(u_int)sbrk0); ((unsigned char *)sbrk(0))-(unsigned char *)sbrk0);
return; return;
} }

View File

@@ -34,261 +34,261 @@ static char numbuff[512];
static char numbers[] = "0123456789"; static char numbers[] = "0123456789";
static Numeric local_replies[] = { static Numeric local_replies[] = {
/* 000 */ 0, (char *)NULL, {/* 000 */ 0, (char *)NULL},
/* 001 */ RPL_WELCOME, ":Welcome to the Internet Relay Network %s", {/* 001 */ RPL_WELCOME, ":Welcome to the Internet Relay Network %s"},
/* 002 */ RPL_YOURHOST, ":Your host is %s, running version %s", {/* 002 */ RPL_YOURHOST, ":Your host is %s, running version %s"},
/* 003 */ RPL_CREATED, ":This server was created %s", {/* 003 */ RPL_CREATED, ":This server was created %s"},
/* 004 */ RPL_MYINFO, "%s %s dioswk biklmnopstv", {/* 004 */ RPL_MYINFO, "%s %s dioswk biklmnopstv"},
/* 005 */ RPL_MAP, ":%s%s", {/* 005 */ RPL_MAP, ":%s%s"},
/* 006 */ RPL_MAPMORE, ":%s%s --> *more*", {/* 006 */ RPL_MAPMORE, ":%s%s --> *more*"},
/* 007 */ RPL_MAPEND, ":End of /MAP", {/* 007 */ RPL_MAPEND, ":End of /MAP"},
0, (char *)NULL { 0, (char *)NULL}
}; };
static Numeric numeric_errors[] = { static Numeric numeric_errors[] = {
/* 401 */ ERR_NOSUCHNICK, "%s :No such nick/channel", {/* 401 */ ERR_NOSUCHNICK, "%s :No such nick/channel"},
/* 402 */ ERR_NOSUCHSERVER, "%s :No such server", {/* 402 */ ERR_NOSUCHSERVER, "%s :No such server"},
/* 402 */ ERR_NOSUCHCHANNEL, "%s :No such channel", {/* 402 */ ERR_NOSUCHCHANNEL, "%s :No such channel"},
/* 402 */ ERR_CANNOTSENDTOCHAN, "%s :Cannot send to channel", {/* 402 */ ERR_CANNOTSENDTOCHAN, "%s :Cannot send to channel"},
/* 402 */ ERR_TOOMANYCHANNELS, "%s :You have joined too many channels", {/* 402 */ ERR_TOOMANYCHANNELS, "%s :You have joined too many channels"},
/* 402 */ ERR_WASNOSUCHNICK, "%s :There was no such nickname", {/* 402 */ ERR_WASNOSUCHNICK, "%s :There was no such nickname"},
/* 402 */ ERR_TOOMANYTARGETS, {/* 402 */ ERR_TOOMANYTARGETS,
"%s :Duplicate recipients. No message delivered", "%s :Duplicate recipients. No message delivered"},
/* 402 */ ERR_NOSUCHSERVICE, (char *)NULL, {/* 402 */ ERR_NOSUCHSERVICE, (char *)NULL},
/* 402 */ ERR_NOORIGIN, ":No origin specified", {/* 402 */ ERR_NOORIGIN, ":No origin specified"},
0, (char *)NULL, { 0, (char *)NULL},
/* 411 */ ERR_NORECIPIENT, ":No recipient given (%s)", {/* 411 */ ERR_NORECIPIENT, ":No recipient given (%s)"},
/* 411 */ ERR_NOTEXTTOSEND, ":No text to send", {/* 411 */ ERR_NOTEXTTOSEND, ":No text to send"},
/* 411 */ ERR_NOTOPLEVEL, "%s :No toplevel domain specified", {/* 411 */ ERR_NOTOPLEVEL, "%s :No toplevel domain specified"},
/* 411 */ ERR_WILDTOPLEVEL, "%s :Wildcard in toplevel Domain", {/* 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},
0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, { 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL},
/* 421 */ ERR_UNKNOWNCOMMAND, "%s :Unknown command", {/* 421 */ ERR_UNKNOWNCOMMAND, "%s :Unknown command"},
/* 422 */ ERR_NOMOTD, ":MOTD File is missing", {/* 422 */ ERR_NOMOTD, ":MOTD File is missing"},
/* 422 */ ERR_NOADMININFO, {/* 422 */ ERR_NOADMININFO,
"%s :No administrative info available", "%s :No administrative info available"},
/* 422 */ ERR_FILEERROR, ":File error doing %s on %s", {/* 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},
0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, { 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL},
/* 431 */ ERR_NONICKNAMEGIVEN, ":No nickname given", {/* 431 */ ERR_NONICKNAMEGIVEN, ":No nickname given"},
/* 432 */ ERR_ERRONEUSNICKNAME, "%s :Erroneus Nickname", {/* 432 */ ERR_ERRONEUSNICKNAME, "%s :Erroneus Nickname"},
/* 433 */ ERR_NICKNAMEINUSE, "%s :Nickname is already in use.", {/* 433 */ ERR_NICKNAMEINUSE, "%s :Nickname is already in use."},
/* 434 */ ERR_SERVICENAMEINUSE, (char *)NULL, {/* 434 */ ERR_SERVICENAMEINUSE, (char *)NULL},
/* 435 */ ERR_SERVICECONFUSED, (char *)NULL, {/* 435 */ ERR_SERVICECONFUSED, (char *)NULL},
/* 436 */ ERR_NICKCOLLISION, "%s :Nickname collision KILL", {/* 436 */ ERR_NICKCOLLISION, "%s :Nickname collision KILL"},
/* 437 */ ERR_BANNICKCHANGE, {/* 437 */ ERR_BANNICKCHANGE,
"%s :Cannot change nickname while banned on channel", "%s :Cannot change nickname while banned on channel"},
/* 438 */ ERR_NICKTOOFAST, "%s :Nick change too fast. Please wait %d seconds.", {/* 438 */ ERR_NICKTOOFAST, "%s :Nick change too fast. Please wait %d seconds."},
0, (char *)NULL, 0, (char *)NULL, { 0, (char *)NULL}, {0, (char *)NULL},
/* 441 */ ERR_USERNOTINCHANNEL, "%s %s :They aren't on that channel", {/* 441 */ ERR_USERNOTINCHANNEL, "%s %s :They aren't on that channel"},
/* 442 */ ERR_NOTONCHANNEL, "%s :You're not on that channel", {/* 442 */ ERR_NOTONCHANNEL, "%s :You're not on that channel"},
/* 443 */ ERR_USERONCHANNEL, "%s %s :is already on channel", {/* 443 */ ERR_USERONCHANNEL, "%s %s :is already on channel"},
/* 444 */ ERR_NOLOGIN, "%s :User not logged in", {/* 444 */ ERR_NOLOGIN, "%s :User not logged in"},
#ifndef ENABLE_SUMMON #ifndef ENABLE_SUMMON
/* 445 */ ERR_SUMMONDISABLED, ":SUMMON has been disabled", {/* 445 */ ERR_SUMMONDISABLED, ":SUMMON has been disabled"},
#else #else
0, (char *)NULL, { 0, (char *)NULL},
#endif #endif
#ifndef ENABLE_USERS #ifndef ENABLE_USERS
/* 446 */ ERR_USERSDISABLED, ":USERS has been disabled", {/* 446 */ ERR_USERSDISABLED, ":USERS has been disabled"},
#else #else
0, (char *)NULL, { 0, (char *)NULL},
#endif #endif
0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, { 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL},
0, (char *)NULL, { 0, (char *)NULL},
/* 451 */ ERR_NOTREGISTERED, ":You have not registered", {/* 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, { 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", {/* 461 */ ERR_NEEDMOREPARAMS, "%s :Not enough parameters"},
/* 462 */ ERR_ALREADYREGISTRED, ":You may not reregister", {/* 462 */ ERR_ALREADYREGISTRED, ":You may not reregister"},
/* 463 */ ERR_NOPERMFORHOST, ":Your host isn't among the privileged", {/* 463 */ ERR_NOPERMFORHOST, ":Your host isn't among the privileged"},
/* 464 */ ERR_PASSWDMISMATCH, ":Password Incorrect", {/* 464 */ ERR_PASSWDMISMATCH, ":Password Incorrect"},
/* 465 */ ERR_YOUREBANNEDCREEP, ":You are banned from this server", {/* 465 */ ERR_YOUREBANNEDCREEP, ":You are banned from this server"},
/* 466 */ ERR_YOUWILLBEBANNED, (char *)NULL, {/* 466 */ ERR_YOUWILLBEBANNED, (char *)NULL},
/* 467 */ ERR_KEYSET, "%s :Channel key already set", {/* 467 */ ERR_KEYSET, "%s :Channel key already set"},
0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, { 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL},
/* 471 */ ERR_CHANNELISFULL, "%s :Cannot join channel (+l)", {/* 471 */ ERR_CHANNELISFULL, "%s :Cannot join channel (+l)"},
/* 472 */ ERR_UNKNOWNMODE , "%c :is unknown mode char to me", {/* 472 */ ERR_UNKNOWNMODE , "%c :is unknown mode char to me"},
/* 473 */ ERR_INVITEONLYCHAN, "%s :Cannot join channel (+i)", {/* 473 */ ERR_INVITEONLYCHAN, "%s :Cannot join channel (+i)"},
/* 474 */ ERR_BANNEDFROMCHAN, "%s :Cannot join channel (+b)", {/* 474 */ ERR_BANNEDFROMCHAN, "%s :Cannot join channel (+b)"},
/* 475 */ ERR_BADCHANNELKEY, "%s :Cannot join channel (+k)", {/* 475 */ ERR_BADCHANNELKEY, "%s :Cannot join channel (+k)"},
/* 476 */ ERR_BADCHANMASK, "%s :Bad Channel Mask", {/* 476 */ ERR_BADCHANMASK, "%s :Bad Channel Mask"},
0, (char *)NULL, { 0, (char *)NULL},
/* 478 */ ERR_BANLISTFULL, "%s %s :Channel ban/ignore list is full", {/* 478 */ ERR_BANLISTFULL, "%s %s :Channel ban/ignore list is full"},
0, (char *)NULL, 0, (char *)NULL, { 0, (char *)NULL}, {0, (char *)NULL},
/* 481 */ ERR_NOPRIVILEGES, {/* 481 */ ERR_NOPRIVILEGES,
":Permission Denied- You're not an IRC operator", ":Permission Denied- You're not an IRC operator"},
/* 482 */ ERR_CHANOPRIVSNEEDED, "%s :You're not channel operator", {/* 482 */ ERR_CHANOPRIVSNEEDED, "%s :You're not channel operator"},
/* 483 */ ERR_CANTKILLSERVER, ":You cant kill a server!", {/* 483 */ ERR_CANTKILLSERVER, ":You cant kill a server!"},
/* 484 */ ERR_ISCHANSERVICE, "%s %s :Cannot kick or deop channel service", {/* 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},
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", {/* 491 */ ERR_NOOPERHOST, ":No O-lines for your host"},
/* 492 */ ERR_NOSERVICEHOST, (char *)NULL, {/* 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, 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", {/* 501 */ ERR_UMODEUNKNOWNFLAG, ":Unknown MODE flag"},
/* 502 */ ERR_USERSDONTMATCH, ":Cant change mode for other users", {/* 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, 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", {/* 511 */ ERR_SILELISTFULL, "%s :Your silence list is full"},
/* 512 */ ERR_NOSUCHGLINE, "%s@%s :No such gline", {/* 512 */ ERR_NOSUCHGLINE, "%s@%s :No such gline"},
/* 513 */ ERR_BADPING, (char*)NULL {/* 513 */ ERR_BADPING, (char*)NULL}
}; };
static Numeric numeric_replies[] = { static Numeric numeric_replies[] = {
/* 300 */ RPL_NONE, (char *)NULL, {/* 300 */ RPL_NONE, (char *)NULL},
/* 301 */ RPL_AWAY, "%s :%s", {/* 301 */ RPL_AWAY, "%s :%s"},
/* 302 */ RPL_USERHOST, ":", {/* 302 */ RPL_USERHOST, ":"},
/* 303 */ RPL_ISON, ":", {/* 303 */ RPL_ISON, ":"},
/* 304 */ RPL_TEXT, (char *)NULL, {/* 304 */ RPL_TEXT, (char *)NULL},
/* 305 */ RPL_UNAWAY, ":You are no longer marked as being away", {/* 305 */ RPL_UNAWAY, ":You are no longer marked as being away"},
/* 306 */ RPL_NOWAWAY, ":You have been 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}, {0, (char *)NULL}, {0, (char *)NULL},
0, (char *)NULL, { 0, (char *)NULL},
/* 311 */ RPL_WHOISUSER, "%s %s %s * :%s", {/* 311 */ RPL_WHOISUSER, "%s %s %s * :%s"},
/* 312 */ RPL_WHOISSERVER, "%s %s :%s", {/* 312 */ RPL_WHOISSERVER, "%s %s :%s"},
/* 313 */ RPL_WHOISOPERATOR, "%s :is an IRC Operator", {/* 313 */ RPL_WHOISOPERATOR, "%s :is an IRC Operator"},
/* 314 */ RPL_WHOWASUSER, "%s %s %s * :%s", {/* 314 */ RPL_WHOWASUSER, "%s %s %s * :%s"},
/* 315 */ RPL_ENDOFWHO, "%s :End of /WHO list.", {/* 315 */ RPL_ENDOFWHO, "%s :End of /WHO list."},
/* 316 */ RPL_WHOISCHANOP, (char *)NULL, {/* 316 */ RPL_WHOISCHANOP, (char *)NULL},
/* 317 */ RPL_WHOISIDLE, "%s %ld %ld :seconds idle, signon time", {/* 317 */ RPL_WHOISIDLE, "%s %ld %ld :seconds idle, signon time"},
/* 318 */ RPL_ENDOFWHOIS, "%s :End of /WHOIS list.", {/* 318 */ RPL_ENDOFWHOIS, "%s :End of /WHOIS list."},
/* 319 */ RPL_WHOISCHANNELS, "%s :%s", {/* 319 */ RPL_WHOISCHANNELS, "%s :%s"},
0, (char *)NULL, { 0, (char *)NULL},
/* 321 */ RPL_LISTSTART, "Channel :Users Name", {/* 321 */ RPL_LISTSTART, "Channel :Users Name"},
/* 322 */ RPL_LIST, "%s %d :%s", {/* 322 */ RPL_LIST, "%s %d :%s"},
/* 323 */ RPL_LISTEND, ":End of /LIST", {/* 323 */ RPL_LISTEND, ":End of /LIST"},
/* 324 */ RPL_CHANNELMODEIS, "%s %s %s", {/* 324 */ RPL_CHANNELMODEIS, "%s %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},
/* 329 */ RPL_CREATIONTIME, "%s %lu", {/* 329 */ RPL_CREATIONTIME, "%s %lu"},
0, (char *)NULL, { 0, (char *)NULL},
/* 331 */ RPL_NOTOPIC, "%s :No topic is set.", {/* 331 */ RPL_NOTOPIC, "%s :No topic is set."},
/* 332 */ RPL_TOPIC, "%s :%s", {/* 332 */ RPL_TOPIC, "%s :%s"},
/* 333 */ RPL_TOPICWHOTIME, "%s %s %lu", {/* 333 */ RPL_TOPICWHOTIME, "%s %s %lu"},
/* 334 */ RPL_LISTUSAGE, ":%s", {/* 334 */ RPL_LISTUSAGE, ":%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}, {0, (char *)NULL},
0, (char *)NULL, { 0, (char *)NULL},
/* 341 */ RPL_INVITING, "%s %s", {/* 341 */ RPL_INVITING, "%s %s"},
/* 342 */ RPL_SUMMONING, "%s :User summoned to irc", {/* 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}, {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", {/* 351 */ RPL_VERSION, "%s.%s %s :%s"},
/* 352 */ RPL_WHOREPLY, "%s %s %s %s %s %s :%d %s", {/* 352 */ RPL_WHOREPLY, "%s %s %s %s %s %s :%d %s"},
/* 353 */ RPL_NAMREPLY, "%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, 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, {/* 361 */ RPL_KILLDONE, (char *)NULL},
/* 362 */ RPL_CLOSING, "%s :Closed. Status = %d", {/* 362 */ RPL_CLOSING, "%s :Closed. Status = %d"},
/* 363 */ RPL_CLOSEEND, "%d: Connections Closed", {/* 363 */ RPL_CLOSEEND, "%d: Connections Closed"},
/* 364 */ RPL_LINKS, "%s %s :%d P%u %s", {/* 364 */ RPL_LINKS, "%s %s :%d P%u %s"},
/* 365 */ RPL_ENDOFLINKS, "%s :End of /LINKS list.", {/* 365 */ RPL_ENDOFLINKS, "%s :End of /LINKS list."},
/* 366 */ RPL_ENDOFNAMES, "%s :End of /NAMES list.", {/* 366 */ RPL_ENDOFNAMES, "%s :End of /NAMES list."},
/* 367 */ RPL_BANLIST, "%s %s %s %lu", {/* 367 */ RPL_BANLIST, "%s %s %s %lu"},
/* 368 */ RPL_ENDOFBANLIST, "%s :End of Channel Ban List", {/* 368 */ RPL_ENDOFBANLIST, "%s :End of Channel Ban List"},
/* 369 */ RPL_ENDOFWHOWAS, "%s :End of WHOWAS", {/* 369 */ RPL_ENDOFWHOWAS, "%s :End of WHOWAS"},
0, (char *)NULL, { 0, (char *)NULL},
/* 371 */ RPL_INFO, ":%s", {/* 371 */ RPL_INFO, ":%s"},
/* 372 */ RPL_MOTD, ":- %s", {/* 372 */ RPL_MOTD, ":- %s"},
/* 373 */ RPL_INFOSTART, ":Server INFO", {/* 373 */ RPL_INFOSTART, ":Server INFO"},
/* 374 */ RPL_ENDOFINFO, ":End of /INFO list.", {/* 374 */ RPL_ENDOFINFO, ":End of /INFO list."},
/* 375 */ RPL_MOTDSTART, ":- %s Message of the Day - ", {/* 375 */ RPL_MOTDSTART, ":- %s Message of the Day - "},
/* 376 */ RPL_ENDOFMOTD, ":End of /MOTD command.", {/* 376 */ RPL_ENDOFMOTD, ":End of /MOTD command."},
0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, { 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL},
0, (char *)NULL, { 0, (char *)NULL},
/* 381 */ RPL_YOUREOPER, ":You are now an IRC Operator", {/* 381 */ RPL_YOUREOPER, ":You are now an IRC Operator"},
/* 382 */ RPL_REHASHING, "%s :Rehashing", {/* 382 */ RPL_REHASHING, "%s :Rehashing"},
/* 383 */ RPL_YOURESERVICE, (char *)NULL, {/* 383 */ RPL_YOURESERVICE, (char *)NULL},
/* 384 */ RPL_MYPORTIS, "%d :Port to local server is\r\n", {/* 384 */ RPL_MYPORTIS, "%d :Port to local server is\r\n"},
/* 385 */ RPL_NOTOPERANYMORE, (char *)NULL, {/* 385 */ RPL_NOTOPERANYMORE, (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, { 0, (char *)NULL}, {0, (char *)NULL},
/* 391 */ RPL_TIME, "%s %lu %ld :%s", {/* 391 */ RPL_TIME, "%s %lu %ld :%s"},
#ifdef ENABLE_USERS #ifdef ENABLE_USERS
/* 392 */ RPL_USERSSTART, ":UserID Terminal Host", {/* 392 */ RPL_USERSSTART, ":UserID Terminal Host"},
/* 393 */ RPL_USERS, ":%-8s %-9s %-8s", {/* 393 */ RPL_USERS, ":%-8s %-9s %-8s"},
/* 394 */ RPL_ENDOFUSERS, ":End of Users", {/* 394 */ RPL_ENDOFUSERS, ":End of Users"},
/* 395 */ RPL_NOUSERS, ":Nobody logged in.", {/* 395 */ RPL_NOUSERS, ":Nobody logged in."},
#else #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 #endif
0, (char *)NULL, 0, (char *)NULL, 0, (char *)NULL, { 0, (char *)NULL}, {0, (char *)NULL}, {0, (char *)NULL},
0, (char *)NULL, { 0, (char *)NULL},
/* 200 */ RPL_TRACELINK, "Link %s%s %s %s", {/* 200 */ RPL_TRACELINK, "Link %s%s %s %s"},
/* 201 */ RPL_TRACECONNECTING, "Try. %d %s", {/* 201 */ RPL_TRACECONNECTING, "Try. %d %s"},
/* 202 */ RPL_TRACEHANDSHAKE, "H.S. %d %s", {/* 202 */ RPL_TRACEHANDSHAKE, "H.S. %d %s"},
/* 203 */ RPL_TRACEUNKNOWN, "???? %d %s", {/* 203 */ RPL_TRACEUNKNOWN, "???? %d %s"},
/* 204 */ RPL_TRACEOPERATOR, "Oper %d %s %ld", {/* 204 */ RPL_TRACEOPERATOR, "Oper %d %s %ld"},
/* 205 */ RPL_TRACEUSER, "User %d %s %ld", {/* 205 */ RPL_TRACEUSER, "User %d %s %ld"},
/* 206 */ RPL_TRACESERVER, "Serv %d %dS %dC %s %s!%s@%s %ld", {/* 206 */ RPL_TRACESERVER, "Serv %d %dS %dC %s %s!%s@%s %ld"},
/* 207 */ RPL_TRACESERVICE, "Service %d %s", {/* 207 */ RPL_TRACESERVICE, "Service %d %s"},
/* 208 */ RPL_TRACENEWTYPE, "<newtype> 0 %s", {/* 208 */ RPL_TRACENEWTYPE, "<newtype> 0 %s"},
/* 209 */ RPL_TRACECLASS, "Class %d %d", {/* 209 */ RPL_TRACECLASS, "Class %d %d"},
0, (char *)NULL, { 0, (char *)NULL},
/* 211 */ RPL_STATSLINKINFO, (char *)NULL, {/* 211 */ RPL_STATSLINKINFO, (char *)NULL},
/* 212 */ RPL_STATSCOMMANDS, "%s %u %u", {/* 212 */ RPL_STATSCOMMANDS, "%s %u %u"},
/* 213 */ RPL_STATSCLINE, "%c %s * %s %d %d", {/* 213 */ RPL_STATSCLINE, "%c %s * %s %d %d"},
/* 214 */ RPL_STATSNLINE, "%c %s * %s %d %d", {/* 214 */ RPL_STATSNLINE, "%c %s * %s %d %d"},
/* 215 */ RPL_STATSILINE, "%c %s * %s %d %d", {/* 215 */ RPL_STATSILINE, "%c %s * %s %d %d"},
/* 216 */ RPL_STATSKLINE, "%c %s %s %s %d %d", {/* 216 */ RPL_STATSKLINE, "%c %s %s %s %d %d"},
/* 217 */ RPL_STATSQLINE, "%c %s * %s %d %d", {/* 217 */ RPL_STATSQLINE, "%c %s * %s %d %d"},
/* 218 */ RPL_STATSYLINE, "%c %d %d %d %d %ld", {/* 218 */ RPL_STATSYLINE, "%c %d %d %d %d %ld"},
/* 219 */ RPL_ENDOFSTATS, "%c :End of /STATS report", {/* 219 */ RPL_ENDOFSTATS, "%c :End of /STATS report"},
0, (char *)NULL, { 0, (char *)NULL},
/* 221 */ RPL_UMODEIS, "%s", {/* 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, { 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, {/* 231 */ RPL_SERVICEINFO, (char *)NULL},
/* 232 */ RPL_ENDOFSERVICES, (char *)NULL, {/* 232 */ RPL_ENDOFSERVICES, (char *)NULL},
/* 233 */ RPL_SERVICE, (char *)NULL, {/* 233 */ RPL_SERVICE, (char *)NULL},
/* 234 */ RPL_SERVLIST, (char *)NULL, {/* 234 */ RPL_SERVLIST, (char *)NULL},
/* 235 */ RPL_SERVLISTEND, (char *)NULL, {/* 235 */ RPL_SERVLISTEND, (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, { 0, (char *)NULL}, {0, (char *)NULL},
/* 241 */ RPL_STATSLLINE, "%c %s * %s %d %d", {/* 241 */ RPL_STATSLLINE, "%c %s * %s %d %d"},
/* 242 */ RPL_STATSUPTIME, ":Server Up %d days, %d:%02d:%02d", {/* 242 */ RPL_STATSUPTIME, ":Server Up %d days, %d:%02d:%02d"},
/* 243 */ RPL_STATSOLINE, "%c %s * %s %d %d", {/* 243 */ RPL_STATSOLINE, "%c %s * %s %d %d"},
/* 244 */ RPL_STATSHLINE, "%c %s * %s %d %d", {/* 244 */ RPL_STATSHLINE, "%c %s * %s %d %d"},
/* 245 */ RPL_STATSSLINE, "%c %s * %s %d %d", {/* 245 */ RPL_STATSSLINE, "%c %s * %s %d %d"},
/* 246 */ RPL_STATSTLINE, "%c %s %s", {/* 246 */ RPL_STATSTLINE, "%c %s %s"},
/* 247 */ RPL_STATSGLINE, "%c %s@%s %lu :%s", {/* 247 */ RPL_STATSGLINE, "%c %s@%s %lu :%s"},
/* 248 */ RPL_STATSULINE, "%c %s * %s %d %d", {/* 248 */ RPL_STATSULINE, "%c %s * %s %d %d"},
0, (char *)NULL, { 0, (char *)NULL},
/* 250 */ RPL_STATSCONN, {/* 250 */ RPL_STATSCONN,
":Highest connection count: %d (%d clients)", ":Highest connection count: %d (%d clients)"},
/* 251 */ RPL_LUSERCLIENT, {/* 251 */ RPL_LUSERCLIENT,
":There are %d users and %d invisible on %d servers", ":There are %d users and %d invisible on %d servers"},
/* 252 */ RPL_LUSEROP, "%d :operator(s) online", {/* 252 */ RPL_LUSEROP, "%d :operator(s) online"},
/* 253 */ RPL_LUSERUNKNOWN, "%d :unknown connection(s)", {/* 253 */ RPL_LUSERUNKNOWN, "%d :unknown connection(s)"},
/* 254 */ RPL_LUSERCHANNELS, "%d :channels formed", {/* 254 */ RPL_LUSERCHANNELS, "%d :channels formed"},
/* 255 */ RPL_LUSERME, ":I have %d clients and %d servers", {/* 255 */ RPL_LUSERME, ":I have %d clients and %d servers"},
/* 256 */ RPL_ADMINME, ":Administrative info about %s", {/* 256 */ RPL_ADMINME, ":Administrative info about %s"},
/* 257 */ RPL_ADMINLOC1, ":%s", {/* 257 */ RPL_ADMINLOC1, ":%s"},
/* 258 */ RPL_ADMINLOC2, ":%s", {/* 258 */ RPL_ADMINLOC2, ":%s"},
/* 259 */ RPL_ADMINEMAIL, ":%s", {/* 259 */ RPL_ADMINEMAIL, ":%s"},
0, (char *)NULL, { 0, (char *)NULL},
/* 261 */ RPL_TRACELOG, "File %s %d", {/* 261 */ RPL_TRACELOG, "File %s %d"},
/* 262 */ RPL_TRACEPING, "Ping %s %s", {/* 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}, {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", {/* 271 */ RPL_SILELIST, "%s %s"},
/* 272 */ RPL_ENDOFSILELIST, ":End of Silence List", {/* 272 */ RPL_ENDOFSILELIST, ":End of Silence List"},
0, (char *)NULL, 0, (char *)NULL, { 0, (char *)NULL}, {0, (char *)NULL},
/* 275 */ RPL_STATSDLINE, "%c %s %s", {/* 275 */ RPL_STATSDLINE, "%c %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},
/* 280 */ RPL_GLIST, "%s@%s %lu %s%s", {/* 280 */ RPL_GLIST, "%s@%s %lu %s%s"},
/* 281 */ RPL_ENDOFGLIST, ":End of G-line List" {/* 281 */ RPL_ENDOFGLIST, ":End of G-line List"}
}; };
char *err_str(numeric) char *err_str(numeric)

View File

@@ -220,7 +220,7 @@ int showip;
inetntoa((char *)&sptr->ip)); inetntoa((char *)&sptr->ip));
else else
{ {
if (mycmp(sptr->name, sptr->sockhost)) if (strcasecmp(sptr->name, sptr->sockhost))
(void)sprintf(nbuf, "%s[%s]", (void)sprintf(nbuf, "%s[%s]",
sptr->name, sptr->sockhost); sptr->name, sptr->sockhost);
else else
@@ -422,10 +422,10 @@ char *comment; /* Reason for the exit */
{ {
(void)alarm(0); (void)alarm(0);
(void)sprintf(linebuf, (void)sprintf(linebuf,
"%s (%3d:%02d:%02d): %s@%s [%s]\n", "%s (%3llu:%02llu:%02llu): %s@%s [%s]\n",
myctime(bcptr->firsttime), myctime(bcptr->firsttime),
on_for / 3600, (on_for % 3600)/60, (unsigned long long)on_for / 3600, ((unsigned long long)on_for % 3600)/60,
on_for % 60, (unsigned long long)on_for % 60,
bcptr->user->username, bcptr->user->host, bcptr->user->username, bcptr->user->host,
bcptr->username); bcptr->username);
(void)alarm(3); (void)alarm(3);
@@ -530,17 +530,14 @@ aClient *cptr, *bcptr, *sptr;
char *pattern, *p1, *p2, *p3, *p4, *p5, *p6; char *pattern, *p1, *p2, *p3, *p4, *p5, *p6;
{ {
#else #else
int exit_client_msg(cptr, bcptr, sptr, pattern, va_alist) int exit_client_msg(aClient *cptr, aClient *bcptr, aClient *sptr, char *pattern, ...)
aClient *cptr, *bcptr, *sptr;
char *pattern;
va_dcl
{ {
va_list vl; va_list vl;
#endif #endif
char msgbuf[1024]; char msgbuf[1024];
#ifdef USE_VARARGS #ifdef USE_VARARGS
va_start(vl); va_start(vl, pattern);
(void)vsprintf(msgbuf, pattern, vl); (void)vsprintf(msgbuf, pattern, vl);
va_end(vl); va_end(vl);
#else #else

View File

@@ -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 UPINGBUFSIZE 2000 /* Lot bigger then 1024, bit smaller then 2048 */
#define UPINGTIMEOUT 120 /* Timeout waitting for first ping response */ #define UPINGTIMEOUT 120 /* Timeout waitting for first ping response */
extern u_long inet_addr();
/* /*
* start_ping * start_ping
* *
@@ -163,9 +161,9 @@ aClient *cptr;
* *
*/ */
void read_ping(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 sockaddr_in remote_addr;
struct timeval tv; struct timeval tv;
int len; int len;
@@ -211,7 +209,7 @@ Reg1 aClient *cptr;
cptr->since = 2; cptr->since = 2;
cptr->firsttime = tv.tv_sec + cptr->since; 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, len, cptr->since, (char *)cptr->confs,
(char *)cptr->confs + strlen((char *)cptr->confs) + 1, pingtime)); (char *)cptr->confs + strlen((char *)cptr->confs) + 1, pingtime));
@@ -273,7 +271,7 @@ int parc;
char *parv[]; char *parv[];
{ {
aConfItem *aconf; aConfItem *aconf;
int port, fd, opt; int port = 7007, fd, opt;
if (!IsPrivileged(sptr)) if (!IsPrivileged(sptr))
{ {

View File

@@ -170,7 +170,7 @@ char *parv[];
*/ */
if ((*server == '*') && IsServer(cptr) && if ((*server == '*') && IsServer(cptr) &&
(aconf = cptr->serv->nline) && (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; server = cptr->name;
acptr = cptr; acptr = cptr;
@@ -291,7 +291,7 @@ char *fmt, *p1, *p2, *p3, *host;
static int a_kills_b_too(a, b) static int a_kills_b_too(a, b)
register aClient *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); return (a == b ? 1 : 0);
} }
@@ -314,11 +314,11 @@ char *parv[];
Reg2 int i; Reg2 int i;
Reg3 Link *lp; Reg3 Link *lp;
char info[REALLEN+1], *inpath, *host, *s; char info[REALLEN+1], *inpath, *host, *s;
aClient *acptr, *bcptr, *LHcptr; aClient *acptr, *bcptr, *LHcptr = NULL;
aConfItem *aconf, *bconf, *cconf, *lhconf; aConfItem *aconf, *bconf = NULL, *cconf, *lhconf = NULL;
int hop, ret, active_lh_line = 0; int hop, ret, active_lh_line = 0;
u_short prot; 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(); recv_time = TStime();
info[0] = '\0'; info[0] = '\0';
@@ -349,7 +349,7 @@ char *parv[];
Debug((DEBUG_INFO, "Got SERVER %s with timestamp [%s] age %lu (%lu)", Debug((DEBUG_INFO, "Got SERVER %s with timestamp [%s] age %lu (%lu)",
host, parv[4], start_timestamp, me.serv->timestamp)); host, parv[4], start_timestamp, me.serv->timestamp));
if (prot>4 && if (prot>4 &&
(timestamp<780000000 || hop==1 && start_timestamp<780000000)) (timestamp<780000000 || (hop==1 && start_timestamp<780000000)))
{ {
return exit_client_msg(cptr, sptr, &me, return exit_client_msg(cptr, sptr, &me,
"Bogus timestamps (%s %s)", parv[3], parv[4]); "Bogus timestamps (%s %s)", parv[3], parv[4]);
@@ -979,13 +979,12 @@ Reg2 aConfItem *aconf, *bconf;
{ {
Reg3 aClient *acptr; Reg3 aClient *acptr;
Reg4 Link *lp; Reg4 Link *lp;
char *inpath, *host, *s; char *inpath, *s;
int split, i; int split, i;
split = (mycmp(cptr->name, cptr->sockhost) && split = (strcasecmp(cptr->name, cptr->sockhost) &&
strncasecmp(cptr->info, "JUPE", 4)); strncasecmp(cptr->info, "JUPE", 4));
inpath = get_client_name(cptr,TRUE); inpath = get_client_name(cptr,TRUE);
host = cptr->name;
if (IsUnknown(cptr)) if (IsUnknown(cptr))
{ {
@@ -1098,7 +1097,7 @@ Reg2 aConfItem *aconf, *bconf;
acptr->name) == 0) acptr->name) == 0)
continue; continue;
split = (MyConnect(acptr) && split = (MyConnect(acptr) &&
mycmp(acptr->name, acptr->sockhost) && strcasecmp(acptr->name, acptr->sockhost) &&
strncasecmp(acptr->info, "JUPE", 4)); strncasecmp(acptr->info, "JUPE", 4));
if (split && Protocol(cptr)<9) if (split && Protocol(cptr)<9)
{ {
@@ -1432,7 +1431,7 @@ int mask;
port = (int)tmp->port; port = (int)tmp->port;
/* /*
* On K line the passwd contents can be * On K line the passwd contents can be
/* displayed on STATS reply. -Vesa * displayed on STATS reply. -Vesa
*/ */
if (tmp->status == CONF_KILL) if (tmp->status == CONF_KILL)
sendto_one(sptr, rpl_str(p[1]), me.name, sendto_one(sptr, rpl_str(p[1]), me.name,
@@ -1477,7 +1476,7 @@ char *parv[];
if (parc > 2) if (parc > 2)
{ {
name = parv[2]; name = parv[2];
if (!mycmp(name, me.name)) if (!strcasecmp(name, me.name))
doall = 2; doall = 2;
else if (matches(name, me.name) == 0) else if (matches(name, me.name) == 0)
doall = 1; doall = 1;
@@ -1507,7 +1506,7 @@ char *parv[];
continue; continue;
if (!doall && wilds && matches(name, acptr->name)) if (!doall && wilds && matches(name, acptr->name))
continue; continue;
if (!(doall || wilds) && mycmp(name, acptr->name)) if (!(doall || wilds) && strcasecmp(name, acptr->name))
continue; continue;
sendto_one(sptr, Lformat, me.name, sendto_one(sptr, Lformat, me.name,
RPL_STATSLINKINFO, parv[0], RPL_STATSLINKINFO, parv[0],
@@ -1755,15 +1754,18 @@ char *parv[];
(void)collapse(parv[1]); (void)collapse(parv[1]);
for (acptr = client; acptr; acptr = acptr->next) for (acptr = client; acptr; acptr = acptr->next)
{ {
if (parc>1) if (parc>1) {
if (!IsServer(acptr) && acptr->user) if (!IsServer(acptr) && acptr->user)
{ {
if (match(parv[1], acptr->user->server->name)) if (match(parv[1], acptr->user->server->name))
continue; continue;
} }
else else
{
if (match(parv[1], acptr->name)) if (match(parv[1], acptr->name))
continue; continue;
}
}
switch (acptr->status) switch (acptr->status)
{ {
@@ -2074,7 +2076,7 @@ char *parv[];
** parv[1] = new time ** parv[1] = new time
** parv[2] = servername ** parv[2] = servername
*/ */
m_settime(cptr, sptr, parc, parv) int m_settime(cptr, sptr, parc, parv)
aClient *cptr, *sptr; aClient *cptr, *sptr;
int parc; int parc;
char *parv[]; char *parv[];
@@ -2417,8 +2419,8 @@ char *parv[];
for (i = 0; i < MAXCONNECTIONS; i++) for (i = 0; i < MAXCONNECTIONS; i++)
link_s[i] = 0, link_u[i] = 0; link_s[i] = 0, link_u[i] = 0;
if (doall) if (doall) {
for (acptr = client; acptr; acptr = acptr->next) for (acptr = client; acptr; acptr = acptr->next) {
#ifdef SHOW_INVISIBLE_LUSERS #ifdef SHOW_INVISIBLE_LUSERS
if (IsPerson(acptr)) if (IsPerson(acptr))
link_u[acptr->from->fd]++; link_u[acptr->from->fd]++;
@@ -2429,6 +2431,8 @@ char *parv[];
#endif #endif
else if (IsServer(acptr)) else if (IsServer(acptr))
link_s[acptr->from->fd]++; link_s[acptr->from->fd]++;
}
}
/* report all direct connections */ /* report all direct connections */
@@ -2445,7 +2449,7 @@ char *parv[];
continue; continue;
if (!doall && wilds && matches(tname, acptr->name)) if (!doall && wilds && matches(tname, acptr->name))
continue; continue;
if (!dow && mycmp(tname, acptr->name)) if (!dow && strcasecmp(tname, acptr->name))
continue; continue;
name = get_client_name(acptr,FALSE); name = get_client_name(acptr,FALSE);
class = get_client_class(acptr); class = get_client_class(acptr);
@@ -2473,8 +2477,8 @@ char *parv[];
/* Only opers see users if there is a wildcard /* Only opers see users if there is a wildcard
* but anyone can see all the opers. * but anyone can see all the opers.
*/ */
if (IsOper(sptr) && if ((IsOper(sptr) &&
(MyClient(sptr) || !(dow && IsInvisible(acptr))) (MyClient(sptr) || !(dow && IsInvisible(acptr))))
|| !dow || IsAnOper(acptr)) || !dow || IsAnOper(acptr))
{ {
if (IsAnOper(acptr)) if (IsAnOper(acptr))
@@ -2754,7 +2758,7 @@ char *parv[];
continue; continue;
} }
if (!mycmp(agline->name, user) && !mycmp(agline->host, host)) if (!strcasecmp(agline->name, user) && !strcasecmp(agline->host, host))
break; break;
a2gline = agline; a2gline = agline;
@@ -2934,8 +2938,8 @@ char *parv[];
continue; continue;
} }
if ((!match(agline->name, user) || !mycmp(agline->name, user)) && if ((!match(agline->name, user) || !strcasecmp(agline->name, user)) &&
(!match(agline->host, host) || !mycmp(agline->host, host))) (!match(agline->host, host) || !strcasecmp(agline->host, host)))
break; break;
a2gline = agline; a2gline = agline;

View File

@@ -269,7 +269,7 @@ char *buffer;
{ {
for (p2 = NULL, t = strtoken(&p2, cbuf, ","); t; for (p2 = NULL, t = strtoken(&p2, cbuf, ","); t;
t = strtoken(&p2, NULL, ",")) t = strtoken(&p2, NULL, ","))
if (!mycmp(s, t)) if (!strcasecmp(s, t))
break; break;
else if (p2) else if (p2)
p2[-1] = ','; p2[-1] = ',';
@@ -464,7 +464,8 @@ char *nick, *username;
} }
#endif #endif
#ifdef DISALLOW_MIXED_CASE #if 0
/*#ifdef DISALLOW_MIXED_CASE*/
/* check for mixed case usernames, meaning probably hacked Jon2 3-94 /* check for mixed case usernames, meaning probably hacked Jon2 3-94
Summary of rules now implemented in this patch: Ensor 11-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 In a mixed-case name, if first char is upper, one more upper may
@@ -632,8 +633,8 @@ char *parv[];
me.name, parv[0]); me.name, parv[0]);
return 0; return 0;
} }
else if (IsServer(sptr) && parc < 7 || else if ((IsServer(sptr) && parc < 7) ||
IsServer(cptr) && parc < 3) (IsServer(cptr) && parc < 3))
{ {
sendto_one(sptr, err_str(ERR_NEEDMOREPARAMS), sendto_one(sptr, err_str(ERR_NEEDMOREPARAMS),
me.name, parv[0], "NICK"); me.name, parv[0], "NICK");
@@ -775,7 +776,7 @@ char *parv[];
** is concerned (user is changing the case of his/her ** is concerned (user is changing the case of his/her
** nickname or somesuch) ** nickname or somesuch)
*/ */
if (acptr == sptr) if (acptr == sptr) {
if (strcmp(acptr->name, nick) != 0) if (strcmp(acptr->name, nick) != 0)
/* /*
** Allows change of case in his/her nick ** Allows change of case in his/her nick
@@ -790,6 +791,7 @@ char *parv[];
** version would treat it as nick collision. ** version would treat it as nick collision.
*/ */
return 0; /* NICK Message ignored */ return 0; /* NICK Message ignored */
}
/* /*
** Note: From this point forward it can be assumed that ** Note: From this point forward it can be assumed that
** acptr != sptr (point to different client structures). ** acptr != sptr (point to different client structures).
@@ -844,8 +846,8 @@ char *parv[];
** server (e.g. message type ":server NICK new ..." received) ** server (e.g. message type ":server NICK new ..." received)
*/ */
lastnick = atoi(parv[3]); lastnick = atoi(parv[3]);
differ = (mycmp(acptr->user->username, parv[4]) || differ = (strcasecmp(acptr->user->username, parv[4]) ||
mycmp(acptr->user->host, parv[5])); strcasecmp(acptr->user->host, parv[5]));
sendto_ops("Nick collision on %s (%s %d <- %s %d (%s user@host))", sendto_ops("Nick collision on %s (%s %d <- %s %d (%s user@host))",
acptr->name, acptr->from->name, acptr->lastnick, acptr->name, acptr->from->name, acptr->lastnick,
get_client_name(cptr, FALSE), 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"). ** A NICK change has collided (e.g. message type ":old NICK new").
*/ */
lastnick = atoi(parv[2]); lastnick = atoi(parv[2]);
differ = (mycmp(acptr->user->username, sptr->user->username) || differ = (strcasecmp(acptr->user->username, sptr->user->username) ||
mycmp(acptr->user->host, sptr->user->host)); strcasecmp(acptr->user->host, sptr->user->host));
sendto_ops("Nick change collision from %s to %s (%s %d <- %s %d)", sendto_ops("Nick change collision from %s to %s (%s %d <- %s %d)",
sptr->name, acptr->name, acptr->from->name, sptr->name, acptr->name, acptr->from->name,
acptr->lastnick, get_client_name(cptr, FALSE), lastnick); acptr->lastnick, get_client_name(cptr, FALSE), lastnick);
@@ -871,8 +873,8 @@ char *parv[];
** acptr->from != cptr should *always* be true (?). ** acptr->from != cptr should *always* be true (?).
*/ */
if (acptr->from != cptr) if (acptr->from != cptr)
{ if (differ && lastnick >= acptr->lastnick || { if ((differ && lastnick >= acptr->lastnick) ||
!differ && lastnick <= acptr->lastnick) (!differ && lastnick <= acptr->lastnick))
{ if (!IsServer(sptr)) { if (!IsServer(sptr))
{ ircstp->is_kill++; { ircstp->is_kill++;
sendto_serv_butone(cptr, /* Kill old from outgoing servers */ 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 a channel, send note of change to all clients
** on that channel. Propagate notice to other servers. ** 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]); sptr->lastnick = (sptr == cptr) ? TStime(): atoi(parv[2]);
if (sptr->user) if (sptr->user)
{ {
@@ -1638,7 +1640,7 @@ int parc;
char *parv[]; char *parv[];
{ {
#define UFLAGS (FLAGS_INVISIBLE|FLAGS_WALLOP|FLAGS_SERVNOTICE) #define UFLAGS (FLAGS_INVISIBLE|FLAGS_WALLOP|FLAGS_SERVNOTICE)
char *username, *host, *server, *realname; char *username, *host, *realname;
anUser *user; anUser *user;
if (IsServer(cptr)) if (IsServer(cptr))
@@ -1658,7 +1660,6 @@ char *parv[];
username = (parc < 2 || BadPtr(parv[1])) ? "<bad-boy>" : parv[1]; username = (parc < 2 || BadPtr(parv[1])) ? "<bad-boy>" : parv[1];
host = (parc < 3 || BadPtr(parv[2])) ? "<nohost>" : parv[2]; host = (parc < 3 || BadPtr(parv[2])) ? "<nohost>" : parv[2];
server = (parc < 4 || BadPtr(parv[3])) ? "<noserver>" : parv[3];
realname = (parc < 5 || BadPtr(parv[4])) ? "<bad-realname>" : parv[4]; realname = (parc < 5 || BadPtr(parv[4])) ? "<bad-realname>" : parv[4];
user = make_user(sptr); user = make_user(sptr);
@@ -2003,7 +2004,7 @@ char *parv[];
acptr = find_server(origin, NULL); acptr = find_server(origin, NULL);
if (acptr && acptr != sptr) if (acptr && acptr != sptr)
origin = cptr->name; 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))) if ((acptr = find_server(destination, NULL)))
sendto_one(acptr,":%s PING %s :%s", parv[0], sendto_one(acptr,":%s PING %s :%s", parv[0],
@@ -2071,7 +2072,7 @@ char *parv[];
cptr->flags &= ~FLAGS_PINGSENT; cptr->flags &= ~FLAGS_PINGSENT;
sptr->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)) || if ((acptr = find_client(destination, NULL)) ||
(acptr = find_server(destination, NULL))) (acptr = find_server(destination, NULL)))
@@ -2419,7 +2420,7 @@ char *parv[];
else else
for (acptr = client; acptr; acptr = acptr->next) for (acptr = client; acptr; acptr = acptr->next)
if (IsServer(acptr) && acptr != cptr if (IsServer(acptr) && acptr != cptr
&& !mycmp(nbuf, acptr->name)) && !strcasecmp(nbuf, acptr->name))
{ {
sendto_one(acptr, ":%s NOTE :%s", sendto_one(acptr, ":%s NOTE :%s",
parv[0], parv[1]); parv[0], parv[1]);
@@ -2477,15 +2478,16 @@ char *parv[];
if (IsServer(sptr) || sptr != acptr) if (IsServer(sptr) || sptr != acptr)
{ {
if (IsServer(cptr)) if (IsServer(cptr)) {
sendto_ops_butone(NULL, &me, sendto_ops_butone(NULL, &me,
":%s WALLOPS :MODE for User %s From %s!%s", ":%s WALLOPS :MODE for User %s From %s!%s",
me.name, parv[1], me.name, parv[1],
get_client_name(cptr, FALSE), sptr->name); get_client_name(cptr, FALSE), sptr->name);
else } else {
sendto_one(sptr, err_str(ERR_USERSDONTMATCH), sendto_one(sptr, err_str(ERR_USERSDONTMATCH),
me.name, parv[0]); me.name, parv[0]);
return 0; return 0;
}
} }
if (parc < 3) if (parc < 3)
@@ -2697,7 +2699,7 @@ char *mask;
Reg2 Link *tmp; Reg2 Link *tmp;
for (lp = &(sptr->user->silence); *lp; lp = &((*lp)->next)) 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; { tmp = *lp;
*lp = tmp->next; *lp = tmp->next;
MyFree(tmp->value.cp); MyFree(tmp->value.cp);
@@ -2721,7 +2723,7 @@ char *mask;
else else
{ if (!matches(lp->value.cp, mask)) { if (!matches(lp->value.cp, mask))
return -1; } return -1; }
else if (!mycmp(lp->value.cp, mask)) else if (!strcasecmp(lp->value.cp, mask))
return -1; return -1;
} }
lp = make_link(); lp = make_link();

View File

@@ -89,7 +89,7 @@ aClient *sptr;
char *parv; /* we only get passed the original parv[0] */ char *parv; /* we only get passed the original parv[0] */
{ {
register struct load_entry *cur_load_entry; 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]*/ 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] */ int i, times[5][3]; /* [min,hour,day,Yest,YYest][local,client,conn] */
char what[3][HOSTLEN + 1]; char what[3][HOSTLEN + 1];

View File

@@ -87,7 +87,7 @@ time_t timelimit;
timelimit = now-timelimit; timelimit = now-timelimit;
do { do {
if (!mycmp(nick, wp->ww_nick) && wp->ww_logout >= timelimit) if (!strcasecmp(nick, wp->ww_nick) && wp->ww_logout >= timelimit)
break; break;
if (wp == was) if (wp == was)
{ {
@@ -156,7 +156,7 @@ char *parv[];
do { do {
if (wp < was) if (wp < was)
wp = &was[NICKNAMEHISTORYLENGTH - 1]; wp = &was[NICKNAMEHISTORYLENGTH - 1];
if (mycmp(nick, wp->ww_nick) == 0) if (strcasecmp(nick, wp->ww_nick) == 0)
{ {
up = wp->ww_user; up = wp->ww_user;
sendto_one(sptr, rpl_str(RPL_WHOWASUSER), sendto_one(sptr, rpl_str(RPL_WHOWASUSER),