summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Makefile2
-rw-r--r--src/chanserv.c52
-rw-r--r--src/hybrid.c2
-rw-r--r--src/main.c5
-rw-r--r--src/modules/Makefile4
-rw-r--r--src/plexus.c2
-rw-r--r--src/ptlink.c6
-rw-r--r--src/solidircd.c2
-rw-r--r--src/ultimate2.c6
9 files changed, 54 insertions, 27 deletions
diff --git a/src/Makefile b/src/Makefile
index 40ff6ceb9..1e576a74a 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -30,7 +30,7 @@ MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
'INCLUDEDIR=${INCLUDEDIR}' 'RM=${RM}' 'CP=${CP}' \
'TOUCH=${TOUCH}' 'SHELL=${SHELL}' 'DATDEST=${DATDEST}' \
'RUNGROUP=${RUNGROUP}' 'MODULE_PATH=${MODULE_PATH}' 'MYSQL=${MYSQL}'\
- 'RDB=${RDB}' 'IRCDFILE=${IRCDFILE}'
+ 'RDB=${RDB}' 'IRCDFILE=${IRCDFILE}' 'SHARED=${SHARED}'
.c.o:
$(CC) $(CFLAGS) -I../include/ -c $<
diff --git a/src/chanserv.c b/src/chanserv.c
index 02e612baf..affa29519 100644
--- a/src/chanserv.c
+++ b/src/chanserv.c
@@ -5445,28 +5445,44 @@ static int do_devoice(User * u)
static int do_halfop(User * u)
{
- return do_util(u, &csmodeutils[MUT_HALFOP]);
+ if (ircd->halfop) {
+ return do_util(u, &csmodeutils[MUT_HALFOP]);
+ } else {
+ return MOD_CONT;
+ }
}
/*************************************************************************/
static int do_dehalfop(User * u)
{
- return do_util(u, &csmodeutils[MUT_DEHALFOP]);
+ if (ircd->halfop) {
+ return do_util(u, &csmodeutils[MUT_DEHALFOP]);
+ } else {
+ return MOD_CONT;
+ }
}
/*************************************************************************/
static int do_protect(User * u)
{
- return do_util(u, &csmodeutils[MUT_PROTECT]);
+ if (ircd->protect || ircd->admin) {
+ return do_util(u, &csmodeutils[MUT_PROTECT]);
+ } else {
+ return MOD_CONT;
+ }
}
/*************************************************************************/
static int do_deprotect(User * u)
{
- return do_util(u, &csmodeutils[MUT_DEPROTECT]);
+ if (ircd->protect || ircd->admin) {
+ return do_util(u, &csmodeutils[MUT_DEPROTECT]);
+ } else {
+ return MOD_CONT;
+ }
}
/*************************************************************************/
@@ -5478,11 +5494,14 @@ static int do_owner(User * u)
Channel *c;
ChannelInfo *ci;
+ struct u_chanlist *uc;
- if (!chan) {
- struct u_chanlist *uc;
+ if (!ircd->owner) {
+ return MOD_CONT;
+ }
- av[0] = sstrdup("+q");
+ if (!chan) {
+ av[0] = sstrdup(ircd->ownerset);
av[1] = u->nick;
/* Sets the mode to the user on every channels he is on. */
@@ -5511,9 +5530,10 @@ static int do_owner(User * u)
} else if (!is_founder(u, ci)) {
notice_lang(s_ChanServ, u, ACCESS_DENIED);
} else {
- anope_cmd_mode(whosends(ci), c->name, "+q %s", u->nick);
+ anope_cmd_mode(whosends(ci), c->name, "%s %s", ircd->ownerset,
+ u->nick);
- av[0] = sstrdup("+q");
+ av[0] = sstrdup(ircd->ownerset);
av[1] = u->nick;
chan_set_modes(s_ChanServ, c, 2, av, 1);
free(av[0]);
@@ -5530,11 +5550,14 @@ static int do_deowner(User * u)
Channel *c;
ChannelInfo *ci;
+ struct u_chanlist *uc;
- if (!chan) {
- struct u_chanlist *uc;
+ if (!ircd->owner) {
+ return MOD_CONT;
+ }
- av[0] = sstrdup("-q");
+ if (!chan) {
+ av[0] = sstrdup(ircd->ownerunset);
av[1] = u->nick;
/* Sets the mode to the user on every channels he is on. */
@@ -5563,9 +5586,10 @@ static int do_deowner(User * u)
} else if (!is_founder(u, ci)) {
notice_lang(s_ChanServ, u, ACCESS_DENIED);
} else {
- anope_cmd_mode(whosends(ci), c->name, "-q %s", u->nick);
+ anope_cmd_mode(whosends(ci), c->name, "%s %s", ircd->ownerunset,
+ u->nick);
- av[0] = sstrdup("-q");
+ av[0] = sstrdup(ircd->ownerunset);
av[1] = u->nick;
chan_set_modes(s_ChanServ, c, 2, av, 1);
free(av[0]);
diff --git a/src/hybrid.c b/src/hybrid.c
index f48aa122f..e8ddbe477 100644
--- a/src/hybrid.c
+++ b/src/hybrid.c
@@ -82,7 +82,7 @@ IRCDVar ircd[] = {
0, /* O:LINE */
0, /* VHOST ON NICK */
0, /* Change RealName */
- 0, /* ChanServ extra */
+ CHAN_HELP_IRCD_HALFOP, /* ChanServ extra */
CMODE_p, /* No Knock */
0, /* Admin Only */
DEFAULT_MLOCK, /* Default MLOCK */
diff --git a/src/main.c b/src/main.c
index e544a4435..6ff76b67f 100644
--- a/src/main.c
+++ b/src/main.c
@@ -619,6 +619,9 @@ void do_backtrace(int show_segheader)
free(strings);
alog("Backtrace: complete");
#else
- alog("Backtrace: not available on this platform");
+ if (show_segheader) {
+ alog("Backtrace: Segmentation fault detected");
+ }
+ alog("Backtrace: not available on this system");
#endif
}
diff --git a/src/modules/Makefile b/src/modules/Makefile
index 66bf442a1..54b126b11 100644
--- a/src/modules/Makefile
+++ b/src/modules/Makefile
@@ -5,7 +5,7 @@ MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
'INCLUDEDIR=${INCLUDEDIR}' 'RM=${RM}' 'CP=${CP}' \
'TOUCH=${TOUCH}' 'SHELL=${SHELL}' 'DATDEST=${DATDEST}' \
'RUNGROUP=${RUNGROUP}' 'MODULE_PATH=${MODULE_PATH}' \
- 'PROFILE=${PROFILE}'
+ 'PROFILE=${PROFILE}' 'SHARED=${SHARED}'
OBJECTS= $(SRCS:.c=.o)
SO_FILES=$(OBJECTS:.o=.s)
@@ -25,7 +25,7 @@ distclean: clean spotless
$(CC) $(CFLAGS) -I../${INCLUDEDIR} -c $<
.o.s:
- $(CC) -shared $< -o $*.so ${PROFILE}
+ $(CC) ${SHARED} $< -o $*.so ${PROFILE}
clean:
rm -f *.o *.so *.c~ core
diff --git a/src/plexus.c b/src/plexus.c
index 835fcbc30..8408c9018 100644
--- a/src/plexus.c
+++ b/src/plexus.c
@@ -82,7 +82,7 @@ IRCDVar ircd[] = {
0, /* O:LINE */
1, /* VHOST ON NICK */
0, /* Change RealName */
- 0, /* ChanServ extra */
+ CHAN_HELP_IRCD_HALFOP, /* ChanServ extra */
CMODE_p, /* No Knock */
0, /* Admin Only */
DEFAULT_MLOCK, /* Default MLOCK */
diff --git a/src/ptlink.c b/src/ptlink.c
index 63ca9b117..1cc053d11 100644
--- a/src/ptlink.c
+++ b/src/ptlink.c
@@ -79,13 +79,13 @@ IRCDVar ircd[] = {
0, /* time stamp on mode */
0, /* NICKIP */
0, /* O:LINE */
- 1, /* UMODE */
+ 1, /* UMODE */
1, /* VHOST ON NICK */
0, /* Change RealName */
- 0, /* ChanServ extra */
+ CHAN_HELP_IRCD_PROTECT, /* ChanServ extra */
CMODE_K, /* No Knock */
CMODE_A, /* Admin Only */
- DEFAULT_MLOCK, /* Default MLOCK */
+ DEFAULT_MLOCK, /* Default MLOCK */
UMODE_o, /* Vhost Mode */
1, /* +f */
0, /* +L */
diff --git a/src/solidircd.c b/src/solidircd.c
index 03ef11fc5..80bf21310 100644
--- a/src/solidircd.c
+++ b/src/solidircd.c
@@ -84,7 +84,7 @@ IRCDVar ircd[] = {
1, /* UMODE */
0, /* VHOST ON NICK */
0, /* Change RealName */
- 0, /* ChanServ extra */
+ CHAN_HELP_IRCD_HALFOP, /* ChanServ extra */
0, /* No Knock */
0, /* Admin Only */
DEFAULT_MLOCK, /* Default MLOCK */
diff --git a/src/ultimate2.c b/src/ultimate2.c
index 7b1049650..7acc22f05 100644
--- a/src/ultimate2.c
+++ b/src/ultimate2.c
@@ -79,13 +79,13 @@ IRCDVar ircd[] = {
1, /* time stamp on mode */
0, /* NICKIP */
0, /* O:LINE */
- 1, /* UMODE */
+ 1, /* UMODE */
0, /* VHOST ON NICK */
1, /* Change RealName */
- CHAN_HELP_ULTIMATE, /* ChanServ extra */
+ CHAN_HELP_IRCD_HALFOP, /* ChanServ extra */
CMODE_K, /* No Knock */
CMODE_A, /* Admin Only */
- DEFAULT_MLOCK, /* Default MLOCK */
+ DEFAULT_MLOCK, /* Default MLOCK */
UMODE_x, /* Vhost Mode */
1, /* +f */
1, /* +L */