[IPv6 IRC-DEV] [CVS] Module ipv6: Change committed
Brought to you by:
zolty
|
From: Toni G. <zo...@us...> - 2002-12-17 16:17:08
|
CVSROOT : /cvsroot/irc-dev
Module : ipv6
Commit time: 2002-12-17 16:17:04 UTC
Modified files:
.patches CAMBIOS.Ipv6 CAMBIOS2_10_H_06 Makefile.in todo.jcea
include/numeric.h include/patchlevel.h include/s_bsd.h
include/struct.h ircd/channel.c ircd/ircd.c ircd/res.c
ircd/s_auth.c ircd/s_bsd.c ircd/s_err.c ircd/s_socks.c
ircd/s_user.c
Added files:
ircd/crypt/.cvsignore
Log message:
Sincronizacion u2.10.H.06.28
---------------------- diff included ----------------------
Index: ipv6/.patches
diff -u ipv6/.patches:1.3 ipv6/.patches:1.4
--- ipv6/.patches:1.3 Sat Nov 9 06:52:54 2002
+++ ipv6/.patches Tue Dec 17 08:16:48 2002
@@ -1 +1 @@
-u2.10.H.06.13
+u2.10.H.06.28
Index: ipv6/CAMBIOS.Ipv6
diff -u ipv6/CAMBIOS.Ipv6:1.13 ipv6/CAMBIOS.Ipv6:1.14
--- ipv6/CAMBIOS.Ipv6:1.13 Tue Dec 17 02:40:57 2002
+++ ipv6/CAMBIOS.Ipv6 Tue Dec 17 08:16:48 2002
@@ -1,3 +1,7 @@
+* 2002/12/17 zo...@ir... INET6.14
+-----------------------------------------------------------------------
+Actualizacion IRCD hasta el u2.10.H.06.28.
+
* 2002/12/17 zo...@ir... INET6.13
-----------------------------------------------------------------------
Compila con VIRTUAL_HOST y PROXY_PROTECTION activados y desactivados :)
Index: ipv6/CAMBIOS2_10_H_06
diff -u ipv6/CAMBIOS2_10_H_06:1.1 ipv6/CAMBIOS2_10_H_06:1.2
--- ipv6/CAMBIOS2_10_H_06:1.1 Sat Nov 9 06:52:54 2002
+++ ipv6/CAMBIOS2_10_H_06 Tue Dec 17 08:16:48 2002
@@ -1,4 +1,103 @@
-$Id: CAMBIOS2_10_H_06,v 1.1 2002/11/09 14:52:54 zolty Exp $
+$Id: CAMBIOS2_10_H_06,v 1.2 2002/12/17 16:16:48 zolty Exp $
+
+* 2002/12/16 jc...@ar... (u2.10.H.06.28) FEATURE
+ -----------------------------------------------------------------------
+ Se toca la funcion "can_send()" para que un nodo pueda enviar a un
+ canal. Antes no se podia hacer si el canal estaba +n.
+
+* 2002/12/16 jc...@ar... (u2.10.H.06.27) FEATURE
+ -----------------------------------------------------------------------
+ Cuando se invita a alguien a un canal, lo ven los "ops" de dicho canal.
+
+* 2002/12/15 n3...@9p... (u2.10.H.06.26) FEATURE
+ -----------------------------------------------------------------------
+ Primera parte del parche para permitir el uso del caracter '~' en los
+ nicks. Permitimos nicks con '~' de otros servidores, pero no locales.
+
+* 2002/12/12 jc...@ar... (u2.10.H.06.25) FIX
+ -----------------------------------------------------------------------
+ Bajo circunstancias poco claras, y si tenemos el servidor configurado
+ para que use "poll()" en vez de "select()" (lo normal), puede darse
+ el caso de intentar hacer un
+
+ if (DoingSocks(cptr) || DoingDNS(cptr) || DoingAuth(cptr)
+
+ de conexiones NO locales, con lo que fallan los "assert()". Es algo muy
+ esporadico (en Gaia, cada 24 horas de funcionamiento), pero que
+ "ocurre".
+
+ Esto, en realidad, es un bug del IRCD original, pero que no se ha
+ "detectado" hasta ahora.
+
+* 2002/12/11 ni...@ir... (u2.10.H.06.24) FIX
+ -----------------------------------------------------------------------
+ Si se hace in INVITE a un canal inexistente, se devuelve el error de
+ "No such channel" en vez del de "You're not on that channel".
+
+* 2002/12/11 jc...@ar... (u2.10.H.06.23) FIX
+ -----------------------------------------------------------------------
+ Se solucionan un par de detalles cuestionables del parche anterior.
+
+* 2002/12/11 zo...@ir... (u2.10.H.06.22) FEATURE
+ -----------------------------------------------------------------------
+ Ampliacion del comando INVITE. Si se invoca sin parametros, nos muestra
+ la lista de invitaciones que tenemos y que no hemos usado todavia para
+ entrar. Esta lista siempre ha existido y hasta ahora no era visible.
+
+ Se utilizan los siguientes numericos, utilizados en Undernet.
+ 346 => RPL_INVITELIST
+ 347 => RPL_ENDOFINVITELIST
+
+* 2002/12/10 jc...@ar... (u2.10.H.06.21) CLEANUP
+ -----------------------------------------------------------------------
+ "IsLocal()" y "MyConnect()" son redundantes. Ademas, "IsLocal()" no
+ funciona correctamente en los primeros instantes de una conexion.
+
+ Elimino "IsLocal()".
+
+* 2002/12/10 jc...@ar... (u2.10.H.06.20) FIX
+ -----------------------------------------------------------------------
+ Cuando se configura el IRCD para que se ejecute bajo un usuario/grupo,
+ el grupo no se configuraba correctamente.
+
+* 2002/12/09 jc...@ar... (u2.10.H.06.19) CLEANUP
+ -----------------------------------------------------------------------
+ Cambio "s_auth.c" para que use macros en la manipulacion de
+ "FLAGS_AUTH" y "FLAGS_WRAUTH".
+
+* 2002/12/09 jc...@ar... (u2.10.H.06.18) CLEANUP
+ -----------------------------------------------------------------------
+ Aprovechando el parche "u2.10.H.06.15", migro el flag "FLAGS_WRAUTH".
+
+* 2002/12/09 jc...@ar... (u2.10.H.06.17) CLEANUP
+ -----------------------------------------------------------------------
+ Aprovechando el parche "u2.10.H.06.15", migro el flag "FLAGS_AUTH".
+
+* 2002/12/09 jc...@ar... (u2.10.H.06.16) CLEANUP
+ -----------------------------------------------------------------------
+ Aprovechando el parche "u2.10.H.06.15", migro el flag "FLAGS_DOINGDNS".
+
+ En el "assert()" uso "MyConnect()", porque "IsLocal()" no esta
+ inicializado aun...
+
+* 2002/12/09 jc...@ar... (u2.10.H.06.15) CLEANUP
+ -----------------------------------------------------------------------
+ La variable de "flags" ya tiene ocupados sus 32 bits. En vez de utilizar
+ una variable de 64 bits, divido los "flags" en dos grupos de 32 bits.
+ Un grupo, el actual, existe siempre. El otro grupo de 32 bits SOLO
+ existira para conexiones LOCALES.
+
+ De esta forma se reduce el consumo de memoria, ya que las conexiones
+ remotas usan 32 bits, en vez de 64 bits.
+
+ Hay que ir migrando los flags poco a poco, uno a uno. Hay que usar
+ "assert()" (de forma temporal) para comprobar que se accede
+ a ese "flag" **SOLO** cuando el usuario es local.
+
+* 2002/12/04 ni...@ir... (u2.10.H.06.14) FEATURE
+ -----------------------------------------------------------------------
+ Si un usuario sin +r hace un INVITE a un usuario +R no se lo permite.
+ Si el usuario que hace el INVITE, por contra, tiene +o, si le deja.
* 2002/10/22 jc...@ar... (u2.10.H.06.13) FIX
-----------------------------------------------------------------------
Index: ipv6/Makefile.in
diff -u ipv6/Makefile.in:1.4 ipv6/Makefile.in:1.5
--- ipv6/Makefile.in:1.4 Mon Sep 30 08:01:59 2002
+++ ipv6/Makefile.in Tue Dec 17 08:16:49 2002
@@ -126,6 +126,6 @@
# Indent all headers and source files:
indent:
- @test "`indent --version`" = "GNU indent 2.2.8" || \
- (echo "You need GNU indent 2.2.8a; See doc/readme.indent" && exit -1);
+ @test "`indent --version`" = "GNU indent 2.2.7" || \
+ (echo "You need GNU indent 2.2.7; See doc/readme.indent" && exit -1);
VERSION_CONTROL=none indent include/*.h ircd/*.c
Index: ipv6/include/numeric.h
diff -u ipv6/include/numeric.h:1.3 ipv6/include/numeric.h:1.4
--- ipv6/include/numeric.h:1.3 Mon Sep 30 08:02:00 2002
+++ ipv6/include/numeric.h Tue Dec 17 08:16:50 2002
@@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: numeric.h,v 1.3 2002/09/30 15:02:00 zolty Exp $
+ * $Id: numeric.h,v 1.4 2002/12/17 16:16:50 zolty Exp $
*/
#ifndef NUMERIC_H
@@ -277,8 +277,8 @@
/* RPL_SUMMONING 342 removed from RFC1459 */
#define RPL_MSGONLYREG 342 /* Hispano extension */
-/* RPL_INVITELIST 346 IRCnet & Undernet extension */
-/* RPL_ENDOFINVITELIST 347 IRCnet & Undernet extension */
+#define RPL_INVITELIST 346 /* IRCnet & Undernet extension */
+#define RPL_ENDOFINVITELIST 347 /* IRCnet & Undernet extension */
/* RPL_EXCEPTLIST 348 IRCnet extension */
/* RPL_ENDOFEXCEPTLIST 349 IRCnet extension */
Index: ipv6/include/patchlevel.h
diff -u ipv6/include/patchlevel.h:1.14 ipv6/include/patchlevel.h:1.15
--- ipv6/include/patchlevel.h:1.14 Tue Dec 17 02:40:58 2002
+++ ipv6/include/patchlevel.h Tue Dec 17 08:16:50 2002
@@ -49,7 +49,7 @@
\
\
\
- "+INET6.13"
+ "+INET6.14"
/*
* Deliberate empty lines
Index: ipv6/include/s_bsd.h
diff -u ipv6/include/s_bsd.h:1.5 ipv6/include/s_bsd.h:1.6
--- ipv6/include/s_bsd.h:1.5 Mon Sep 30 08:02:00 2002
+++ ipv6/include/s_bsd.h Tue Dec 17 08:16:50 2002
@@ -20,10 +20,6 @@
#define FLAGS_CLOSING 0x0400 /* set when closing to suppress errors */
#define FLAGS_LISTEN 0x0800 /* used to mark clients which we listen() on */
#define FLAGS_CHKACCESS 0x1000 /* ok to check clients access if set */
-#define FLAGS_DOINGDNS 0x2000 /* client is waiting for a DNS response */
-#define FLAGS_AUTH 0x4000 /* client is waiting on rfc931 response */
-#define FLAGS_WRAUTH 0x8000 /* set if we havent writen to ident server */
-#define FLAGS_LOCAL 0x00010000 /* set for local clients */
#define FLAGS_GOTID 0x00020000 /* successful ident lookup achieved */
#define FLAGS_DOID 0x00040000 /* I-lines say must use ident return */
#define FLAGS_NONL 0x00080000 /* No \n in buffer */
@@ -42,6 +38,13 @@
#define MODE_ISWATCH 0x80000000 /* Se enviara WATCH para este nick */
+/* Flags LOCALES */
+#define FLAGS_DOINGDNS 0x00002000 /* client is waiting for a DNS response */
+#define FLAGS_AUTH 0x00004000 /* client is waiting on rfc931 response */
+#define FLAGS_WRAUTH 0x00008000 /* set if we havent writen to ident server */
+
+
+
#define SEND_UMODES \
(FLAGS_INVISIBLE|FLAGS_OPER|FLAGS_WALLOP|FLAGS_DEAF|FLAGS_CHSERV|FLAGS_DEBUG)
@@ -64,7 +67,6 @@
#define IsUnixSocket(x) ((x)->flags & FLAGS_UNIX)
#define IsListening(x) ((x)->flags & FLAGS_LISTEN)
#define DoAccess(x) ((x)->flags & FLAGS_CHKACCESS)
-#define IsLocal(x) ((x)->flags & FLAGS_LOCAL)
#define IsDead(x) ((x)->flags & FLAGS_DEADSOCKET)
#define IsJunction(x) ((x)->flags & FLAGS_JUNCTION)
#define IsBurst(x) ((x)->flags & FLAGS_BURST)
@@ -80,10 +82,13 @@
#define SetWallops(x) ((x)->flags |= FLAGS_WALLOP)
#define SetDebug(x) ((x)->flags |= FLAGS_DEBUG)
#define SetUnixSock(x) ((x)->flags |= FLAGS_UNIX)
-#define SetDNS(x) ((x)->flags |= FLAGS_DOINGDNS)
-#define DoingDNS(x) ((x)->flags & FLAGS_DOINGDNS)
+#define SetDNS(x) (assert(MyConnect(x)),((x)->flags_local |= FLAGS_DOINGDNS))
+#define DoingDNS(x) (assert(MyConnect(x)),((x)->flags_local & FLAGS_DOINGDNS))
+#define SetAuth(x) (assert(MyConnect(x)),((x)->flags_local |= FLAGS_AUTH))
+#define SetWRAuth(x) (assert(MyConnect(x)),((x)->flags_local |= FLAGS_WRAUTH))
#define SetAccess(x) ((x)->flags |= FLAGS_CHKACCESS)
-#define DoingAuth(x) ((x)->flags & FLAGS_AUTH)
+#define DoingAuth(x) (assert(MyConnect(x)),((x)->flags_local & FLAGS_AUTH))
+#define DoingWRAuth(x) (assert(MyConnect(x)),((x)->flags_local & FLAGS_WRAUTH))
#define NoNewLine(x) ((x)->flags & FLAGS_NONL)
#define DoPing(x) ((x)->flags & FLAGS_PING)
#define SetAskedPing(x) ((x)->flags |= FLAGS_ASKEDPING)
@@ -100,8 +105,9 @@
#define ClearInvisible(x) ((x)->flags &= ~FLAGS_INVISIBLE)
#define ClearWallops(x) ((x)->flags &= ~FLAGS_WALLOP)
#define ClearDebug(x) ((x)->flags &= ~FLAGS_DEBUG)
-#define ClearDNS(x) ((x)->flags &= ~FLAGS_DOINGDNS)
-#define ClearAuth(x) ((x)->flags &= ~FLAGS_AUTH)
+#define ClearDNS(x) (assert(MyConnect(x)),((x)->flags_local &= ~FLAGS_DOINGDNS))
+#define ClearAuth(x) (assert(MyConnect(x)),((x)->flags_local &= ~FLAGS_AUTH))
+#define ClearWRAuth(x) (assert(MyConnect(x)),((x)->flags_local &= ~FLAGS_WRAUTH))
#define ClearAccess(x) ((x)->flags &= ~FLAGS_CHKACCESS)
#define ClearPing(x) ((x)->flags &= ~FLAGS_PING)
#define ClearAskedPing(x) ((x)->flags &= ~FLAGS_ASKEDPING)
Index: ipv6/include/struct.h
diff -u ipv6/include/struct.h:1.3 ipv6/include/struct.h:1.4
--- ipv6/include/struct.h:1.3 Thu Sep 12 12:02:14 2002
+++ ipv6/include/struct.h Tue Dec 17 08:16:50 2002
@@ -150,6 +150,8 @@
char sockhost[HOSTLEN + 1]; /* This is the host name from the socket and
after which the connection was accepted. */
char passwd[PASSWDLEN + 1];
+
+ unsigned int flags_local; /* Local client flags */
};
struct Server {
Index: ipv6/ircd/channel.c
diff -u ipv6/ircd/channel.c:1.7 ipv6/ircd/channel.c:1.8
--- ipv6/ircd/channel.c:1.7 Sat Nov 9 06:52:54 2002
+++ ipv6/ircd/channel.c Tue Dec 17 08:16:51 2002
@@ -48,7 +48,7 @@
#include "sprintf_irc.h"
#include "querycmds.h"
-RCSTAG_CC("$Id: channel.c,v 1.7 2002/11/09 14:52:54 zolty Exp $");
+RCSTAG_CC("$Id: channel.c,v 1.8 2002/12/17 16:16:51 zolty Exp $");
aChannel *channel = NullChn;
@@ -544,7 +544,7 @@
Reg1 Link *lp;
int flag;
- if ((IsChannelService(cptr))
+ if (IsChannelService(cptr) || IsServer(cptr)
#if defined(BDD)
|| (IsServicesBot(cptr))
#endif
@@ -4442,7 +4442,7 @@
if (!topic) /* only asking for topic */
{
- if (chptr->topic)
+ if (!chptr->topic)
sendto_one(sptr, rpl_str(RPL_NOTOPIC), me.name, parv[0], chptr->chname);
else
{
@@ -4527,6 +4527,23 @@
aClient *acptr;
aChannel *chptr;
+ if (parc < 2)
+ {
+ Link *lp;
+ /*
+ * Listar los canales donde tienes invitacion
+ * -zoltan
+ */
+
+ assert(MyUser(sptr));
+
+ for (lp = sptr->user->invited; lp; lp = lp->next)
+ sendto_one(sptr, rpl_str(RPL_INVITELIST), me.name, sptr->name,
+ lp->value.chptr->chname);
+ sendto_one(sptr, rpl_str(RPL_ENDOFINVITELIST), me.name, sptr->name);
+ return 0;
+ }
+
if (parc < 3 || *parv[2] == '\0')
{
sendto_one(sptr, err_str(ERR_NEEDMOREPARAMS), me.name, parv[0], "INVITE");
@@ -4546,6 +4563,13 @@
return 0;
}
+ if (MyUser(sptr) && IsMsgOnlyReg(acptr) && !IsNickRegistered(sptr)
+ && !IsAnOper(sptr))
+ {
+ sendto_one(sptr, err_str(ERR_NONONREG), me.name, parv[0], acptr->name);
+ return 0;
+ }
+
if (MyUser(sptr))
clean_channelname(parv[2]);
else if (IsLocalChannel(parv[2]))
@@ -4640,7 +4664,15 @@
}
if (MyConnect(acptr))
+ {
add_invite(acptr, chptr);
+ sendto_lchanops_butone(&me, &me, chptr,
+ ":%s NOTICE @%s :%s invited %s into channel %s", me.name, parv[2],
+ parv[0], acptr->name, parv[2]);
+ sendto_chanopsserv_butone(&me, &me, chptr,
+ ":%s WC %s :%s invited %s into channel %s", me.name, parv[2], parv[0],
+ acptr->name, parv[2]);
+ }
sendto_prefix_one(acptr, sptr, ":%s INVITE %s :%s", parv[0],
acptr->name, chptr->chname);
Index: ipv6/ircd/crypt/.cvsignore
diff -u /dev/null ipv6/ircd/crypt/.cvsignore:1.1
--- /dev/null Tue Dec 17 08:17:05 2002
+++ ipv6/ircd/crypt/.cvsignore Tue Dec 17 08:16:54 2002
@@ -0,0 +1,2 @@
+mkpasswd
+.*
\ No newline at end of file
Index: ipv6/ircd/ircd.c
diff -u ipv6/ircd/ircd.c:1.4 ipv6/ircd/ircd.c:1.5
--- ipv6/ircd/ircd.c:1.4 Mon Sep 16 05:22:13 2002
+++ ipv6/ircd/ircd.c Tue Dec 17 08:16:51 2002
@@ -46,8 +46,9 @@
#ifdef CHROOTDIR
#include <resolv.h>
#endif
-#ifdef VIRTUAL_HOST
-#endif
+
+#include <assert.h>
+
#include "h.h"
#include "res.h"
#include "struct.h"
@@ -72,7 +73,7 @@
#include "s_bdd.h"
#include "inet.h"
-RCSTAG_CC("$Id: ircd.c,v 1.4 2002/09/16 12:22:13 zolty Exp $");
+RCSTAG_CC("$Id: ircd.c,v 1.5 2002/12/17 16:16:51 zolty Exp $");
extern void init_counters(void);
@@ -766,8 +767,8 @@
/* run as a specified user */
fprintf(stderr, "WARNING: running ircd with uid = %d\n", IRC_UID);
fprintf(stderr, " changing to gid %d.\n", IRC_GID);
- setuid(IRC_UID);
setgid(IRC_GID);
+ setuid(IRC_UID);
#else
/* check for setuid root as usual */
fprintf(stderr,
Index: ipv6/ircd/res.c
diff -u ipv6/ircd/res.c:1.5 ipv6/ircd/res.c:1.6
--- ipv6/ircd/res.c:1.5 Mon Sep 16 08:47:29 2002
+++ ipv6/ircd/res.c Tue Dec 17 08:16:51 2002
@@ -17,6 +17,9 @@
#if !defined(dn_skipname) && !defined(__dn_skipname)
extern int dn_skipname(const unsigned char *, const unsigned char *);
#endif
+
+#include <assert.h>
+
#include "h.h"
#include "res.h"
#include "struct.h"
@@ -32,7 +35,7 @@
#include "sprintf_irc.h"
#include "inet.h"
-RCSTAG_CC("$Id: res.c,v 1.5 2002/09/16 15:47:29 zolty Exp $");
+RCSTAG_CC("$Id: res.c,v 1.6 2002/12/17 16:16:51 zolty Exp $");
#define MAXPACKET 1024
Index: ipv6/ircd/s_auth.c
diff -u ipv6/ircd/s_auth.c:1.4 ipv6/ircd/s_auth.c:1.5
--- ipv6/ircd/s_auth.c:1.4 Thu Sep 12 12:19:00 2002
+++ ipv6/ircd/s_auth.c Tue Dec 17 08:16:52 2002
@@ -36,6 +36,9 @@
#ifdef USE_SYSLOG
#include <syslog.h>
#endif
+
+#include <assert.h>
+
#include "h.h"
#include "res.h"
#include "struct.h"
@@ -49,7 +52,7 @@
#include "s_auth.h"
#include "sprintf_irc.h"
-RCSTAG_CC("$Id: s_auth.c,v 1.4 2002/09/12 19:19:00 zolty Exp $");
+RCSTAG_CC("$Id: s_auth.c,v 1.5 2002/12/17 16:16:52 zolty Exp $");
#define IDENT_START ":%s NOTICE IDENT_LOOKUP :*** Checking Ident\r\n"
#define IDENT_OK ":%s NOTICE IDENT_LOOKUP :*** Got ident response\r\n"
@@ -170,7 +173,8 @@
return;
}
alarm((unsigned)0);
- cptr->flags |= (FLAGS_WRAUTH | FLAGS_AUTH);
+ SetAuth(cptr);
+ SetWRAuth(cptr);
if (cptr->authfd > highest_fd)
highest_fd = cptr->authfd;
return;
@@ -218,7 +222,8 @@
while (!loc_clients[highest_fd])
highest_fd--;
cptr->authfd = -1;
- cptr->flags &= ~FLAGS_AUTH;
+
+ ClearAuth(cptr);
if (IsUserPort(cptr))
{
@@ -233,7 +238,7 @@
#endif /* PROXY_PROTECTION */
SetAccess(cptr);
}
- cptr->flags &= ~FLAGS_WRAUTH;
+ ClearWRAuth(cptr);
return;
}
Index: ipv6/ircd/s_bsd.c
diff -u ipv6/ircd/s_bsd.c:1.7 ipv6/ircd/s_bsd.c:1.8
--- ipv6/ircd/s_bsd.c:1.7 Tue Dec 17 02:40:58 2002
+++ ipv6/ircd/s_bsd.c Tue Dec 17 08:16:52 2002
@@ -58,6 +58,9 @@
#endif
#include <sys/utsname.h>
#include <resolv.h>
+
+#include <assert.h>
+
#include "h.h"
#include "res.h"
#include "struct.h"
@@ -97,7 +100,7 @@
#include "msg.h"
#endif
-RCSTAG_CC("$Id: s_bsd.c,v 1.7 2002/12/17 10:40:58 zolty Exp $");
+RCSTAG_CC("$Id: s_bsd.c,v 1.8 2002/12/17 16:16:52 zolty Exp $");
#define IP_LOOKUP_START ":%s NOTICE IP_LOOKUP :*** Looking up your hostname...\r\n"
#define IP_LOOKUP_OK ":%s NOTICE IP_LOOKUP :*** Found your hostname.\r\n"
@@ -312,7 +315,7 @@
server.SIN_FAMILY = AFINET;
#ifndef VIRTUAL_HOST
#ifdef INET6
- memset(server.SIN_ADDR.S_ADDR, 0x0, sizeof(struct IN_ADDR));
+ memset(server.SIN_ADDR.S_ADDR, 0x0, sizeof(struct IN_ADDR));
#else
server.SIN_ADDR.S_ADDR = INADDR_ANY;
#endif
@@ -695,14 +698,16 @@
*/
enum AuthorizationCheckResult check_client(aClient *cptr)
{
+#if defined(BDD)
char buf[HOSTLEN + 1 + 1024];
char host_buf[HOSTLEN + 1];
int num_clones = -1;
int iline = 0;
struct db_reg *reg;
+ Reg3 const char *hname;
+#endif
static char sockname[HOSTLEN + 1];
Reg2 struct hostent *hp = NULL;
- Reg3 const char *hname;
Reg3 int i;
enum AuthorizationCheckResult acr;
@@ -834,7 +839,6 @@
#endif
{
ircstp->is_loc++;
- cptr->flags |= FLAGS_LOCAL;
}
return ACR_OK;
}
@@ -1858,7 +1862,7 @@
auth++;
Debug((DEBUG_NOTICE, "auth on %p %d", cptr, i));
RFD_SET(cptr->authfd, &read_set, currfd_index, cptr);
- if (cptr->flags & FLAGS_WRAUTH)
+ if (DoingWRAuth(cptr))
RWFD_SET(cptr->authfd, &write_set, currfd_index);
}
#ifdef PROXY_PROTECTION
@@ -2149,11 +2153,12 @@
if (!(cptr = LOC_CLIENTS(i)) || IsMe(cptr))
continue;
#ifdef USE_POLL
+ if (!(cptr = loc_clients[LOC_FD(i)]))
+ continue;
#ifdef PROXY_PROTECTION
- if (DoingSocks(cptr) || DoingDNS(cptr) || DoingAuth(cptr)
- || !(cptr = loc_clients[LOC_FD(i)]))
+ if (DoingSocks(cptr) || DoingDNS(cptr) || DoingAuth(cptr))
#else
- if (DoingDNS(cptr) || DoingAuth(cptr) || !(cptr = loc_clients[LOC_FD(i)]))
+ if (DoingDNS(cptr) || DoingAuth(cptr))
#endif /* PROXY_PROTECTION */
continue;
#endif /* USE_POLL */
@@ -2652,8 +2657,8 @@
#ifdef VIRTUAL_HOST
#ifdef INET6
memset(from.SIN_ADDR.S_ADDR, 0x0, sizeof(struct IN_ADDR));
- /* provisional, tiene que ser una copia */
- /* FIXME-ZOLTAN */
+ /* provisional, tiene que ser una copia */
+ /* FIXME-ZOLTAN */
#else
from.SIN_ADDR = vserv.SIN_ADDR;
#endif
Index: ipv6/ircd/s_err.c
diff -u ipv6/ircd/s_err.c:1.3 ipv6/ircd/s_err.c:1.4
--- ipv6/ircd/s_err.c:1.3 Sat Nov 9 06:52:54 2002
+++ ipv6/ircd/s_err.c Tue Dec 17 08:16:52 2002
@@ -24,7 +24,7 @@
#include "sprintf_irc.h"
#include "m_watch.h"
-RCSTAG_CC("$Id: s_err.c,v 1.3 2002/11/09 14:52:54 zolty Exp $");
+RCSTAG_CC("$Id: s_err.c,v 1.4 2002/12/17 16:16:52 zolty Exp $");
typedef struct {
int num_val;
@@ -442,9 +442,9 @@
/* 345 */
{0, (char *)NULL},
/* 346 */
- {0, (char *)NULL},
+ {RPL_INVITELIST, ":%s"},
/* 347 */
- {0, (char *)NULL},
+ {RPL_ENDOFINVITELIST, ":End of Invite List"},
/* 348 */
{0, (char *)NULL},
/* 349 */
Index: ipv6/ircd/s_socks.c
diff -u ipv6/ircd/s_socks.c:1.4 ipv6/ircd/s_socks.c:1.5
--- ipv6/ircd/s_socks.c:1.4 Tue Dec 17 02:40:58 2002
+++ ipv6/ircd/s_socks.c Tue Dec 17 08:16:53 2002
@@ -40,6 +40,8 @@
#include <pwd.h>
#include <sys/types.h>
+#include <assert.h>
+
#include "h.h"
#include "res.h"
#include "struct.h"
@@ -60,7 +62,7 @@
#ifdef PROXY_PROTECTION
-RCSTAG_CC("$Id: s_socks.c,v 1.4 2002/12/17 10:40:58 zolty Exp $");
+RCSTAG_CC("$Id: s_socks.c,v 1.5 2002/12/17 16:16:53 zolty Exp $");
#define PROXY_START ":%s NOTICE SOCKS4 :*** Checking WinGate/SocksProxy security...\r\n"
#define PROXY_PASS ":%s NOTICE SOCKS4 :*** Proxy test passed.\r\n"
Index: ipv6/ircd/s_user.c
diff -u ipv6/ircd/s_user.c:1.8 ipv6/ircd/s_user.c:1.9
--- ipv6/ircd/s_user.c:1.8 Sat Nov 9 06:52:54 2002
+++ ipv6/ircd/s_user.c Tue Dec 17 08:16:53 2002
@@ -69,7 +69,7 @@
#include "IPcheck.h"
#include "class.h"
-RCSTAG_CC("$Id: s_user.c,v 1.8 2002/11/09 14:52:54 zolty Exp $");
+RCSTAG_CC("$Id: s_user.c,v 1.9 2002/12/17 16:16:53 zolty Exp $");
/* *INDENT-OFF* */
@@ -953,7 +953,6 @@
aClient *acptr;
aClient *server = NULL;
char nick[NICKLEN + 2];
- char *s;
Link *lp;
time_t lastnick = (time_t) 0;
int differ = 1;
@@ -1010,8 +1009,6 @@
sendto_ops("bad NICK param count for %s from %s", parv[1], cptr->name);
return 0;
}
- if (MyConnect(sptr) && (s = strchr(parv[1], '~')))
- *s = '\0';
strncpy(nick, parv[1], NICKLEN + 1);
nick[sizeof(nick) - 1] = 0;
@@ -1021,7 +1018,8 @@
* creation) then reject it. If from a server and we reject it,
* and KILL it. -avalon 4/4/92
*/
- if (do_nick_name(nick) == 0 || (IsServer(cptr) && strcmp(nick, parv[1])))
+ if (do_nick_name(nick) == 0 || (IsServer(cptr) && strcmp(nick, parv[1]))
+ || (!IsServer(cptr) && strchr(nick, '~')))
{
sendto_one(sptr, err_str(ERR_INVALIDNICKNAME), me.name, parv[0], parv[1]);
Index: ipv6/todo.jcea
diff -u ipv6/todo.jcea:1.3 ipv6/todo.jcea:1.4
--- ipv6/todo.jcea:1.3 Sat Nov 9 06:52:54 2002
+++ ipv6/todo.jcea Tue Dec 17 08:16:49 2002
@@ -1,4 +1,27 @@
-$Id: todo.jcea,v 1.3 2002/11/09 14:52:54 zolty Exp $
+$Id: todo.jcea,v 1.4 2002/12/17 16:16:49 zolty Exp $
+
+16/Dic/02
+Los "invites" deberian estar en la parte local
+de los clientes, ya que solo se guardan los invites
+de los usuarios propios.
+
+14/Dic/02
+Dentro de un an~o volver a considerar la opcion de que la tabla
+de "watch" se guarde en la red, en vez de en el cliente.
+
+Puedes ser util para usaurios que se conectan desde diferentes
+sitios, o para cubrir la deficiencia del mIRC, que no separa
+los "notify" por redes.
+
+14/Dic/02
+Dentro de un an~o, volver a considerar el comando "/knock", que
+manda un aviso a los operadores de un canal con acceso restringido.
+
+10/Dic/02
+Meditar sobre la conveniencia de migrar las estructuras de compresion
+a "servidores", en vez de a "conexiones locales". Ello ahorraria memoria,
+aunque comprometeria la posibilidad futura de soportar compresion
+con los usuarios.
17/Oct/02
[11:42] <NiKoLaS> que al hacer un /invite te devuelva los canales donde estas invitado y aun no entraste?
----------------------- End of diff -----------------------
|