diff -uNrd fq-ircd-1.2c/include/numeric.h fq-ircd-1.2d/include/numeric.h --- fq-ircd-1.2c/include/numeric.h 2003-08-15 17:45:31.000000000 +0200 +++ fq-ircd-1.2c/include/numeric.h 2003-11-13 20:04:55.000000000 +0100 @@ -361,6 +361,7 @@ #define ERR_CHANBANREASON 485 #define ERR_NONONREG 486 #define ERR_MSGSERVICES 487 +#define ERR_REGTOLIST 488 #define ERR_NOOPERHOST 491 diff -uNrd fq-ircd-1.2c/include/patchlevel.h fq-ircd-1.2d/include/patchlevel.h --- fq-ircd-1.2c/include/patchlevel.h 2003-10-25 20:11:53.000000000 +0200 +++ fq-ircd-1.2c/include/patchlevel.h 2003-11-13 20:09:15.000000000 +0100 @@ -35,7 +35,7 @@ #define MINOR 4 #define PATCH 35 -#define PATCH1 "+freequest(1.2c)" +#define PATCH1 "+freequest(1.2c+reglist)" #ifndef INET6 #define PATCH2 "" diff -uNrd fq-ircd-1.2c/src/channel.c fq-ircd-1.2d/src/channel.c --- fq-ircd-1.2c/src/channel.c 2003-10-23 20:30:16.000000000 +0200 +++ fq-ircd-1.2c/src/channel.c 2003-11-13 20:17:24.000000000 +0100 @@ -2426,6 +2426,15 @@ NULL }; +#ifdef UMODE_R_TO_LIST + /* Require clients to have registered to be able to view /list */ + if (!IsRegNick(sptr)) { + sendto_one(sptr, rpl_str(ERR_REGTOLIST), me.name, sptr->name); + sendto_one(sptr, rpl_str(RPL_LISTEND), me.name, parv[0]); + return 0; + } +#endif + /* Some starting san checks -- No interserver lists allowed. */ if (cptr != sptr || !sptr->user) return 0; diff -uNrd fq-ircd-1.2c/src/s_err.c fq-ircd-1.2d/src/s_err.c --- fq-ircd-1.2c/src/s_err.c 2003-08-15 20:15:03.000000000 +0200 +++ fq-ircd-1.2c/src/s_err.c 2003-11-13 20:04:54.000000000 +0100 @@ -556,8 +556,9 @@ /* 486 ERR_NONONREG */ ":%s 486 %s :You must identify to a " "registered nick to private message %s", /* 487 ERR_MSGSERVICES */ ":%s 487 %s :Error! \"/msg %s\" is no longer supported. " - "Use \"/msg %s@services.dal.net\" or \"/%s\" instead.", - /* 488 */ NULL, + "Use \"/msg %s@services.freequest.net\" or \"/%s\" instead.", + /* 488 ERR_REGTOLIST */ ":%s 488 %s :You must identify to a " + "registered nick to view the channel list", /* 489 */ NULL, /* In use by Undernet */ /* 490 */ NULL, /* 491 ERR_NOOPERHOST */ ":%s 491 %s :No O-lines for your host",