this is the *REAL* 0.9.3 with my todo done for 0.9.3...

for Eggy:
Epona lives at http://www.neostats.net/epona-1.4.14.neoircd.tar.gz
This commit is contained in:
fishwaldo 2002-09-23 04:39:32 +00:00
parent 830a454a11
commit 5f5a194b12
4 changed files with 29 additions and 17 deletions

View file

@ -18,6 +18,9 @@ Symbols are:
(F) - /userhost displays your vhost, not real host.. (F) - /userhost displays your vhost, not real host..
(F) - Timed Glines now possible. /gline ident@host 12 reason (12 is minutes atm, if 0, uses the default from config files) (F) - Timed Glines now possible. /gline ident@host 12 reason (12 is minutes atm, if 0, uses the default from config files)
(F) - Dlines are now network wide. (F) - Dlines are now network wide.
(F) - svsmode now works
(F) - a few minor bug fixes with glines
(F) - topic bursting on net join is now enabled
* NeoIRCd Version 0.9.2 - 17th Sept, 2002 - Fish * NeoIRCd Version 0.9.2 - 17th Sept, 2002 - Fish
(F) - Fixed a problem with servers setting modes (F) - Fixed a problem with servers setting modes

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* *
* $Id: m_smo.c,v 1.2 2002/09/16 07:56:55 fishwaldo Exp $ * $Id: m_smo.c,v 1.3 2002/09/23 04:39:32 fishwaldo Exp $
*/ */
/* List of ircd includes from ../include/ */ /* List of ircd includes from ../include/ */
@ -81,7 +81,7 @@ _moddeinit(void)
/* When we last modified the file (shown in /modlist), this is usually: /* When we last modified the file (shown in /modlist), this is usually:
*/ */
const char *_version = "$Revision: 1.2 $"; const char *_version = "$Revision: 1.3 $";
#endif #endif
/* /*
@ -101,11 +101,6 @@ static void ms_smo(struct Client *client_p, struct Client *source_p,
/* this is just a double check for servers that *DONT* set the right flags */ /* this is just a double check for servers that *DONT* set the right flags */
flags &= ~FLAGS_REMOTE; flags &= ~FLAGS_REMOTE;
/* if its not from a server, or a Services Client drop the message */
if (!IsServer(source_p))
return;
if (IsClient(source_p) && (!IsServices(source_p)))
return;
sendto_realops_flags(flags, atoi(parv[2]), "From %s: %s", source_p->name, parv[3]); sendto_realops_flags(flags, atoi(parv[2]), "From %s: %s", source_p->name, parv[3]);

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* *
* $Id: m_svscmds.c,v 1.5 2002/09/17 11:03:21 fishwaldo Exp $ * $Id: m_svscmds.c,v 1.6 2002/09/23 04:39:32 fishwaldo Exp $
*/ */
/* List of ircd includes from ../include/ */ /* List of ircd includes from ../include/ */
@ -63,7 +63,8 @@ static void ms_svsjoin(struct Client *client_p, struct Client *source_p,
int parc, char *parv[]); int parc, char *parv[]);
static void ms_svspart(struct Client *client_p, struct Client *source_p, static void ms_svspart(struct Client *client_p, struct Client *source_p,
int parc, char *parv[]); int parc, char *parv[]);
static void ms_svsmode(struct Client *client_p, struct Client *source_p,
int parc, char *parv[]);
@ -96,6 +97,10 @@ struct Message svspart_msgtab = {
{m_ignore, m_ignore, ms_svspart, m_ignore} {m_ignore, m_ignore, ms_svspart, m_ignore}
}; };
struct Message svsmode_msgtab = {
"SVSMODE", 0, 0, 3, 0, MFLG_SLOW, 0,
{m_ignore, m_ignore, ms_svsmode, m_ignore}
};
/* Thats the msgtab finished */ /* Thats the msgtab finished */
@ -110,6 +115,7 @@ _modinit(void)
mod_add_cmd(&svsid_msgtab); mod_add_cmd(&svsid_msgtab);
mod_add_cmd(&svsjoin_msgtab); mod_add_cmd(&svsjoin_msgtab);
mod_add_cmd(&svspart_msgtab); mod_add_cmd(&svspart_msgtab);
mod_add_cmd(&svsmode_msgtab);
} }
/* here we tell it what to do when the module is unloaded */ /* here we tell it what to do when the module is unloaded */
@ -122,11 +128,12 @@ _moddeinit(void)
mod_del_cmd(&svsid_msgtab); mod_del_cmd(&svsid_msgtab);
mod_del_cmd(&svsjoin_msgtab); mod_del_cmd(&svsjoin_msgtab);
mod_del_cmd(&svspart_msgtab); mod_del_cmd(&svspart_msgtab);
mod_del_cmd(&svsmode_msgtab);
} }
/* When we last modified the file (shown in /modlist), this is usually: /* When we last modified the file (shown in /modlist), this is usually:
*/ */
const char *_version = "$Revision: 1.5 $"; const char *_version = "$Revision: 1.6 $";
#endif #endif
/* /*
@ -525,3 +532,12 @@ static void ms_svspart(struct Client *client_p, struct Client *source_p,
remove_user_from_channel(chptr, target_p); remove_user_from_channel(chptr, target_p);
} }
static void ms_svsmode(struct Client *client_p, struct Client *source_p,
int parc, char *parv[])
{
if (!IsUlined(source_p))
return;
user_mode(client_p, source_p, parc, parv);
}

View file

@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA * USA
* *
* $Id: s_user.c,v 1.16 2002/09/20 09:05:18 fishwaldo Exp $ * $Id: s_user.c,v 1.17 2002/09/23 04:39:32 fishwaldo Exp $
*/ */
#include "stdinc.h" #include "stdinc.h"
@ -954,14 +954,14 @@ user_mode(struct Client *client_p, struct Client *source_p, int parc, char *parv
* put them back using new sendto() funcs * put them back using new sendto() funcs
*/ */
if (IsServer(source_p)) if (IsServer(source_p) && !IsUlined(source_p))
{ {
sendto_realops_flags(FLAGS_ALL|FLAGS_REMOTE, L_ADMIN, "*** Mode for User %s from %s", sendto_realops_flags(FLAGS_ALL|FLAGS_REMOTE, L_ADMIN, "*** Mode for User %s from %s",
parv[1], source_p->name); parv[1], source_p->name);
return 0; return 0;
} }
if ((source_p != target_p || target_p->from != source_p->from) && !IsServices(source_p)) if ((source_p != target_p || target_p->from != source_p->from) && !IsUlined(source_p))
{ {
sendto_one(source_p, form_str(ERR_USERSDONTMATCH), me.name, parv[0]); sendto_one(source_p, form_str(ERR_USERSDONTMATCH), me.name, parv[0]);
return 0; return 0;
@ -1043,14 +1043,12 @@ user_mode(struct Client *client_p, struct Client *source_p, int parc, char *parv
*/ */
SetHidden(target_p); SetHidden(target_p);
if (!MyClient(target_p)) { if (!MyClient(target_p)) {
ilog(L_WARN, "set exit");
break; break;
} }
make_virthost(target_p->host, target_p->vhost, 0); make_virthost(target_p->host, target_p->vhost, 0);
} else { } else {
ClearHidden(target_p); ClearHidden(target_p);
if (!MyClient(target_p)) { if (!MyClient(target_p)) {
ilog(L_WARN, "exit");
break; break;
} }
strncpy(target_p->vhost, target_p->host, HOSTLEN); strncpy(target_p->vhost, target_p->host, HOSTLEN);
@ -1113,7 +1111,7 @@ user_mode(struct Client *client_p, struct Client *source_p, int parc, char *parv
me.name, parv[0]); me.name, parv[0]);
target_p->umodes &= ~FLAGS_SERVICES; target_p->umodes &= ~FLAGS_SERVICES;
} }
if ((!IsServer(client_p) || !IsUlined(client_p)) && ((target_p->umodes & FLAGS_REGNICK) || setflags & FLAGS_REGNICK)) if ((!IsServer(source_p) || !IsUlined(source_p)) && ((target_p->umodes & FLAGS_REGNICK) || setflags & FLAGS_REGNICK))
{ {
sendto_one(source_p, ":%s NOTICE %s :*** Only Services can set +r", sendto_one(source_p, ":%s NOTICE %s :*** Only Services can set +r",
me.name, parv[0]); me.name, parv[0]);
@ -1207,7 +1205,7 @@ send_umode_out(struct Client *client_p,
char buf[BUFSIZE]; char buf[BUFSIZE];
dlink_node *ptr; dlink_node *ptr;
send_umode(NULL, source_p, old, SEND_UMODES, buf); send_umode(source_p, source_p, old, ALL_UMODES, buf);
for(ptr = serv_list.head; ptr; ptr = ptr->next) for(ptr = serv_list.head; ptr; ptr = ptr->next)
{ {