x2serv-cvs Mailing List for X2 IRC Channel and Oper Services (Page 3)
Brought to you by:
sirvulcan
You can subscribe to this list here.
2001 |
Jan
(33) |
Feb
(14) |
Mar
(26) |
Apr
(19) |
May
(28) |
Jun
(5) |
Jul
(6) |
Aug
(5) |
Sep
(6) |
Oct
(1) |
Nov
(21) |
Dec
(3) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(3) |
Feb
(14) |
Mar
|
Apr
(2) |
May
(1) |
Jun
(1) |
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
|
2003 |
Jan
(1) |
Feb
(4) |
Mar
|
Apr
|
May
(4) |
Jun
(6) |
Jul
|
Aug
|
Sep
|
Oct
(7) |
Nov
|
Dec
|
2004 |
Jan
|
Feb
|
Mar
(7) |
Apr
|
May
|
Jun
(19) |
Jul
(5) |
Aug
(16) |
Sep
(4) |
Oct
(10) |
Nov
(7) |
Dec
(6) |
2005 |
Jan
(4) |
Feb
(5) |
Mar
(24) |
Apr
(6) |
May
(17) |
Jun
(11) |
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Alex S. <ru...@us...> - 2005-03-13 03:07:51
|
Committer : Alex Schumann <ru...@us...> CVSROOT : /cvsroot/x2serv Module : x3 Commit time: 2005-03-13 03:07:41 UTC Modified files: ChangeLog.X3 src/common.h src/proto.h Log message: this never ends... ---------------------- diff included ---------------------- Index: x3/ChangeLog.X3 diff -u x3/ChangeLog.X3:1.6 x3/ChangeLog.X3:1.7 --- x3/ChangeLog.X3:1.6 Sat Mar 12 18:51:11 2005 +++ x3/ChangeLog.X3 Sat Mar 12 19:07:28 2005 @@ -3,6 +3,8 @@ 2005-03-12 Alex Schumann <ru...@af...> + * src/common.h, src/opserv.h: more SRVX->X3 fixes + * opserv.c: fixed SRVX defines to X3 * src/nickserv.c: Applied patch to bring up to date with @@ -25,5 +27,5 @@ ***********************************************************************/ -#define CVS_VERSION "$Revision: 1.6 $" +#define CVS_VERSION "$Revision: 1.7 $" Index: x3/src/common.h diff -u x3/src/common.h:1.6 x3/src/common.h:1.7 --- x3/src/common.h:1.6 Sat Mar 12 12:13:14 2005 +++ x3/src/common.h Sat Mar 12 19:07:30 2005 @@ -83,21 +83,21 @@ # define free(p) GC_FREE(p) # undef HAVE_STRDUP # undef strdup -#elif defined(WITH_MALLOC_SRVX) +#elif defined(WITH_MALLOC_X3) # undef malloc -# define malloc(n) srvx_malloc(__FILE__, __LINE__, (n)) +# define malloc(n) x3_malloc(__FILE__, __LINE__, (n)) # undef calloc -# define calloc(m,n) srvx_malloc(__FILE__, __LINE__, (m)*(n)) +# define calloc(m,n) x3_malloc(__FILE__, __LINE__, (m)*(n)) # undef realloc -# define realloc(p,n) srvx_realloc(__FILE__, __LINE__, (p), (n)) +# define realloc(p,n) x3_realloc(__FILE__, __LINE__, (p), (n)) # undef free -# define free(p) srvx_free(__FILE__, __LINE__, (p)) +# define free(p) x3_free(__FILE__, __LINE__, (p)) # undef strdup -# define strdup(s) srvx_strdup(__FILE__, __LINE__, (s)) -extern void *srvx_malloc(const char *, unsigned int, size_t); -extern void *srvx_realloc(const char *, unsigned int, void *, size_t); -extern char *srvx_strdup(const char *, unsigned int, const char *); -extern void srvx_free(const char *, unsigned int, void *); +# define strdup(s) x3_strdup(__FILE__, __LINE__, (s)) +extern void *x3_malloc(const char *, unsigned int, size_t); +extern void *x3_realloc(const char *, unsigned int, void *, size_t); +extern char *x3_strdup(const char *, unsigned int, const char *); +extern void x3_free(const char *, unsigned int, void *); # if !defined(NDEBUG) extern void verify(const void *ptr); # define verify(x) verify(x) Index: x3/src/proto.h diff -u x3/src/proto.h:1.4 x3/src/proto.h:1.5 --- x3/src/proto.h:1.4 Sat Mar 12 12:13:14 2005 +++ x3/src/proto.h Sat Mar 12 19:07:31 2005 @@ -23,7 +23,7 @@ /* Warning for those looking at how this code does multi-protocol * support: It's an awful, nasty hack job. It is intended for short - * term use, not long term, since we are already developing srvx2, + * term use, not long term, since we are already developing x3, * which has much nicer interfaces that hide most of the ugly * differences between protocol dialects. */ @@ -234,7 +234,7 @@ #define GENMASK_USENICK 2 #define GENMASK_OMITNICK 4 /* Hurray for Kevin! */ #define GENMASK_BYIP 8 -#define GENMASK_SRVXMASK 16 +#define GENMASK_X3MASK 16 #define GENMASK_NO_HIDING 128 char *generate_hostmask(struct userNode *user, int options); ----------------------- End of diff ----------------------- |
From: Alex S. <ru...@us...> - 2005-03-13 02:51:47
|
Committer : Alex Schumann <ru...@us...> CVSROOT : /cvsroot/x2serv Module : x3 Commit time: 2005-03-13 02:51:21 UTC Modified files: ChangeLog.X3 src/opserv.c src/proto-common.c Log message: another srvx->x3 update, fixed changelog ---------------------- diff included ---------------------- Index: x3/ChangeLog.X3 diff -u x3/ChangeLog.X3:1.5 x3/ChangeLog.X3:1.6 --- x3/ChangeLog.X3:1.5 Sat Mar 12 13:10:47 2005 +++ x3/ChangeLog.X3 Sat Mar 12 18:51:11 2005 @@ -1,7 +1,9 @@ /*********************************************************************** X3 ChangeLog -2005-03-07 Alex Schumann <ru...@af...> +2005-03-12 Alex Schumann <ru...@af...> + + * opserv.c: fixed SRVX defines to X3 * src/nickserv.c: Applied patch to bring up to date with local uncommitted changes on afternets srvx2 tree. improved @@ -23,5 +25,5 @@ ***********************************************************************/ -#define CVS_VERSION "$Revision: 1.5 $" +#define CVS_VERSION "$Revision: 1.6 $" Index: x3/src/opserv.c diff -u x3/src/opserv.c:1.11 x3/src/opserv.c:1.12 --- x3/src/opserv.c:1.11 Sat Mar 12 12:13:14 2005 +++ x3/src/opserv.c Sat Mar 12 18:51:11 2005 @@ -1705,7 +1705,7 @@ return 1; } -#if defined(WITH_MALLOC_SRVX) +#if defined(WITH_MALLOC_X3) static MODCMD_FUNC(cmd_stats_memory) { extern unsigned long alloc_count, alloc_size; send_message_type(MSG_TYPE_NOXLATE, user, cmd->parent->bot, @@ -4278,7 +4278,7 @@ opserv_define_func("STATS UPLINK", cmd_stats_uplink, 0, 0, 0); opserv_define_func("STATS UPTIME", cmd_stats_uptime, 0, 0, 0); opserv_define_func("STATS WARN", cmd_stats_warn, 0, 0, 0); -#if defined(WITH_MALLOC_SRVX) || defined(WITH_MALLOC_SLAB) +#if defined(WITH_MALLOC_X3) || defined(WITH_MALLOC_SLAB) opserv_define_func("STATS MEMORY", cmd_stats_memory, 0, 0, 0); #endif opserv_define_func("TRACE", cmd_trace, 100, 0, 3); Index: x3/src/proto-common.c diff -u x3/src/proto-common.c:1.9 x3/src/proto-common.c:1.10 --- x3/src/proto-common.c:1.9 Sat Mar 12 12:13:14 2005 +++ x3/src/proto-common.c Sat Mar 12 18:51:11 2005 @@ -737,7 +737,7 @@ mask = ~0 << masklen; masked_ip = ntohl(user->ip.s_addr) & mask; hostname = alloca(32); - if (options & GENMASK_SRVXMASK) { + if (options & GENMASK_X3MASK) { sprintf(hostname, "%d.%d.%d.%d/%d", (masked_ip>>24)&0xFF, (masked_ip>>16)&0xFF, (masked_ip>>8)&0xFF, masked_ip&0xFF, masklen); } else { int ofs = 0; ----------------------- End of diff ----------------------- |
From: Alex S. <ru...@us...> - 2005-03-12 21:11:07
|
Committer : Alex Schumann <ru...@us...> CVSROOT : /cvsroot/x2serv Module : x3 Commit time: 2005-03-12 21:10:58 UTC Modified files: ChangeLog.X3 src/nickserv.c Log message: fixed registration process (uncommitted code from afternets x3 applied) ---------------------- diff included ---------------------- Index: x3/ChangeLog.X3 diff -u x3/ChangeLog.X3:1.4 x3/ChangeLog.X3:1.5 --- x3/ChangeLog.X3:1.4 Sat Mar 12 12:19:03 2005 +++ x3/ChangeLog.X3 Sat Mar 12 13:10:47 2005 @@ -3,6 +3,10 @@ 2005-03-07 Alex Schumann <ru...@af...> + * src/nickserv.c: Applied patch to bring up to date with + local uncommitted changes on afternets srvx2 tree. improved + cookie gen code and removed /play from cookie messages. + * src/all, src/Makefile*, Makefile.in: changed srvx to x3 in a bunch more places. @@ -19,5 +23,5 @@ ***********************************************************************/ -#define CVS_VERSION "$Revision: 1.4 $" +#define CVS_VERSION "$Revision: 1.5 $" Index: x3/src/nickserv.c diff -u x3/src/nickserv.c:1.18 x3/src/nickserv.c:1.19 --- x3/src/nickserv.c:1.18 Sat Mar 12 12:13:14 2005 +++ x3/src/nickserv.c Sat Mar 12 13:10:47 2005 @@ -309,7 +309,7 @@ "This email has been sent to verify that this email address belongs to the person who tried to register an account on %1$s. Your cookie is:\n" "%2$s\n" "To verify your email address and complete the account registration, visit the following URL:\n" - "http://www.afternet.org/play/index.php?option=com_registration&task=activate&username=%5$s&cookie=%2$s\n" + "http://www.afternet.org/index.php?option=com_registration&task=activate&username=%5$s&cookie=%2$s\n" "\n" "If you did NOT request this account, you do not need to do anything.\n" "Please contact the %1$s staff if you have questions, and be sure to check our website." }, @@ -323,7 +323,7 @@ { "NSEMAIL_PASSWORD_CHANGE_BODY_WEB", "This email has been sent to verify that you wish to change the password on your account %5$s. Your cookie is %2$s.\n" "To complete the password change, click the following URL:\n" - "http://www.afternet.org/play/index.php?option=com_registration&task=passcookie&username=%5$s&cookie=%2$s\n" + "http://www.afternet.org/index.php?option=com_registration&task=passcookie&username=%5$s&cookie=%2$s\n" "If you did NOT request your password to be changed, you do not need to do anything.\n" "Please contact the %1$s staff if you have questions." }, { "NSEMAIL_EMAIL_CHANGE_SUBJECT", "Email address change verification for %s" }, @@ -1036,6 +1036,27 @@ timeq_add(cookie->expires, nickserv_free_cookie, cookie); } +/* Contributed by the great sneep of afternet ;) */ +/* Since this gets used in a URL, we want to avoid stuff that confuses + * email clients such as ] and ?. a-z, 0-9 only. + */ +void genpass(char *str, int len) +{ + int i = 0; + char c = 0; + + for(i = 0; i < len; i++) + { + do + { + c = (char)((float)rand() / (float)RAND_MAX * (float)256); + } while(!((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9'))); + str[i] = c; + } + str[i] = '\0'; + return; +} + static void nickserv_make_cookie(struct userNode *user, struct handle_info *hi, enum cookie_type type, const char *cookie_data, int weblink) { @@ -1053,9 +1074,14 @@ cookie->hi = hi; cookie->type = type; cookie->data = cookie_data ? strdup(cookie_data) : NULL; + cookie->expires = now + nickserv_conf.cookie_timeout; - inttobase64(cookie->cookie, rand(), 5); - inttobase64(cookie->cookie+5, rand(), 5); + /* Adding dedicated password gen function for more control -Rubin */ + genpass(cookie->cookie, 10); + /* + *inttobase64(cookie->cookie, rand(), 5); + *inttobase64(cookie->cookie+5, rand(), 5); + */ netname = nickserv_conf.network_name; subject[0] = 0; ----------------------- End of diff ----------------------- |
From: Alex S. <ru...@us...> - 2005-03-12 20:19:34
|
Committer : Alex Schumann <ru...@us...> CVSROOT : /cvsroot/x2serv Module : x3 Commit time: 2005-03-12 20:19:13 UTC Modified files: ChangeLog.X3 Log message: changelog /* was causing a warning, changed to /all ---------------------- diff included ---------------------- Index: x3/ChangeLog.X3 diff -u x3/ChangeLog.X3:1.3 x3/ChangeLog.X3:1.4 --- x3/ChangeLog.X3:1.3 Sat Mar 12 12:16:17 2005 +++ x3/ChangeLog.X3 Sat Mar 12 12:19:03 2005 @@ -3,7 +3,7 @@ 2005-03-07 Alex Schumann <ru...@af...> - * src/*, src/Makefile*, Makefile.in: changed srvx to x3 in a + * src/all, src/Makefile*, Makefile.in: changed srvx to x3 in a bunch more places. 2005-03-07 Neil Spierling <sir...@gm...> @@ -19,5 +19,5 @@ ***********************************************************************/ -#define CVS_VERSION "$Revision: 1.3 $" +#define CVS_VERSION "$Revision: 1.4 $" ----------------------- End of diff ----------------------- |
From: Alex S. <ru...@us...> - 2005-03-12 20:16:35
|
Committer : Alex Schumann <ru...@us...> CVSROOT : /cvsroot/x2serv Module : x3 Commit time: 2005-03-12 20:16:27 UTC Modified files: ChangeLog.X3 Log message: updading changelog. ---------------------- diff included ---------------------- Index: x3/ChangeLog.X3 diff -u x3/ChangeLog.X3:1.2 x3/ChangeLog.X3:1.3 --- x3/ChangeLog.X3:1.2 Sun Mar 6 20:12:32 2005 +++ x3/ChangeLog.X3 Sat Mar 12 12:16:17 2005 @@ -1,6 +1,11 @@ /*********************************************************************** X3 ChangeLog +2005-03-07 Alex Schumann <ru...@af...> + + * src/*, src/Makefile*, Makefile.in: changed srvx to x3 in a + bunch more places. + 2005-03-07 Neil Spierling <sir...@gm...> * nickserv.help: Added odelcookie section. @@ -14,5 +19,5 @@ ***********************************************************************/ -#define CVS_VERSION "$Revision: 1.2 $" +#define CVS_VERSION "$Revision: 1.3 $" ----------------------- End of diff ----------------------- |
From: Alex S. <ru...@us...> - 2005-03-12 20:13:52
|
Committer : Alex Schumann <ru...@us...> CVSROOT : /cvsroot/x2serv Module : x3 Commit time: 2005-03-12 20:13:25 UTC Modified files: src/Makefile.am src/Makefile.in src/alloc-slab.c src/chanserv.c src/chanserv.h src/common.h src/conf.c src/conf.h src/dict-splay.c src/dict.h src/gline.c src/gline.h src/global.c src/global.h src/hash.c src/hash.h src/heap.c src/heap.h src/helpfile.c src/helpfile.h src/ioset.c src/ioset.h src/log.c src/log.h src/main.c src/mod-helpserv.c src/mod-memoserv.c src/mod-snoop.c src/mod-sockcheck.c src/modcmd.c src/modcmd.h src/modules.c src/modules.h src/nickserv.c src/nickserv.h src/opserv.c src/opserv.h src/policer.c src/policer.h src/proto-common.c src/proto-p10.c src/proto.h src/recdb.c src/recdb.h src/saxdb.c src/saxdb.h src/sendmail.c src/sendmail.h src/timeq.c src/timeq.h src/tools.c Added files: src/alloc-x3.c Removed files: src/alloc-srvx.c Log message: more srvx->x3 fixes. cvs update -dP to catch renamed files. ---------------------- diff included ---------------------- Index: x3/src/Makefile.am diff -u x3/src/Makefile.am:1.6 x3/src/Makefile.am:1.7 --- x3/src/Makefile.am:1.6 Sun Mar 6 19:51:24 2005 +++ x3/src/Makefile.am Sat Mar 12 12:13:13 2005 @@ -6,7 +6,7 @@ noinst_DATA = chanserv.help global.help modcmd.help nickserv.help opserv.help saxdb.help sendmail.help mod-sockcheck.help mod-helpserv.help mod-memoserv.help EXTRA_DIST = $(noinst_DATA) -EXTRA_x3_SOURCES = alloc-slab.c alloc-srvx.c proto-bahamut.c proto-common.c proto-p10.c mod-snoop.c mod-memoserv.c mod-helpserv.c mod-sockcheck.c +EXTRA_x3_SOURCES = alloc-slab.c alloc-x3.c proto-bahamut.c proto-common.c proto-p10.c mod-snoop.c mod-memoserv.c mod-helpserv.c mod-sockcheck.c x3_LDADD = @MODULE_OBJS@ x3_DEPENDENCIES = @MODULE_OBJS@ x3_SOURCES = \ Index: x3/src/Makefile.in diff -u x3/src/Makefile.in:1.2 x3/src/Makefile.in:1.3 --- x3/src/Makefile.in:1.2 Fri Mar 11 15:09:23 2005 +++ x3/src/Makefile.in Sat Mar 12 12:13:13 2005 @@ -183,7 +183,7 @@ AM_CPPFLAGS = @RX_INCLUDES@ noinst_DATA = chanserv.help global.help modcmd.help nickserv.help opserv.help saxdb.help sendmail.help mod-sockcheck.help mod-helpserv.help mod-memoserv.help EXTRA_DIST = $(noinst_DATA) -EXTRA_x3_SOURCES = alloc-slab.c alloc-srvx.c proto-bahamut.c proto-common.c proto-p10.c mod-snoop.c mod-memoserv.c mod-helpserv.c mod-sockcheck.c +EXTRA_x3_SOURCES = alloc-slab.c alloc-x3.c proto-bahamut.c proto-common.c proto-p10.c mod-snoop.c mod-memoserv.c mod-helpserv.c mod-sockcheck.c x3_LDADD = @MODULE_OBJS@ x3_DEPENDENCIES = @MODULE_OBJS@ x3_SOURCES = \ @@ -288,7 +288,7 @@ -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloc-slab.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloc-srvx.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloc-x3.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chanserv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/checkdb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compat.Po@am__quote@ Index: x3/src/alloc-slab.c diff -u x3/src/alloc-slab.c:1.1 x3/src/alloc-slab.c:1.2 --- x3/src/alloc-slab.c:1.1 Mon Feb 21 05:54:54 2005 +++ x3/src/alloc-slab.c Sat Mar 12 12:13:13 2005 @@ -1,7 +1,7 @@ /* alloc-slab.c - Slab debugging allocator * Copyright 2005 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/alloc-srvx.c diff -u x3/src/alloc-srvx.c:1.2 x3/src/alloc-srvx.c:removed --- x3/src/alloc-srvx.c:1.2 Mon Feb 21 05:54:54 2005 +++ x3/src/alloc-srvx.c Sat Mar 12 12:13:25 2005 @@ -1,153 +0,0 @@ -/* alloc-srvx.c - Debug allocation wrapper - * Copyright 2005 srvx Development Team - * - * This file is part of srvx. - * - * srvx is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include "common.h" -#include "log.h" - -#undef malloc -#undef free -/* cookies for anybody who recognizes these bytes without help :) */ -#define ALLOC_MAGIC 0x1acf -#define FREE_MAGIC 0xfc1d -const char redzone[] = { '\x03', '\x47', '\x76', '\xc7' }; - -struct alloc_header { - unsigned int file_id : 8; - unsigned int size : 24; - unsigned int line : 16; - unsigned int magic : 16; -}; - -static char file_id_map[256][32]; -static unsigned int file_ids_used; -unsigned long alloc_count, alloc_size; - -static int -file_id_cmp(const void *a_, const void *b_) -{ - return strcmp(a_, b_); -} - -static unsigned int -get_file_id(const char *fname) -{ - void *entry; - - entry = bsearch(fname, file_id_map, file_ids_used, sizeof(file_id_map[0]), file_id_cmp); - if (entry) - return ((char*)entry - file_id_map[0]) / sizeof(file_id_map[0]); - strcpy(file_id_map[file_ids_used++], fname); - qsort(file_id_map, file_ids_used, sizeof(file_id_map[0]), file_id_cmp); - return file_ids_used - 1; -} - -void * -srvx_malloc(const char *file, unsigned int line, size_t size) -{ - struct alloc_header *block; - block = malloc(sizeof(*block) + size); - block = malloc(sizeof(*block) + size + sizeof(redzone)); - assert(block != NULL); - if (block->magic == ALLOC_MAGIC && block->file_id < file_ids_used) { - /* Only report the error, due to possible false positives. */ - log_module(MAIN_LOG, LOG_WARNING, "Detected possible reallocation: %p (called by %s:%u/%u; allocated by %u:%u/%u).", - block, file, line, size, block->file_id, block->line, block->size); - } - memset(block, 0, sizeof(*block) + size); - memcpy((char*)(block + 1) + size, redzone, sizeof(redzone)); - block->file_id = get_file_id(file); - block->line = line; - block->size = size; - block->magic = ALLOC_MAGIC; - alloc_count++; - alloc_size += size; - return block + 1; -} - -void * -srvx_realloc(const char *file, unsigned int line, void *ptr, size_t size) - struct alloc_header *block = NULL, *newblock; - struct alloc_header *block, *newblock; - } - if (!ptr) - return srvx_malloc(file, line, size); - - verify(ptr); - block = (struct alloc_header *)ptr - 1; - - if (block->size >= size) - return block + 1; - newblock = malloc(sizeof(*newblock) + size); - newblock = malloc(sizeof(*newblock) + size + sizeof(redzone)); - memset(newblock, 0, sizeof(*newblock) + size + sizeof(redzone)); - memset(newblock, 0, sizeof(*newblock)); - memcpy(newblock + 1, block + 1, block->size); - memset((char*)(newblock + 1) + block->size, 0, size - block->size); - memcpy((char*)(newblock + 1) + size, redzone, sizeof(redzone)); - newblock->file_id = get_file_id(file); - newblock->line = line; - newblock->size = size; - newblock->magic = ALLOC_MAGIC; - alloc_count++; - alloc_size += size; - srvx_free(block); - srvx_free(file, line, block + 1); - - return newblock + 1; -} - -char * -srvx_strdup(const char *file, unsigned int line, const char *src) -{ - char *target; - size_t len; - - len = strlen(src) + 1; - target = srvx_malloc(file, line, len); - memcpy(target, src, len); - return target; -} - -srvx_free(const char *file, unsigned int line, void *ptr) -srvx_free(UNUSED_ARG(const char *file), UNUSED_ARG(unsigned int line), void *ptr) -{ - struct alloc_header *block; - size_t size; - - if (!ptr) - return; - verify(ptr); - assert(block->magic == ALLOC_MAGIC); - memset(block, 0, size); - size = block->size; - memset(block + 1, 0xde, size); - block->magic = FREE_MAGIC; - free(block); - alloc_size -= size - sizeof(*block); - (void)file; (void)line; -} - -void -verify(const void *ptr) -{ - const struct alloc_header *header; - if (!ptr) - return; - header = (const struct alloc_header*)ptr - 1; - assert(header->magic == ALLOC_MAGIC); - assert(!memcmp((char*)(header + 1) + header->size, redzone, sizeof(redzone))); -} - Index: x3/src/alloc-x3.c diff -u /dev/null x3/src/alloc-x3.c:1.1 --- /dev/null Sat Mar 12 12:13:25 2005 +++ x3/src/alloc-x3.c Sat Mar 12 12:13:14 2005 @@ -0,0 +1,153 @@ +/* alloc-x3.c - Debug allocation wrapper + * Copyright 2005 srvx Development Team + * + * This file is part of x3. + * + * srvx is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "common.h" +#include "log.h" + +#undef malloc +#undef free +/* cookies for anybody who recognizes these bytes without help :) */ +#define ALLOC_MAGIC 0x1acf +#define FREE_MAGIC 0xfc1d +const char redzone[] = { '\x03', '\x47', '\x76', '\xc7' }; + +struct alloc_header { + unsigned int file_id : 8; + unsigned int size : 24; + unsigned int line : 16; + unsigned int magic : 16; +}; + +static char file_id_map[256][32]; +static unsigned int file_ids_used; +unsigned long alloc_count, alloc_size; + +static int +file_id_cmp(const void *a_, const void *b_) +{ + return strcmp(a_, b_); +} + +static unsigned int +get_file_id(const char *fname) +{ + void *entry; + + entry = bsearch(fname, file_id_map, file_ids_used, sizeof(file_id_map[0]), file_id_cmp); + if (entry) + return ((char*)entry - file_id_map[0]) / sizeof(file_id_map[0]); + strcpy(file_id_map[file_ids_used++], fname); + qsort(file_id_map, file_ids_used, sizeof(file_id_map[0]), file_id_cmp); + return file_ids_used - 1; +} + +void * +x3_malloc(const char *file, unsigned int line, size_t size) +{ + struct alloc_header *block; + block = malloc(sizeof(*block) + size); + block = malloc(sizeof(*block) + size + sizeof(redzone)); + assert(block != NULL); + if (block->magic == ALLOC_MAGIC && block->file_id < file_ids_used) { + /* Only report the error, due to possible false positives. */ + log_module(MAIN_LOG, LOG_WARNING, "Detected possible reallocation: %p (called by %s:%u/%u; allocated by %u:%u/%u).", + block, file, line, size, block->file_id, block->line, block->size); + } + memset(block, 0, sizeof(*block) + size); + memcpy((char*)(block + 1) + size, redzone, sizeof(redzone)); + block->file_id = get_file_id(file); + block->line = line; + block->size = size; + block->magic = ALLOC_MAGIC; + alloc_count++; + alloc_size += size; + return block + 1; +} + +void * +x3_realloc(const char *file, unsigned int line, void *ptr, size_t size) + struct alloc_header *block = NULL, *newblock; + struct alloc_header *block, *newblock; + } + if (!ptr) + return x3_malloc(file, line, size); + + verify(ptr); + block = (struct alloc_header *)ptr - 1; + + if (block->size >= size) + return block + 1; + newblock = malloc(sizeof(*newblock) + size); + newblock = malloc(sizeof(*newblock) + size + sizeof(redzone)); + memset(newblock, 0, sizeof(*newblock) + size + sizeof(redzone)); + memset(newblock, 0, sizeof(*newblock)); + memcpy(newblock + 1, block + 1, block->size); + memset((char*)(newblock + 1) + block->size, 0, size - block->size); + memcpy((char*)(newblock + 1) + size, redzone, sizeof(redzone)); + newblock->file_id = get_file_id(file); + newblock->line = line; + newblock->size = size; + newblock->magic = ALLOC_MAGIC; + alloc_count++; + alloc_size += size; + x3_free(block); + x3_free(file, line, block + 1); + + return newblock + 1; +} + +char * +x3_strdup(const char *file, unsigned int line, const char *src) +{ + char *target; + size_t len; + + len = strlen(src) + 1; + target = x3_malloc(file, line, len); + memcpy(target, src, len); + return target; +} + +x3_free(const char *file, unsigned int line, void *ptr) +x3_free(UNUSED_ARG(const char *file), UNUSED_ARG(unsigned int line), void *ptr) +{ + struct alloc_header *block; + size_t size; + + if (!ptr) + return; + verify(ptr); + assert(block->magic == ALLOC_MAGIC); + memset(block, 0, size); + size = block->size; + memset(block + 1, 0xde, size); + block->magic = FREE_MAGIC; + free(block); + alloc_size -= size - sizeof(*block); + (void)file; (void)line; +} + +void +verify(const void *ptr) +{ + const struct alloc_header *header; + if (!ptr) + return; + header = (const struct alloc_header*)ptr - 1; + assert(header->magic == ALLOC_MAGIC); + assert(!memcmp((char*)(header + 1) + header->size, redzone, sizeof(redzone))); +} + Index: x3/src/chanserv.c diff -u x3/src/chanserv.c:1.14 x3/src/chanserv.c:1.15 --- x3/src/chanserv.c:1.14 Mon Feb 21 05:54:54 2005 +++ x3/src/chanserv.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* chanserv.c - Channel service bot * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/chanserv.h diff -u x3/src/chanserv.h:1.6 x3/src/chanserv.h:1.7 --- x3/src/chanserv.h:1.6 Mon Feb 21 05:54:54 2005 +++ x3/src/chanserv.h Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* chanserv.h - Channel service bot * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/common.h diff -u x3/src/common.h:1.5 x3/src/common.h:1.6 --- x3/src/common.h:1.5 Mon Feb 21 05:54:54 2005 +++ x3/src/common.h Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* common.h - Common functions/includes * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/conf.c diff -u x3/src/conf.c:1.1.1.1 x3/src/conf.c:1.2 --- x3/src/conf.c:1.1.1.1 Thu Jun 3 10:13:59 2004 +++ x3/src/conf.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* conf.c - Config file reader * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/conf.h diff -u x3/src/conf.h:1.1.1.1 x3/src/conf.h:1.2 --- x3/src/conf.h:1.1.1.1 Thu Jun 3 10:13:59 2004 +++ x3/src/conf.h Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* conf.h - Config file reader * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/dict-splay.c diff -u x3/src/dict-splay.c:1.3 x3/src/dict-splay.c:1.4 --- x3/src/dict-splay.c:1.3 Sun Jan 30 17:41:29 2005 +++ x3/src/dict-splay.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* dict-splay.c - Abstract dictionary type * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/dict.h diff -u x3/src/dict.h:1.1.1.1 x3/src/dict.h:1.2 --- x3/src/dict.h:1.1.1.1 Thu Jun 3 10:13:59 2004 +++ x3/src/dict.h Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* dict.h - Abstract dictionary type * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/gline.c diff -u x3/src/gline.c:1.1.1.1 x3/src/gline.c:1.2 --- x3/src/gline.c:1.1.1.1 Thu Jun 3 10:13:59 2004 +++ x3/src/gline.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* gline.c - Gline database * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/gline.h diff -u x3/src/gline.h:1.1.1.1 x3/src/gline.h:1.2 --- x3/src/gline.h:1.1.1.1 Thu Jun 3 10:13:59 2004 +++ x3/src/gline.h Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* gline.h - Gline database * Copyright 2001-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/global.c diff -u x3/src/global.c:1.2 x3/src/global.c:1.3 --- x3/src/global.c:1.2 Tue Aug 24 17:32:01 2004 +++ x3/src/global.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* global.c - Global notice service * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/global.h diff -u x3/src/global.h:1.1.1.1 x3/src/global.h:1.2 --- x3/src/global.h:1.1.1.1 Thu Jun 3 10:13:59 2004 +++ x3/src/global.h Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* global.h - Global notice service * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/hash.c diff -u x3/src/hash.c:1.7 x3/src/hash.c:1.8 --- x3/src/hash.c:1.7 Mon Feb 21 05:54:54 2005 +++ x3/src/hash.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* hash.c - IRC network state database * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/hash.h diff -u x3/src/hash.h:1.7 x3/src/hash.h:1.8 --- x3/src/hash.h:1.7 Sun Oct 24 11:18:10 2004 +++ x3/src/hash.h Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* hash.h - IRC network state database * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/heap.c diff -u x3/src/heap.c:1.1.1.1 x3/src/heap.c:1.2 --- x3/src/heap.c:1.1.1.1 Thu Jun 3 10:13:59 2004 +++ x3/src/heap.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* heap.c - Abstract heap type * Copyright 2000-2002 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/heap.h diff -u x3/src/heap.h:1.1.1.1 x3/src/heap.h:1.2 --- x3/src/heap.h:1.1.1.1 Thu Jun 3 10:13:59 2004 +++ x3/src/heap.h Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* heap.h - Abstract heap type * Copyright 2000-2001 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/helpfile.c diff -u x3/src/helpfile.c:1.2 x3/src/helpfile.c:1.3 --- x3/src/helpfile.c:1.2 Tue Aug 24 17:32:02 2004 +++ x3/src/helpfile.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* helpfile.c - Help file loading and display * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/helpfile.h diff -u x3/src/helpfile.h:1.2 x3/src/helpfile.h:1.3 --- x3/src/helpfile.h:1.2 Tue Aug 24 17:32:02 2004 +++ x3/src/helpfile.h Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* helpfile.h - Help file loading and display * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/ioset.c diff -u x3/src/ioset.c:1.1.1.1 x3/src/ioset.c:1.2 --- x3/src/ioset.c:1.1.1.1 Thu Jun 3 10:14:00 2004 +++ x3/src/ioset.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* ioset.h - srvx event loop * Copyright 2002-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/ioset.h diff -u x3/src/ioset.h:1.1.1.1 x3/src/ioset.h:1.2 --- x3/src/ioset.h:1.1.1.1 Thu Jun 3 10:14:00 2004 +++ x3/src/ioset.h Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* ioset.h - srvx event loop * Copyright 2002-2003 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/log.c diff -u x3/src/log.c:1.4 x3/src/log.c:1.5 --- x3/src/log.c:1.4 Mon Feb 21 05:54:54 2005 +++ x3/src/log.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* log.c - Diagnostic and error logging * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/log.h diff -u x3/src/log.h:1.2 x3/src/log.h:1.3 --- x3/src/log.h:1.2 Wed Dec 8 12:28:54 2004 +++ x3/src/log.h Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* log.h - Diagnostic and error logging * Copyright 2000-2003 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/main.c diff -u x3/src/main.c:1.3 x3/src/main.c:1.4 --- x3/src/main.c:1.3 Sun Mar 6 19:51:24 2005 +++ x3/src/main.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* main.c - srvx * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/mod-helpserv.c diff -u x3/src/mod-helpserv.c:1.5 x3/src/mod-helpserv.c:1.6 --- x3/src/mod-helpserv.c:1.5 Sun Mar 6 19:51:24 2005 +++ x3/src/mod-helpserv.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* mod-helpserv.c - Support Helper assistant service * Copyright 2002-2003 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/mod-memoserv.c diff -u x3/src/mod-memoserv.c:1.1.1.1 x3/src/mod-memoserv.c:1.2 --- x3/src/mod-memoserv.c:1.1.1.1 Thu Jun 3 10:14:00 2004 +++ x3/src/mod-memoserv.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* mod-memoserv.c - MemoServ module for srvx * Copyright 2003-2004 Martijn Smit and srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/mod-snoop.c diff -u x3/src/mod-snoop.c:1.4 x3/src/mod-snoop.c:1.5 --- x3/src/mod-snoop.c:1.4 Sun Oct 24 11:19:00 2004 +++ x3/src/mod-snoop.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* mod-snoop.c - User surveillance module (per pomac's spec) * Copyright 2002-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/mod-sockcheck.c diff -u x3/src/mod-sockcheck.c:1.2 x3/src/mod-sockcheck.c:1.3 --- x3/src/mod-sockcheck.c:1.2 Sun Jan 30 17:41:29 2005 +++ x3/src/mod-sockcheck.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* mod-sockcheck.c - insecure proxy checking * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/modcmd.c diff -u x3/src/modcmd.c:1.9 x3/src/modcmd.c:1.10 --- x3/src/modcmd.c:1.9 Sun Mar 6 19:51:24 2005 +++ x3/src/modcmd.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* modcmd.c - Generalized module command support * Copyright 2002-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/modcmd.h diff -u x3/src/modcmd.h:1.1.1.1 x3/src/modcmd.h:1.2 --- x3/src/modcmd.h:1.1.1.1 Thu Jun 3 10:14:00 2004 +++ x3/src/modcmd.h Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* modcmd.h - Generalized module command support * Copyright 2002-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/modules.c diff -u x3/src/modules.c:1.1.1.1 x3/src/modules.c:1.2 --- x3/src/modules.c:1.1.1.1 Thu Jun 3 10:14:00 2004 +++ x3/src/modules.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* modules.c - Compiled-in module support * Copyright 2002-2003 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/modules.h diff -u x3/src/modules.h:1.1.1.1 x3/src/modules.h:1.2 --- x3/src/modules.h:1.1.1.1 Thu Jun 3 10:14:00 2004 +++ x3/src/modules.h Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* modules.h - Compiled-in module support * Copyright 2002 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/nickserv.c diff -u x3/src/nickserv.c:1.17 x3/src/nickserv.c:1.18 --- x3/src/nickserv.c:1.17 Sun Mar 6 20:12:33 2005 +++ x3/src/nickserv.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* nickserv.c - Nick/authentication service * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/nickserv.h diff -u x3/src/nickserv.h:1.4 x3/src/nickserv.h:1.5 --- x3/src/nickserv.h:1.4 Sun Oct 24 11:18:10 2004 +++ x3/src/nickserv.h Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* nickserv.h - Nick/authentiction service * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/opserv.c diff -u x3/src/opserv.c:1.10 x3/src/opserv.c:1.11 --- x3/src/opserv.c:1.10 Mon Feb 21 05:54:54 2005 +++ x3/src/opserv.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* opserv.c - IRC Operator assistance service * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/opserv.h diff -u x3/src/opserv.h:1.1.1.1 x3/src/opserv.h:1.2 --- x3/src/opserv.h:1.1.1.1 Thu Jun 3 10:14:00 2004 +++ x3/src/opserv.h Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* opserv.h - IRC Operator assistant service * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/policer.c diff -u x3/src/policer.c:1.1.1.1 x3/src/policer.c:1.2 --- x3/src/policer.c:1.1.1.1 Thu Jun 3 10:14:00 2004 +++ x3/src/policer.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* policer.c - Leaky bucket * Copyright 2000-2002 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/policer.h diff -u x3/src/policer.h:1.1.1.1 x3/src/policer.h:1.2 --- x3/src/policer.h:1.1.1.1 Thu Jun 3 10:14:00 2004 +++ x3/src/policer.h Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* policer.h - Leaky bucket * Copyright 2000-2001 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/proto-common.c diff -u x3/src/proto-common.c:1.8 x3/src/proto-common.c:1.9 --- x3/src/proto-common.c:1.8 Sun Mar 6 19:51:24 2005 +++ x3/src/proto-common.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* proto-common.c - common IRC protocol parsing/sending support * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/proto-p10.c diff -u x3/src/proto-p10.c:1.11 x3/src/proto-p10.c:1.12 --- x3/src/proto-p10.c:1.11 Mon Feb 21 05:54:54 2005 +++ x3/src/proto-p10.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* proto-p10.c - IRC protocol output * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/proto.h diff -u x3/src/proto.h:1.3 x3/src/proto.h:1.4 --- x3/src/proto.h:1.3 Sun Oct 24 11:18:10 2004 +++ x3/src/proto.h Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* proto.h - IRC protocol output * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/recdb.c diff -u x3/src/recdb.c:1.1.1.1 x3/src/recdb.c:1.2 --- x3/src/recdb.c:1.1.1.1 Thu Jun 3 10:14:00 2004 +++ x3/src/recdb.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* recdb.c - recursive/record database implementation * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/recdb.h diff -u x3/src/recdb.h:1.1.1.1 x3/src/recdb.h:1.2 --- x3/src/recdb.h:1.1.1.1 Thu Jun 3 10:14:00 2004 +++ x3/src/recdb.h Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* recdb.h - recursive/record database implementation * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/saxdb.c diff -u x3/src/saxdb.c:1.1.1.1 x3/src/saxdb.c:1.2 --- x3/src/saxdb.c:1.1.1.1 Thu Jun 3 10:14:00 2004 +++ x3/src/saxdb.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* saxdb.c - srvx database manager * Copyright 2002-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/saxdb.h diff -u x3/src/saxdb.h:1.1.1.1 x3/src/saxdb.h:1.2 --- x3/src/saxdb.h:1.1.1.1 Thu Jun 3 10:14:00 2004 +++ x3/src/saxdb.h Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* saxdb.h - srvx database manager * Copyright 2002-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/sendmail.c diff -u x3/src/sendmail.c:1.1.1.1 x3/src/sendmail.c:1.2 --- x3/src/sendmail.c:1.1.1.1 Thu Jun 3 10:14:00 2004 +++ x3/src/sendmail.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* sendmail.c - mail sending utilities * Copyright 2002-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/sendmail.h diff -u x3/src/sendmail.h:1.1.1.1 x3/src/sendmail.h:1.2 --- x3/src/sendmail.h:1.1.1.1 Thu Jun 3 10:14:00 2004 +++ x3/src/sendmail.h Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* sendmail.h - mail sending utilities * Copyright 2002 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/timeq.c diff -u x3/src/timeq.c:1.1.1.1 x3/src/timeq.c:1.2 --- x3/src/timeq.c:1.1.1.1 Thu Jun 3 10:14:00 2004 +++ x3/src/timeq.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* timeq.c - time-based event queue * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/timeq.h diff -u x3/src/timeq.h:1.1.1.1 x3/src/timeq.h:1.2 --- x3/src/timeq.h:1.1.1.1 Thu Jun 3 10:14:00 2004 +++ x3/src/timeq.h Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* timeq.h - time-based event queue * Copyright 2000-2002 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: x3/src/tools.c diff -u x3/src/tools.c:1.9 x3/src/tools.c:1.10 --- x3/src/tools.c:1.9 Sun Jan 30 18:11:36 2005 +++ x3/src/tools.c Sat Mar 12 12:13:14 2005 @@ -1,7 +1,7 @@ /* tools.c - miscellaneous utility functions * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by ----------------------- End of diff ----------------------- |
From: Alex S. <ru...@us...> - 2005-03-11 23:09:41
|
Committer : Alex Schumann <ru...@us...> CVSROOT : /cvsroot/x2serv Module : x3 Commit time: 2005-03-11 23:09:33 UTC Modified files: AUTHORS Makefile.in autogen.sh configure configure.in rx/Makefile.in src/Makefile.in src/config.h.in Log message: Author: Log message: Added some additional srvx->x3 fixes. make install is fixed. ---------------------- diff included ---------------------- Index: x3/AUTHORS diff -u x3/AUTHORS:1.2 x3/AUTHORS:1.3 --- x3/AUTHORS:1.2 Sun Mar 6 19:51:23 2005 +++ x3/AUTHORS Fri Mar 11 15:09:21 2005 @@ -11,7 +11,8 @@ feature requests, criticism or praise are welcome. We love feedback. - srvx Development Team + X3 is based on the work of + the srvx Development Team Project Admin: Entrope <en...@us...> @@ -33,3 +34,4 @@ You can find the team on irc.gamesurge.net, in #srvx. Bug reports, feature requests, criticism or praise are welcome. We love feedback. +Note: Please do not bother the srvx team with questions about X3. Index: x3/Makefile.in diff -u x3/Makefile.in:1.2 x3/Makefile.in:1.3 --- x3/Makefile.in:1.2 Sun Oct 24 11:19:00 2004 +++ x3/Makefile.in Fri Mar 11 15:09:21 2005 @@ -1,6 +1,8 @@ -# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am +# Makefile.in generated by automake 1.9.5 from Makefile.am. +# @configure_input@ -# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -10,97 +12,199 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. - -SHELL = @SHELL@ - +@SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ - top_builddir = . - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(top_srcdir)/configure AUTHORS COPYING \ + ChangeLog INSTALL NEWS compile config.guess config.sub depcomp \ + install-sh ltmain.sh missing mkinstalldirs +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno configure.status.lineno +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/src/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-exec-recursive install-info-recursive \ + install-recursive installcheck-recursive installdirs-recursive \ + pdf-recursive ps-recursive uninstall-info-recursive \ + uninstall-recursive +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + { test ! -d $(distdir) \ + || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr $(distdir); }; } +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +ALLOCA = @ALLOCA@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ +MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ MODULE_OBJS = @MODULE_OBJS@ MY_SUBDIRS = @MY_SUBDIRS@ +OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ RX_INCLUDES = @RX_INCLUDES@ RX_LIBS = @RX_LIBS@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ VERSION = @VERSION@ - -EXTRA_DIST = FAQ srvx.conf.example sockcheck.conf.example +ac_ct_CC = @ac_ct_CC@ +ac_ct_RANLIB = @ac_ct_RANLIB@ +ac_ct_STRIP = @ac_ct_STRIP@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +EXTRA_DIST = FAQ x3.conf.example sockcheck.conf.example SUBDIRS = @MY_SUBDIRS@ DIST_SUBDIRS = src rx -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_CLEAN_FILES = -DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \ -Makefile.in NEWS aclocal.m4 config.guess config.sub configure \ -configure.in install-sh ltmain.sh missing mkinstalldirs - +all: all-recursive -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -all: all-redirect .SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) - cd $(top_builddir) \ - && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status - -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in - cd $(srcdir) && $(ACLOCAL) +am--refresh: + @: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \ + cd $(srcdir) && $(AUTOMAKE) --gnu \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; -config.status: $(srcdir)/configure.in $(CONFIG_STATUS_DEPENDENCIES) +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck -$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. @@ -108,13 +212,14 @@ # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. - -@SET_MAKE@ - -all-recursive install-data-recursive install-exec-recursive \ -installdirs-recursive install-recursive uninstall-recursive \ -check-recursive installcheck-recursive info-recursive dvi-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ @@ -126,7 +231,7 @@ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ @@ -134,13 +239,24 @@ mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ dot_seen=no; \ - rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ - rev="$$subdir $$rev"; \ - test "$$subdir" = "." && dot_seen=yes; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ done; \ - test "$$dot_seen" = "no" && rev=". $$rev"; \ + rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ @@ -150,199 +266,331 @@ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ - here=`pwd` && cd $(srcdir) \ - && mkid -f$$here/ID $$unique $(LISP) + mkid -fID $$unique +tags: TAGS -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ - fi; \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ done; \ - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ - || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) - -mostlyclean-tags: - -clean-tags: + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here distclean-tags: - -rm -f TAGS ID - -maintainer-clean-tags: - -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - -rm -rf $(distdir) - GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz - mkdir $(distdir)/=build - mkdir $(distdir)/=inst - dc_install_base=`cd $(distdir)/=inst && pwd`; \ - cd $(distdir)/=build \ - && ../configure --srcdir=.. --prefix=$$dc_install_base \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) dist - -rm -rf $(distdir) - @banner="$(distdir).tar.gz is ready for distribution"; \ - dashes=`echo "$$banner" | sed s/./=/g`; \ - echo "$$dashes"; \ - echo "$$banner"; \ - echo "$$dashes" -dist: distdir - -chmod -R a+r $(distdir) - GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) - -rm -rf $(distdir) -dist-all: distdir - -chmod -R a+r $(distdir) - GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) - -rm -rf $(distdir) distdir: $(DISTFILES) - -rm -rf $(distdir) + $(am__remove_distdir) mkdir $(distdir) - -chmod 777 $(distdir) - here=`cd $(top_builddir) && pwd`; \ - top_distdir=`cd $(distdir) && pwd`; \ - distdir=`cd $(distdir) && pwd`; \ - cd $(top_srcdir) \ - && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Makefile - @for file in $(DISTFILES); do \ - d=$(srcdir); \ + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ fi; \ done - for subdir in $(DIST_SUBDIRS); do \ + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ + test -d "$(distdir)/$$subdir" \ + || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ - chmod 777 $(distdir)/$$subdir; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + distdir) \ || exit 1; \ fi; \ done -info-am: -info: info-recursive -dvi-am: -dvi: dvi-recursive + -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r $(distdir) +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst + chmod a-w $(distdir) + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && cd $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' +distuninstallcheck: + @cd $(distuninstallcheck_dir) \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 check-am: all-am check: check-recursive -installcheck-am: -installcheck: installcheck-recursive -install-exec-am: install-exec-local +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive install-exec: install-exec-recursive - -install-data-am: install-data: install-data-recursive +uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-recursive -uninstall-am: -uninstall: uninstall-recursive -all-am: Makefile -all-redirect: all-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: installdirs-recursive -installdirs-am: - +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: -mostlyclean-am: mostlyclean-tags mostlyclean-generic + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive -mostlyclean: mostlyclean-recursive +clean-am: clean-generic mostlyclean-am -clean-am: clean-tags clean-generic mostlyclean-am +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags -clean: clean-recursive +dvi: dvi-recursive -distclean-am: distclean-tags distclean-generic clean-am +dvi-am: -distclean: distclean-recursive - -rm -f config.status +html: html-recursive -maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ - distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." +info: info-recursive + +info-am: + +install-data-am: + +install-exec-am: install-exec-local + +install-info: install-info-recursive + +install-man: + +installcheck-am: maintainer-clean: maintainer-clean-recursive - -rm -f config.status + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic -.PHONY: install-data-recursive uninstall-data-recursive \ -install-exec-recursive uninstall-exec-recursive installdirs-recursive \ -uninstalldirs-recursive all-recursive check-recursive \ -installcheck-recursive info-recursive dvi-recursive \ -mostlyclean-recursive distclean-recursive clean-recursive \ -maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ -distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ -dvi-am dvi check check-am installcheck-am installcheck \ -install-exec-local install-exec-am install-exec install-data-am \ -install-data install-am install uninstall-am uninstall all-redirect \ -all-am all installdirs-am installdirs mostlyclean-generic \ -distclean-generic clean-generic maintainer-clean-generic clean \ -mostlyclean distclean maintainer-clean +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive +ps-am: -all: srvx +uninstall-am: uninstall-info-am -srvx: src/srvx - cp ./src/srvx $(srcdir)/src/*.help . +uninstall-info: uninstall-info-recursive + +.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ + check-am clean clean-generic clean-recursive ctags \ + ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \ + dist-tarZ dist-zip distcheck distclean distclean-generic \ + distclean-recursive distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-exec \ + install-exec-am install-exec-local install-info \ + install-info-am install-man install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic maintainer-clean-recursive \ + mostlyclean mostlyclean-generic mostlyclean-recursive pdf \ + pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ + uninstall-info-am + + +all: x3 + +x3: src/x3 + cp ./src/x3 $(srcdir)/src/*.help . install-exec-local: $(INSTALL) -d -m 755 $(prefix) - $(INSTALL) -m 744 ./src/srvx $(prefix) + $(INSTALL) -m 744 ./src/x3 $(prefix) $(INSTALL) -m 644 $(srcdir)/src/*.help $(prefix) - $(INSTALL) -m 600 $(srcdir)/srvx.conf.example $(prefix) + $(INSTALL) -m 600 $(srcdir)/x3.conf.example $(prefix) $(INSTALL) -m 644 $(srcdir)/sockcheck.conf.example $(prefix) @echo - @echo srvx-$(VERSION) has been installed to $(prefix) - @echo Remember to edit srvx.conf.example and sockcheck.conf.example - @echo And of course, ./srvx --help before starting. + @echo X3-$(VERSION) has been installed to $(prefix) + @echo Remember to edit x3.conf.example and sockcheck.conf.example + @echo And of course, ./x3 --help before starting. @echo - # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Index: x3/autogen.sh diff -u x3/autogen.sh:1.2 x3/autogen.sh:1.3 --- x3/autogen.sh:1.2 Sun Jan 30 17:41:28 2005 +++ x3/autogen.sh Fri Mar 11 15:09:21 2005 @@ -1,6 +1,6 @@ #! /bin/sh -~/compiled/bin/aclocal -~/compiled/bin/autoheader -Wall -~/compiled/bin/automake -a --gnu Makefile rx/Makefile src/Makefile -~/compiled/bin/autoconf -Wall +aclocal +autoheader -Wall +automake -a --gnu Makefile rx/Makefile src/Makefile +autoconf -Wall Index: x3/configure diff -u x3/configure:1.5 x3/configure:1.6 --- x3/configure:1.5 Sun Mar 6 19:51:23 2005 +++ x3/configure Fri Mar 11 15:09:21 2005 @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Id: configure.in,v 1.5 2005/02/21 13:54:37 sirvulcan Exp . +# From configure.in Id: configure.in,v 1.6 2005/03/07 03:51:23 sirvulcan Exp . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59 for X3 1.4. # @@ -868,7 +868,7 @@ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-malloc=type Enables use of a special malloc library; one of: - system (the default), boehm-gc, dmalloc, mpatrol, srvx, slab + system (the default), boehm-gc, dmalloc, mpatrol, x3, slab --with-protocol=name Choose IRC dialect to support; one of: p10 (the default), bahamut --without-getopt Disables building of the GNU getopt library @@ -974,7 +974,7 @@ else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi - cd $ac_popdir + cd "$ac_popdir" done fi @@ -2512,8 +2512,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2571,8 +2570,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2688,8 +2686,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2743,8 +2740,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2789,8 +2785,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2834,8 +2829,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3023,8 +3017,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3128,8 +3121,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3189,8 +3181,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3639,8 +3630,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3698,8 +3688,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3815,8 +3804,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3870,8 +3858,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3916,8 +3903,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3961,8 +3947,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -4679,8 +4664,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -4753,8 +4737,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -4821,8 +4804,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -4890,8 +4872,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5057,8 +5038,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5120,8 +5100,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5191,8 +5170,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5278,8 +5256,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5427,8 +5404,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5472,8 +5448,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5576,8 +5551,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5679,8 +5653,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5802,8 +5775,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5910,8 +5882,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5979,8 +5950,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6061,8 +6031,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6203,8 +6172,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6342,8 +6310,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6527,8 +6494,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6766,8 +6732,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6825,8 +6790,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6863,8 +6827,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6931,8 +6894,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6994,8 +6956,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7085,8 +7046,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7244,8 +7204,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7325,8 +7284,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7484,8 +7442,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7558,8 +7515,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7639,8 +7595,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7798,8 +7753,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7876,8 +7830,7 @@ cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7920,15 +7873,15 @@ #define WITH_MALLOC_BOEHM_GC 1 _ACEOF -elif test "x$withval" = "xsrvx" ; then - echo "$as_me:$LINENO: result: srvx" >&5 -echo "${ECHO_T}srvx" >&6 +elif test "x$withval" = "xx3" ; then + echo "$as_me:$LINENO: result: x3" >&5 +echo "${ECHO_T}x3" >&6 cat >>confdefs.h <<\_ACEOF -#define WITH_MALLOC_SRVX 1 +#define WITH_MALLOC_X3 1 _ACEOF - MODULE_OBJS="$MODULE_OBJS alloc-srvx.\$(OBJEXT)" + MODULE_OBJS="$MODULE_OBJS alloc-x3.\$(OBJEXT)" elif test "x$withval" = "xslab" ; then echo "$as_me:$LINENO: result: slab" >&5 echo "${ECHO_T}slab" >&6 @@ -8981,11 +8934,6 @@ *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ @@ -9024,6 +8972,12 @@ fi;; esac done` || { (exit 1); exit 1; } + + if test x"$ac_file" != x-; then + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + rm -f "$ac_file" + fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub Index: x3/configure.in diff -u x3/configure.in:1.6 x3/configure.in:1.7 --- x3/configure.in:1.6 Sun Mar 6 19:51:23 2005 +++ x3/configure.in Fri Mar 11 15:09:22 2005 @@ -1,7 +1,7 @@ dnl Process this file with autoconf to create a configure script. dnl General initialization. -AC_REVISION([$Id: configure.in,v 1.6 2005/03/07 03:51:23 sirvulcan Exp $]) +AC_REVISION([$Id: configure.in,v 1.7 2005/03/11 23:09:22 rubin Exp $]) AC_PREREQ(2.57) AC_INIT(X3, 1.4, x2s...@li...) CODENAME=X3 @@ -153,7 +153,7 @@ AC_MSG_CHECKING(which malloc to use) AC_ARG_WITH(malloc, [ --with-malloc=type Enables use of a special malloc library; one of: - system (the default), boehm-gc, dmalloc, mpatrol, srvx, slab], + system (the default), boehm-gc, dmalloc, mpatrol, x3, slab], [], [withval="system"]) if test "x$withval" = "xsystem" ; then @@ -177,10 +177,10 @@ AC_CHECK_LIB(dl, dlopen, , AC_MSG_ERROR([libdl library is missing. boehm-gc build will fail.])) AC_CHECK_LIB(gc, GC_gcollect, , AC_MSG_ERROR([Boehm GC library is missing. boehm-gc build will fail.])) AC_DEFINE(WITH_MALLOC_BOEHM_GC, 1, [Define if using the Boehm GC to garbage collect and check memory leaks]) -elif test "x$withval" = "xsrvx" ; then - AC_MSG_RESULT(srvx) - AC_DEFINE(WITH_MALLOC_SRVX, 1, [Define if using the srvx internal debug allocator]) - MODULE_OBJS="$MODULE_OBJS alloc-srvx.\$(OBJEXT)" +elif test "x$withval" = "xx3" ; then + AC_MSG_RESULT(x3) + AC_DEFINE(WITH_MALLOC_X3, 1, [Define if using the x3 internal debug allocator]) + MODULE_OBJS="$MODULE_OBJS alloc-x3.\$(OBJEXT)" elif test "x$withval" = "xslab" ; then AC_MSG_RESULT(slab) AC_DEFINE(WITH_MALLOC_SLAB, 1, [Define if using the slab internal debug allocator]) Index: x3/rx/Makefile.in diff -u x3/rx/Makefile.in:1.1 x3/rx/Makefile.in:1.2 --- x3/rx/Makefile.in:1.1 Thu Mar 3 08:21:35 2005 +++ x3/rx/Makefile.in Fri Mar 11 15:09:22 2005 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.3 from Makefile.am. +# Makefile.in generated by automake 1.9.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004 Free Software Foundation, Inc. +# 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. Index: x3/src/Makefile.in diff -u x3/src/Makefile.in:1.1 x3/src/Makefile.in:1.2 --- x3/src/Makefile.in:1.1 Thu Mar 3 08:21:36 2005 +++ x3/src/Makefile.in Fri Mar 11 15:09:23 2005 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.3 from Makefile.am. +# Makefile.in generated by automake 1.9.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004 Free Software Foundation, Inc. +# 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,7 +15,7 @@ @SET_MAKE@ -SOURCES = $(checkdb_SOURCES) $(globtest_SOURCES) $(srvx_SOURCES) $(EXTRA_srvx_SOURCES) +SOURCES = $(checkdb_SOURCES) $(globtest_SOURCES) $(x3_SOURCES) $(EXTRA_x3_SOURCES) srcdir = @srcdir@ top_srcdir = @top_srcdir@ @@ -40,7 +40,7 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ -noinst_PROGRAMS = srvx$(EXEEXT) +noinst_PROGRAMS = x3$(EXEEXT) EXTRA_PROGRAMS = checkdb$(EXEEXT) globtest$(EXEEXT) subdir = src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ @@ -62,7 +62,7 @@ globtest.$(OBJEXT) tools.$(OBJEXT) globtest_OBJECTS = $(am_globtest_OBJECTS) globtest_LDADD = $(LDADD) -am_srvx_OBJECTS = chanserv.$(OBJEXT) compat.$(OBJEXT) conf.$(OBJEXT) \ +am_x3_OBJECTS = chanserv.$(OBJEXT) compat.$(OBJEXT) conf.$(OBJEXT) \ dict-splay.$(OBJEXT) getopt.$(OBJEXT) getopt1.$(OBJEXT) \ gline.$(OBJEXT) global.$(OBJEXT) hash.$(OBJEXT) heap.$(OBJEXT) \ helpfile.$(OBJEXT) ioset.$(OBJEXT) log.$(OBJEXT) \ @@ -70,7 +70,7 @@ modules.$(OBJEXT) nickserv.$(OBJEXT) opserv.$(OBJEXT) \ policer.$(OBJEXT) recdb.$(OBJEXT) saxdb.$(OBJEXT) \ sendmail.$(OBJEXT) timeq.$(OBJEXT) tools.$(OBJEXT) -srvx_OBJECTS = $(am_srvx_OBJECTS) +x3_OBJECTS = $(am_x3_OBJECTS) DEFAULT_INCLUDES = -I. -I$(srcdir) -I. depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -78,10 +78,10 @@ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -SOURCES = $(checkdb_SOURCES) $(globtest_SOURCES) $(srvx_SOURCES) \ - $(EXTRA_srvx_SOURCES) -DIST_SOURCES = $(checkdb_SOURCES) $(globtest_SOURCES) $(srvx_SOURCES) \ - $(EXTRA_srvx_SOURCES) +SOURCES = $(checkdb_SOURCES) $(globtest_SOURCES) $(x3_SOURCES) \ + $(EXTRA_x3_SOURCES) +DIST_SOURCES = $(checkdb_SOURCES) $(globtest_SOURCES) $(x3_SOURCES) \ + $(EXTRA_x3_SOURCES) DATA = $(noinst_DATA) ETAGS = etags CTAGS = ctags @@ -183,10 +183,10 @@ AM_CPPFLAGS = @RX_INCLUDES@ noinst_DATA = chanserv.help global.help modcmd.help nickserv.help opserv.help saxdb.help sendmail.help mod-sockcheck.help mod-helpserv.help mod-memoserv.help EXTRA_DIST = $(noinst_DATA) -EXTRA_srvx_SOURCES = proto-bahamut.c proto-common.c proto-p10.c mod-snoop.c mod-memoserv.c mod-helpserv.c mod-sockcheck.c -srvx_LDADD = @MODULE_OBJS@ -srvx_DEPENDENCIES = @MODULE_OBJS@ -srvx_SOURCES = \ +EXTRA_x3_SOURCES = alloc-slab.c alloc-srvx.c proto-bahamut.c proto-common.c proto-p10.c mod-snoop.c mod-memoserv.c mod-helpserv.c mod-sockcheck.c +x3_LDADD = @MODULE_OBJS@ +x3_DEPENDENCIES = @MODULE_OBJS@ +x3_SOURCES = \ chanserv.c chanserv.h \ compat.c compat.h \ conf.c conf.h \ @@ -277,9 +277,9 @@ globtest$(EXEEXT): $(globtest_OBJECTS) $(globtest_DEPENDENCIES) @rm -f globtest$(EXEEXT) $(LINK) $(globtest_LDFLAGS) $(globtest_OBJECTS) $(globtest_LDADD) $(LIBS) -srvx$(EXEEXT): $(srvx_OBJECTS) $(srvx_DEPENDENCIES) - @rm -f srvx$(EXEEXT) - $(LINK) $(srvx_LDFLAGS) $(srvx_OBJECTS) $(srvx_LDADD) $(LIBS) +x3$(EXEEXT): $(x3_OBJECTS) $(x3_DEPENDENCIES) + @rm -f x3$(EXEEXT) + $(LINK) $(x3_LDFLAGS) $(x3_OBJECTS) $(x3_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -287,6 +287,8 @@ distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloc-slab.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloc-srvx.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chanserv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/checkdb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compat.Po@am__quote@ Index: x3/src/config.h.in diff -u x3/src/config.h.in:1.1 x3/src/config.h.in:1.2 --- x3/src/config.h.in:1.1 Sun Oct 17 13:33:54 2004 +++ x3/src/config.h.in Fri Mar 11 15:09:23 2005 @@ -275,9 +275,15 @@ /* Define if using the mpatrol malloc debugging package */ #undef WITH_MALLOC_MPATROL +/* Define if using the slab internal debug allocator */ +#undef WITH_MALLOC_SLAB + /* Define if using the system's malloc */ #undef WITH_MALLOC_SYSTEM +/* Define if using the x3 internal debug allocator */ +#undef WITH_MALLOC_X3 + /* Define if using the Bahamut dialect of IRC */ #undef WITH_PROTOCOL_BAHAMUT ----------------------- End of diff ----------------------- |
From: Neil S. <sir...@us...> - 2005-03-07 04:13:01
|
Committer : Neil Spierling <sir...@us...> CVSROOT : /cvsroot/x2serv Module : srvx2 Commit time: 2005-03-07 04:12:43 UTC Modified files: ChangeLog.X3 src/md5.c src/nickserv.c src/nickserv.help Log message: added odelcookie ---------------------- diff included ---------------------- Index: srvx2/ChangeLog.X3 diff -u srvx2/ChangeLog.X3:1.1 srvx2/ChangeLog.X3:1.2 --- srvx2/ChangeLog.X3:1.1 Sun Mar 6 19:51:23 2005 +++ srvx2/ChangeLog.X3 Sun Mar 6 20:12:32 2005 @@ -1,11 +1,18 @@ /*********************************************************************** X3 ChangeLog -2005-02-22 Neil Spierling <sir...@gm...> +2005-03-07 Neil Spierling <sir...@gm...> - * stuff + * nickserv.help: Added odelcookie section. + + * src/nickserv.c: Added odelcookie for deleting auth cookies and email + cookies. + + * src/md5.c: Cleaned up compile warnings. + + * src/nickserv.help: Added odelcookie section. ***********************************************************************/ -#define CVS_VERSION "$Revision: 1.1 $" +#define CVS_VERSION "$Revision: 1.2 $" Index: srvx2/src/md5.c diff -u srvx2/src/md5.c:1.3 srvx2/src/md5.c:1.4 --- srvx2/src/md5.c:1.3 Sun Mar 6 19:51:24 2005 +++ srvx2/src/md5.c Sun Mar 6 20:12:33 2005 @@ -439,6 +439,7 @@ C = ctx->state[2]; D = ctx->state[3]; +#undef F #define F(x,y,z) (z ^ (x & (y ^ z))) P( A, B, C, D, 0, 7, 0xD76AA478 ); Index: srvx2/src/nickserv.c diff -u srvx2/src/nickserv.c:1.16 srvx2/src/nickserv.c:1.17 --- srvx2/src/nickserv.c:1.16 Mon Feb 21 05:54:54 2005 +++ srvx2/src/nickserv.c Sun Mar 6 20:12:33 2005 @@ -151,6 +151,7 @@ { "NSMSG_COOKIE_LIVE", "Account $b%s$b already has a cookie active. Please either finish using that cookie, wait for it to expire, or auth to the account and use the $bdelcookie$b command." }, { "NSMSG_EMAIL_UNACTIVATED", "That email address already has an unused cookie outstanding. Please use the cookie or wait for it to expire." }, { "NSMSG_NO_COOKIE", "Your account does not have any cookie issued right now." }, + { "NSMSG_NO_COOKIE_FOREIGN", "The account $b%s$b does not have any cookie issued right now." }, { "NSMSG_CANNOT_COOKIE", "You cannot use that kind of cookie when you are logged in." }, { "NSMSG_BAD_COOKIE", "That cookie is not the right one. Please make sure you are copying it EXACTLY from the email; it is case-sensitive, so $bABC$b is different from $babc$b." }, { "NSMSG_HANDLE_ACTIVATED", "Your account is now activated (with the password you entered when you registered). You are now authenticated to your account." }, @@ -162,6 +163,7 @@ { "NSMSG_BAD_COOKIE_TYPE", "Your account had bad cookie type %d; sorry. I am confused. Please report this bug." }, { "NSMSG_MUST_TIME_OUT", "You must wait for cookies of that type to time out." }, { "NSMSG_ATE_COOKIE", "I ate the cookie for your account. You may now have another." }, + { "NSMSG_ATE_FOREIGN_COOKIE", "I ate the cookie for account $b%s$b. It may now have another." }, { "NSMSG_USE_RENAME", "You are already authenticated to account $b%s$b -- contact the support staff to rename your account." }, { "NSMSG_ALREADY_REGISTERING", "You have already used $bREGISTER$b once this session; you may not use it again." }, { "NSMSG_REGISTER_BAD_NICKMASK", "Could not recognize $b%s$b as either a current nick or a hostmask." }, @@ -1883,6 +1885,26 @@ return 1; } +static NICKSERV_FUNC(cmd_odelcookie) +{ + struct handle_info *hi; + + NICKSERV_MIN_PARMS(2); + + if (!(hi = get_victim_oper(user, argv[1]))) + return 0; + + if (!hi->cookie) { + reply("NSMSG_NO_COOKIE_FOREIGN", hi->handle); + return 0; + } + + nickserv_eat_cookie(hi->cookie); + reply("NSMSG_ATE_FOREIGN_COOKIE", hi->handle); + + return 1; +} + static NICKSERV_FUNC(cmd_resetpass) { struct handle_info *hi; @@ -3961,6 +3983,7 @@ nickserv_define_func("RESETPASS", cmd_resetpass, -1, 0, 0); nickserv_define_func("COOKIE", cmd_cookie, -1, 0, 0); nickserv_define_func("DELCOOKIE", cmd_delcookie, -1, 1, 0); + nickserv_define_func("ODELCOOKIE", cmd_odelcookie, 0, 1, 0); dict_insert(nickserv_opt_dict, "EMAIL", opt_email); } nickserv_define_func("GHOST", cmd_ghost, -1, 1, 0); Index: srvx2/src/nickserv.help diff -u srvx2/src/nickserv.help:1.5 srvx2/src/nickserv.help:1.6 --- srvx2/src/nickserv.help:1.5 Sun Mar 6 19:51:24 2005 +++ srvx2/src/nickserv.help Sun Mar 6 20:12:33 2005 @@ -398,6 +398,14 @@ "$uSee Also:$u accountinfo, account flags, nickinfo, set, userinfo" ); }; + +"ODELCOOKIE" { + "/services/nickserv/email_enabled" ( + "/msg $N ODELCOOKIE <nick|*account>", + "Requests that $N cancels the cookie of the specified account.", + ); +}; + "PASS" ("/msg $N@$s PASS <oldpass> <newpass>", "Changes your $b$N$b password.", "$uSee Also:$u auth"); ----------------------- End of diff ----------------------- |
From: Alex S. <ru...@us...> - 2005-03-03 16:21:54
|
Committer : Alex Schumann <ru...@us...> CVSROOT : /cvsroot/x2serv Module : srvx2 Commit time: 2005-03-03 16:21:46 UTC Added files: rx/Makefile.in src/Makefile.in Log message: added Makefile.in to repo for ppl who need it ---------------------- diff included ---------------------- Index: srvx2/rx/Makefile.in diff -u /dev/null srvx2/rx/Makefile.in:1.1 --- /dev/null Thu Mar 3 08:21:46 2005 +++ srvx2/rx/Makefile.in Thu Mar 3 08:21:35 2005 @@ -0,0 +1,439 @@ +# Makefile.in generated by automake 1.9.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +SOURCES = $(librx_a_SOURCES) + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = .. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = rx +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in COPYING.LIB \ + ChangeLog compile depcomp +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/src/config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) +AR = ar +ARFLAGS = cru +librx_a_AR = $(AR) $(ARFLAGS) +librx_a_LIBADD = +am_librx_a_OBJECTS = hashrexp.$(OBJEXT) rx.$(OBJEXT) rxanal.$(OBJEXT) \ + rxbasic.$(OBJEXT) rxbitset.$(OBJEXT) rxcset.$(OBJEXT) \ + rxgnucomp.$(OBJEXT) rxhash.$(OBJEXT) rxnfa.$(OBJEXT) \ + rxnode.$(OBJEXT) rxposix.$(OBJEXT) rxsimp.$(OBJEXT) \ + rxspencer.$(OBJEXT) rxstr.$(OBJEXT) rxsuper.$(OBJEXT) \ + rxunfa.$(OBJEXT) +librx_a_OBJECTS = $(am_librx_a_OBJECTS) +DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/src +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +SOURCES = $(librx_a_SOURCES) +DIST_SOURCES = $(librx_a_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALLOCA = @ALLOCA@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEINFO = @MAKEINFO@ +MODULE_OBJS = @MODULE_OBJS@ +MY_SUBDIRS = @MY_SUBDIRS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +RX_INCLUDES = @RX_INCLUDES@ +RX_LIBS = @RX_LIBS@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_RANLIB = @ac_ct_RANLIB@ +ac_ct_STRIP = @ac_ct_STRIP@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ + +# this is "dirty" code -- please don't compile with -Wall :) +AM_CFLAGS = -W +noinst_LIBRARIES = librx.a +librx_a_SOURCES = \ + hashrexp.c \ + _rx.h rx.c rx.h \ + rxanal.c rxanal.h \ + rxbasic.c rxbasic.h \ + rxbitset.c rxbitset.h \ + rxcontext.h \ + rxcset.c rxcset.h \ + rxgnucomp.c rxgnucomp.h \ + rxhash.c rxhash.h \ + rxnfa.c rxnfa.h \ + rxnode.c rxnode.h \ + rxposix.c inst-rxposix.h rxposix.h \ + rxproto.h \ + rxsimp.c rxsimp.h \ + rxspencer.c rxspencer.h \ + rxstr.c rxstr.h \ + rxsuper.c rxsuper.h \ + rxunfa.c rxunfa.h \ + rxall.h + +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu rx/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu rx/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) +librx.a: $(librx_a_OBJECTS) $(librx_a_DEPENDENCIES) + -rm -f librx.a + $(librx_a_AR) librx.a $(librx_a_OBJECTS) $(librx_a_LIBADD) + $(RANLIB) librx.a + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hashrexp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rx.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rxanal.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rxbasic.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rxbitset.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rxcset.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rxgnucomp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rxhash.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rxnfa.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rxnode.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rxposix.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rxsimp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rxspencer.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rxstr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rxsuper.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rxunfa.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +uninstall-info-am: + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LIBRARIES) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-info-am + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-noinstLIBRARIES ctags distclean distclean-compile \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-exec install-exec-am install-info \ + install-info-am install-man install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-info-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: Index: srvx2/src/Makefile.in diff -u /dev/null srvx2/src/Makefile.in:1.1 --- /dev/null Thu Mar 3 08:21:47 2005 +++ srvx2/src/Makefile.in Thu Mar 3 08:21:36 2005 @@ -0,0 +1,506 @@ +# Makefile.in generated by automake 1.9.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +SOURCES = $(checkdb_SOURCES) $(globtest_SOURCES) $(srvx_SOURCES) $(EXTRA_srvx_SOURCES) + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = .. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +noinst_PROGRAMS = srvx$(EXEEXT) +EXTRA_PROGRAMS = checkdb$(EXEEXT) globtest$(EXEEXT) +subdir = src +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(srcdir)/config.h.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +PROGRAMS = $(noinst_PROGRAMS) +am_checkdb_OBJECTS = checkdb.$(OBJEXT) compat.$(OBJEXT) \ + dict-splay.$(OBJEXT) recdb.$(OBJEXT) saxdb.$(OBJEXT) \ + tools.$(OBJEXT) +checkdb_OBJECTS = $(am_checkdb_OBJECTS) +checkdb_LDADD = $(LDADD) +am_globtest_OBJECTS = compat.$(OBJEXT) dict-splay.$(OBJEXT) \ + globtest.$(OBJEXT) tools.$(OBJEXT) +globtest_OBJECTS = $(am_globtest_OBJECTS) +globtest_LDADD = $(LDADD) +am_srvx_OBJECTS = chanserv.$(OBJEXT) compat.$(OBJEXT) conf.$(OBJEXT) \ + dict-splay.$(OBJEXT) getopt.$(OBJEXT) getopt1.$(OBJEXT) \ + gline.$(OBJEXT) global.$(OBJEXT) hash.$(OBJEXT) heap.$(OBJEXT) \ + helpfile.$(OBJEXT) ioset.$(OBJEXT) log.$(OBJEXT) \ + main.$(OBJEXT) math.$(OBJEXT) md5.$(OBJEXT) modcmd.$(OBJEXT) \ + modules.$(OBJEXT) nickserv.$(OBJEXT) opserv.$(OBJEXT) \ + policer.$(OBJEXT) recdb.$(OBJEXT) saxdb.$(OBJEXT) \ + sendmail.$(OBJEXT) timeq.$(OBJEXT) tools.$(OBJEXT) +srvx_OBJECTS = $(am_srvx_OBJECTS) +DEFAULT_INCLUDES = -I. -I$(srcdir) -I. +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +SOURCES = $(checkdb_SOURCES) $(globtest_SOURCES) $(srvx_SOURCES) \ + $(EXTRA_srvx_SOURCES) +DIST_SOURCES = $(checkdb_SOURCES) $(globtest_SOURCES) $(srvx_SOURCES) \ + $(EXTRA_srvx_SOURCES) +DATA = $(noinst_DATA) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALLOCA = @ALLOCA@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ @RX_LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEINFO = @MAKEINFO@ +MODULE_OBJS = @MODULE_OBJS@ +MY_SUBDIRS = @MY_SUBDIRS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +RX_INCLUDES = @RX_INCLUDES@ +RX_LIBS = @RX_LIBS@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_RANLIB = @ac_ct_RANLIB@ +ac_ct_STRIP = @ac_ct_STRIP@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +AM_CPPFLAGS = @RX_INCLUDES@ +noinst_DATA = chanserv.help global.help modcmd.help nickserv.help opserv.help saxdb.help sendmail.help mod-sockcheck.help mod-helpserv.help mod-memoserv.help +EXTRA_DIST = $(noinst_DATA) +EXTRA_srvx_SOURCES = proto-bahamut.c proto-common.c proto-p10.c mod-snoop.c mod-memoserv.c mod-helpserv.c mod-sockcheck.c +srvx_LDADD = @MODULE_OBJS@ +srvx_DEPENDENCIES = @MODULE_OBJS@ +srvx_SOURCES = \ + chanserv.c chanserv.h \ + compat.c compat.h \ + conf.c conf.h \ + dict-splay.c dict.h \ + getopt.c getopt.h \ + getopt1.c getopt.h \ + gline.c gline.h \ + global.c global.h \ + hash.c hash.h \ + heap.c heap.h \ + helpfile.c helpfile.h \ + ioset.c ioset.h \ + log.c log.h \ + main.c common.h \ + math.c \ + md5.c md5.h \ + modcmd.c modcmd.h \ + modules.c modules.h \ + nickserv.c nickserv.h \ + opserv.c opserv.h \ + policer.c policer.h \ + proto.h \ + recdb.c recdb.h \ + saxdb.c saxdb.h \ + sendmail.c sendmail.h \ + timeq.c timeq.h \ + tools.c + +checkdb_SOURCES = checkdb.c common.h compat.c compat.h dict-splay.c dict.h recdb.c recdb.h saxdb.c saxdb.h tools.c conf.h log.h modcmd.h saxdb.h timeq.h +globtest_SOURCES = common.h compat.c compat.h dict-splay.c dict.h globtest.c tools.c +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +.SUFFIXES: .c .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu src/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +config.h: stamp-h1 + @if test ! -f $@; then \ + rm -f stamp-h1; \ + $(MAKE) stamp-h1; \ + else :; fi + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status src/config.h +$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_srcdir) && $(AUTOHEADER) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 + +clean-noinstPROGRAMS: + -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) +checkdb$(EXEEXT): $(checkdb_OBJECTS) $(checkdb_DEPENDENCIES) + @rm -f checkdb$(EXEEXT) + $(LINK) $(checkdb_LDFLAGS) $(checkdb_OBJECTS) $(checkdb_LDADD) $(LIBS) +globtest$(EXEEXT): $(globtest_OBJECTS) $(globtest_DEPENDENCIES) + @rm -f globtest$(EXEEXT) + $(LINK) $(globtest_LDFLAGS) $(globtest_OBJECTS) $(globtest_LDADD) $(LIBS) +srvx$(EXEEXT): $(srvx_OBJECTS) $(srvx_DEPENDENCIES) + @rm -f srvx$(EXEEXT) + $(LINK) $(srvx_LDFLAGS) $(srvx_OBJECTS) $(srvx_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chanserv.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/checkdb.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conf.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dict-splay.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gline.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/global.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/globtest.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/heap.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/helpfile.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioset.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/log.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/math.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mod-helpserv.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mod-memoserv.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mod-snoop.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mod-sockcheck.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/modcmd.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/modules.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nickserv.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opserv.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/policer.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proto-bahamut.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proto-common.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proto-p10.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/recdb.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/saxdb.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sendmail.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timeq.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tools.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +uninstall-info-am: + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(PROGRAMS) $(DATA) config.h +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-noinstPROGRAMS mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-hdr distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-info-am + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-noinstPROGRAMS ctags distclean distclean-compile \ + distclean-generic distclean-hdr distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-exec install-exec-am \ + install-info install-info-am install-man install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-info-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: ----------------------- End of diff ----------------------- |
From: Neil S. <sir...@us...> - 2005-02-21 13:55:14
|
Committer : Neil Spierling <sir...@us...> CVSROOT : /cvsroot/x2serv Module : srvx2 Commit time: 2005-02-21 13:55:04 UTC Modified files: ChangeLog configure.in srvx.conf.example src/Makefile.am src/alloc-srvx.c src/chanserv.c src/chanserv.h src/common.h src/hash.c src/log.c src/main.c src/mod-helpserv.c src/modcmd.c src/nickserv.c src/opserv.c src/proto-common.c src/proto-p10.c Added files: src/alloc-slab.c Log message: srvx arch sync ---------------------- diff included ---------------------- Index: srvx2/ChangeLog diff -u srvx2/ChangeLog:1.5 srvx2/ChangeLog:1.6 --- srvx2/ChangeLog:1.5 Sun Jan 30 17:41:27 2005 +++ srvx2/ChangeLog Mon Feb 21 05:54:37 2005 @@ -2,6 +2,181 @@ # arch-tag: aut...@sr...--2005-srvx/srvx--devo--1.3 # +2005-02-17 21:42:43 GMT Michael Poole <md...@tr...> patch-18 + + Summary: + Fix registered channel desync; fix HelpServ crash for old cfg files + Revision: + srvx--devo--1.3--patch-18 + + src/hash.c (AddChannelUser): Do not give ops to the first user to join + a persistent channel. + + src/helpserv.c (helpserv_conf_read): Use a default description for bots. + + modified files: + ChangeLog src/hash.c src/mod-helpserv.c + + +2005-02-11 03:10:49 GMT Michael Poole <md...@tr...> patch-17 + + Summary: + Mention 'slab' in --with-malloc docs. Merge fakehosts when merging accounts. + Revision: + srvx--devo--1.3--patch-17 + + configure.in (--with-malloc): Mention the awesome 'slab' allocator option. + + src/nickserv.c (cmd_merge): Copy fakehost to target account if appropriate. + + modified files: + ChangeLog configure.in src/nickserv.c + + +2005-02-08 04:42:43 GMT Michael Poole <md...@tr...> patch-16 + + Summary: + Fix memory corruption when removing certain bans from a channel. + Revision: + srvx--devo--1.3--patch-16 + + src/proto-common.c (mod_chanmode_apply): Make sure we get a pointer to + the ban we want to deallocate BEFORE we remove it from the banlist. + + modified files: + ChangeLog src/proto-common.c + + +2005-02-05 13:03:21 GMT Michael Poole <md...@tr...> patch-15 + + Summary: + Rearrange slab allocation header; minor slab fixes. + Revision: + srvx--devo--1.3--patch-15 + + src/alloc-slab.c (ALLOC_MAGIC, FREE_MAGIC): Replace with single-byte values. + (struct alloc_header): Move file_id and line into second 32-bit word + of header. + (slab_alloc): Remove commented-out debug statements. + (slab_unalloc): Remove memset() of freed block and commented-out debug + statements. + (slab_free): memset() freed blocks here instead. Try to fix + *_alloc_size counting errors (use the originally requested length + rather than rounded-up length) + + modified files: + ChangeLog src/alloc-slab.c + + +2005-02-05 03:52:51 GMT Michael Poole <md...@tr...> patch-14 + + Summary: + Even more slab allocator updates. + Revision: + srvx--devo--1.3--patch-14 + + src/slab-alloc.c (SLAB_DEBUG): Default to on. + (SMALL_CUTOFF): Fix default value (must be a multiple of 4). + (slab_unalloc): Fix slab counting. When SLAB_RESERVE, allocate the + set of pages in a burst, rather than supplementing them as we unmap. + (slab_realloc): Fix a rather embarassing (and LARGE) memory leak. + + modified files: + ChangeLog src/alloc-slab.c + + +2005-02-04 16:36:40 GMT Michael Poole <md...@tr...> patch-13 + + Summary: + more debugging updates + Revision: + srvx--devo--1.3--patch-13 + + src/alloc-slab.c: Switch free slab list from a stack to queue, and + make sure there are SLAB_RESERVE in the queue before an old slab is + dereferenced. This causes a fault when dereferencing stale pointers + to the last SLAB_RESERVE full slabs. + + src/log.c: Make struct logEntry *last static, to make sure gcc does + not optimize it away. + + modified files: + ChangeLog src/alloc-slab.c src/log.c + + +2005-01-31 22:28:59 GMT Michael Poole <md...@tr...> patch-12 + + Summary: + More slab allocator updates. + Revision: + srvx--devo--1.3--patch-12 + + src/alloc-slab.c: Disable extra debugging by default. Add more + statistics counters. Change element type of little_slabs[]. Keep a + global list of unused (full) slab pages, rather than per-slab. + Various other cleanups and fixes. + + src/chanserv.h: Can only be off-channel with off_channel > 1. + + src/main.c: Update years in copyright notice. + + src/opserv.c: Remove OSMSG_STATS_MEMORY. Make cmd_stats_memory() + allocator-specific. + + modified files: + ChangeLog src/alloc-slab.c src/chanserv.h src/main.c + src/opserv.c + + +2005-01-31 11:08:15 GMT Michael Poole <md...@tr...> patch-11 + + Summary: + Add "?stats memory" and optional alloc_header to slab. + Revision: + srvx--devo--1.3--patch-11 + + src/alloc-slab.c: Add alloc_header (but no redzone) debug support, + enabled by default. Update alloc_count and alloc_size. + + src/opserv.c: Provide "stats memory" command for slab allocator. + + modified files: + ChangeLog src/alloc-slab.c src/opserv.c + + +2005-01-31 05:14:52 GMT Michael Poole <md...@tr...> patch-10 + + Summary: + Add slab allocator; reduce delta with srvx-gs. + Revision: + srvx--devo--1.3--patch-10 + + configure.in: Check for getpagesize(). Support --with-malloc=slab. + + src/Makefile.am: Add alloc-slab.c as an extra source file. + + src/alloc-srvx.c: Clean up srvx_free() slightly. Check for previously + allocated blocks. + + srvx.conf.example, src/chanserv.c, src/main.c, src/modcmd.c, + src/proto-p10.c: Apply patches to bring closer to srvx-gs branch. + + src/log.c: Assert and _exit() on fatal log messages. + + src/opserv.c: Clarify logic for modes to set on join floods. + + src/proto-common.c: Accept off-channel commands in registered channels. + + new files: + src/.arch-ids/alloc-slab.c.id src/alloc-slab.c + + modified files: + ChangeLog configure.in src/Makefile.am src/alloc-srvx.c + src/chanserv.c src/chanserv.h src/common.h src/hash.h + src/helpfile.c src/log.c src/main.c src/modcmd.c src/opserv.c + src/proto-common.c src/proto-p10.c srvx.conf.example + + 2005-01-26 21:16:54 GMT Michael Poole <md...@tr...> patch-9 Summary: Index: srvx2/configure.in diff -u srvx2/configure.in:1.4 srvx2/configure.in:1.5 --- srvx2/configure.in:1.4 Sun Jan 30 17:41:28 2005 +++ srvx2/configure.in Mon Feb 21 05:54:37 2005 @@ -1,7 +1,7 @@ dnl Process this file with autoconf to create a configure script. dnl General initialization. -AC_REVISION([$Id: configure.in,v 1.4 2005/01/31 01:41:28 sirvulcan Exp $]) +AC_REVISION([$Id: configure.in,v 1.5 2005/02/21 13:54:37 sirvulcan Exp $]) AC_PREREQ(2.57) AC_INIT(srvx, 1.3, srv...@li...) CODENAME=surge @@ -80,8 +80,8 @@ fi dnl We have fallbacks in case these are missing, so just check for them. -AC_CHECK_FUNCS(bcopy memcpy memset strdup strerror strsignal localtime_r setrlimit inet_ntoa getopt getopt_long regcomp regexec regfree sysconf,,) - +AC_CHECK_FUNCS(bcopy getpagesize memcpy memset strdup strerror strsignal localtime_r setrlimit inet_ntoa getopt getopt_long regcomp regexec regfree sysconf,,) + dnl Check for absolutely required library functions. AC_CHECK_FUNCS(select socket strcspn strspn strtod strtoul,,AC_MSG_ERROR([a required function was not found. srvx build will fail.])) @@ -153,7 +153,7 @@ AC_MSG_CHECKING(which malloc to use) AC_ARG_WITH(malloc, [ --with-malloc=type Enables use of a special malloc library; one of: - system (the default), boehm-gc, dmalloc, mpatrol, srvx], + system (the default), boehm-gc, dmalloc, mpatrol, srvx, slab], [], [withval="system"]) if test "x$withval" = "xsystem" ; then @@ -181,6 +181,10 @@ AC_MSG_RESULT(srvx) AC_DEFINE(WITH_MALLOC_SRVX, 1, [Define if using the srvx internal debug allocator]) MODULE_OBJS="$MODULE_OBJS alloc-srvx.\$(OBJEXT)" +elif test "x$withval" = "xslab" ; then + AC_MSG_RESULT(slab) + AC_DEFINE(WITH_MALLOC_SLAB, 1, [Define if using the slab internal debug allocator]) + MODULE_OBJS="$MODULE_OBJS alloc-slab.\$(OBJEXT)" else AC_MSG_ERROR([Unknown malloc type $withval]) fi Index: srvx2/src/Makefile.am diff -u srvx2/src/Makefile.am:1.4 srvx2/src/Makefile.am:1.5 --- srvx2/src/Makefile.am:1.4 Sun Jan 30 17:41:29 2005 +++ srvx2/src/Makefile.am Mon Feb 21 05:54:38 2005 @@ -6,7 +6,7 @@ noinst_DATA = chanserv.help global.help modcmd.help nickserv.help opserv.help saxdb.help sendmail.help mod-sockcheck.help mod-helpserv.help mod-memoserv.help EXTRA_DIST = $(noinst_DATA) -EXTRA_srvx_SOURCES = alloc-srvx.c proto-bahamut.c proto-common.c proto-p10.c mod-snoop.c mod-memoserv.c mod-helpserv.c mod-sockcheck.c +EXTRA_srvx_SOURCES = alloc-slab.c alloc-srvx.c proto-bahamut.c proto-common.c proto-p10.c mod-snoop.c mod-memoserv.c mod-helpserv.c mod-sockcheck.c srvx_LDADD = @MODULE_OBJS@ srvx_DEPENDENCIES = @MODULE_OBJS@ srvx_SOURCES = \ Index: srvx2/src/alloc-slab.c diff -u /dev/null srvx2/src/alloc-slab.c:1.1 --- /dev/null Mon Feb 21 05:55:05 2005 +++ srvx2/src/alloc-slab.c Mon Feb 21 05:54:54 2005 @@ -0,0 +1,468 @@ +/* alloc-slab.c - Slab debugging allocator + * Copyright 2005 srvx Development Team + * + * This file is part of srvx. + * + * srvx is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "common.h" +#include "log.h" + +#if defined(HAVE_SYS_MMAN_H) +# include <sys/mman.h> +#endif + +#if !defined(HAVE_MMAP) +# error The slab allocator requires that your system have the mmap() system call. +#endif +#define SLAB_DEBUG 0 +#define SLAB_DEBUG 1 +#define SLAB_RESERVE 1024 + +#if SLAB_DEBUG +#define FREE_MAGIC 0xfc1d +#define ALLOC_MAGIC 0x1a +#define FREE_MAGIC 0xcf + + unsigned int file_id : 8; + unsigned int size : 24; + unsigned int magic : 8; + unsigned int file_id : 8; + unsigned int magic : 16; +}; + +static const char *file_ids[256]; +static struct file_id_entry { + const char *name; + unsigned int id : 8; +} file_id_map[256]; +unsigned int file_ids_used; + +static int +file_id_cmp(const void *a_, const void *b_) +{ + return strcmp(*(const char**)a_, *(const char**)b_); +} + +static unsigned int +get_file_id(const char *fname) +{ + struct file_id_entry *entry; + + entry = bsearch(&fname, file_id_map, file_ids_used, sizeof(file_id_map[0]), file_id_cmp); + if (entry) + return entry->id; + entry = file_id_map + file_ids_used; + file_ids[file_ids_used] = fname; + entry->name = fname; + entry->id = file_ids_used; + qsort(file_id_map, ++file_ids_used, sizeof(file_id_map[0]), file_id_cmp); + return file_ids_used - 1; +} + +typedef struct alloc_header alloc_header_t; + +#else + +typedef size_t alloc_header_t; + +#endif + +struct slab { + struct slabset *parent; + struct slab *prev; + struct slab *next; + void *base; + void **free; + unsigned int used; +}; + + struct slabset *next; + struct slab *child; + size_t nslabs; + size_t nallocs; + size_t size; + size_t items_per_slab; +}; + +#define SLAB_MIN (2 * sizeof(void*)) +#define SLAB_GRAIN sizeof(void*) +#define SMALL_CUTOFF 582 +#define SMALL_CUTOFF 580 +/* Element size < SMALL_CUTOFF -> use small slabs. + * Larger elements are allocated directly using mmap(). The largest + * regularly allocated struct in srvx 1.x is smaller than + * SMALL_CUTOFF, so there is not much point in coding support for + * larger slabs. + */ +unsigned long alloc_size; +static struct slab *free_slabs; +static struct slab *free_slab_head; +static struct slab *free_slab_tail; +unsigned long free_slab_count; +unsigned long big_alloc_count; +unsigned long big_alloc_size; +unsigned long slab_count; +unsigned long slab_alloc_count; +unsigned long slab_alloc_size; + +#if defined(MAP_ANON) +#elif defined(MAP_ANONYMOUS) +# define MAP_ANON MAP_ANONYMOUS +#else +# define MAP_ANON 0 +#endif + +static size_t +slab_pagesize(void) +{ + static size_t pagesize; + if (pagesize +#if defined(HAVE_GETPAGESIZE) + || (pagesize = getpagesize()) +#endif +#if defined(HAVE_SYSCONF) && defined(_SC_PAGESIZE) + || (pagesize = sysconf(_SC_PAGESIZE)) +#endif +#if defined(HAVE_SYSCONF) && defined(_SC_PAGE_SIZE) + || (pagesize = sysconf(_SC_PAGE_SIZE)) +#endif + ) return pagesize; + assert(0 && "unable to find system page size"); + return pagesize = 4096; +} + +static size_t +slab_round_up(size_t size) +{ + return (size + slab_pagesize() - 1) & ~(slab_pagesize() - 1); +} + +static void * +slab_map(size_t length) +{ + static int mmap_fd = -1; + void *res; + +#if ! MAP_ANON + if (mmap_fd < 0) { + mmap_fd = open("/dev/zero", 0); + if (mmap_fd < 0) + log_module(MAIN_LOG, LOG_FATAL, "Unable to open /dev/zero for mmap: %s", strerror(errno())); + } +#endif + res = mmap(0, length, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, mmap_fd, 0); + if (res == MAP_FAILED) + log_module(MAIN_LOG, LOG_FATAL, "Unable to mmap %lu bytes (%s).", (unsigned long)length, strerror(errno)); + return res; +} + +static void *slab_alloc(struct slabset *sset); +static void slab_unalloc(void *ptr, size_t size); + +static struct slabset * +slabset_create(size_t size) +{ + unsigned int idx; + + size = (size < SLAB_MIN) ? SLAB_MIN : (size + SLAB_GRAIN - 1) & ~(SLAB_GRAIN - 1); + idx = size / SLAB_GRAIN; + little_slabs[idx]->items_per_slab = (slab_pagesize() - sizeof(struct slab)) / ((size + SLAB_ALIGN - 1) & ~(SLAB_ALIGN - 1)); + if (!little_slabs[idx].size) { + little_slabs[idx].size = size; + little_slabs[idx].items_per_slab = (slab_pagesize() - sizeof(struct slab)) / ((size + SLAB_ALIGN - 1) & ~(SLAB_ALIGN - 1)); + return little_slabs[idx]; + return &little_slabs[idx]; +} + +static void * +slab_alloc(struct slabset *sset) +{ + struct slab *slab; + void **item; + + if (!sset->child || !sset->child->free) { + unsigned int ii, step; + + free_slabs = slab->next; + if (free_slab_head) { + slab = free_slab_head; + if (!(free_slab_head = slab->next)) + free_slab_tail = NULL; + } else { + item = slab_map(slab_pagesize()); + slab = (struct slab*)((char*)item + slab_pagesize() - sizeof(*slab)); + slab->base = item; + slab_count++; + } + + /* Populate free list. */ + step = (sset->size + SLAB_ALIGN - 1) & ~(SLAB_ALIGN - 1); + for (ii = 1, item = slab->free = slab->base; + ii < sset->items_per_slab; + ++ii, item = (*item = (char*)item + step)); + *item = NULL; + + /* Link to parent slabset. */ + if ((slab->prev = sset->child)) { + slab->prev = sset->child; + if (slab->prev) { + slab->next = slab->prev->next; + slab->prev->next = slab; + if (slab->next) + } + } else + slab->next = NULL; + assert(!slab->next || slab == slab->next->prev); + assert(!slab->prev || slab == slab->prev->next); + sset->child = slab; + /* log_module(MAIN_LOG, LOG_DEBUG, "Allocated new %u-slab %p.", sset->size, slab); */ + } + + slab = sset->child; + item = slab->free; + assert(((unsigned long)item & (slab_pagesize() - 1)) + <= (slab_pagesize() - sizeof(*slab) - sset->size)); + if (slab->used++ == sset->items_per_slab) { + /* log_module(MAIN_LOG, LOG_DEBUG, "%u-slab %p is empty.", sset->size, item); */ + if (sset->child != slab) { + /* Unlink slab and reinsert before sset->child. */ + if (slab->prev) + slab->prev->next = slab->next; + if (slab->next) + slab->next->prev = slab->prev; + if ((slab->prev = sset->child->prev)) + slab->prev->next = slab; + if ((slab->next = sset->child)) + slab->next->prev = slab; + assert(!slab->next || slab == slab->next->prev); + assert(!slab->prev || slab == slab->prev->next); + } else if (slab->next) { + /* Advance sset->child to next pointer. */ + sset->child = slab->next; + } + } + sset->nallocs++; + memset(item, 0, sset->size); + return item; +} + +static void +slab_unalloc(void *ptr, size_t size) + void **item; + struct slab *slab, *new_next; + item = ptr; + assert(size < SMALL_CUTOFF); + slab->free = item; + *(void**)ptr = slab->free; + slab->free = ptr; + slab->parent->nallocs--; + + if (slab->used-- == slab->parent->items_per_slab + && slab->parent->child != slab) { + /* Unlink from current position, relink as parent's first child. */ + if (new_next) { + assert(new_next != NULL); + if (slab->prev) + slab->prev->next = slab->next; + if (slab->next) + slab->next->prev = slab->prev; + if ((slab->prev = new_next->prev)) + slab->next->prev = slab; + slab->next = new_next; + new_next->prev = slab; + slab->parent->child = slab; + assert(!slab->next || slab == slab->next->prev); + /* log_module(MAIN_LOG, LOG_DEBUG, "%u-slab %p became partial.", slab->parent->size, slab); */ + /* log_module(MAIN_LOG, LOG_DEBUG, "%u-slab %p became full.", slab->parent->size, slab); */ + /* Unlink slab from its parent. */ + slab_count--; + if (slab->prev) + slab->prev->next = slab->next; + if (slab->next) + slab->next->prev = slab->prev; + new_next = slab->next ? slab->next : slab->prev; + if (slab == slab->parent->child) + slab->parent->child = new_next; + if (new_next) { + assert(!new_next->next || new_next == new_next->next->prev); + assert(!new_next->prev || new_next == new_next->prev->next); + } + + slab_count++; + if (!free_slab_count) { + /* Make sure we have enough free slab pages. */ + while (free_slab_count < SLAB_RESERVE) { + struct slab *tslab; + void *item; + + item = slab_map(slab_pagesize()); + tslab = (struct slab*)((char*)item + slab_pagesize() - sizeof(*slab)); + tslab->base = item; + tslab->prev = free_slab_tail; + free_slab_tail = tslab; + if (!free_slab_head) + free_slab_head = tslab; + free_slab_count++; + slab_count++; + } + } + + /* Unmap old slab, so accesses to stale pointers will fault. */ + munmap(slab->base, slab_pagesize()); + slab_count--; +#else + slab->prev = NULL; + free_slabs = slab; + slab->prev = free_slab_tail; + slab->next = NULL; + free_slab_tail = slab; + if (!free_slab_head) + free_slab_head = slab; + free_slab_count++; +#endif + } +} + +slab_malloc(UNUSED_ARG(const char *file), UNUSED_ARG(unsigned int line), size_t size) +slab_malloc(const char *file, unsigned int line, size_t size) + size_t real, *res; + alloc_header_t *res; + size_t real; + real = size + sizeof(size_t); + assert(size < 1 << 24); + if (real < SMALL_CUTOFF) + if (real < SMALL_CUTOFF) { + else + slab_alloc_count++; + slab_alloc_size += size; + } else { + res = slab_map(slab_round_up(real)); + big_alloc_count++; + big_alloc_size += size; + } +#if SLAB_DEBUG + res->file_id = get_file_id(file); + res->size = size; + res->line = line; + res->magic = ALLOC_MAGIC; +#else + *res = size; + (void)file; (void)line; + alloc_size += size; + return res + 1; +} + +void * +slab_realloc(const char *file, unsigned int line, void *ptr, size_t size) + size_t orig, *newblock; + alloc_header_t *orig; + void *newblock; + size_t osize; + + if (!ptr) + return slab_malloc(file, line, size); + + if (orig >= size) + orig = (alloc_header_t*)ptr - 1; +#if SLAB_DEBUG + osize = orig->size; +#else + osize = *orig; +#endif + if (osize >= size) + return ptr; + memcpy(newblock, ptr, size); + memcpy(newblock, ptr, osize); + slab_free(file, line, ptr); + return newblock; +} + +char * +slab_strdup(const char *file, unsigned int line, const char *src) +{ + char *target; + size_t len; + + len = strlen(src) + 1; + target = slab_malloc(file, line, len); + memcpy(target, src, len); + return target; +} + +slab_free(UNUSED_ARG(const char *file), UNUSED_ARG(unsigned int line), void *ptr) +slab_free(const char *file, unsigned int line, void *ptr) + size_t real, *size; + size_t real; + size_t user, real; + + if (!ptr) + return; + real = *size + sizeof(size_t); + hdr = (alloc_header_t*)ptr - 1; +#if SLAB_DEBUG + hdr->file_id = get_file_id(file); + hdr->line = line; + real = hdr->size + sizeof(*hdr); + user = hdr->size; + real = *hdr + sizeof(*hdr); + user = *hdr; + (void)file; (void)line; + real = (real + SLAB_GRAIN - 1) & ~(SLAB_GRAIN - 1); + real = (user + sizeof(*hdr) + SLAB_GRAIN - 1) & ~(SLAB_GRAIN - 1); + slab_unalloc(size, real); + memset(hdr + 1, 0xde, real - sizeof(*hdr)); + if (real < SMALL_CUTOFF) { + slab_unalloc(hdr, real); + munmap(size, slab_round_up(real)); + slab_alloc_size -= user; + slab_alloc_count--; + slab_alloc_size -= real - sizeof(*hdr); + } else { + alloc_size -= real - sizeof(*hdr); + big_alloc_size -= user; + big_alloc_count--; + big_alloc_size -= real - sizeof(*hdr); + } +} + +void +verify(const void *ptr) + size_t size; + alloc_header_t *hdr; + size_t real; + + if (!ptr) + assert(((unsigned long)ptr & (slab_pagesize() - 1)) == sizeof(size_t)); + + hdr = (alloc_header_t*)ptr - 1; +#if SLAB_DEBUG + real = hdr->size + sizeof(*hdr); + assert(hdr->file_id < file_ids_used); + assert(hdr->magic == ALLOC_MAGIC); +#else + real = *hdr + sizeof(*hdr); +#endif + real = (real + SLAB_GRAIN - 1) & ~(SLAB_GRAIN - 1); + + if (real >= SMALL_CUTOFF) + assert(((unsigned long)ptr & (slab_pagesize() - 1)) == sizeof(*hdr)); + else { + struct slab *slab; + size_t expected; + expected = (size + SLAB_GRAIN - 1) & ~(SLAB_GRAIN - 1); + expected = (real + SLAB_GRAIN - 1) & ~(SLAB_GRAIN - 1); + slab = (struct slab*)((((unsigned long)ptr | (slab_pagesize() - 1)) + 1) - sizeof(*slab)); + assert(slab->parent->size == expected); + } +} + Index: srvx2/src/alloc-srvx.c diff -u srvx2/src/alloc-srvx.c:1.1 srvx2/src/alloc-srvx.c:1.2 --- srvx2/src/alloc-srvx.c:1.1 Sun Jan 30 17:41:29 2005 +++ srvx2/src/alloc-srvx.c Mon Feb 21 05:54:54 2005 @@ -15,6 +15,7 @@ */ #include "common.h" +#include "log.h" #undef malloc #undef free @@ -60,6 +61,11 @@ block = malloc(sizeof(*block) + size); block = malloc(sizeof(*block) + size + sizeof(redzone)); assert(block != NULL); + if (block->magic == ALLOC_MAGIC && block->file_id < file_ids_used) { + /* Only report the error, due to possible false positives. */ + log_module(MAIN_LOG, LOG_WARNING, "Detected possible reallocation: %p (called by %s:%u/%u; allocated by %u:%u/%u).", + block, file, line, size, block->file_id, block->line, block->size); + } memset(block, 0, sizeof(*block) + size); memcpy((char*)(block + 1) + size, redzone, sizeof(redzone)); block->file_id = get_file_id(file); @@ -115,15 +121,15 @@ return target; } -void srvx_free(const char *file, unsigned int line, void *ptr) +srvx_free(UNUSED_ARG(const char *file), UNUSED_ARG(unsigned int line), void *ptr) { struct alloc_header *block; size_t size; if (!ptr) return; - block = (struct alloc_header *)ptr - 1; + verify(ptr); assert(block->magic == ALLOC_MAGIC); memset(block, 0, size); size = block->size; @@ -131,7 +137,6 @@ block->magic = FREE_MAGIC; free(block); alloc_size -= size - sizeof(*block); - alloc_size -= size; (void)file; (void)line; } Index: srvx2/src/chanserv.c diff -u srvx2/src/chanserv.c:1.13 srvx2/src/chanserv.c:1.14 --- srvx2/src/chanserv.c:1.13 Sun Jan 30 17:41:29 2005 +++ srvx2/src/chanserv.c Mon Feb 21 05:54:54 2005 @@ -1730,7 +1730,8 @@ return 0; } - if(!IsHelping(user) && (!(mn = GetUserMode(channel, user)) || !(mn->modes & MODE_CHANOP))) + if(!IsHelping(user) + && (!(mn = GetUserMode(channel, user)) || !(mn->modes & MODE_CHANOP))) { reply("CSMSG_MUST_BE_OPPED", channel->name); return 0; @@ -4560,18 +4561,21 @@ { struct suspended *suspended = data; struct chanNode *channel; - struct mod_chanmode change; if(!suspended->expires || (now < suspended->expires)) suspended->revoked = now; channel = suspended->cData->channel; suspended->cData->channel = channel; suspended->cData->flags &= ~CHANNEL_SUSPENDED; - mod_chanmode_init(&change); - change.argc = 1; - change.args[0].mode = MODE_CHANOP; - change.args[0].u.member = AddChannelUser(chanserv, channel); - mod_chanmode_announce(chanserv, channel, &change); + if(!IsOffChannel(suspended->cData)) + { + struct mod_chanmode change; + mod_chanmode_init(&change); + change.argc = 1; + change.args[0].mode = MODE_CHANOP; + change.args[0].u.member = AddChannelUser(chanserv, channel); + mod_chanmode_announce(chanserv, channel, &change); + } } static CHANSERV_FUNC(cmd_csuspend) @@ -5615,8 +5619,15 @@ new_owner = GetChannelAccess(cData, new_owner_hi); if(!new_owner) { - reply("CSMSG_NO_CHAN_USER", new_owner_hi->handle, channel->name); - return 0; + if(force) + { + new_owner = add_channel_user(cData, new_owner_hi, UL_COOWNER, 0, NULL); + } + else + { + reply("CSMSG_NO_CHAN_USER", new_owner_hi->handle, channel->name); + return 0; + } } if((chanserv_get_owned_count(new_owner_hi) >= chanserv_conf.max_owned) && !force) { @@ -6747,6 +6758,8 @@ s_expires = database_get_data(rd->d.object, KEY_EXPIRES, RECDB_QSTRING); owner = database_get_data(rd->d.object, KEY_OWNER, RECDB_QSTRING); reason = database_get_data(rd->d.object, KEY_REASON, RECDB_QSTRING); + if (!reason || !owner) + return; set_time = set ? (time_t)strtoul(set, NULL, 0) : now; triggered_time = triggered ? (time_t)strtoul(triggered, NULL, 0) : 0; Index: srvx2/src/chanserv.h diff -u srvx2/src/chanserv.h:1.5 srvx2/src/chanserv.h:1.6 --- srvx2/src/chanserv.h:1.5 Tue Aug 24 17:32:01 2004 +++ srvx2/src/chanserv.h Mon Feb 21 05:54:54 2005 @@ -77,7 +77,7 @@ #define IsProtected(x) ((x)->flags & CHANNEL_NODELETE) #define IsSuspended(x) ((x)->flags & CHANNEL_SUSPENDED) -#define IsOffChannel(x) ((x)->flags & CHANNEL_OFFCHANNEL) +#define IsOffChannel(x) (((x)->flags & CHANNEL_OFFCHANNEL) && (off_channel > 1)) struct chanData { Index: srvx2/src/common.h diff -u srvx2/src/common.h:1.4 srvx2/src/common.h:1.5 --- srvx2/src/common.h:1.4 Sun Jan 30 17:41:29 2005 +++ srvx2/src/common.h Mon Feb 21 05:54:54 2005 @@ -102,6 +102,24 @@ extern void verify(const void *ptr); # define verify(x) verify(x) # endif +#elif defined(WITH_MALLOC_SLAB) +# define malloc(n) slab_malloc(__FILE__, __LINE__, (n)) +# undef calloc +# define calloc(m,n) slab_malloc(__FILE__, __LINE__, (m)*(n)) +# undef realloc +# define realloc(p,n) slab_realloc(__FILE__, __LINE__, (p), (n)) +# undef free +# define free(p) slab_free(__FILE__, __LINE__, (p)) +# undef strdup +# define strdup(s) slab_strdup(__FILE__, __LINE__, (s)) +extern void *slab_malloc(const char *, unsigned int, size_t); +extern void *slab_realloc(const char *, unsigned int, void *, size_t); +extern char *slab_strdup(const char *, unsigned int, const char *); +extern void slab_free(const char *, unsigned int, void *); +# if !defined(NDEBUG) +extern void verify(const void *ptr); +# define verify(x) verify(x) +# endif #endif #ifndef verify Index: srvx2/src/hash.c diff -u srvx2/src/hash.c:1.6 srvx2/src/hash.c:1.7 --- srvx2/src/hash.c:1.6 Sun Jan 30 17:41:29 2005 +++ srvx2/src/hash.c Mon Feb 21 05:54:54 2005 @@ -503,7 +503,8 @@ modeList_append(&channel->members, mNode); modeList_append(&user->channels, mNode); - if (channel->members.used == 1) + if (channel->members.used == 1 + && !(channel->modes & MODE_REGISTERED)) mNode->modes |= MODE_CHANOP; for (n=0; n<jf_used; n++) { Index: srvx2/src/log.c diff -u srvx2/src/log.c:1.3 srvx2/src/log.c:1.4 --- srvx2/src/log.c:1.3 Sun Jan 30 17:41:29 2005 +++ srvx2/src/log.c Mon Feb 21 05:54:54 2005 @@ -587,6 +587,10 @@ /* Special behavior before we start full operation */ fprintf(stderr, "%s: %s\n", log_severity_names[sev], msgbuf); } + if (sev == LOG_FATAL) { + assert(0 && "fatal message logged"); + _exit(1); + } } /* audit log searching */ @@ -719,7 +723,8 @@ unsigned int matched = 0; if (discrim->type) { - struct logEntry *entry, *last; + static volatile struct logEntry *last; + struct logEntry *entry; for (entry = discrim->type->log_oldest, last = NULL; entry; Index: srvx2/src/main.c diff -u srvx2/src/main.c:1.1.1.1 srvx2/src/main.c:1.2 --- srvx2/src/main.c:1.1.1.1 Thu Jun 3 10:14:00 2004 +++ srvx2/src/main.c Mon Feb 21 05:54:54 2005 @@ -655,7 +655,7 @@ void version() { printf(" --------------------------------------------------\n" " - "PACKAGE_STRING" ("CODENAME"), Built: " __DATE__ ", " __TIME__".\n" - " - Copyright (C) 2000 - 2003, srvx Development Team\n" + " - Copyright (C) 2000 - 2005, srvx Development Team\n" " --------------------------------------------------\n"); } @@ -691,6 +691,12 @@ FILE *file_out; struct sigaction sv; +#if WITH_MALLOC_BOEHM_GC + GC_find_leak = 1; + GC_set_warn_proc(gc_warn_proc); + GC_enable_incremental(); +#endif + daemon = 1; debug = 0; tools_init(); @@ -816,10 +822,6 @@ MAIN_LOG = log_register_type("srvx", "file:main.log"); if (debug) log_debug(); -#if WITH_MALLOC_BOEHM_GC - GC_set_warn_proc(gc_warn_proc); - GC_enable_incremental(); -#endif timeq_init(); init_structs(); init_parse(); Index: srvx2/src/mod-helpserv.c diff -u srvx2/src/mod-helpserv.c:1.3 srvx2/src/mod-helpserv.c:1.4 --- srvx2/src/mod-helpserv.c:1.3 Mon Sep 20 04:08:33 2004 +++ srvx2/src/mod-helpserv.c Mon Feb 21 05:54:54 2005 @@ -3648,7 +3648,7 @@ helpserv_conf.db_backup_frequency = str ? ParseInterval(str) : 7200; str = database_get_data(conf_node, "description", RECDB_QSTRING); - helpserv_conf.description = str; + helpserv_conf.description = str ? str : "Help Queue Manager"; str = database_get_data(conf_node, "reqlogfile", RECDB_QSTRING); if (str && strlen(str)) Index: srvx2/src/modcmd.c diff -u srvx2/src/modcmd.c:1.7 srvx2/src/modcmd.c:1.8 --- srvx2/src/modcmd.c:1.7 Sun Jan 30 17:41:29 2005 +++ srvx2/src/modcmd.c Mon Feb 21 05:54:54 2005 @@ -145,18 +145,18 @@ { "channel", MODCMD_REQUIRE_CHANNEL }, { "chanuser", MODCMD_REQUIRE_CHANUSER }, { "disabled", MODCMD_DISABLED }, + { "helping", MODCMD_REQUIRE_HELPING }, { "ignore_csuspend", MODCMD_IGNORE_CSUSPEND }, { "joinable", MODCMD_REQUIRE_JOINABLE }, { "keepbound", MODCMD_KEEP_BOUND }, { "loghostmask", MODCMD_LOG_HOSTMASK }, - { "nolog", MODCMD_NO_LOG }, { "networkhelper", MODCMD_REQUIRE_NETWORK_HELPER }, { "never_csuspend", MODCMD_NEVER_CSUSPEND }, + { "nolog", MODCMD_NO_LOG }, { "oper", MODCMD_REQUIRE_OPER }, { "qualified", MODCMD_REQUIRE_QUALIFIED }, { "regchan", MODCMD_REQUIRE_REGCHAN }, { "supporthelper", MODCMD_REQUIRE_SUPPORT_HELPER }, - { "helping", MODCMD_REQUIRE_HELPING }, { "toy", MODCMD_TOY }, { NULL, 0 } }; @@ -545,7 +545,8 @@ rflags |= ACTION_STAFF; } if (cmd->min_opserv_level > 0) { - if (!oper_has_access(user, bot, cmd->min_opserv_level, !(options & SVCCMD_NOISY))) return 0; + if (!oper_has_access(user, bot, cmd->min_opserv_level, !(options & SVCCMD_NOISY))) + return 0; rflags |= ACTION_STAFF; } if (cmd->req_account_flags || cmd->deny_account_flags) { @@ -566,7 +567,7 @@ /* If it's an override, return a special value. */ if ((flags & MODCMD_REQUIRE_CHANUSER) && (options & SVCCMD_NOISY) - && (uData->access > 500) + && (!uData || (uData->access > 500)) && (!(uData = _GetChannelUser(channel->channel_info, user->handle_info, 0, 0)) || uData->access < cmd->min_channel_access) && !(flags & (MODCMD_REQUIRE_STAFF|MODCMD_REQUIRE_HELPING))) { @@ -1684,12 +1685,12 @@ if (flags & MODCMD_REQUIRE_HELPING) access = "helping"; else if (flags & MODCMD_REQUIRE_STAFF) { - switch (flags & MODCMD_REQUIRE_STAFF) { - case MODCMD_REQUIRE_OPER: access = "oper"; break; - case MODCMD_REQUIRE_OPER | MODCMD_REQUIRE_NETWORK_HELPER: - case MODCMD_REQUIRE_NETWORK_HELPER: access = "net.helper"; break; - default: access = "staff"; break; - } + if (flags & MODCMD_REQUIRE_OPER) + access = "oper"; + else if (flags & MODCMD_REQUIRE_NETWORK_HELPER) + access = "net.helper"; + else + access = "staff"; } else access = strtab(svccmd->min_channel_access); tbl.contents[ii+1][1+show_opserv_level] = access; Index: srvx2/src/nickserv.c diff -u srvx2/src/nickserv.c:1.15 srvx2/src/nickserv.c:1.16 --- srvx2/src/nickserv.c:1.15 Thu Dec 9 12:55:12 2004 +++ srvx2/src/nickserv.c Mon Feb 21 05:54:54 2005 @@ -3012,6 +3012,13 @@ if (hi_from->lastseen > hi_to->lastseen) hi_to->lastseen = hi_from->lastseen; + /* Does a fakehost carry over? (This intentionally doesn't set it + * for users previously attached to hi_to. They'll just have to + * reconnect.) + */ + if (hi_from->fakehost && !hi_to->fakehost) + hi_to->fakehost = strdup(hi_from->fakehost); + /* Notify of success. */ sprintf(buffer, "%s (%s) merged account %s into %s.", user->nick, user->handle_info->handle, hi_from->handle, hi_to->handle); reply("NSMSG_HANDLES_MERGED", hi_from->handle, hi_to->handle); Index: srvx2/src/opserv.c diff -u srvx2/src/opserv.c:1.9 srvx2/src/opserv.c:1.10 --- srvx2/src/opserv.c:1.9 Sun Jan 30 17:41:29 2005 +++ srvx2/src/opserv.c Mon Feb 21 05:54:54 2005 @@ -233,7 +233,6 @@ { "OSMSG_WARN_LISTSTART", "Channel activity warnings:" }, { "OSMSG_WARN_LISTENTRY", "%s (%s)" }, { "OSMSG_WARN_LISTEND", "End of activity warning list." }, - { "OSMSG_STATS_MEMORY", "%u allocations totalling %u bytes." }, { "OSMSG_UPLINK_CONNECTING", "Establishing connection with %s (%s:%d)." }, { "OSMSG_CURRENT_UPLINK", "$b%s$b is already the current uplink." }, { "OSMSG_INVALID_UPLINK", "$b%s$b is not a valid uplink name." }, @@ -1709,7 +1708,21 @@ #if defined(WITH_MALLOC_SRVX) static MODCMD_FUNC(cmd_stats_memory) { extern unsigned long alloc_count, alloc_size; - reply("OSMSG_STATS_MEMORY", alloc_count, alloc_size); + send_message_type(MSG_TYPE_NOXLATE, user, cmd->parent->bot, + "%u allocations totalling %u bytes.", + alloc_count, alloc_size); + return 1; +} +#elif defined(WITH_MALLOC_SLAB) +static MODCMD_FUNC(cmd_stats_memory) { + extern unsigned long slab_alloc_count, slab_count, slab_alloc_size; + extern unsigned long big_alloc_count, big_alloc_size; + send_message_type(MSG_TYPE_NOXLATE, user, cmd->parent->bot, + "%u allocations in %u slabs totalling %u bytes.", + slab_alloc_count, slab_count, slab_alloc_size); + send_message_type(MSG_TYPE_NOXLATE, user, cmd->parent->bot, + "%u big allocations totalling %u bytes.", + return 1; } #endif @@ -4265,7 +4278,7 @@ opserv_define_func("STATS UPLINK", cmd_stats_uplink, 0, 0, 0); opserv_define_func("STATS UPTIME", cmd_stats_uptime, 0, 0, 0); opserv_define_func("STATS WARN", cmd_stats_warn, 0, 0, 0); -#if defined(WITH_MALLOC_SRVX) +#if defined(WITH_MALLOC_SRVX) || defined(WITH_MALLOC_SLAB) opserv_define_func("STATS MEMORY", cmd_stats_memory, 0, 0, 0); #endif opserv_define_func("TRACE", cmd_trace, 100, 0, 3); Index: srvx2/src/proto-common.c diff -u srvx2/src/proto-common.c:1.6 srvx2/src/proto-common.c:1.7 --- srvx2/src/proto-common.c:1.6 Sun Jan 30 17:41:29 2005 +++ srvx2/src/proto-common.c Mon Feb 21 05:54:54 2005 @@ -440,8 +440,8 @@ mn->idle_since = now; /* Never send a NOTICE to a channel to one of the services */ - if (!pd->is_notice && cf->func && - ((cn->modes & MODE_REGISTERED) || GetUserMode(cn, cf->service))) + if (!pd->is_notice && cf->func + && ((cn->modes & MODE_REGISTERED) || GetUserMode(cn, cf->service))) cf->func(pd->user, cn, pd->text+1, cf->service); /* This catches *all* text sent to the channel that the services server sees */ @@ -450,7 +450,7 @@ if (!cf->func) break; /* end of list */ else - cf->func(pd->user, cn, pd->text, cf->service); + cf->func(pd->user, cn, pd->text, cf->service); } } @@ -570,9 +570,10 @@ * to be more specific than an existing ban. */ for (jj=0; jj<channel->banlist.used; ++jj) { - if (match_ircglobs(change->args[ii].u.hostmask, channel->banlist.list[jj]->ban)) { - banList_remove(&channel->banlist, channel->banlist.list[jj]); - free(channel->banlist.list[jj]); + bn = channel->banlist.list[jj]; + if (match_ircglobs(change->args[ii].u.hostmask, bn->ban)) { + banList_remove(&channel->banlist, bn); + free(bn); jj--; } } @@ -587,10 +588,11 @@ break; case MODE_REMOVE|MODE_BAN: for (jj=0; jj<channel->banlist.used; ++jj) { - if (strcmp(channel->banlist.list[jj]->ban, change->args[ii].u.hostmask)) + bn = channel->banlist.list[jj]; + if (strcmp(bn->ban, change->args[ii].u.hostmask)) continue; - free(channel->banlist.list[jj]); - banList_remove(&channel->banlist, channel->banlist.list[jj]); + free(bn); + banList_remove(&channel->banlist, bn); break; } break; Index: srvx2/src/proto-p10.c diff -u srvx2/src/proto-p10.c:1.10 srvx2/src/proto-p10.c:1.11 --- srvx2/src/proto-p10.c:1.10 Sun Jan 30 17:41:29 2005 +++ srvx2/src/proto-p10.c Mon Feb 21 05:54:54 2005 @@ -1708,6 +1708,7 @@ dict_insert(irc_func_dict, "401", cmd_dummy); /* target left network */ dict_insert(irc_func_dict, "403", cmd_dummy); /* no such channel */ dict_insert(irc_func_dict, "404", cmd_dummy); /* cannot send to channel */ + dict_insert(irc_func_dict, "439", cmd_dummy); /* target change too fast */ dict_insert(irc_func_dict, "441", cmd_dummy); /* target isn't on that channel */ dict_insert(irc_func_dict, "442", cmd_dummy); /* you aren't on that channel */ dict_insert(irc_func_dict, "443", cmd_dummy); /* is already on channel (after invite?) */ Index: srvx2/srvx.conf.example diff -u srvx2/srvx.conf.example:1.4 srvx2/srvx.conf.example:1.5 --- srvx2/srvx.conf.example:1.4 Wed Dec 8 13:11:08 2004 +++ srvx2/srvx.conf.example Mon Feb 21 05:54:37 2005 @@ -221,8 +221,8 @@ // How long is a channel unvisited (by masters or above) before it can be expired? "chan_expire_delay" "30d"; // what !set options should we show when user calls "!set" with no arguments? - "set_shows" ("DefaultTopic", "TopicMask", "Greeting", "UserGreeting", "Modes", "PubCmd", "InviteMe", "UserInfo", "GiveVoice", "GiveOps", "EnfOps", "EnfModes", "EnfTopic", "TopicSnarf", "Setters", "CtcpUser", "CtcpReaction", "Protect", "Toys", "DynLimit", "NoDelete"); - + "set_shows" ("DefaultTopic", "TopicMask", "Greeting", "UserGreeting", "Modes", "PubCmd", "InviteMe", "StrictOp", "AutoOp", "EnfModes", "EnfTopic", "TopicSnarf", "UserInfo", "GiveVoice", "GiveOps", "EnfOps", "Setters", "CtcpUser", "CtcpReaction", "Protect", "Toys", "DynLimit", "NoDelete"); + // A list of !8ball responses "8ball" ("Not a chance.", "In your dreams.", ----------------------- End of diff ----------------------- |
From: Alex S. <ru...@us...> - 2005-02-20 03:43:30
|
Committer : Alex Schumann <ru...@us...> CVSROOT : /cvsroot/x2serv Module : x2 Commit time: 2005-02-20 03:43:18 UTC Modified files: source/chan.c source/user.c Log message: Applied untested ':' ignoring in mode parsing code. ---------------------- diff included ---------------------- Index: x2/source/chan.c diff -u x2/source/chan.c:1.91 x2/source/chan.c:1.92 --- x2/source/chan.c:1.91 Mon Aug 23 08:25:48 2004 +++ x2/source/chan.c Sat Feb 19 19:43:08 2005 @@ -495,6 +495,8 @@ { switch (*chanchars) { + case ':': + break; case '+': sign = '+'; globsign = '+'; Index: x2/source/user.c diff -u x2/source/user.c:1.38 x2/source/user.c:1.39 --- x2/source/user.c:1.38 Sun Jan 30 20:15:18 2005 +++ x2/source/user.c Sat Feb 19 19:43:08 2005 @@ -551,6 +551,8 @@ ch = modestr[i]; switch (ch) { + case ':': + break; case 'o': UserMode = UMODEo; break; ----------------------- End of diff ----------------------- |
From: Alex S. <ru...@us...> - 2005-02-20 03:19:40
|
Committer : Alex Schumann <ru...@us...> CVSROOT : /cvsroot/x2serv Module : x2 Commit time: 2005-02-20 03:19:30 UTC Modified files: source/commands.c Log message: Fixed a mistake with my addop mask creation code ---------------------- diff included ---------------------- Index: x2/source/commands.c diff -u x2/source/commands.c:1.189 x2/source/commands.c:1.190 --- x2/source/commands.c:1.189 Sat Feb 19 13:04:12 2005 +++ x2/source/commands.c Sat Feb 19 19:19:14 2005 @@ -2746,12 +2746,12 @@ genpass(Pass, GENPASSLEN); tmphptr = AddHandle(cptr, handle, crypt(Pass, "$1$92737837$"), "*", *level, 1, 0, 0); - if(uptr->Account) + if(target->Account) { /* Add a mask of *!*@account.users.afternet.org automagically! */ char buf[MAXLEN]; - sprintf(buf, "*!*@%s.Users.AfterNET.Org", uptr->Account); + sprintf(buf, "*!*@%s.Users.AfterNET.Org", target->Account); AddMask(tmphptr, buf); } WriteChanOpFile(cptr); ----------------------- End of diff ----------------------- |
From: Alex S. <ru...@us...> - 2005-02-19 21:04:35
|
Committer : Alex Schumann <ru...@us...> CVSROOT : /cvsroot/x2serv Module : x2 Commit time: 2005-02-19 21:04:24 UTC Modified files: source/commands.c Log message: Author: Log message: Applied a working variant of osiris' calc patch. Calc now supports things like: 3(3)3 = 3*3*3 2pi = 2*pi ---------------------- diff included ---------------------- Index: x2/source/commands.c diff -u x2/source/commands.c:1.188 x2/source/commands.c:1.189 --- x2/source/commands.c:1.188 Fri Feb 18 19:42:22 2005 +++ x2/source/commands.c Sat Feb 19 13:04:12 2005 @@ -1134,6 +1134,11 @@ int c_calc(C_PARAM) { char buff[MAXLEN]; + char newrest[MAXLEN]; + char *ptr; + boolean lastNumber = false; + boolean lastBracket = false; + boolean failed; if(!rest || !*rest) { @@ -1141,7 +1146,61 @@ send_to_user(uptr, "For example: CALC 5 + 3 / 6"); return(TRUE); } - do_math(buff, rest); + + /* This is a HACK to insert * before ( so multiplication takes place + * in things such as 3(3) instead of ignoring the first 3. Submitted + * by Osiris. + * I spent some time tlooking at calc.c and I didnt see an easy way + * to do this there... and that file gives me a headache.. so.. -Rubin + */ + ptr = newrest; + while(*rest && ptr < newrest+MAXLEN-1) { + switch(*rest) { + case '1': case '2': + case '3': case '4': + case '5': case '6': + case '7': case '8': + case '9': case '0': + lastNumber = true; + if(lastBracket == true) { + *ptr = '*'; + ptr++; + } + *ptr = *rest; + lastBracket = false; + break; + case ')': case ']': /* Support sin[12](3) also */ + lastNumber = true; + lastBracket = true; + *ptr = *rest; + break; + case '(': case '[': + if (lastNumber == true) { + *ptr = '*'; + ptr++; + } + *ptr = *rest; + lastNumber = false; + lastBracket = false; + break; + default: + if(isalpha(*rest)) + { + if(lastNumber == true) { + *ptr = '*'; + ptr++; + } + } + *ptr = *rest; + lastNumber = false; + lastBracket = false; + break; + } + rest++; + ptr++; + } + *ptr = '\0'; + do_math(buff, newrest); if(said_inptr && PublicReplyAllowed(hptr)) { send_to_channel(said_inptr, "\002%s:\002 %s", uptr->Nick, buff); ----------------------- End of diff ----------------------- |
From: Alex S. <ru...@us...> - 2005-02-19 03:42:57
|
Committer : Alex Schumann <ru...@us...> CVSROOT : /cvsroot/x2serv Module : x2 Commit time: 2005-02-19 03:42:47 UTC Modified files: source/commands.c Log message: Author: Log message: modified addop and scriptreg to add a default mask based on the users account name. added "die" command as an alias of "quit" ---------------------- diff included ---------------------- Index: x2/source/commands.c diff -u x2/source/commands.c:1.187 x2/source/commands.c:1.188 --- x2/source/commands.c:1.187 Sun Sep 5 02:08:42 2004 +++ x2/source/commands.c Fri Feb 18 19:42:22 2005 @@ -203,6 +203,7 @@ { "SETHANDLE", c_sethandle, REGED, MA, T, T, F, T }, { "SETINFO", c_setinfo, REGED, PE, T, F, F, T }, { "QUIT", c_quit, NONE, 0, 0, 0, T, F }, + { "DIE", c_quit, NONE, 0, 0, 0, T, F }, { "D", c_roll, NONE, 0, 0, 0, F, T }, { "DICE", c_roll, NONE, 0, 0, 0, F, T }, { "ROLL", c_roll, NONE, 0, 0, 0, F, T }, @@ -1308,6 +1309,19 @@ SetLastSeen(cptr, hptr, JOIN); } + + /* If they are (co)owner, make sure the (co)owner last seen time gets reset. */ + if(IsChanOwner(hptr) || IsChanCoOwner(hptr)) + { + /* cant do this because they may have been already counted from a mask. + * cptr->OwnersOnline++; */ + + /* If OwnersOnline is 0, there is currently an owner already counted in the channel, + * so expiring wont be a problem. Otherwise, lets update the timestamp. */ + if(cptr->LastAccess > 0) + cptr->LastAccess = (unsigned long) time(NULL); + WriteChanOpFile(cptr); + } return(TRUE); } @@ -2673,6 +2687,14 @@ genpass(Pass, GENPASSLEN); tmphptr = AddHandle(cptr, handle, crypt(Pass, "$1$92737837$"), "*", *level, 1, 0, 0); + if(uptr->Account) + { + /* Add a mask of *!*@account.users.afternet.org automagically! */ + char buf[MAXLEN]; + + sprintf(buf, "*!*@%s.Users.AfterNET.Org", uptr->Account); + AddMask(tmphptr, buf); + } WriteChanOpFile(cptr); send_to_user(uptr, "New user \"%s\" added to %s userlist, as %s.", handle, cptr->Name, levelnamefromchar(*level)); @@ -3704,6 +3726,8 @@ { char Str[MAXLEN]; ChannelListType cptr; + HandleListType LastHandle = NULL; + if(!(cptr = GetChannel(ChanName))) { send_to_user(uptr, "REGCHAN returned OK, however, I cant find %s in memory...", ChanName); @@ -3712,8 +3736,12 @@ } /* Add owner */ - if(AddHandle(cptr, OwnerHandle, crypt(OwnerPassword, "$1$92737837$"), "*", 'W', 1, 0, 0)) + if((LastHandle = AddHandle(cptr, OwnerHandle, crypt(OwnerPassword, "$1$92737837$"), "*", 'W', 1, 0, 0))) { + char buf[MAXLEN]; + + sprintf(buf, "*!*@%s.users.AfterNET.Org", LastHandle->Handle); + AddMask(LastHandle, buf); strcpy(Str, "Owner: \002SUCCESS\002"); } else ----------------------- End of diff ----------------------- |
From: Alex S. <ru...@us...> - 2005-01-31 04:15:34
|
Committer : Alex Schumann <ru...@us...> CVSROOT : /cvsroot/x2serv Module : x2 Commit time: 2005-01-31 04:15:28 UTC Modified files: source/config.h source/user.c Log message: Handle umode +A ---------------------- diff included ---------------------- Index: x2/source/config.h diff -u x2/source/config.h:1.81 x2/source/config.h:1.82 --- x2/source/config.h:1.81 Thu Oct 21 21:35:40 2004 +++ x2/source/config.h Sun Jan 30 20:15:17 2005 @@ -236,6 +236,7 @@ #define CMODEm 1 /* These are for User mode parsing.. */ +#define UMODEA 32768 #define UMODEf 16384 #define UMODEh 8192 #define UMODEB 4096 Index: x2/source/user.c diff -u x2/source/user.c:1.37 x2/source/user.c:1.38 --- x2/source/user.c:1.37 Mon Aug 23 08:25:48 2004 +++ x2/source/user.c Sun Jan 30 20:15:18 2005 @@ -554,6 +554,9 @@ case 'o': UserMode = UMODEo; break; + case 'A': + UserMode = UMODEA; + break; case 'd': UserMode = UMODEd; break; ----------------------- End of diff ----------------------- |
From: Neil S. <sir...@us...> - 2005-01-31 02:11:55
|
Committer : Neil Spierling <sir...@us...> CVSROOT : /cvsroot/x2serv Module : srvx2 Commit time: 2005-01-31 02:11:47 UTC Modified files: src/tools.c Log message: woopsie ---------------------- diff included ---------------------- Index: srvx2/src/tools.c diff -u srvx2/src/tools.c:1.8 srvx2/src/tools.c:1.9 --- srvx2/src/tools.c:1.8 Sun Jan 30 17:41:29 2005 +++ srvx2/src/tools.c Sun Jan 30 18:11:36 2005 @@ -424,7 +424,9 @@ return 1; /* Check for a fakehost match. */ if (IsFakeHost(user) && match_ircglob(user->fakehost, glob)) - return 1; + return 1; + if (IsSetHost(user) && match_ircglob(sethostname, glob)) + return 1; /* Check for an account match. */ if (hidden_host_suffix && user->handle_info) { char hidden_host[HOSTLEN+1]; ----------------------- End of diff ----------------------- |
From: Neil S. <sir...@us...> - 2005-01-31 01:41:49
|
Committer : Neil Spierling <sir...@us...> CVSROOT : /cvsroot/x2serv Module : srvx2 Commit time: 2005-01-31 01:41:39 UTC Modified files: ChangeLog autogen.sh configure configure.in src/Makefile.am src/chanserv.c src/common.h src/dict-splay.c src/hash.c src/log.c src/mod-sockcheck.c src/modcmd.c src/opserv.c src/proto-common.c src/proto-p10.c src/tools.c Added files: ChangeLog.2004 src/alloc-srvx.c Log message: large sync with srvx 1.3 on arch plus an extra fix for off channel support ---------------------- diff included ---------------------- Index: srvx2/ChangeLog diff -u srvx2/ChangeLog:1.4 srvx2/ChangeLog:1.5 --- srvx2/ChangeLog:1.4 Sat Oct 2 18:41:34 2004 +++ srvx2/ChangeLog Sun Jan 30 17:41:27 2005 @@ -1,1671 +1,175 @@ # do not edit -- automatically generated by arch changelog -# arch-tag: aut...@sr...--2004-srvx/srvx--devo--1.3 +# arch-tag: aut...@sr...--2005-srvx/srvx--devo--1.3 # -2004-09-15 04:14:14 GMT adam <ad...@ga...> patch-81 +2005-01-26 21:16:54 GMT Michael Poole <md...@tr...> patch-9 Summary: - Consolidate use_registered_mode into off_channel and expand overall functionality + offchannel fixes; more memory verification Revision: - srvx--devo--1.3--patch-81 - - * srvx.conf's off_channel setting now allows us to turn on all of the features of out-of-channel services without activating the - channel setting to have chanserv part - - - - - modified files: - ChangeLog src/chanserv.c srvx.conf.example - - -2004-09-13 13:11:38 GMT Michael Poole <md...@tr...> patch-80 - - Summary: - ChanServ bugfixes for +z and addbans in suspended channels - Revision: - srvx--devo--1.3--patch-80 - - If ChanServ should use MODE_REGISTERED, update that when moving channels. - - Do not check for bans against an auth'ing user in suspended channels. - - Change the example entries for off_channel and use_registered_mode to - make the enabled/on values more obvious. - - modified files: - ChangeLog src/chanserv.c srvx.conf.example - - -2004-09-08 23:36:51 GMT Michael Poole <md...@tr...> patch-79 - - Summary: - Implement item #1011114, #997053 - Revision: - srvx--devo--1.3--patch-79 - - * Adjust the default max_greetlen to 200 (since greetings are now - unconditionally capped at one line of output). - - * Allow DNRs to be shown for accounts that currently do not exist. - - modified files: - ChangeLog src/chanserv.c src/opserv.c srvx.conf.example - - -2004-09-06 13:35:59 GMT Michael Poole <md...@tr...> patch-78 - - Summary: - Fix bugs; better handle oplevels from ircu2.10.12 - Revision: - srvx--devo--1.3--patch-78 - - * Fix order of port and IP in sample socks4 proxy test. - - * Fix a bug in dict_remove2() that corrupted the tree order if a - cleanup function tried to delete another node. - - * Fix a buffer overflow in cmd_joiner. - - * Get rid of free_nick_info() since it is really just free(). - - * If our P10 uplink sends an oplevel in a burst, treat it as a chanop. - - modified files: - ChangeLog sockcheck.conf.example src/dict-splay.c src/modcmd.c - src/nickserv.c src/proto-p10.c - - -2004-08-12 16:06:55 GMT Zoot <zo...@ga...> patch-77 - - Summary: - More title host checking - Revision: - srvx--devo--1.3--patch-77 - - * src/nickserv.c: Make oset title verify that the final combined fakehost - will not be truncated before storing the title. Also, supply a missing - format string argument. - - modified files: - ChangeLog src/nickserv.c - - -2004-08-08 17:42:01 GMT Zoot <zo...@ga...> patch-76 - - Summary: - Fix format string bug - Revision: - srvx--devo--1.3--patch-76 - - * src/chanserv.c: Fix a format string bug in the myaccess command. - - modified files: - ChangeLog src/chanserv.c - - -2004-08-02 12:54:13 GMT Michael Poole <md...@tr...> patch-75 - - Summary: - Assorted bug fixes - Revision: - srvx--devo--1.3--patch-75 - - * Add missing semicolon in German translation of CSMSG_TRANSFER_WAIT. - - * Fix pointer used in !trim max_access calculation. - - * Default to maximum line length for all "single-line" messages. - - * Return success from NickServ ounregister so it is logged properly. - - modified files: - ChangeLog languages/de/strings.db src/chanserv.c - src/helpfile.c src/nickserv.c - - -2004-07-22 04:03:22 GMT Michael Poole <md...@tr...> patch-74 - - Summary: - Channel suspension, transfer and line wrap changes - Revision: - srvx--devo--1.3--patch-74 - - * Treat half-unsuspended channels as unsuspended, to avoid crashes - caused by sysadmins editing chanserv.db in screwy ways. - - * Add a srvx.conf option to limit how often channel owners can give - away channel ownership. - - * Limit most output line expansions to just one line. - - * Remove unnecessary assert(hs_user) checks from mod-helpserv.c. - - * Don't run_empty_interval() in HelpServ when the user's server is - still bursting. - - modified files: - ChangeLog languages/de/strings.db src/chanserv.c - src/chanserv.h src/helpfile.c src/helpfile.h - src/mod-helpserv.c srvx.conf.example - - -2004-07-19 03:38:09 GMT Michael Poole <md...@tr...> patch-73 - - Summary: - Bugfixes for !trim users, !unsuspend and /clearmodes - Revision: - srvx--devo--1.3--patch-73 - - * Show actual upper bound used to trim users. - - * Update whether an user being unsuspended is in the channel. - - * Add a missing "break;" so that /clearmodes c doesn't clear NOCTCPS too. - - modified files: - ChangeLog src/chanserv.c src/proto-p10.c - - -2004-07-12 19:06:38 GMT Michael Poole <md...@tr...> patch-72 - - Summary: - add FAQ to distribition; make compatible with gcc-2.95 - Revision: - srvx--devo--1.3--patch-72 - - * Add FAQ to EXTRA_DIST in root. - - * Name the anonymous union inside struct mod_chanmode. - - * Typecast printf() field width arguments to int. - - modified files: - ChangeLog Makefile.am src/chanserv.c src/hash.c - src/mod-helpserv.c src/mod-snoop.c src/opserv.c - src/proto-bahamut.c src/proto-common.c src/proto-p10.c - src/proto.h - - -2004-07-10 04:42:12 GMT Zoot <zo...@ga...> patch-71 - - Summary: - Fix OperServ inviteme crash - Revision: - srvx--devo--1.3--patch-71 - - * src/opserv.c: Fix a NULL pointer dereference in inviteme that caused crashes - for some users. - - modified files: - ChangeLog src/opserv.c - - -2004-07-01 02:23:21 GMT Michael Poole <md...@tr...> patch-70 - - Summary: - miscellaneous bugfixes and indentation fixes - Revision: - srvx--devo--1.3--patch-70 - - * srvx.conf.example: Clarify comment about "default_hostmask" setting. - - * patches/sethost13.diff: Forward port of sethost patch, from Reed Loden. - - * src/opserv.c (cmd_kickbanall): Free mod_chanmode_change after use. - - * src/proto-p10.c (cmd_whois): Fix indentation and show real server to opers. - - * src/tools.c (string_buffer_append_vprintf): Avoid a possible buffer overrun. - - new files: - patches/.arch-ids/sethost13.diff.id patches/sethost13.diff - - modified files: - ChangeLog INSTALL Makefile.am NEWS README compile configure.in - depcomp docs/access-levels.txt docs/coding-style.txt - docs/cookies.txt docs/helpserv.txt docs/ircd-modes.txt - docs/malloc-compare.txt languages/.arch-inventory - languages/de/README languages/de/chanserv.help - languages/de/global.help languages/de/modcmd.help - languages/de/nickserv.help languages/de/strings.db - languages/en/README languages/en_UK/README - languages/en_UK/chanserv.help languages/en_UK/opserv.help - languages/en_UK/strings.db languages/validate.pl - patches/helpserv-pgsql.diff sockcheck.conf.example - src/Makefile.am src/chanserv.c src/chanserv.h - src/chanserv.help src/common.h src/conf.c src/conf.h - src/dict-splay.c src/gline.c src/gline.h src/global.c - src/global.h src/global.help src/hash.c src/hash.h src/heap.c - src/heap.h src/helpfile.c src/helpfile.h src/ioset.c - src/ioset.h src/log.h src/main.c src/mod-helpserv.c - src/mod-memoserv.c src/mod-snoop.c src/modcmd.c src/modcmd.h - src/modules.c src/modules.h src/nickserv.c src/nickserv.h - src/nickserv.help src/opserv.c src/opserv.h src/opserv.help - src/policer.c src/policer.h src/proto-bahamut.c - src/proto-common.c src/proto-p10.c src/proto.h src/recdb.c - src/recdb.h src/saxdb.c src/saxdb.h src/saxdb.help - src/sendmail.c src/sendmail.h src/timeq.c src/timeq.h - src/tools.c srvx.conf.example tests/nickserv.cmd tests/p10.cmd - tests/test-driver.pl tests/test.cmd - {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-10 - {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-14 - {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-18 - {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-34 - {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-43 - {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-46 - {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-57 - {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-58 - {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-61 - {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-62 - {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-63 - {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-68 - {arch}/srvx/srvx--devo/srvx--devo--1.3/sr...@sr...--2004-srvx/patch-log/patch-69 - - modified directories: - languages/en_UK - - -2004-06-16 12:23:32 GMT adam <ad...@ga...> patch-69 - - Summary: - added modes parameter to srvx.conf to control user modes - Revision: - srvx--devo--1.3--patch-69 - - * each service now has a 'modes' parameter in srvx.conf to specify their individual modes.. if left blank, will default to whatever 'services' modes work for your ircd. - - - modified files: - ChangeLog src/chanserv.c src/global.c src/mod-helpserv.c - src/modcmd.c src/nickserv.c src/opserv.c src/proto-bahamut.c - src/proto-p10.c src/proto.h srvx.conf.example - - -2004-06-08 09:24:49 GMT adam <ad...@ga...> patch-68 - - Summary: - fixed MODE_REGISTERED bug; introduced MCP_REGISTERED - Revision: - srvx--devo--1.3--patch-68 - - * fixed MODE_REGISTERED bug: srvx was sending a blank mode change on channel unregistrations; we now have a srvx.conf setting that dictates whether or not to use MODE_REGISTERED (which has no corresponding letter on P10 networks!) - also, we now set MODE_REGISTERED in newly registered channels (which we werent before) - - * introduced MCP_REGISTERED: we now don't let channels that are registered play with the registered mode (usually +r on bahamut networks) via chanserv user-level commands (ie: !mode -r) - - - - - modified files: - ChangeLog src/chanserv.c src/proto-bahamut.c src/proto.h - srvx.conf.example - - -2004-05-22 04:24:57 GMT Michael Poole <md...@tr...> patch-67 - - Summary: - Add fake host support (assuming your ircd supports it) - Revision: - srvx--devo--1.3--patch-67 - - Add definitions in various places to support assigning fake hosts to - users. We will not give you (or make for you) patches to make your - ircd support this feature, so please do not ask. You must set a - certain srvx.conf setting to be able to assign fakehosts; finding it - is left as an exercise to the reader. - - modified files: - ChangeLog src/chanserv.c src/hash.c src/hash.h src/log.c - src/nickserv.c src/nickserv.h src/opserv.c src/proto-bahamut.c - src/proto-common.c src/proto-p10.c src/proto.h src/tools.c - - -2004-05-22 03:00:05 GMT Michael Poole <md...@tr...> patch-66 - - Summary: - Remove obsolete check for src/srvx directory - Revision: - srvx--devo--1.3--patch-66 - - Since srvx is in arch, and arch doesn't have CVS's eccentricities - about old directories, remove the test for src/srvx being a directory. - - modified files: - ChangeLog autogen.sh - - -2004-05-21 12:58:18 GMT Michael Poole <md...@tr...> patch-65 - - Summary: - Fix memory leak in ?accounts - Revision: - srvx--devo--1.3--patch-65 - - Fix a memory leak in ?accounts. - - modified files: - ChangeLog src/nickserv.c - - -2004-05-21 12:38:39 GMT Michael Poole <md...@tr...> patch-64 - - Summary: - Fix helpserv whine when helpers leave the channel; fix ?devoiceall - Revision: - srvx--devo--1.3--patch-64 - - Remove the parting modeNode before making callbacks, so callbacks - don't get confused and think the user is still in the channel. - - In ?devoiceall, OpServ should only remove voice from users who have it. - - modified files: - ChangeLog src/hash.c src/opserv.c - - -2004-05-17 09:44:35 GMT adam <ad...@ga...> patch-63 - - Summary: - fix minor EnfModes bug in chanserv.c - Revision: - srvx--devo--1.3--patch-63 - - * address bug id #955105; minor EnfModes issue - - - modified files: - ChangeLog src/chanserv.c - - -2004-05-14 06:27:30 GMT adam <ad...@ga...> patch-62 - - Summary: - fix stupid typo from --patch-61 - Revision: - srvx--devo--1.3--patch-62 - - * fix stupid typo in nickserv.c from --patch-61; sigh. - - - modified files: - ChangeLog src/nickserv.c - - -2004-05-14 05:37:38 GMT adam <ad...@ga...> patch-61 - - Summary: - rearrange chanserv-level ban/kick messages; change wording on authentication cookie email, implement old tried2reg patch - Revision: - srvx--devo--1.3--patch-61 - - * chanserv ban/kick messages are now displayed as "(name) message" as opposed to what they were, which was "message (name)"; this was done to remove irregularity with how it was in some parts of the code. - - * at semi-popular request, wording in initial registration emails has been changed to explain that COOKIE should not be used more than once - - * implemented old 'tried2reg' patch - you may only use /msg authserv register once per session (this was not the case before, which was apparent with email registrations) - - - removed files: - patches/.arch-ids/ns_tried2reg102403.diff.id - patches/ns_tried2reg102403.diff - - modified files: - ChangeLog src/chanserv.c src/hash.h src/nickserv.c - src/opserv.c - - -2004-05-09 03:05:48 GMT Michael Poole <md...@tr...> patch-60 - - Summary: - Fix several bugs; make off-channel a per-channel option - Revision: - srvx--devo--1.3--patch-60 - - * Add per-channel option (!set offchannel) for off-channel services - support. - - * Rename REGISTERED_MODE to MODE_REGISTERED and always use it. - - * Delete remaining (registered) channels on exit. - - * Fix tests in proto-p10.c for chanop-ness when using off-channel - services support. - - modified files: - ChangeLog src/chanserv.c src/chanserv.h src/hash.c src/hash.h - src/nickserv.c src/proto-bahamut.c src/proto-common.c - src/proto-p10.c src/proto.h srvx.conf.example - - -2004-05-07 14:32:06 GMT Michael Poole <md...@tr...> patch-59 - - Summary: - allow daemon mode under cygwin - Revision: - srvx--devo--1.3--patch-59 - - * Remove code to disable daemon mode in Cygwin, since Cygwin now - properly implements fork() etc. - - modified files: - ChangeLog src/main.c - - -2004-05-06 09:46:38 GMT adam <ad...@ga...> patch-58 - - Summary: - basic off-channel support; restructuring how part functions are handled - Revision: - srvx--devo--1.3--patch-58 - - * added srvx.conf setting to allow chanserv to work being outside of a channel; if you'd like to have srvx set a mode as it joins, edit REGISTERED_MODE in hash.h. this will not work properly on P10 networks - though it may be nice for bahamut-based networks. either way, please do not ask us for assistance. - - * changed the way part functions are called - a modeNode is now passed, and they are run *before* the user's membership link in that channel is nuked. - - - - modified files: - ChangeLog src/chanserv.c src/hash.c src/hash.h - src/mod-helpserv.c src/mod-snoop.c src/proto-common.c - src/proto-p10.c srvx.conf.example - - -2004-05-01 11:17:11 GMT adam <ak...@ga...> patch-57 - - Summary: - introduce unreg_privmsg_func, fix minor autoinvite issue, alter account-finding on local services clients - Revision: - srvx--devo--1.3--patch-57 - - * introduce unreg_privmsg_func: unreg_privmsg_func()/unreg_notice_func() - both of which reverse the effect of reg_privmsg_func()/reg_notice_func() - - * fix minor autoinvite issue: UserAutoInvite (aka: '!uset autoinvite ..') no longer invites you to channels you weren't in if the server you are on just reconnected to the network - - * alter account-finding on local services clients: non +k users on the local services server are now no longer referred to as services (at least not in regard to accounts..) - - - modified files: - ChangeLog src/chanserv.c src/nickserv.c src/proto-common.c - src/proto-p10.c src/proto.h srvx.conf.example - - -2004-04-29 01:57:00 GMT Michael Poole <md...@tr...> patch-56 - - Summary: - Remove debug messages from account MERGE command; translate RECLAIM kill message - Revision: - srvx--devo--1.3--patch-56 - - * Change the debug messages in NickServ MERGE to be more succinct and - useful for accounting/undos. - - * Translate the kill message sent when reclaiming an owned nickname. - - modified files: - ChangeLog src/nickserv.c - - -2004-04-29 01:51:19 GMT Michael Poole <md...@tr...> patch-55 - - Summary: - Fix Bahamut assertion failure; move BURST to more "natural" place - Revision: - srvx--devo--1.3--patch-55 - - * Fix a mod_chanmode assertion failure when using proto-bahamut.c with - debugging enabled. - - * Send BURST in response to SVINFO, not SERVER, so that eventual - timestamp adjustment is more accurate. - - modified files: - ChangeLog src/proto-bahamut.c - - -2004-04-29 01:41:37 GMT Michael Poole <md...@tr...> patch-54 - - Summary: - Fix !up for users below GiveVoice level; implement RFE#933634 - Revision: - srvx--devo--1.3--patch-54 - - * If users have access belowGiveVoice, do not let them use UP. - - * Show channel flags (suspended, autoop, etc) in MYACCESS. - - modified files: - ChangeLog src/chanserv.c src/chanserv.help - - -2004-04-29 00:31:22 GMT Michael Poole <md...@tr...> patch-53 - - Summary: - REALLY remove duplicate line in languages/en_UK/chanserv.help. - Revision: - srvx--devo--1.3--patch-53 - - REALLY remove duplicate line in languages/en_UK/chanserv.help. - - modified files: - ChangeLog languages/en_UK/chanserv.help - - -2004-04-28 19:55:22 GMT Michael Poole <md...@tr...> patch-52 - - Summary: - Remove duplicate line in en_UK chanserv.help file - Revision: - srvx--devo--1.3--patch-52 - - Remove a duplicate line in languages/en_UK/chanserv.help. - - modified files: - ChangeLog - - -2004-04-28 19:53:40 GMT Michael Poole <md...@tr...> patch-51 - - Summary: - Sanity check user infolines - Revision: - srvx--devo--1.3--patch-51 - - * Disallow infolines longer than a configured maximum length (by - default, 400 characters). - - * Disallow infolines that contain certain characters (currently - just ^A). - - modified files: - ChangeLog languages/de/strings.db src/chanserv.c - srvx.conf.example - - -2004-04-12 03:25:03 GMT Michael Poole <md...@tr...> patch-50 - - Summary: - fix compile errors on readdir()-deficient platforms - Revision: - srvx--devo--1.3--patch-50 - - * Cygwin does not have "struct dirent.d_type". Check for that in the - configure script and use stat() to test for directory-ness instead. - - modified files: - ChangeLog configure.in src/helpfile.c - - -2004-04-10 23:04:21 GMT Michael Poole <md...@tr...> patch-49 - - Summary: - add en_UK translation by Byte - Revision: - srvx--devo--1.3--patch-49 - - Add en_UK translation by byte. - - new files: - languages/en_UK/.arch-ids/=id - languages/en_UK/.arch-ids/README.id - languages/en_UK/.arch-ids/chanserv.help.id - languages/en_UK/.arch-ids/opserv.help.id - languages/en_UK/.arch-ids/strings.db.id languages/en_UK/README - languages/en_UK/chanserv.help languages/en_UK/opserv.help - languages/en_UK/strings.db - - modified files: - ChangeLog - - new directories: - languages/en_UK languages/en_UK/.arch-ids - - -2004-04-09 22:18:21 GMT Michael Poole <md...@tr...> patch-48 - - Summary: - Fix service persistence bug in patch-47 - Revision: - srvx--devo--1.3--patch-48 - - patch-47 attempted to fix a previously reported error where srvx would - create NickServ, ChanServ, OpServ and Global even if the "nick" entry - was omitted from srvx.conf. This broke persistence of all service - bots added by the modcmd.service\ add comand. (Closes: #932566) - - modified files: - ChangeLog src/modcmd.c - - -2004-04-09 20:08:58 GMT Michael Poole <md...@tr...> patch-47 - - Summary: - Fix service triggers; allow service hostname configuration; fix glitches - Revision: - srvx--devo--1.3--patch-47 - - * Improve length checking logic in ChanServ.names command. - - * Fix service trigger registration so that database is used in - preference to srvx.conf and compiled-in defaults. - - * Allow service hostnames to be configured in srvx.conf and through - "service add"; document this and show an example of setting the - service description. - - * Fix an uninitialized value bug in OpServ.join. - - * Make OpServ.addtrust accept a count of 0. - - * Remove untranslated messages from languages/de/modcmd.help (so that - new "service add" help is inherited). - - modified files: - ChangeLog languages/de/modcmd.help src/chanserv.c src/global.c - src/mod-helpserv.c src/modcmd.c src/modcmd.h src/modcmd.help - src/nickserv.c src/opserv.c src/opserv.help - src/proto-bahamut.c src/proto-p10.c src/proto.h - srvx.conf.example - - -2004-04-09 01:57:12 GMT adam <ak...@ga...> patch-46 - - Summary: - changes to !uset autoinvite behavior, introduction of allchanmsg_func hooks - Revision: - srvx--devo--1.3--patch-46 - - * changes to !uset autoinvite behavior: the autoinvite flag now works whether or not the channel it is set in is +i/+k. - - * introduction of allchanmsg_func hooks: there is now a set of hooks (available via reg_allchanmsg_func()) in place to catch all public channel messages the services server sees. - - - modified files: - ChangeLog src/chanserv.c src/chanserv.help src/proto-common.c - src/proto.h - - -2004-04-08 03:42:49 GMT Michael Poole <md...@tr...> patch-45 - - Summary: - Fix automatic ChangeLog tag (I hope) - Revision: - srvx--devo--1.3--patch-45 - - * Try to set the ChangeLog file tag correctly for it to be updated on - commit. - - new files: - .arch-ids/ChangeLog.id ChangeLog - - removed files: - .arch-ids/ChangeLog.id ChangeLog - - -2004-04-08 03:18:41 GMT Michael Poole <md...@tr...> patch-44 - - Summary: - Fix some signed/unsigned misbehaviors; add FAQ - Revision: - srvx--devo--1.3--patch-44 - - * Change format and variable types to unsigned so as to avoid - confusing negative numbers with very large positive numbers. - - * Create a FAQ file - - new files: - .arch-ids/FAQ.id FAQ - - modified files: - ChangeLog src/chanserv.c src/chanserv.help src/nickserv.c - src/opserv.c src/proto-common.c - - -2004-04-04 21:37:36 GMT Zoot <zo...@ga...> patch-43 - - Summary: - Fix spurious user protection notices - Revision: - srvx--devo--1.3--patch-43 - - * Fix ChanServ warning users when they remove a ban set on a protected - user's hostmask. - - modified files: - src/chanserv.c - - -2004-04-03 03:26:43 GMT Michael Poole <md...@tr...> patch-42 - - Summary: - I18N fixes and (hopefully) protocol fixes - Revision: - srvx--devo--1.3--patch-42 - - * Correct some grammar in German translation (extraneous "vor"). - - * Try to fix desyncs when an older channel bursts in after initial join. - - * Languages must be subdirectories that do not start with '.', so - check that before applying them as a language. Since we already - have the language list at helpfile_finalize() time, use it instead - of walking the "languages" directory again. - - * Ignore 467 response from uplink. - - modified files: - languages/de/strings.db src/hash.c src/helpfile.c - src/proto-p10.c - - -2004-04-02 18:38:19 GMT Michael Poole <md...@tr...> patch-41 - - Summary: - Fix mistakes in backport of German translation - Revision: - srvx--devo--1.3--patch-41 - - * Delete mod-serverspy.help since it is not part of this code base. - - * Replace /AUTHSERV with /msg $N@$s. - - removed files: - languages/de/.arch-ids/mod-serverspy.help.id - languages/de/mod-serverspy.help - - modified files: - languages/de/strings.db - - -2004-04-02 18:34:40 GMT Michael Poole <md...@tr...> patch-40 - - Summary: - Add German translation - Revision: - srvx--devo--1.3--patch-40 - - * Fix a format string bug in nickserv.c:NSEMAIL_ALLOWAUTH_BODY. - - * Use a separate key name for !netinfo's "Total User Count" so - other languages can get proper alignment for both that and - !info #channel. - - * Add German language translation by Marc 'feigling' Kührer. - - new files: - languages/.arch-ids/.arch-inventory.id languages/.arch-ids/=id - languages/.arch-ids/validate.pl.id languages/.arch-inventory - languages/de/.arch-ids/=id languages/de/.arch-ids/README.id - languages/de/.arch-ids/chanserv.help.id - languages/de/.arch-ids/global.help.id - languages/de/.arch-ids/mod-serverspy.help.id - languages/de/.arch-ids/modcmd.help.id - languages/de/.arch-ids/nickserv.help.id - languages/de/.arch-ids/strings.db.id languages/de/README - languages/de/chanserv.help languages/de/global.help - languages/de/mod-serverspy.help languages/de/modcmd.help - languages/de/nickserv.help languages/de/strings.db - languages/en/.arch-ids/=id languages/en/.arch-ids/README.id - languages/en/README languages/validate.pl - - modified files: - src/chanserv.c src/nickserv.c - - new directories: - languages languages/.arch-ids languages/de - languages/de/.arch-ids languages/en languages/en/.arch-ids - - -2004-03-30 04:40:38 GMT Michael Poole <md...@tr...> patch-39 - - Summary: - translate interval strings; translate more NickServ messages - Revision: - srvx--devo--1.3--patch-39 - - * Translate interval strings to the user's language. - - * Translate cookie emails and auth failure messages based on the - account's preferred language, rather than the user's preferred - language (they will not be authed, so they would get lang_C). - - modified files: - src/chanserv.c src/common.h src/global.c src/main.c - src/mod-helpserv.c src/mod-memoserv.c src/mod-sockcheck.c - src/nickserv.c src/opserv.c src/saxdb.c src/tools.c - - -2004-03-30 04:25:14 GMT Michael Poole <md...@tr...> patch-38 - - Summary: - Fix uninitialized mod_chanmode element in debug build - Revision: - srvx--devo--1.3--patch-38 - - * Convert an old-style auto-variable mod_chanmode to use - mod_chanmode_init() so that all fields are initialized. - - modified files: - src/proto-common.c - - -2004-03-30 04:11:03 GMT Michael Poole <md...@tr...> patch-37 - - Summary: - Multi-language support fixes - Revision: - srvx--devo--1.3--patch-37 - - * Copy keys in per-language message tables so that they don't point to - free()d memory. - - * Only warn about missing/extra messages if there are any. - - * In language_read_list(), do not allocate languages "." or "..". - - modified files: - src/helpfile.c - - -2004-03-29 21:10:10 GMT Michael Poole <md...@tr...> patch-36 - - Summary: - automatic arch-version.h update; CTCP support; helpfile fixes; disk-out-of-space error detection and handling - Revision: - srvx--devo--1.3--patch-36 - - * Add a rule to automatically check arch version and update - arch-version.h when needed - - * Implement CTCP response handling messages direct to services. - - * Fix grammar error in GIVEOWNERSHIP help entry, fix cross-reference - markup in several ChanServ commands (should underline, not bold, the - "See Also:" link), remove VERSION help entries from modules that no - longer implement that command. - - * Check for errors (using setjmp/longjmp) when writing to a saxdb - file, and log the failures. - - modified files: - src/Makefile.am src/chanserv.help src/global.help - src/mod-helpserv.c src/mod-memoserv.help src/modcmd.c - src/opserv.help src/proto-bahamut.c src/proto-p10.c - src/proto.h src/saxdb.c src/saxdb.h src/tools.c - - -2004-03-28 03:28:18 GMT Michael Poole <md...@tr...> patch-35 - - Summary: - More helpfile fixes - Revision: - srvx--devo--1.3--patch-35 - - * Allow a helpfile to use another module's expansion function by using - the syntax ${module:variable}, so that "set language" can be kept in - nickserv.help. - - * Fix typos, unclear help entries, and add some missing entries. - - modified files: - src/chanserv.help src/helpfile.c src/modcmd.help - src/nickserv.help src/proto-bahamut.c src/proto-p10.c - - -2004-03-25 23:17:04 GMT Zoot <zo...@ga...> patch-34 - - Summary: - Documentation update - Revision: - srvx--devo--1.3--patch-34 - - * Make some further updates to INSTALL to bring it in line with srvx 1.3 - - modified files: - INSTALL - - -2004-03-25 21:41:17 GMT Michael Poole <md...@tr...> patch-33 - - Summary: - Message and documentation cleanups - Revision: - srvx--devo--1.3--patch-33 - - * Update version number in INSTALL and mention where we do most of - srvx's testing. - - * Move the message about using the authcookie to inside of - nickserv_make_cookie(), so that when another cookie exists, only the - "cookie already pending" message is sent. - - * Fix various typos, extraneous sentences, and misplaced command - listings in nickserv.help. - - * Remove (unused) fakehost options from srvx.conf.example and update - ChanServ's set_shows option. - - modified files: - INSTALL src/nickserv.c src/nickserv.help srvx.conf.example - - -2004-03-24 20:32:16 GMT Michael Poole <md...@tr...> patch-32 - - Summary: - Infinite recursion fix; mod_chanmode_parse() fixes - Revision: - srvx--devo--1.3--patch-32 - - * Default lang->parent to lang_C rather than language_find("C"), so - that trying to create language "C" does not cause infinite recursion. - - * Fail when we try to parse a mode with an unrecognized mode character - from users; ignore them coming from a server. - - modified files: - src/helpfile.c src/proto-bahamut.c src/proto-p10.c - - -2004-03-23 00:12:53 GMT Michael Poole <md...@tr...> patch-31 - - Summary: - i18n fixes - Revision: - srvx--devo--1.3--patch-31 - - * Fix typos in several message strings, and clarify others. - - * Typecast first argument of gethostbyaddr() to quash warnings. - - * Load languages in finalization, not initialization, and do not crash - when running off the end of a localized strings.db file. - - * Show the LANGUAGE option in NickServ SET response. - - * Remove mention of GHOST command when !enable_ghost. - - * Only initialize alloc_argc when !defined(NDEBUG) - - modified files: - src/chanserv.c src/gline.c src/helpfile.c src/helpfile.h - src/main.c src/modcmd.c src/nickserv.c src/nickserv.help - src/proto-common.c - - -2004-03-19 14:46:53 GMT Michael Poole <md...@tr...> patch-30 - - Summary: - Fix language initialization bug; fix email change text - Revision: - srvx--devo--1.3--patch-30 - - * Initialize each new account's language when registering it. - - * Send the first half of the email change cookie to the old address, - rather than sending the second half (which also goes to the new - address). - - modified files: - src/modcmd.c src/nickserv.c - - -2004-03-17 04:27:17 GMT Michael Poole <mdp...@tr...> patch-29 - - Summary: - ChanServ seen fixes; other cleanups - Revision: - srvx--devo--1.3--patch-29 - - * Remove rule to generate the unused EXTRA_MODULES preprocessor macro. - - * Properly adjust ChanServ seen time when a user leaves or is kicked - from a channel. - - * Read languages from disk before initializing the core services, - since they must all be available when loading accounts. - - * Fix a typo in the log BNF documentation, and add =SEVLIT support for - consistency. - - * Add missing "invalid" to NSMSG_INVALID_ANNOUNCE string. - - modified files: - configure.in src/chanserv.c src/helpfile.c src/helpfile.h - src/log.c src/main.c src/nickserv.c - - -2004-03-12 00:27:29 GMT Entrope <en...@cl...> patch-28 - - Summary: - fix channel mode bouncing bugs - Revision: - srvx--devo--1.3--patch-28 - - * Make mod_chanmode_dup() copy the limit and key like one might expect. - - * Make ChanServ's handle_mode() copy the default modes using - mod_chanmode_dup() instead of an implicit memcpy. - - modified files: - src/chanserv.c src/proto-common.c - - -2004-03-11 16:44:35 GMT Entrope <en...@cl...> patch-27 - - Summary: - Fix !resync; helpfile updates; improve ?modcmd - Revision: - srvx--devo--1.3--patch-27 - - * Make ChanServ.RESYNC op (or voice) users when GiveOps (GiveVoice, - respectively) is 0 and the user is not on the userlist. - - * Remove mention of PEONINVITE from chanserv.help. - - * Mention the GIVEOWNERSHIP command in HelpServ's help file; remove - mention of the removed VERSION and WRITE commands. - - * Make modcmd.MODCMD accept no options, and display the (final) - settings for the command. Update the help entry for it. - - modified files: - src/chanserv.c src/chanserv.help src/mod-helpserv.help - src/modcmd.c src/modcmd.help - - -2004-03-10 19:04:59 GMT Entrope <en...@cl...> patch-26 - - Summary: - License update - Revision: - srvx--devo--1.3--patch-26 - - * Revert to plain GPLv2. - - modified files: - COPYING src/chanserv.c src/chanserv.h src/common.h src/conf.c - src/conf.h src/dict-splay.c src/dict.h src/gline.c src/gline.h - src/global.c src/global.h src/hash.c src/hash.h src/heap.c - src/heap.h src/helpfile.c src/helpfile.h src/ioset.c - src/ioset.h src/log.c src/log.h src/main.c src/mod-helpserv.c - src/mod-memoserv.c src/mod-snoop.c src/mod-sockcheck.c - src/modcmd.c src/modcmd.h src/modules.c src/modules.h - src/nickserv.c src/nickserv.h src/opserv.c src/opserv.h - src/policer.c src/policer.h src/proto-bahamut.c - src/proto-common.c src/proto-p10.c src/proto.h src/recdb.c - src/recdb.h src/saxdb.c src/saxdb.h src/sendmail.c - src/sendmail.h src/timeq.c src/timeq.h src/tools.c - - -2004-03-10 17:03:30 GMT Entrope <en...@cl...> patch-25 - - Summary: - Further cleanups and bugfixes - Revision: - srvx--devo--1.3--patch-25 - - * Remove "TODO: reimplement" comment in chanserv.c, since all the - functions were already reimplemented. - - * Make "/msg ChanServ huggle" work again. - - * Fix error messages when bad target names given to say and emote. - - * If we get a MODE change affecting a user who somehow quit already, - just ignore it. - - * Add debugging checks for mod_chanmode argument counts. - - modified files: - src/chanserv.c src/hash.c src/main.c src/mod-helpserv.c - src/mod-snoop.c src/proto-bahamut.c src/proto-common.c - src/proto-p10.c src/proto.h - - -2004-03-08 17:41:48 GMT Entrope <en...@cl...> patch-24 - - Summary: - bug fixes (from code coverage tests) - Revision: - srvx--devo--1.3--patch-24 - - * Fix typo in CSMSG_ADDED_USER message. - - * Fix memory leak in !bans when no bans are shown. - - * Fix SAY, EMOTE to user targets. - - * Require unsuspended channel for OPCHAN (i.e. ChanServ is in-channel). - - * Fix typo in TOPICSNARF help description. - - * Fix mod_chanmode argc when reopping services. - - * Fix memory leak when rehashing with with an uplink bind address. - - * Fix typo in OSMSG_NICK_UNRESERVED message. - - * Make *OpServ.op actually op non-ops, instead of just ops. - - * Fix kick message translations when shutting down a channel. - - * Fix use-after-free if an oper does ?part #badchan. - - * Make mod_chanmode_apply() more sensitive to invalid mode changes. - - * In create_helper(), let AddChannelUser() decide whether to op the user. - - * Remove "Mod" and "Game" from "set_shows" in srvx.conf.example. - - * Do not print the status "." in tests when full debug mode is on. - - modified files: - src/chanserv.c src/chanserv.help src/hash.c src/helpfile.c - src/main.c src/opserv.c src/proto-common.c src/proto-p10.c - srvx.conf.example tests/test-driver.pl - - -2004-03-04 04:48:35 GMT Entrope <en...@cl...> patch-23 - - Summary: - Bug fixes and cleanups - Revision: - srvx--devo--1.3--patch-23 - - * Remove unused src/expnhelp.c file. - - * Do not call mod_chanmode_announce() if we give a user neither voice - nor ops (it causes an assertion failure). - - * Make switch() on mod_chanmode argument modes a little clearer. - - * Add OSMSG_NICK_UNRESERVED format string. - - * Translate weekly statistics report headers for HelpServ. - - removed files: - src/.arch-ids/expnhelp.c.id src/expnhelp.c - - modified files: - src/chanserv.c src/mod-helpserv.c src/opserv.c - - -2004-03-03 01:47:41 GMT Entrope <en...@cl...> patch-22 - - Summary: - Various bug fixes - Revision: - srvx--devo--1.3--patch-22 - - * In ?kickbanall, mod_chanmode_alloc(1) when we only use one arg. - - * In ?modcmd ... channel_access, accept "0" to mean the same as "none." - - * In log.c, make a single function to free the oldest log entry for a - log_type struct. - - * Add more checks for cmd==NULL in chanserv.c:eject_user(). - - modified files: - src/chanserv.c src/log.c src/modcmd.c src/opserv.c - - -2004-03-02 18:21:59 GMT Entrope <en...@cl...> patch-21 - - Summary: - Add MYACCESS command; fix reference count bug in MOVE - Revision: - srvx--devo--1.3--patch-21 - - * Always LockChannel(target) when moving a registered channel. - - * Move the self-access list function from ACCESS to MYACCESS, so that - ACCESS can be marked with MODCMD_REQUIRE_CHANUSER. - - * Update documentation for MYACCESS vs ACCESS. - - modified files: - src/chanserv.c src/chanserv.help - - -2004-03-02 04:35:35 GMT Entrope <en...@cl...> patch-20 - - Summary: - Fix NickServ language crash; convert four ChanServ binary options to level options - Revision: - srvx--devo--1.3--patch-20 - - * When you use "/msg nickserv set language" and you have no language - assigned, it would crash. Fix this. - - * Convert four ChanServ binary options to level based options: - * Voice (CHANNEL_VOICE_ALL) -> Voice (lvlGiveVoice) - * UserInfo (CHANNEL_INFO_LINES) -> UserInfo (lvlUserInfo) - * PeonInvite (CHANNEL_PEON_INVITE) -> InviteMe (lvlInviteMe) - * TopicSnarf (CHANNEL_TOPIC_SNARF) -> TopicSnarf (lvlTopicSnarf) - - * Document the changes in ChanServ options. - - modified files: - src/chanserv.c src/chanserv.h src/chanserv.help src/nickserv.c - - -2004-03-01 16:23:51 GMT Entrope <en...@cl...> patch-19 - - Summary: - giveownership fix; handle_join +ov "fix"; revert OSMSG_FLOOD_MODERATE - Revision: - srvx--devo--1.3--patch-19 - - * Fix !giveownership by staff. - - * If ChanServ gives ops to someone onjoin, do not also give them voice. - - * Translate OSMSG_FLOOD_MODERATE according to the channel options - (well, hopefully in the future we will support that) rather than the - join-flooding user's options. - - modified files: - src/chanserv.c src/opserv.c - - -2004-03-01 09:54:10 GMT Adam Loghry <ad...@ga...> patch-18 - - Summary: - no error on inexistent commands done publicly, announcements setting display fix, two opserv chaninfo fixes, OSMSG_FLOOD_MODERATE now works when sent to channels, and hostmask lastquit searches - Revision: - srvx--devo--1.3--patch-18 - - - modified files: - src/modcmd.c src/nickserv.c src/nickserv.help src/opserv.c - - -2004-03-01 02:44:25 GMT Entrope <en...@cl...> patch-17 - - Summary: - Minor fixes and improvements - Revision: - srvx--devo--1.3--patch-17 + srvx--devo--1.3--patch-9 - * Fix implementation of privileged-setter note types (it ignored the - OpServ access level before). + src/chanserv.c (cmd_register): Do not join channels if the default + options include being offchannel. - * Show proper message when an account's announcements are disabled. + src/common.h: Verify list allocations when appending or removing. - * Translate OSMSG_FLOOD_MODERATE when sending it to a channel. - - modified files: - src/chanserv.c src/nickserv.c src/opserv.c - - -2004-02-29 21:58:29 GMT Entrope <en...@cl...> patch-16 - - Summary: - Fix possible crash in chanserv.c:handle_kick() - Revision: - srvx--devo--1.3--patch-16 - - * Delay looking up translation for CSMSG_USER_PROTECTED until we know - the kicker actually exists (if a server does the KICK, kicker==NULL). - - modified files: - src/chanserv.c - - -2004-02-29 14:47:51 GMT Entrope <en...@cl...> patch-15 - - Summary: - Update .arch-inventory for in-tree builds; remove --disable-lame-tricks - Revision: - srvx--devo--1.3--patch-15 - - * Switch to using "backup" in .arch-inventory for generated sources - and objects, since that is more accurate than "precious." + src/hash.c (GetUserMode): Verify channel and user list allocations. - * Add normal build output to .arch-inventory so normal builds do not - cause tree-lint failures (e.g. during "tla update" - bad!). + src/log.c (log_entry_search): Keep pointer to last visited log entry. - * Remove the "lame-tricks" option from configure.in since it was not - used anyway. - - modified files: - .arch-inventory configure.in rx/.arch-inventory - src/.arch-inventory - - -2004-02-29 08:07:37 GMT Zoot <zo...@ga...> patch-14 - - Summary: - Limit mode parameter count. - Revision: - srvx--devo--1.3--patch-14 - - Restrict the number of mode parameters sent by the P10 protocol - backend to MAXMODEPARAMS. + src/proto-p10.c (mod_chanmode_parse): Fail if trying to change +z when + passed MCP_REGISTERED. modified files: + ChangeLog src/chanserv.c src/common.h src/hash.c src/log.c src/proto-p10.c -2004-02-29 03:40:25 GMT Entrope <en...@cl...> patch-13 - - Summary: - Privileged service fixes - Revision: - srvx--devo--1.3--patch-13 - - * Allow runtime control of privileged services. - - * Make all oper commands default to having flags +oper. - - * Add a "privileged" directive for OpServ in srvx.conf.example. - - modified files: - src/helpfile.c src/modcmd.c src/opserv.c srvx.conf.example - - -2004-02-28 21:33:30 GMT Entrope <en...@cl...> patch-12 - - Summary: - more bug fixes from GameSurge - Revision: - srvx--devo--1.3--patch-12 - - * Refuse to let an owner !set setters 501. - - * Report proper level range when using !trim users <duration>. - - * Refuse to let anyone !set <numericoption> 502, etc. - - * Refuse to let people below owner level !set <numericoption> above - their level. - - * Make !d 1d6+5 work. - - * Mark users as seen/present AFTER deciding whether to show their - infoline, and PRIVMSG infolines rather than NOTICE them. - - * Translate "CSMSG_USER_PROTECTED" (kick protection enforcement - message). - - * Enforce plain mode changes, not just ops/deops/bans etc. - - * Fix documentation for ChanServ UNREGISTER command. - - modified files: - src/chanserv.c src/chanserv.help - - -2004-02-28 19:08:13 GMT Entrope <en...@cl...> patch-11 - - Summary: - Fix bugs found on GameSurge - Revision: - srvx--devo--1.3--patch-11 - - * Remove unused ARCH_REVISION macro in Makefile.am - - * Fix !trim <userlevel> <duration> (so it does not trim ALL users) - - * Properly allow owners to set levels to 501 - - * Set "deopped" when we deop the person who changed modes - - * Mark the first user in a channel as a chanop (fixes a spurious - HACK(4) for newly registered channels). - - * Document user level ranges for the TRIM command. - - * Document user-level-based SET options as being such (rather than - being multiple-choice options). - - modified files: - src/Makefile.am src/chanserv.c src/chanserv.help src/hash.c - - -2004-02-28 18:46:03 GMT Zoot <zo...@ga...> patch-10 - - Summary: - reply correctly to bad bans - Revision: - srvx--devo--1.3--patch-10 - - Send the correct ban being bounced. - - modified files: - src/chanserv.c - - -2004-02-28 04:31:12 GMT Entrope <en...@cl...> patch-9 - - Summary: - put back Make rule for arch-version.h - Revision: - srvx--devo--1.3--patch-9 - - * Reinstate the rule to create arch-version.h, which I accidentally - deleted in the last commit - - modified files: - src/Makefile.am - - -2004-02-28 00:29:08 GMT Entrope <en...@cl...> patch-8 +2005-01-24 17:12:38 GMT Michael Poole <md...@tr...> patch-8 Summary: - runtime helpfile splicing + typo fix in alloc-srvx.c; avoid dereferencing free()'d bans Revision: srvx--devo--1.3--patch-8 - * Add a miniature parser to the helpfile reader, allowing - nickserv.help's subsections to be selected at runtime. + src/alloc-srvx.c (srvx_realloc): Fix argument list to srvx_free(). + + src/chanserv.c (find_matching_bans): Make temporary copies of bans to + be removed. Double-check remove count at end of loop. + (unban_user, cmd_open): Free the string copies. + (cmd_unbanall): Make temporary copies of removed bans and free them. + (handle_mode): Likewise. - * Move nickserv.help.m4 to nickserv.help and rewrite the - selection code to use the above. + src/opserv.c (cmd_clearbans): Likewise. modified files: - Makefile.am TODO src/Makefile.am src/helpfile.c - src/nickserv.help + ChangeLog src/alloc-srvx.c src/chanserv.c src/opserv.c - renamed files: - src/.arch-ids/nickserv.help.m4.id - ==> src/.arch-ids/nickserv.help.id - src/nickserv.help.m4 - ==> src/nickserv.help - -2004-02-27 16:31:57 GMT Entrope <en...@cl...> patch-7 +2005-01-24 16:45:44 GMT Michael Poole <md...@tr...> patch-7 Summary: - fix userlist presence tracking; "version" command on all services + More allocation debugging support. Revision: srvx--devo--1.3--patch-7 - * Change scan_handle_presence() to scan_user_presence(), since we always - have the userData* at the caller site. + src/alloc-srvx.c (srvx_realloc): Reorganize. + (verify): New function. + + src/common.h (verify): Define and/or declare suitably. - * Make handle_auth() respect user suspensions. + src/dict-splay.c (dict_splay): Verify node at each iteration. + (dict_insert, dict_remove2, dict_find, dict_delete, + dict_sanity_check): Verify entire dict. + (dict_sanity_check_node): Verify node as valid allocation. - * In handle_part(), let scan_user_presence() update "seen" time. + src/hash.c (DelChannel): Verify channel before deletion. + (GetUserMode): Verify channel, user, and each modeNode. - * Make ChanServ adduser command take arguments in the "expected" order - ("!adduser target level", not "!adduser level target") + src/mod-sockcheck.c (sockcheck_free_client): Verify client. + (sockcheck_timeout_client, sockcheck_advance, sockcheck_readable, + sockcheck_connected, sockcheck_begin_test): Likewise. + (sockcheck_queue_address): Verify cached sockcheck entries. - * Add the "version" command to all built-in services + src/proto-p10.c (DelUser): Verify user before deletion. modified files: - TODO src/chanserv.c src/chanserv.help src/modcmd.c + ChangeLog src/alloc-srvx.c src/common.h src/dict-splay.c + src/hash.c src/mod-sockcheck.c src/proto-p10.c -2004-02-25 04:06:30 GMT Entrope <en...@cl...> patch-6 +2005-01-21 15:10:49 GMT Michael Poole <md...@tr...> patch-6 Summary: - ChanServ, OpServ and main.c bug fixes + More debug allocator fixes and enhancements Revision: srvx--devo--1.3--patch-6 - * Read new-style channel flags from the correct field, and do not make - ChanServ rejoin channels that are still suspended + src/alloc-srvx.c (*_MAGIC): ASk recognized the CCSDS ASM sequence. + (srvx_free): Overwrite with 0xDE bytes to distinguish from + uninitialized values. As SailorFrag suggested, only overwrite the + user region. - * Allow service nicknames to be omitted from srvx.conf (again) - - * Construct "opserv" bot earlier so that database read works correctly + src/dict-splay.c (dict_insert): Check whether free functions need to + be worked around here as well. modified files: - src/chanserv.c src/main.c src/opserv.c + ChangeLog src/alloc-srvx.c src/dict-splay.c -2004-02-24 03:55:22 GMT Entrope <en...@cl...> patch-5 +2005-01-21 00:48:35 GMT Michael Poole <md...@tr...> patch-5 Summary: - fix TODO list, services without "description" fields + Add redzone and statistics reporting to debug allocator. Revision: srvx--devo--1.3--patch-5 - Remove items in the TODO list that have been done + src/alloc-srvx.c (redzone): New variable to detect buffer overwrites. + (alloc_count, alloc_size): New variables to track allocation stats. + (srvx_malloc, srvx_realloc, srvx_free): Use the above. - Restore the ability to use a default description for services when a - "nick" but no "description" is present in srvx.conf + src/opserv.c (OSMSG_STATS_MEMORY): New translation string. + (cmd_stats_memory): New (conditional) command function. + (init_opserv): Conditionally provide cmd_stats_memory. modified files: - TODO src/chanserv.c src/global.c src/main.c src/nickserv.c - src/opserv.c + ChangeLog src/alloc-srvx.c src/opserv.c -2004-02-20 19:29:46 GMT Entrope <en...@cl...> patch-4 +2005-01-20 23:41:17 GMT Michael Poole <md...@tr...> patch-4 Summary: - Fix zoot style [wcmop]list; tweak events access + Add built-in debug malloc wrapper. Revision: srvx--devo--1.3--patch-4 - Use proper lower bound for zoot style user-level lists. - - Change default "events" access to 350. - - modified files: - src/chanserv.c - - -2004-02-19 22:36:42 GMT Entrope <en...@cl...> patch-3 - - Summary: - cleanups and fixes - Revision: - srvx--devo--1.3--patch-3 - - Fix the response when trying to set an option to an invalid access level. + TODO: Remove the completed TODO item. - Put accurate headers on zoot_list !users output. + configure.in: Add --with-malloc=srvx support. - Reduce default addban/addtimedban/delban access levels to 250. + src/Makefile.am: Add alloc-srvx.c to extra sources. - Add advertising/support plug for #srvx. + src/common.h: Reindent debug malloc directives; add directives for + WITH_MALLOC_SRVX. - Handle (but report) IRC socket connection errors. + src/dict-splay.c: Kludge around free() as macro vs function. + + new files: + src/.arch-ids/alloc-srvx.c.id src/alloc-srvx.c modified files: - src/chanserv.c src/hash.c src/modcmd.c tests/test-driver.pl + ChangeLog TODO configure.in src/Makefile.am src/common.h + src/dict-splay.c -2004-02-18 00:18:30 GMT Entrope <en...@cl...> patch-2 +2005-01-20 22:51:54 GMT Michael Poole <md...@tr...> patch-3 Summary: - Support topic bursts; fix topic display in CHANINFO command + various bugfixes and IPv6 preparation work Revision: - srvx--devo--1.3--patch-2 + srvx--devo--1.3--patch-3 - When we wipe out an older channel on our end, clear its topic. + src/modcmd.c (modcmd_privmsg): Fix CTCP PING response type. - Fix the message send function used by CHANINFO. + src/opserv.help: Add column headers for command lists. - When we get a P10 T message, check for the extra fields added in Asuka. + src/tools.c (is_gline, split_ircmask): Accept colons in hostnames. modified files: - src/hash.c src/opserv.c src/proto-p10.c + ChangeLog src/modcmd.c src/opserv.help src/tools.c -2004-02-17 22:02:03 GMT Entrope <en...@cl...> patch-1 +2005-01-05 01:03:05 GMT Michael Poole <md...@tr...> patch-2 Summary: - Indenting cleanups, +sp fix, PING fix + Add MODE_REGISTERED as +z for P10. Revision: - srvx--devo--1.3--patch-1 - - Add explicit copyright notice to VERSION command - When receiving a PING, respond using numnick instead of readable name - Indenting fixes - Remove out-of-date references to GamesNET + srvx--devo--1.3--patch-2 - new files: - .arch-ids/.cvsignore.id .cvsignore - docs/.arch-ids/.cvsignore.id docs/.cvsignore - patches/.arch-ids/.cvsignore.id patches/.cvsignore - rx/.arch-ids/.arch-inventory.id rx/.arch-ids/.cvsignore.id - rx/.arch-inventory rx/.cvsignore src/.arch-ids/.cvsignore.id - src/.cvsignore tests/.arch-ids/.cvsignore.id tests/.cvsignore + Add MODE_REGISTERED as +z for P10. modified files: - .arch-inventory AUTHORS docs/.arch-inventory - docs/access-levels.txt patches/.arch-inventory - sockcheck.conf.example src/.arch-inventory src/chanserv.help - src/ioset.c src/modcmd.c src/proto-bahamut.c src/proto-p10.c - src/tools.c tests/.arch-inventory - - -2004-02-11 04:12:26 GMT Entrope <en...@cl...> base-0 - - Summary: - Initial import (again) - Revision: - srvx--devo--1.3--base-0 - - Initial import of srvx-1.3 code. - - new files: - AUTHORS COPYING ChangeLog INSTALL Makefile.am NEWS README TODO - autogen.sh compile config.guess config.sub configure.in - depcomp docs/access-levels.txt docs/coding-style.txt - docs/cookies.txt docs/helpserv.txt docs/ircd-modes.txt - docs/malloc-compare.txt install-sh ltmain.sh missing - mkinstalldirs patches/asuka-sethost.diff - patches/helpserv-pgsql.diff patches/helpserv-pgsql.txt - patches/log-pgsql.diff patches/log-pgsql.txt - patches/ns_reclaim-flag102403.diff - patches/ns_tried2reg102403.diff patches/srvx-bantypes.diff - patches/srvx-successor.diff rx/COPYING.LIB rx/ChangeLog - rx/Makefile.am rx/Makefile.in rx/_rx.h rx/compile rx/depcomp - rx/hashrexp.c rx/inst-rxposix.h rx/rx.c rx/rx.h rx/rxall.h - rx/rxanal.c rx/rxanal.h rx/rxbasic.c rx/rxbasic.h - rx/rxbitset.c rx/rxbitset.h rx/rxcontext.h rx/rxcset.c - rx/rxcset.h rx/rxdbug.c rx/rxgnucomp.c rx/rxgnucomp.h - rx/rxhash.c rx/rxhash.h rx/rxnfa.c rx/rxnfa.h rx/rxnode.c - rx/rxnode.h rx/rxposix.c rx/rxposix.h rx/rxproto.h rx/rxsimp.c - rx/rxsimp.h rx/rxspencer.c rx/rxspencer.h rx/rxstr.c - rx/rxstr.h rx/rxsuper.c rx/rxsuper.h rx/rxunfa.c rx/rxunfa.h - sockcheck.conf.example src/Makefile.am src/chanserv.c - src/chanserv.h src/chanserv.help src/checkdb.c src/common.h - src/compat.c src/compat.h src/conf.c src/conf.h - src/dict-splay.c src/dict.h src/expnhelp.c src/getopt.c - src/getopt.h src/getopt1.c src/gline.c src/gline.h - src/global.c src/global.h src/global.help src/globtest.c - src/hash.c src/hash.h src/heap.c src/heap.h src/helpfile.c - src/helpfile.h src/ioset.c src/ioset.h src/log.c src/log.h - src/main.c src/md5.c src/md5.h src/mod-helpserv.c - src/mod-helpserv.help src/mod-memoserv.c src/mod-memoserv.help - src/mod-snoop.c src/mod-sockcheck.c src/mod-sockcheck.help - src/modcmd.c src/modcmd.h src/modcmd.help src/modules.c - src/modules.h src/nickserv.c src/nickserv.h - src/nickserv.help.m4 src/opserv.c src/opserv.h src/opserv.help - src/policer.c src/policer.h src/proto-bahamut.c - src/proto-common.c src/proto-p10.c src/proto.h src/recdb.c - src/recdb.h src/saxdb.c src/saxdb.h src/saxdb.help - src/sendmail.c src/sendmail.h src/sendmail.help src/stamp-h.in - src/stamp-h1.in src/timeq.c src/timeq.h src/tools.c - srvx.conf.example stamp-h2.in tests/coverage-2.cmd - tests/coverage.cmd tests/coverage.txt tests/ircd.conf - tests/ircd.motd tests/nickserv.cmd tests/p10.cmd - tests/srvx.conf tests/test-driver.pl tests/test.cmd + ChangeLog src/proto-p10.c Index: srvx2/ChangeLog.2004 diff -u /dev/null srvx2/ChangeLog.2004:1.1 --- /dev/null Sun Jan 30 17:41:39 2005 +++ srvx2/ChangeLog.2004 Sun Jan 30 17:41:28 2005 @@ -0,0 +1,1714 @@ +# do not edit -- automatically generated by arch changelog +# arch-tag: aut...@sr...--2004-srvx/srvx--devo--1.3 +# + +2004-11-23 04:09:30 GMT Zoot <zo...@ga...> patch-84 + + Summary: + Fix ban reader + Revision: + srvx--devo--1.3--patch-84 + + * src/chanserv.c: Drop invalid bans with no reason during database reads + and require bans to have a reason set in add_channel_ban(). + + modified files: + ChangeLog src/chanserv.c + + +2004-11-10 01:25:53 GMT Michael Poole <md...@tr...> patch-83 + + Summary: + Fix nick length check in is_valid_nick(). + Revision: + srvx--devo--1.3--patch-83 + + The for() loop in is_valid_nick() leaves 'nick' as an empty string, + which is obviosly shorter than the nick length limit. Fix that. + + modified files: + ChangeLog src/proto-p10.c + + +2004-10-16 21:14:11 GMT Michael Poole <md...@tr...> patch-82 + + Summary: + Fix glob matching against IPs + Revision: + srvx--devo--1.3--patch-82 + + Do not requir... [truncated message content] |
From: Alex S. <ru...@us...> - 2005-01-11 02:08:10
|
Committer : Alex Schumann <ru...@us...> CVSROOT : /cvsroot/x2serv Module : srvx2 Commit time: 2005-01-11 02:08:01 UTC Added files: tools/mambo_srvx2_link.tgz Log message: Added the tools I wrote to sync mambo with srvx on AfterNET ---------------------- diff included ---------------------- Index: srvx2/tools/mambo_srvx2_link.tgz ----------------------- End of diff ----------------------- |
From: Alex S. <ru...@us...> - 2004-12-09 20:55:30
|
Committer : Alex Schumann <ru...@us...> CVSROOT : /cvsroot/x2serv Module : srvx2 Commit time: 2004-12-09 20:55:23 UTC Modified files: src/nickserv.c Log message: Disabled "feature" where srvx wont let you change your email address without verifying the old one is still you. (?) ---------------------- diff included ---------------------- Index: srvx2/src/nickserv.c diff -u srvx2/src/nickserv.c:1.14 srvx2/src/nickserv.c:1.15 --- srvx2/src/nickserv.c:1.14 Thu Dec 9 11:50:24 2004 +++ srvx2/src/nickserv.c Thu Dec 9 12:55:12 2004 @@ -325,8 +325,10 @@ "If you did NOT request your password to be changed, you do not need to do anything.\n" "Please contact the %1$s staff if you have questions." }, { "NSEMAIL_EMAIL_CHANGE_SUBJECT", "Email address change verification for %s" }, +#ifdef stupid_verify_old_email { "NSEMAIL_EMAIL_CHANGE_BODY_NEW", "This email has been sent to verify that your email address belongs to the same person as account %5$s on %1$s. The SECOND HALF of your cookie is %2$.*6$s.\nTo verify your address as associated with this account, log on to %1$s and type the following command:\n /msg %3$s@%4$s COOKIE %5$s ?????%2$.*6$s\n(Replace the ????? with the FIRST HALF of the cookie, as sent to your OLD email address.)\nIf you did NOT request this email address to be associated with this account, you do not need to do anything. Please contact the %1$s staff if you have questions." }, { "NSEMAIL_EMAIL_CHANGE_BODY_OLD", "This email has been sent to verify that you want to change your email for account %5$s on %1$s from this address to %7$s. The FIRST HALF of your cookie is %2$.*6$s\nTo verify your new address as associated with this account, log on to %1$s and type the following command:\n /msg %3$s@%4$s COOKIE %5$s %2$.*6$s?????\n(Replace the ????? with the SECOND HALF of the cookie, as sent to your NEW email address.)\nIf you did NOT request this change of email address, you do not need to do anything. Please contact the %1$s staff if you have questions." }, +#endif { "NSEMAIL_EMAIL_VERIFY_SUBJECT", "Email address verification for %s" }, { "NSEMAIL_EMAIL_VERIFY_BODY", "This email has been sent to verify that this address belongs to the same person as %5$s on %1$s. Your cookie is %2$s.\nTo verify your address as associated with this account, log on to %1$s and type the following command:\n /msg %3$s@%4$s COOKIE %5$s %2$s\nIf you did NOT request this email address to be associated with this account, you do not need to do anything. Please contact the %1$s staff if you have questions." }, { "NSEMAIL_ALLOWAUTH_SUBJECT", "Authentication allowed for %s" }, @@ -1084,6 +1086,7 @@ case EMAIL_CHANGE: misc = hi->email_addr; hi->email_addr = cookie->data; +#ifdef stupid_verify_old_email if (misc) { send_message(user, nickserv, "NSMSG_USE_COOKIE_EMAIL_2"); fmt = handle_find_message(hi, "NSEMAIL_EMAIL_CHANGE_SUBJECT"); @@ -1094,6 +1097,7 @@ fmt = handle_find_message(hi, "NSEMAIL_EMAIL_CHANGE_BODY_OLD"); snprintf(body, sizeof(body), fmt, netname, cookie->cookie, nickserv->nick, self->name, hi->handle, COOKIELEN/2, hi->email_addr); } else { +#endif send_message(user, nickserv, "NSMSG_USE_COOKIE_EMAIL_1"); fmt = handle_find_message(hi, "NSEMAIL_EMAIL_VERIFY_SUBJECT"); snprintf(subject, sizeof(subject), fmt, netname); @@ -1101,7 +1105,9 @@ snprintf(body, sizeof(body), fmt, netname, cookie->cookie, nickserv->nick, self->name, hi->handle); sendmail(nickserv, hi, subject, body, 1); subject[0] = 0; +#ifdef stupid_verify_old_email } +#endif hi->email_addr = misc; break; case ALLOWAUTH: ----------------------- End of diff ----------------------- |
From: Neil S. <sir...@us...> - 2004-12-09 19:50:45
|
Committer : Neil Spierling <sir...@us...> CVSROOT : /cvsroot/x2serv Module : srvx2 Commit time: 2004-12-09 19:50:38 UTC Modified files: src/nickserv.c Log message: now works with OREGISTER. Email required must be set on. Accounts registered with OREGISTER are not REGISTER'ed on the website until the user sets an email address. ---------------------- diff included ---------------------- Index: srvx2/src/nickserv.c diff -u srvx2/src/nickserv.c:1.13 srvx2/src/nickserv.c:1.14 --- srvx2/src/nickserv.c:1.13 Wed Dec 8 13:11:08 2004 +++ srvx2/src/nickserv.c Thu Dec 9 11:50:24 2004 @@ -1276,7 +1276,12 @@ if (nickserv_conf.sync_log) { cryptpass(password, syncpass); - SyncLog("REGISTER %s %s %s", hi->handle, syncpass, email_addr); + /* + * An 0 is only sent if theres no email address. Thios should only happen if email functions are + * disabled which they wont be for us. Email Required MUST be set on if you are using this. + * -SiRVulcaN + */ + SyncLog("REGISTER %s %s %s %s", hi->handle, syncpass, email_addr ? email_addr : "0", user->info); } return 1; @@ -1964,6 +1969,13 @@ SyncLog("PASSCHANGE %s %s", hi->handle, hi->passwd); break; case EMAIL_CHANGE: + if (!hi->email_addr && nickserv_conf.sync_log) { + /* + * This should only happen if an OREGISTER was sent. Require + * email must be enabled! - SiRVulcaN + */ + SyncLog("REGISTER %s %s %s %s", hi->handle, hi->passwd, hi->cookie->data, user->info); + } nickserv_set_email_addr(hi, hi->cookie->data); reply("NSMSG_EMAIL_CHANGED"); if (nickserv_conf.sync_log) ----------------------- End of diff ----------------------- |
From: Neil S. <sir...@us...> - 2004-12-08 21:11:36
|
Committer : Neil Spierling <sir...@us...> CVSROOT : /cvsroot/x2serv Module : srvx2 Commit time: 2004-12-08 21:11:19 UTC Modified files: srvx.conf.example src/nickserv.c Log message: Sync logging now configurable ---------------------- diff included ---------------------- Index: srvx2/src/nickserv.c diff -u srvx2/src/nickserv.c:1.12 srvx2/src/nickserv.c:1.13 --- srvx2/src/nickserv.c:1.12 Wed Dec 8 12:28:54 2004 +++ srvx2/src/nickserv.c Wed Dec 8 13:11:08 2004 @@ -66,6 +66,7 @@ #define KEY_EMAIL_VISIBLE_LEVEL "email_visible_level" #define KEY_EMAIL_ENABLED "email_enabled" #define KEY_EMAIL_REQUIRED "email_required" +#define KEY_SYNC_LOG "sync_log" #define KEY_COOKIE_TIMEOUT "cookie_timeout" #define KEY_ACCOUNTS_PER_EMAIL "accounts_per_email" #define KEY_EMAIL_SEARCH_LEVEL "email_search_level" @@ -354,6 +355,7 @@ unsigned int default_hostmask : 1; unsigned int warn_nick_owned : 1; unsigned int warn_clone_auth : 1; + unsigned int sync_log : 1; unsigned long nicks_per_handle; unsigned long password_min_length; unsigned long password_min_digits; @@ -561,7 +563,10 @@ else send_message(notify, nickserv, "NSMSG_UNREGISTER_NICKS_SUCCESS", hi->handle); } - SyncLog("UNREGISTER %s", hi->handle); + + if (nickserv_conf.sync_log) + SyncLog("UNREGISTER %s", hi->handle); + dict_remove(nickserv_handle_dict, hi->handle); } @@ -1269,8 +1274,10 @@ /* Set registering flag.. */ user->modes |= FLAGS_REGISTERING; - cryptpass(password, syncpass); - SyncLog("REGISTER %s %s %s", hi->handle, syncpass, email_addr); + if (nickserv_conf.sync_log) { + cryptpass(password, syncpass); + SyncLog("REGISTER %s %s %s", hi->handle, syncpass, email_addr); + } return 1; } @@ -1946,18 +1953,21 @@ safestrncpy(hi->passwd, hi->cookie->data, sizeof(hi->passwd)); set_user_handle_info(user, hi, 1); reply("NSMSG_HANDLE_ACTIVATED"); - SyncLog("ACCOUNTACC %s", hi->handle); + if (nickserv_conf.sync_log) + SyncLog("ACCOUNTACC %s", hi->handle); break; case PASSWORD_CHANGE: set_user_handle_info(user, hi, 1); safestrncpy(hi->passwd, hi->cookie->data, sizeof(hi->passwd)); reply("NSMSG_PASSWORD_CHANGED"); - SyncLog("PASSCHANGE %s %s", hi->handle, hi->passwd); + if (nickserv_conf.sync_log) + SyncLog("PASSCHANGE %s %s", hi->handle, hi->passwd); break; case EMAIL_CHANGE: nickserv_set_email_addr(hi, hi->cookie->data); reply("NSMSG_EMAIL_CHANGED"); - SyncLog("EMAILCHANGE %s %s", hi->handle, hi->cookie->data); + if (nickserv_conf.sync_log) + SyncLog("EMAILCHANGE %s %s", hi->handle, hi->cookie->data); break; case ALLOWAUTH: set_user_handle_info(user, hi, 1); @@ -2038,7 +2048,8 @@ return 0; } cryptpass(new_pass, hi->passwd); - SyncLog("PASSCHANGE %s %s", hi->handle, hi->passwd); + if (nickserv_conf.sync_log) + SyncLog("PASSCHANGE %s %s", hi->handle, hi->passwd); argv[1] = "****"; reply("NSMSG_PASS_SUCCESS"); return 1; @@ -3670,6 +3681,8 @@ nickserv_conf.email_visible_level = str ? strtoul(str, NULL, 0) : 800; str = database_get_data(conf_node, KEY_EMAIL_ENABLED, RECDB_QSTRING); nickserv_conf.email_enabled = str ? enabled_string(str) : 0; + str = database_get_data(conf_node, KEY_SYNC_LOG, RECDB_QSTRING); + nickserv_conf.sync_log = str ? enabled_string(str) : 0; str = database_get_data(conf_node, KEY_COOKIE_TIMEOUT, RECDB_QSTRING); nickserv_conf.cookie_timeout = str ? ParseInterval(str) : 24*3600; str = database_get_data(conf_node, KEY_EMAIL_REQUIRED, RECDB_QSTRING); Index: srvx2/srvx.conf.example diff -u srvx2/srvx.conf.example:1.3 srvx2/srvx.conf.example:1.4 --- srvx2/srvx.conf.example:1.3 Sat Oct 2 18:41:34 2004 +++ srvx2/srvx.conf.example Wed Dec 8 13:11:08 2004 @@ -132,6 +132,7 @@ "accounts_per_email" "1"; // you may want to increase this; or not "email_search_level" "600"; // minimum OpServ level to search based on email address "email_visible_level" "800"; // minimum OpServ level to see somebody's email address + "sync_log" "1"; // Output password and email changes, plus registration to sync.log }; "opserv" { ----------------------- End of diff ----------------------- |
From: Neil S. <sir...@us...> - 2004-12-08 20:29:13
|
Committer : Neil Spierling <sir...@us...> CVSROOT : /cvsroot/x2serv Module : srvx2 Commit time: 2004-12-08 20:29:04 UTC Modified files: src/common.h src/log.c src/log.h src/nickserv.c src/tools.c Log message: Sync log function addition, x2 debug function stripped down. Note this is tested to a certain point.. like it logs etc i just havnt tested out logging of an cookie activation or a email change. I will add a config or configure option later so it can be disabled for those who dont need it ---------------------- diff included ---------------------- Index: srvx2/src/common.h diff -u srvx2/src/common.h:1.2 srvx2/src/common.h:1.3 --- srvx2/src/common.h:1.2 Mon Aug 23 08:39:18 2004 +++ srvx2/src/common.h Wed Dec 8 12:28:54 2004 @@ -174,6 +174,7 @@ int getipbyname(const char *name, unsigned long *ip); int set_policer_param(const char *param, void *data, void *extra); const char *strtab(unsigned int ii); +char *time2str(time_t thetime); void tools_init(void); void tools_cleanup(void); Index: srvx2/src/log.c diff -u srvx2/src/log.c:1.1.1.1 srvx2/src/log.c:1.2 --- srvx2/src/log.c:1.1.1.1 Thu Jun 3 10:14:00 2004 +++ srvx2/src/log.c Wed Dec 8 12:28:54 2004 @@ -993,3 +993,31 @@ message_register_table(msgtab); log_inited = 1; } + +void SyncLog(char *fmt,...) +{ + va_list args; + char buff[MAXLEN*4]; + char *tmp; + FILE *LogFile; + + va_start(args, fmt); + vsnprintf(buff, MAXLEN, fmt, args); + buff[MAXLEN - 1] = '\0'; + va_end(args); + + for (tmp = buff; *tmp; tmp++) + { + if ((*tmp == '\n') || (*tmp == '\r')) + *tmp = '\0'; + else if (*tmp == '\001') + *tmp = ' '; + } + + if((LogFile = fopen("sync.log", "a"))) + { + fprintf(LogFile, "%s: %s\n", time2str(time(NULL)), buff); + fclose(LogFile); + } + +} Index: srvx2/src/log.h diff -u srvx2/src/log.h:1.1.1.1 srvx2/src/log.h:1.2 --- srvx2/src/log.h:1.1.1.1 Thu Jun 3 10:14:00 2004 +++ srvx2/src/log.h Wed Dec 8 12:28:54 2004 @@ -91,5 +91,6 @@ struct logSearch* log_discrim_create(struct userNode *service, struct userNode *user, unsigned int argc, char *argv[]); unsigned int log_entry_search(struct logSearch *discrim, entry_search_func esf, void *data); void report_entry(struct userNode *service, struct userNode *user, struct logEntry *entry); +void SyncLog(char *fmt,...); #endif Index: srvx2/src/nickserv.c diff -u srvx2/src/nickserv.c:1.11 srvx2/src/nickserv.c:1.12 --- srvx2/src/nickserv.c:1.11 Mon Dec 6 23:40:58 2004 +++ srvx2/src/nickserv.c Wed Dec 8 12:28:54 2004 @@ -561,6 +561,7 @@ else send_message(notify, nickserv, "NSMSG_UNREGISTER_NICKS_SUCCESS", hi->handle); } + SyncLog("UNREGISTER %s", hi->handle); dict_remove(nickserv_handle_dict, hi->handle); } @@ -1156,6 +1157,7 @@ { struct handle_info *hi; const char *email_addr, *password; + char syncpass[MD5_CRYPT_LENGTH]; int no_auth, weblink; if (!IsOper(user) && !dict_size(nickserv_handle_dict)) { @@ -1267,6 +1269,9 @@ /* Set registering flag.. */ user->modes |= FLAGS_REGISTERING; + cryptpass(password, syncpass); + SyncLog("REGISTER %s %s %s", hi->handle, syncpass, email_addr); + return 1; } @@ -1941,15 +1946,18 @@ safestrncpy(hi->passwd, hi->cookie->data, sizeof(hi->passwd)); set_user_handle_info(user, hi, 1); reply("NSMSG_HANDLE_ACTIVATED"); + SyncLog("ACCOUNTACC %s", hi->handle); break; case PASSWORD_CHANGE: set_user_handle_info(user, hi, 1); safestrncpy(hi->passwd, hi->cookie->data, sizeof(hi->passwd)); reply("NSMSG_PASSWORD_CHANGED"); + SyncLog("PASSCHANGE %s %s", hi->handle, hi->passwd); break; case EMAIL_CHANGE: nickserv_set_email_addr(hi, hi->cookie->data); reply("NSMSG_EMAIL_CHANGED"); + SyncLog("EMAILCHANGE %s %s", hi->handle, hi->cookie->data); break; case ALLOWAUTH: set_user_handle_info(user, hi, 1); @@ -2030,6 +2038,7 @@ return 0; } cryptpass(new_pass, hi->passwd); + SyncLog("PASSCHANGE %s %s", hi->handle, hi->passwd); argv[1] = "****"; reply("NSMSG_PASS_SUCCESS"); return 1; Index: srvx2/src/tools.c diff -u srvx2/src/tools.c:1.6 srvx2/src/tools.c:1.7 --- srvx2/src/tools.c:1.6 Wed Aug 25 01:13:55 2004 +++ srvx2/src/tools.c Wed Dec 8 12:28:54 2004 @@ -952,3 +952,13 @@ return(retstr); } +char *time2str(time_t thetime) +{ + char *buf, *tmp; + + buf = ctime(&thetime); + tmp = (char *)strchr(buf, '\n'); + *tmp = '\0'; + return(buf); +} + ----------------------- End of diff ----------------------- |
From: Alex S. <ru...@us...> - 2004-12-07 07:41:19
|
Committer : Alex Schumann <ru...@us...> CVSROOT : /cvsroot/x2serv Module : srvx2 Commit time: 2004-12-07 07:41:09 UTC Modified files: src/md5.c src/md5.h src/nickserv.c Log message: AfterNET is working on the ability to merge mambo and authserv user accounts into one. This commit adds some special hacks for a web-based registration/pass reset bot from the website, and modifies the saved passwords to true md5 compatable (same as php uses). Old passwords are still read, and when changed will be saved properly in the new format. Old accounts will not work on the website until they are updated to the new md5 format. ---------------------- diff included ---------------------- Index: srvx2/src/md5.c diff -u srvx2/src/md5.c:1.1.1.1 srvx2/src/md5.c:1.2 --- srvx2/src/md5.c:1.1.1.1 Thu Jun 3 10:14:00 2004 +++ srvx2/src/md5.c Mon Dec 6 23:40:58 2004 @@ -1,3 +1,34 @@ +/* + * RFC 1321 compliant MD5 implementation + * + * Copyright (C) 2001-2003 Christophe Devine + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include <string.h> + +#include "common.h" +#include "md5.h" + +#define OLDPASSFUNC +#ifdef OLDPASSFUNC +/* ----------------------------------------------------- */ +/* DELETE THIS SOME DAY - OLD STUFF HERE */ +/* ----------------------------------------------------- */ + /* MD5C.C - RSA Data Security, Inc., MD5 message-digest algorithm */ /* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All @@ -22,9 +53,6 @@ documentation and/or software. */ -#include "common.h" -#include "md5.h" - /* Constants for MD5Transform routine. */ #define S11 7 @@ -345,12 +373,287 @@ return buffer; } +/* ----------------------------------------------------- */ +/* DELETE ABOVE SOME DAY -- OLD STUFF */ +/* ----------------------------------------------------- */ + +#endif + +#define GET_UINT32(n,b,i) \ +{ \ + (n) = ( (uint32) (b)[(i) ] ) \ + | ( (uint32) (b)[(i) + 1] << 8 ) \ + | ( (uint32) (b)[(i) + 2] << 16 ) \ + | ( (uint32) (b)[(i) + 3] << 24 ); \ +} + +#define PUT_UINT32(n,b,i) \ +{ \ + (b)[(i) ] = (uint8) ( (n) ); \ + (b)[(i) + 1] = (uint8) ( (n) >> 8 ); \ + (b)[(i) + 2] = (uint8) ( (n) >> 16 ); \ + (b)[(i) + 3] = (uint8) ( (n) >> 24 ); \ +} + +void md5_starts( md5_context *ctx ) +{ + ctx->total[0] = 0; + ctx->total[1] = 0; + + ctx->state[0] = 0x67452301; + ctx->state[1] = 0xEFCDAB89; + ctx->state[2] = 0x98BADCFE; + ctx->state[3] = 0x10325476; +} + +void md5_process( md5_context *ctx, uint8 data[64] ) +{ + uint32 X[16], A, B, C, D; + + GET_UINT32( X[0], data, 0 ); + GET_UINT32( X[1], data, 4 ); + GET_UINT32( X[2], data, 8 ); + GET_UINT32( X[3], data, 12 ); + GET_UINT32( X[4], data, 16 ); + GET_UINT32( X[5], data, 20 ); + GET_UINT32( X[6], data, 24 ); + GET_UINT32( X[7], data, 28 ); + GET_UINT32( X[8], data, 32 ); + GET_UINT32( X[9], data, 36 ); + GET_UINT32( X[10], data, 40 ); + GET_UINT32( X[11], data, 44 ); + GET_UINT32( X[12], data, 48 ); + GET_UINT32( X[13], data, 52 ); + GET_UINT32( X[14], data, 56 ); + GET_UINT32( X[15], data, 60 ); + +#define S(x,n) ((x << n) | ((x & 0xFFFFFFFF) >> (32 - n))) + +#define P(a,b,c,d,k,s,t) \ +{ \ + a += F(b,c,d) + X[k] + t; a = S(a,s) + b; \ +} + + A = ctx->state[0]; + B = ctx->state[1]; + C = ctx->state[2]; + D = ctx->state[3]; + +#define F(x,y,z) (z ^ (x & (y ^ z))) + + P( A, B, C, D, 0, 7, 0xD76AA478 ); + P( D, A, B, C, 1, 12, 0xE8C7B756 ); + P( C, D, A, B, 2, 17, 0x242070DB ); + P( B, C, D, A, 3, 22, 0xC1BDCEEE ); + P( A, B, C, D, 4, 7, 0xF57C0FAF ); + P( D, A, B, C, 5, 12, 0x4787C62A ); + P( C, D, A, B, 6, 17, 0xA8304613 ); + P( B, C, D, A, 7, 22, 0xFD469501 ); + P( A, B, C, D, 8, 7, 0x698098D8 ); + P( D, A, B, C, 9, 12, 0x8B44F7AF ); + P( C, D, A, B, 10, 17, 0xFFFF5BB1 ); + P( B, C, D, A, 11, 22, 0x895CD7BE ); + P( A, B, C, D, 12, 7, 0x6B901122 ); + P( D, A, B, C, 13, 12, 0xFD987193 ); + P( C, D, A, B, 14, 17, 0xA679438E ); + P( B, C, D, A, 15, 22, 0x49B40821 ); + +#undef F + +#define F(x,y,z) (y ^ (z & (x ^ y))) + + P( A, B, C, D, 1, 5, 0xF61E2562 ); + P( D, A, B, C, 6, 9, 0xC040B340 ); + P( C, D, A, B, 11, 14, 0x265E5A51 ); + P( B, C, D, A, 0, 20, 0xE9B6C7AA ); + P( A, B, C, D, 5, 5, 0xD62F105D ); + P( D, A, B, C, 10, 9, 0x02441453 ); + P( C, D, A, B, 15, 14, 0xD8A1E681 ); + P( B, C, D, A, 4, 20, 0xE7D3FBC8 ); + P( A, B, C, D, 9, 5, 0x21E1CDE6 ); + P( D, A, B, C, 14, 9, 0xC33707D6 ); + P( C, D, A, B, 3, 14, 0xF4D50D87 ); + P( B, C, D, A, 8, 20, 0x455A14ED ); + P( A, B, C, D, 13, 5, 0xA9E3E905 ); + P( D, A, B, C, 2, 9, 0xFCEFA3F8 ); + P( C, D, A, B, 7, 14, 0x676F02D9 ); + P( B, C, D, A, 12, 20, 0x8D2A4C8A ); + +#undef F + +#define F(x,y,z) (x ^ y ^ z) + + P( A, B, C, D, 5, 4, 0xFFFA3942 ); + P( D, A, B, C, 8, 11, 0x8771F681 ); + P( C, D, A, B, 11, 16, 0x6D9D6122 ); + P( B, C, D, A, 14, 23, 0xFDE5380C ); + P( A, B, C, D, 1, 4, 0xA4BEEA44 ); + P( D, A, B, C, 4, 11, 0x4BDECFA9 ); + P( C, D, A, B, 7, 16, 0xF6BB4B60 ); + P( B, C, D, A, 10, 23, 0xBEBFBC70 ); + P( A, B, C, D, 13, 4, 0x289B7EC6 ); + P( D, A, B, C, 0, 11, 0xEAA127FA ); + P( C, D, A, B, 3, 16, 0xD4EF3085 ); + P( B, C, D, A, 6, 23, 0x04881D05 ); + P( A, B, C, D, 9, 4, 0xD9D4D039 ); + P( D, A, B, C, 12, 11, 0xE6DB99E5 ); + P( C, D, A, B, 15, 16, 0x1FA27CF8 ); + P( B, C, D, A, 2, 23, 0xC4AC5665 ); + +#undef F + +#define F(x,y,z) (y ^ (x | ~z)) + + P( A, B, C, D, 0, 6, 0xF4292244 ); + P( D, A, B, C, 7, 10, 0x432AFF97 ); + P( C, D, A, B, 14, 15, 0xAB9423A7 ); + P( B, C, D, A, 5, 21, 0xFC93A039 ); + P( A, B, C, D, 12, 6, 0x655B59C3 ); + P( D, A, B, C, 3, 10, 0x8F0CCC92 ); + P( C, D, A, B, 10, 15, 0xFFEFF47D ); + P( B, C, D, A, 1, 21, 0x85845DD1 ); + P( A, B, C, D, 8, 6, 0x6FA87E4F ); + P( D, A, B, C, 15, 10, 0xFE2CE6E0 ); + P( C, D, A, B, 6, 15, 0xA3014314 ); + P( B, C, D, A, 13, 21, 0x4E0811A1 ); + P( A, B, C, D, 4, 6, 0xF7537E82 ); + P( D, A, B, C, 11, 10, 0xBD3AF235 ); + P( C, D, A, B, 2, 15, 0x2AD7D2BB ); + P( B, C, D, A, 9, 21, 0xEB86D391 ); + +#undef F + + ctx->state[0] += A; + ctx->state[1] += B; + ctx->state[2] += C; + ctx->state[3] += D; +} + +void md5_update( md5_context *ctx, uint8 *input, uint32 length ) +{ + uint32 left, fill; + + if( ! length ) return; + + left = ctx->total[0] & 0x3F; + fill = 64 - left; + + ctx->total[0] += length; + ctx->total[0] &= 0xFFFFFFFF; + + if( ctx->total[0] < length ) + ctx->total[1]++; + + if( left && length >= fill ) + { + memcpy( (void *) (ctx->buffer + left), + (void *) input, fill ); + md5_process( ctx, ctx->buffer ); + length -= fill; + input += fill; + left = 0; + } + + while( length >= 64 ) + { + md5_process( ctx, input ); + length -= 64; + input += 64; + } + + if( length ) + { + memcpy( (void *) (ctx->buffer + left), + (void *) input, length ); + } +} + +static uint8 md5_padding[64] = +{ + 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +void md5_finish( md5_context *ctx, uint8 digest[16] ) +{ + uint32 last, padn; + uint32 high, low; + uint8 msglen[8]; + + high = ( ctx->total[0] >> 29 ) + | ( ctx->total[1] << 3 ); + low = ( ctx->total[0] << 3 ); + + PUT_UINT32( low, msglen, 0 ); + PUT_UINT32( high, msglen, 4 ); + + last = ctx->total[0] & 0x3F; + padn = ( last < 56 ) ? ( 56 - last ) : ( 120 - last ); + + md5_update( ctx, md5_padding, padn ); + md5_update( ctx, msglen, 8 ); + + PUT_UINT32( ctx->state[0], digest, 0 ); + PUT_UINT32( ctx->state[1], digest, 4 ); + PUT_UINT32( ctx->state[2], digest, 8 ); + PUT_UINT32( ctx->state[3], digest, 12 ); +} + +#define TEST +#ifdef TEST + +#include <stdlib.h> +#include <stdio.h> + +/* + * those are the standard RFC 1321 test vectors + */ + +static char *msg[] = +{ + "", + "a", + "abc", + "message digest", + "abcdefghijklmnopqrstuvwxyz", + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", + "12345678901234567890123456789012345678901234567890123456789012" \ + "345678901234567890" +}; + +static char *val[] = +{ + "d41d8cd98f00b204e9800998ecf8427e", + "0cc175b9c0f1b6a831c399e269772661", + "900150983cd24fb0d6963f7d28e17f72", + "f96b697d7cb7938d525a2f31aaf161d0", + "c3fcd3d76192e4007dfb496cca67e13b", + "d174ab98d277d9f5a5611c2c9f419d9f", + "57edf4a22be3c955ac49da2e2107b67a" +}; + +char* md5(char* pass, char* output) +{ + md5_context ctx; + int j; + unsigned char md5sum[16]; + + md5_starts( &ctx ); + md5_update( &ctx, (uint8 *) pass, strlen(pass)); + md5_finish( &ctx, md5sum ); + for(j = 0; j<16; j++) + { + sprintf(output + j * 2, "%02x", md5sum[j]); + } + printf("The hash of %s is %s\n\n", pass, output); +} + const char * cryptpass(const char *pass, char *buffer) { - int seed; - do { seed = rand(); } while (!seed); - return cryptpass_real(pass, buffer, seed); + return md5(pass, buffer); } int @@ -364,10 +667,14 @@ strncpy(hseed, crypt+1, 8); hseed[8] = 0; seed = strtoul(hseed, NULL, 16); + cryptpass_real(pass, new_crypt, seed); } else { - /* old-style crypt, use "seed" of 0 */ - seed = 0; + /* new "old-style" md5 crypt compatable with php, md5sum etc */ + md5(pass, new_crypt); } - cryptpass_real(pass, new_crypt, seed); return !strcmp(crypt, new_crypt); } + + + +#endif Index: srvx2/src/md5.h diff -u srvx2/src/md5.h:1.1.1.1 srvx2/src/md5.h:1.2 --- srvx2/src/md5.h:1.1.1.1 Thu Jun 3 10:14:00 2004 +++ srvx2/src/md5.h Mon Dec 6 23:40:58 2004 @@ -1,3 +1,35 @@ +#ifndef _MD5_H +#define _MD5_H + +#ifndef uint8 +#define uint8 unsigned char +#endif + +#ifndef uint32 +#define uint32 unsigned long int +#endif + +typedef struct +{ + uint32 total[2]; + uint32 state[4]; + uint8 buffer[64]; +} +md5_context; + +void md5_starts( md5_context *ctx ); +void md5_update( md5_context *ctx, uint8 *input, uint32 length ); +void md5_finish( md5_context *ctx, uint8 digest[16] ); + +#endif /* md5.h */ + + +/* --------------------------------------- + * OLD CRAP HERE + * DELETE THIS SOME DAY + * + *----------------------------------------*/ + /* GLOBAL.H - RSAREF types and constants */ /* PROTOTYPES should be set to one if and only if the compiler supports Index: srvx2/src/nickserv.c diff -u srvx2/src/nickserv.c:1.10 srvx2/src/nickserv.c:1.11 --- srvx2/src/nickserv.c:1.10 Sun Nov 21 10:26:26 2004 +++ srvx2/src/nickserv.c Mon Dec 6 23:40:58 2004 @@ -290,9 +290,39 @@ { "NSMSG_SET_TITLE", "$bTITLE: $b%s" }, { "NSMSG_SET_FAKEHOST", "$bFAKEHOST: $b%s" }, { "NSEMAIL_ACTIVATION_SUBJECT", "Account verification for %s" }, - { "NSEMAIL_ACTIVATION_BODY", "This email has been sent to verify that this email address belongs to the person who tried to register an account on %1$s. Your cookie is:\n %2$s\nTo verify your email address and complete the account registration, log on to %1$s and type the following command:\n /msg %3$s@%4$s COOKIE %5$s %2$s\nThis command is only used once to complete your account registration, and never again. Once you have run this command, you will need to authenticate everytime you reconnect to the network. To do this, you will have to type this command every time you reconnect:\n /msg %3$s@%4$s AUTH %5$s your-password\n Please remember to fill in 'your-password' with the actual password you gave to us when you registered.\n\nIf you did NOT request this account, you do not need to do anything. Please contact the %1$s staff if you have questions, and be sure to check our website." }, + { "NSEMAIL_ACTIVATION_BODY", + "This email has been sent to verify that this email address belongs to the person who tried to register an account on %1$s. Your cookie is:\n" + "%2$s\n" + "To verify your email address and complete the account registration, log on to %1$s and type the following command:\n" + "/msg %3$s@%4$s COOKIE %5$s %2$s\n" + "This command is only used once to complete your account registration, and never again. Once you have run this command, you will need to authenticate everytime you reconnect to the network. To do this, you will have to type this command every time you reconnect:\n" + "/msg %3$s@%4$s AUTH %5$s your-password\n" + "(Please remember to fill in 'your-password' with the actual password you gave to us when you registered.)\n" + "OR configure Login-On-Connect (see http://www.afternet.org/login-on-connect for instructions) to connect pre-logged in every time.\n" + "\n" + "If you did NOT request this account, you do not need to do anything.\n" + "Please contact the %1$s staff if you have questions, and be sure to check our website." }, + { "NSEMAIL_ACTIVATION_BODY_WEB", + "This email has been sent to verify that this email address belongs to the person who tried to register an account on %1$s. Your cookie is:\n" + "%2$s\n" + "To verify your email address and complete the account registration, visit the following URL:\n" + "http://www.afternet.org/play/index.php?option=com_registration&task=activate&username=%5$s&cookie=%2$s\n" + "\n" + "If you did NOT request this account, you do not need to do anything.\n" + "Please contact the %1$s staff if you have questions, and be sure to check our website." }, { "NSEMAIL_PASSWORD_CHANGE_SUBJECT", "Password change verification on %s" }, - { "NSEMAIL_PASSWORD_CHANGE_BODY", "This email has been sent to verify that you wish to change the password on your account %5$s. Your cookie is %2$s.\nTo complete the password change, log on to %1$s and type the following command:\n /msg %3$s@%4$s COOKIE %5$s %2$s\nIf you did NOT request your password to be changed, you do not need to do anything. Please contact the %1$s staff if you have questions." }, + { "NSEMAIL_PASSWORD_CHANGE_BODY", + "This email has been sent to verify that you wish to change the password on your account %5$s. Your cookie is %2$s.\n" + "To complete the password change, log on to %1$s and type the following command:\n" + "/msg %3$s@%4$s COOKIE %5$s %2$s\n" + "If you did NOT request your password to be changed, you do not need to do anything.\n" + "Please contact the %1$s staff if you have questions." }, + { "NSEMAIL_PASSWORD_CHANGE_BODY_WEB", + "This email has been sent to verify that you wish to change the password on your account %5$s. Your cookie is %2$s.\n" + "To complete the password change, click the following URL:\n" + "http://www.afternet.org/play/index.php?option=com_registration&task=passcookie&username=%5$s&cookie=%2$s\n" + "If you did NOT request your password to be changed, you do not need to do anything.\n" + "Please contact the %1$s staff if you have questions." }, { "NSEMAIL_EMAIL_CHANGE_SUBJECT", "Email address change verification for %s" }, { "NSEMAIL_EMAIL_CHANGE_BODY_NEW", "This email has been sent to verify that your email address belongs to the same person as account %5$s on %1$s. The SECOND HALF of your cookie is %2$.*6$s.\nTo verify your address as associated with this account, log on to %1$s and type the following command:\n /msg %3$s@%4$s COOKIE %5$s ?????%2$.*6$s\n(Replace the ????? with the FIRST HALF of the cookie, as sent to your OLD email address.)\nIf you did NOT request this email address to be associated with this account, you do not need to do anything. Please contact the %1$s staff if you have questions." }, { "NSEMAIL_EMAIL_CHANGE_BODY_OLD", "This email has been sent to verify that you want to change your email for account %5$s on %1$s from this address to %7$s. The FIRST HALF of your cookie is %2$.*6$s\nTo verify your new address as associated with this account, log on to %1$s and type the following command:\n /msg %3$s@%4$s COOKIE %5$s %2$.*6$s?????\n(Replace the ????? with the SECOND HALF of the cookie, as sent to your NEW email address.)\nIf you did NOT request this change of email address, you do not need to do anything. Please contact the %1$s staff if you have questions." }, @@ -997,7 +1027,7 @@ } static void -nickserv_make_cookie(struct userNode *user, struct handle_info *hi, enum cookie_type type, const char *cookie_data) +nickserv_make_cookie(struct userNode *user, struct handle_info *hi, enum cookie_type type, const char *cookie_data, int weblink) { struct handle_cookie *cookie; char subject[128], body[4096], *misc; @@ -1026,7 +1056,12 @@ send_message(user, nickserv, "NSMSG_USE_COOKIE_REGISTER"); fmt = handle_find_message(hi, "NSEMAIL_ACTIVATION_SUBJECT"); snprintf(subject, sizeof(subject), fmt, netname); - fmt = handle_find_message(hi, "NSEMAIL_ACTIVATION_BODY"); + + if(weblink) + fmt = handle_find_message(hi, "NSEMAIL_ACTIVATION_BODY_WEB"); + else + fmt = handle_find_message(hi, "NSEMAIL_ACTIVATION_BODY"); + snprintf(body, sizeof(body), fmt, netname, cookie->cookie, nickserv->nick, self->name, hi->handle); first_time = 1; break; @@ -1034,7 +1069,10 @@ send_message(user, nickserv, "NSMSG_USE_COOKIE_RESETPASS"); fmt = handle_find_message(hi, "NSEMAIL_PASSWORD_CHANGE_SUBJECT"); snprintf(subject, sizeof(subject), fmt, netname); - fmt = handle_find_message(hi, "NSEMAIL_PASSWORD_CHANGE_BODY"); + if(weblink) + fmt = handle_find_message(hi, "NSEMAIL_PASSWORD_CHANGE_BODY_WEB"); + else + fmt = handle_find_message(hi, "NSEMAIL_PASSWORD_CHANGE_BODY"); snprintf(body, sizeof(body), fmt, netname, cookie->cookie, nickserv->nick, self->name, hi->handle); break; case EMAIL_CHANGE: @@ -1118,7 +1156,7 @@ { struct handle_info *hi; const char *email_addr, *password; - int no_auth; + int no_auth, weblink; if (!IsOper(user) && !dict_size(nickserv_handle_dict)) { /* Require the first handle registered to belong to someone +o. */ @@ -1151,6 +1189,7 @@ return 0; } + if ((argc >= 4) && nickserv_conf.email_enabled) { struct handle_info_list *hil; const char *str; @@ -1193,6 +1232,13 @@ password = argv[2]; argv[2] = "****"; + /* Webregister hack - send URL instead of IRC cookie + * commands in email + */ + if((argc >= 5) && !strcmp(argv[4],"WEBLINK")) + weblink = 1; + else + weblink = 0; if (!(hi = nickserv_register(user, user, argv[1], password, no_auth))) return 0; /* Add any masks they should get. */ @@ -1216,7 +1262,7 @@ /* If they need to do email verification, tell them. */ if (no_auth) - nickserv_make_cookie(user, hi, ACTIVATION, hi->passwd); + nickserv_make_cookie(user, hi, ACTIVATION, hi->passwd, weblink); /* Set registering flag.. */ user->modes |= FLAGS_REGISTERING; @@ -1788,7 +1834,7 @@ reply("MSG_SET_EMAIL_ADDR"); return 0; } - nickserv_make_cookie(user, hi, ALLOWAUTH, NULL); + nickserv_make_cookie(user, hi, ALLOWAUTH, NULL, 0); return 1; } @@ -1818,8 +1864,13 @@ { struct handle_info *hi; char crypted[MD5_CRYPT_LENGTH]; + int weblink; NICKSERV_MIN_PARMS(3); + if(argc >= 4 && !strcmp(argv[3], "WEBLINK")) + weblink = 1; + else + weblink = 0; if (user->handle_info) { reply("NSMSG_ALREADY_AUTHED", user->handle_info->handle); return 0; @@ -1841,7 +1892,7 @@ } cryptpass(argv[2], crypted); argv[2] = "****"; - nickserv_make_cookie(user, hi, PASSWORD_CHANGE, crypted); + nickserv_make_cookie(user, hi, PASSWORD_CHANGE, crypted, weblink); return 1; } @@ -2378,7 +2429,7 @@ if (hi->email_addr && !irccasecmp(hi->email_addr, argv[1])) send_message(user, nickserv, "NSMSG_EMAIL_SAME"); else if (!override) - nickserv_make_cookie(user, hi, EMAIL_CHANGE, argv[1]); + nickserv_make_cookie(user, hi, EMAIL_CHANGE, argv[1], 0); else { nickserv_set_email_addr(hi, argv[1]); if (hi->cookie) ----------------------- End of diff ----------------------- |
From: Alex S. <ru...@us...> - 2004-12-02 07:01:43
|
Committer : Alex Schumann <ru...@us...> CVSROOT : /cvsroot/x2serv Module : x2 Commit time: 2004-12-02 07:01:22 UTC Modified files: source/misc.c Log message: Pipe (|) was not being treated as acceptable in hostmasks, but it is. Author: Log message: ---------------------- diff included ---------------------- Index: x2/source/misc.c diff -u x2/source/misc.c:1.53 x2/source/misc.c:1.54 --- x2/source/misc.c:1.53 Sun Sep 5 02:08:42 2004 +++ x2/source/misc.c Wed Dec 1 23:01:11 2004 @@ -1403,7 +1403,7 @@ switch (Address[i]) { case '*': case '?': case '+': case '-': case '.': case '\\': case '^': case '_': case '{': case '[': case '}': case ']': case '~': - case '\'': case '`': + case '\'': case '`': case '|': continue; case '!': { if (gotexcl || gotat) ----------------------- End of diff ----------------------- |
From: Alex S. <ru...@us...> - 2004-11-21 18:28:10
|
Committer : Alex Schumann <ru...@us...> CVSROOT : /cvsroot/x2serv Module : srvx2 Commit time: 2004-11-21 18:26:37 UTC Modified files: src/nickserv.c Log message: some debugging code Author: Log message: ---------------------- diff included ---------------------- Index: srvx2/src/nickserv.c diff -u srvx2/src/nickserv.c:1.9 srvx2/src/nickserv.c:1.10 --- srvx2/src/nickserv.c:1.9 Sun Nov 21 00:57:28 2004 +++ srvx2/src/nickserv.c Sun Nov 21 10:26:26 2004 @@ -3718,6 +3718,7 @@ } #else hi = dict_find(nickserv_id_dict, stamp, NULL); + log_module(MAIN_LOG, LOG_WARNING, "Using non-P10 code in accounts, not tested at all!"); #endif if (hi) { ----------------------- End of diff ----------------------- |