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) - /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
|
||||||
|
|
|
@ -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]);
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
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
|
* 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)
|
||||||
{
|
{
|
||||||
|
|
Reference in a new issue