Compare commits
2 Commits
master
...
fix/modern
| Author | SHA1 | Date | |
|---|---|---|---|
| 428acb5319 | |||
| 51650c0d78 |
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
*.o
|
||||||
|
ircd/chkconf
|
||||||
|
ircd/crypt/mkpasswd
|
||||||
|
ircd/ircd
|
||||||
|
ircd/version.c
|
||||||
|
|
||||||
10
Makefile
10
Makefile
@@ -73,7 +73,7 @@ CFLAGS= -g -I$(INCLUDEDIR) -O
|
|||||||
#
|
#
|
||||||
# WARNING: if you are making ircd SUID or SGID, check config.h to make sure
|
# 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:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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
144
common/send.c
Normal file → Executable 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
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
65
include/h.h
65
include/h.h
@@ -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);
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|
||||||
|
|||||||
@@ -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
30
include/setup.h
Normal 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
|
||||||
@@ -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__ */
|
||||||
|
|||||||
@@ -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 \
|
||||||
|
|||||||
@@ -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;
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
26
ircd/crule.c
26
ircd/crule.c
@@ -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;
|
||||||
|
|||||||
@@ -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}
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
12
ircd/hash.c
12
ircd/hash.c
@@ -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++;
|
||||||
|
|||||||
11
ircd/ircd.c
11
ircd/ircd.c
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
150
ircd/note.c
150
ircd/note.c
@@ -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,¬e_msm,0,value); else
|
if (!strcasecmp(arg,"MSM")) setvar(sptr,¬e_msm,0,value); else
|
||||||
if (!mycmp(arg,"MSW")) setvar(sptr,¬e_msw,3,value); else
|
if (!strcasecmp(arg,"MSW")) setvar(sptr,¬e_msw,3,value); else
|
||||||
if (!mycmp(arg,"MUM")) setvar(sptr,¬e_mum,6,value); else
|
if (!strcasecmp(arg,"MUM")) setvar(sptr,¬e_mum,6,value); else
|
||||||
if (!mycmp(arg,"MUW")) setvar(sptr,¬e_muw,9,value); else
|
if (!strcasecmp(arg,"MUW")) setvar(sptr,¬e_muw,9,value); else
|
||||||
if (!mycmp(arg,"MST")) setvar(sptr,¬e_mst,12,value); else
|
if (!strcasecmp(arg,"MST")) setvar(sptr,¬e_mst,12,value); else
|
||||||
if (!mycmp(arg,"MSF")) setvar(sptr,¬e_msf,15,value); else
|
if (!strcasecmp(arg,"MSF")) setvar(sptr,¬e_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",
|
||||||
|
|||||||
14
ircd/res.c
14
ircd/res.c
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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 */
|
||||||
|
|||||||
@@ -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, ':');
|
||||||
|
|||||||
31
ircd/s_bsd.c
31
ircd/s_bsd.c
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
480
ircd/s_err.c
480
ircd/s_err.c
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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];
|
||||||
|
|||||||
@@ -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),
|
||||||
|
|||||||
Reference in New Issue
Block a user