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:
parent
830a454a11
commit
5f5a194b12
4 changed files with 29 additions and 17 deletions
|
@ -18,6 +18,9 @@ Symbols are:
|
|||
(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) - 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
|
||||
(F) - Fixed a problem with servers setting modes
|
||||
|
|
|
@ -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: 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/ */
|
||||
|
@ -81,7 +81,7 @@ _moddeinit(void)
|
|||
|
||||
/* 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
|
||||
|
||||
/*
|
||||
|
@ -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 */
|
||||
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]);
|
||||
|
||||
|
|
|
@ -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: 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/ */
|
||||
|
@ -63,7 +63,8 @@ static void ms_svsjoin(struct Client *client_p, struct Client *source_p,
|
|||
int parc, char *parv[]);
|
||||
static void ms_svspart(struct Client *client_p, struct Client *source_p,
|
||||
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}
|
||||
};
|
||||
|
||||
struct Message svsmode_msgtab = {
|
||||
"SVSMODE", 0, 0, 3, 0, MFLG_SLOW, 0,
|
||||
{m_ignore, m_ignore, ms_svsmode, m_ignore}
|
||||
};
|
||||
|
||||
/* Thats the msgtab finished */
|
||||
|
||||
|
@ -110,6 +115,7 @@ _modinit(void)
|
|||
mod_add_cmd(&svsid_msgtab);
|
||||
mod_add_cmd(&svsjoin_msgtab);
|
||||
mod_add_cmd(&svspart_msgtab);
|
||||
mod_add_cmd(&svsmode_msgtab);
|
||||
}
|
||||
|
||||
/* 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(&svsjoin_msgtab);
|
||||
mod_del_cmd(&svspart_msgtab);
|
||||
mod_del_cmd(&svsmode_msgtab);
|
||||
}
|
||||
|
||||
/* 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
|
||||
|
||||
/*
|
||||
|
@ -525,3 +532,12 @@ static void ms_svspart(struct Client *client_p, struct Client *source_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);
|
||||
|
||||
}
|
||||
|
|
12
src/s_user.c
12
src/s_user.c
|
@ -19,7 +19,7 @@
|
|||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
* 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"
|
||||
|
@ -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
|
||||
*/
|
||||
|
||||
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",
|
||||
parv[1], source_p->name);
|
||||
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]);
|
||||
return 0;
|
||||
|
@ -1043,14 +1043,12 @@ user_mode(struct Client *client_p, struct Client *source_p, int parc, char *parv
|
|||
*/
|
||||
SetHidden(target_p);
|
||||
if (!MyClient(target_p)) {
|
||||
ilog(L_WARN, "set exit");
|
||||
break;
|
||||
}
|
||||
make_virthost(target_p->host, target_p->vhost, 0);
|
||||
} else {
|
||||
ClearHidden(target_p);
|
||||
if (!MyClient(target_p)) {
|
||||
ilog(L_WARN, "exit");
|
||||
break;
|
||||
}
|
||||
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]);
|
||||
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",
|
||||
me.name, parv[0]);
|
||||
|
@ -1207,7 +1205,7 @@ send_umode_out(struct Client *client_p,
|
|||
char buf[BUFSIZE];
|
||||
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)
|
||||
{
|
||||
|
|
Reference in a new issue