Enforce TS rules on MLOCKs.

This commit is contained in:
William Pitcock 2010-08-23 20:22:59 -05:00
parent 01ed04abaf
commit 6fb6bd15ae
5 changed files with 122 additions and 83 deletions

182
configure vendored
View file

@ -1,12 +1,14 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.64 for charybdis 3.3. # Generated by GNU Autoconf 2.65 for charybdis 3.3.
# #
# $Id: configure.ac 3516 2007-06-10 16:14:03Z jilles $ # $Id: configure.ac 3516 2007-06-10 16:14:03Z jilles $
# #
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Foundation, Inc. # Inc.
#
# #
# This configure script is free software; the Free Software Foundation # This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it. # gives unlimited permission to copy, distribute and modify it.
@ -526,7 +528,8 @@ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
exec 7<&0 </dev/null 6>&1 test -n "$DJDIR" || exec 7<&0 </dev/null
exec 6>&1
# Name of the host. # Name of the host.
# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
@ -1366,7 +1369,7 @@ Some influential environment variables:
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir> nonstandard directory <lib dir>
LIBS libraries to pass to the linker, e.g. -l<library> LIBS libraries to pass to the linker, e.g. -l<library>
CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir> you have headers in a nonstandard directory <include dir>
CPP C preprocessor CPP C preprocessor
YACC The `Yet Another C Compiler' implementation to use. Defaults to YACC The `Yet Another C Compiler' implementation to use. Defaults to
@ -1442,7 +1445,7 @@ test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
charybdis configure 3.3 charybdis configure 3.3
generated by GNU Autoconf 2.64 generated by GNU Autoconf 2.65
Copyright (C) 2009 Free Software Foundation, Inc. Copyright (C) 2009 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation This configure script is free software; the Free Software Foundation
@ -1491,7 +1494,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1 ac_retval=1
fi fi
eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
return $ac_retval as_fn_set_status $ac_retval
} # ac_fn_c_try_compile } # ac_fn_c_try_compile
@ -1528,7 +1531,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1 ac_retval=1
fi fi
eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
return $ac_retval as_fn_set_status $ac_retval
} # ac_fn_c_try_cpp } # ac_fn_c_try_cpp
@ -1657,7 +1660,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi fi
rm -rf conftest.dSYM conftest_ipa8_conftest.oo rm -rf conftest.dSYM conftest_ipa8_conftest.oo
eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
return $ac_retval as_fn_set_status $ac_retval
} # ac_fn_c_try_run } # ac_fn_c_try_run
@ -1734,7 +1737,7 @@ fi
# left behind by Apple's compiler. We do this before executing the actions. # left behind by Apple's compiler. We do this before executing the actions.
rm -rf conftest.dSYM conftest_ipa8_conftest.oo rm -rf conftest.dSYM conftest_ipa8_conftest.oo
eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
return $ac_retval as_fn_set_status $ac_retval
} # ac_fn_c_try_link } # ac_fn_c_try_link
@ -1966,7 +1969,7 @@ rm -f conftest.val
fi fi
eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
return $ac_retval as_fn_set_status $ac_retval
} # ac_fn_c_compute_int } # ac_fn_c_compute_int
@ -2041,7 +2044,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by charybdis $as_me 3.3, which was It was created by charybdis $as_me 3.3, which was
generated by GNU Autoconf 2.64. Invocation command line was generated by GNU Autoconf 2.65. Invocation command line was
$ $0 $@ $ $0 $@
@ -2294,7 +2297,7 @@ fi
for ac_site_file in "$ac_site_file1" "$ac_site_file2" for ac_site_file in "$ac_site_file1" "$ac_site_file2"
do do
test "x$ac_site_file" = xNONE && continue test "x$ac_site_file" = xNONE && continue
if test -r "$ac_site_file"; then if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
$as_echo "$as_me: loading site script $ac_site_file" >&6;} $as_echo "$as_me: loading site script $ac_site_file" >&6;}
sed 's/^/| /' "$ac_site_file" >&5 sed 's/^/| /' "$ac_site_file" >&5
@ -2303,9 +2306,9 @@ $as_echo "$as_me: loading site script $ac_site_file" >&6;}
done done
if test -r "$cache_file"; then if test -r "$cache_file"; then
# Some versions of bash will fail to source /dev/null (special # Some versions of bash will fail to source /dev/null (special files
# files actually), so we avoid doing that. # actually), so we avoid doing that. DJGPP emulates it as a regular file.
if test -f "$cache_file"; then if test /dev/null != "$cache_file" && test -f "$cache_file"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
$as_echo "$as_me: loading cache $cache_file" >&6;} $as_echo "$as_me: loading cache $cache_file" >&6;}
case $cache_file in case $cache_file in
@ -2715,32 +2718,30 @@ $as_echo "$ac_try_echo"; } >&5
... rest of stderr output deleted ... ... rest of stderr output deleted ...
10q' conftest.err >conftest.er1 10q' conftest.err >conftest.er1
cat conftest.er1 >&5 cat conftest.er1 >&5
rm -f conftest.er1 conftest.err
fi fi
rm -f conftest.er1 conftest.err
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } test $ac_status = 0; }
done done
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
#include <stdio.h>
int int
main () main ()
{ {
FILE *f = fopen ("conftest.out", "w");
return ferror (f) || fclose (f) != 0;
; ;
return 0; return 0;
} }
_ACEOF _ACEOF
ac_clean_files_save=$ac_clean_files ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out conftest.out" ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
# Try to create an executable without -o first, disregard a.out. # Try to create an executable without -o first, disregard a.out.
# It will help us diagnose broken compilers, and finding out an intuition # It will help us diagnose broken compilers, and finding out an intuition
# of exeext. # of exeext.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
$as_echo_n "checking for C compiler default output file name... " >&6; } $as_echo_n "checking whether the C compiler works... " >&6; }
ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
# The possible output files: # The possible output files:
@ -2802,10 +2803,10 @@ test "$ac_cv_exeext" = no && ac_cv_exeext=
else else
ac_file='' ac_file=''
fi fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
$as_echo "$ac_file" >&6; }
if test -z "$ac_file"; then : if test -z "$ac_file"; then :
$as_echo "$as_me: failed program was:" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5 sed 's/^/| /' conftest.$ac_ext >&5
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
@ -2813,51 +2814,18 @@ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
{ as_fn_set_status 77 { as_fn_set_status 77
as_fn_error "C compiler cannot create executables as_fn_error "C compiler cannot create executables
See \`config.log' for more details." "$LINENO" 5; }; } See \`config.log' for more details." "$LINENO" 5; }; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
fi fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
$as_echo_n "checking for C compiler default output file name... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
$as_echo "$ac_file" >&6; }
ac_exeext=$ac_cv_exeext ac_exeext=$ac_cv_exeext
# Check that the compiler produces executables we can run. If not, either rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
# the compiler is broken, or we cross compile.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
$as_echo_n "checking whether the C compiler works... " >&6; }
# If not cross compiling, check that we can run a simple program.
if test "$cross_compiling" != yes; then
if { ac_try='./$ac_file'
{ { case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_try") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then
cross_compiling=no
else
if test "$cross_compiling" = maybe; then
cross_compiling=yes
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error "cannot run C compiled programs.
If you meant to cross compile, use \`--host'.
See \`config.log' for more details." "$LINENO" 5; }
fi
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out conftest.out
ac_clean_files=$ac_clean_files_save ac_clean_files=$ac_clean_files_save
# Check that the compiler produces executables we can run. If not, either
# the compiler is broken, or we cross compile.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
$as_echo_n "checking whether we are cross compiling... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
$as_echo "$cross_compiling" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
$as_echo_n "checking for suffix of executables... " >&6; } $as_echo_n "checking for suffix of executables... " >&6; }
if { { ac_try="$ac_link" if { { ac_try="$ac_link"
@ -2890,13 +2858,72 @@ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error "cannot compute suffix of executables: cannot compile and link as_fn_error "cannot compute suffix of executables: cannot compile and link
See \`config.log' for more details." "$LINENO" 5; } See \`config.log' for more details." "$LINENO" 5; }
fi fi
rm -f conftest$ac_cv_exeext rm -f conftest conftest$ac_cv_exeext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
$as_echo "$ac_cv_exeext" >&6; } $as_echo "$ac_cv_exeext" >&6; }
rm -f conftest.$ac_ext rm -f conftest.$ac_ext
EXEEXT=$ac_cv_exeext EXEEXT=$ac_cv_exeext
ac_exeext=$EXEEXT ac_exeext=$EXEEXT
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
int
main ()
{
FILE *f = fopen ("conftest.out", "w");
return ferror (f) || fclose (f) != 0;
;
return 0;
}
_ACEOF
ac_clean_files="$ac_clean_files conftest.out"
# Check that the compiler produces executables we can run. If not, either
# the compiler is broken, or we cross compile.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
$as_echo_n "checking whether we are cross compiling... " >&6; }
if test "$cross_compiling" != yes; then
{ { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if { ac_try='./conftest$ac_cv_exeext'
{ { case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_try") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then
cross_compiling=no
else
if test "$cross_compiling" = maybe; then
cross_compiling=yes
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error "cannot run C compiled programs.
If you meant to cross compile, use \`--host'.
See \`config.log' for more details." "$LINENO" 5; }
fi
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
$as_echo "$cross_compiling" >&6; }
rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
ac_clean_files=$ac_clean_files_save
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
$as_echo_n "checking for suffix of object files... " >&6; } $as_echo_n "checking for suffix of object files... " >&6; }
if test "${ac_cv_objext+set}" = set; then : if test "${ac_cv_objext+set}" = set; then :
@ -3945,8 +3972,8 @@ $as_echo "$ac_try_echo"; } >&5
... rest of stderr output deleted ... ... rest of stderr output deleted ...
10q' conftest.err >conftest.er1 10q' conftest.err >conftest.er1
cat conftest.er1 >&5 cat conftest.er1 >&5
rm -f conftest.er1 conftest.err
fi fi
rm -f conftest.er1 conftest.err
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } test $ac_status = 0; }
done done
@ -9432,7 +9459,7 @@ _ACEOF
fi fi
ac_config_files="$ac_config_files Makefile bandb/Makefile ssld/Makefile extensions/Makefile unsupported/Makefile src/Makefile modules/Makefile tools/Makefile doc/Makefile help/Makefile" ac_config_files="$ac_config_files Makefile bandb/Makefile ssld/Makefile extensions/Makefile src/Makefile modules/Makefile tools/Makefile doc/Makefile help/Makefile"
cat >confcache <<\_ACEOF cat >confcache <<\_ACEOF
@ -9943,7 +9970,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by charybdis $as_me 3.3, which was This file was extended by charybdis $as_me 3.3, which was
generated by GNU Autoconf 2.64. Invocation command line was generated by GNU Autoconf 2.65. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_HEADERS = $CONFIG_HEADERS
@ -9982,6 +10009,7 @@ Usage: $0 [OPTION]... [TAG]...
-h, --help print this help, then exit -h, --help print this help, then exit
-V, --version print version number and configuration settings, then exit -V, --version print version number and configuration settings, then exit
--config print configuration, then exit
-q, --quiet, --silent -q, --quiet, --silent
do not print progress messages do not print progress messages
-d, --debug don't remove temporary files -d, --debug don't remove temporary files
@ -10001,10 +10029,11 @@ Report bugs to the package provider."
_ACEOF _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\ ac_cs_version="\\
charybdis config.status 3.3 charybdis config.status 3.3
configured by $0, generated by GNU Autoconf 2.64, configured by $0, generated by GNU Autoconf 2.65,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" with options \\"\$ac_cs_config\\"
Copyright (C) 2009 Free Software Foundation, Inc. Copyright (C) 2009 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation This config.status script is free software; the Free Software Foundation
@ -10040,6 +10069,8 @@ do
ac_cs_recheck=: ;; ac_cs_recheck=: ;;
--version | --versio | --versi | --vers | --ver | --ve | --v | -V ) --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
$as_echo "$ac_cs_version"; exit ;; $as_echo "$ac_cs_version"; exit ;;
--config | --confi | --conf | --con | --co | --c )
$as_echo "$ac_cs_config"; exit ;;
--debug | --debu | --deb | --de | --d | -d ) --debug | --debu | --deb | --de | --d | -d )
debug=: ;; debug=: ;;
--file | --fil | --fi | --f ) --file | --fil | --fi | --f )
@ -10121,7 +10152,6 @@ do
"bandb/Makefile") CONFIG_FILES="$CONFIG_FILES bandb/Makefile" ;; "bandb/Makefile") CONFIG_FILES="$CONFIG_FILES bandb/Makefile" ;;
"ssld/Makefile") CONFIG_FILES="$CONFIG_FILES ssld/Makefile" ;; "ssld/Makefile") CONFIG_FILES="$CONFIG_FILES ssld/Makefile" ;;
"extensions/Makefile") CONFIG_FILES="$CONFIG_FILES extensions/Makefile" ;; "extensions/Makefile") CONFIG_FILES="$CONFIG_FILES extensions/Makefile" ;;
"unsupported/Makefile") CONFIG_FILES="$CONFIG_FILES unsupported/Makefile" ;;
"src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
"modules/Makefile") CONFIG_FILES="$CONFIG_FILES modules/Makefile" ;; "modules/Makefile") CONFIG_FILES="$CONFIG_FILES modules/Makefile" ;;
"tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;; "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;
@ -10229,7 +10259,7 @@ s/'"$ac_delim"'$//
t delim t delim
:nl :nl
h h
s/\(.\{148\}\).*/\1/ s/\(.\{148\}\)..*/\1/
t more1 t more1
s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
p p
@ -10243,7 +10273,7 @@ s/.\{148\}//
t nl t nl
:delim :delim
h h
s/\(.\{148\}\).*/\1/ s/\(.\{148\}\)..*/\1/
t more2 t more2
s/["\\]/\\&/g; s/^/"/; s/$/"/ s/["\\]/\\&/g; s/^/"/; s/$/"/
p p

View file

@ -261,7 +261,7 @@ void resv_chan_forcepart(const char *name, const char *reason, int temp_time);
extern void set_channel_mode(struct Client *client_p, struct Client *source_p, extern void set_channel_mode(struct Client *client_p, struct Client *source_p,
struct Channel *chptr, struct membership *msptr, int parc, const char *parv[]); struct Channel *chptr, struct membership *msptr, int parc, const char *parv[]);
extern void set_channel_mlock(struct Client *client_p, struct Client *source_p, extern void set_channel_mlock(struct Client *client_p, struct Client *source_p,
struct Channel *chptr, const char *newmlock); struct Channel *chptr, const char *newmlock, int propagate);
extern struct ChannelMode chmode_table[256]; extern struct ChannelMode chmode_table[256];

View file

@ -479,6 +479,9 @@ ms_join(struct Client *client_p, struct Client *source_p, int parc, const char *
source_p->servptr->name, source_p->servptr->name,
chptr->chname, modebuf, parabuf); chptr->chname, modebuf, parabuf);
*modebuf = *parabuf = '\0'; *modebuf = *parabuf = '\0';
/* since we're dropping our modes, we want to clear the mlock as well. --nenolod */
set_channel_mlock(client_p, source_p, chptr, NULL, FALSE);
} }
if(!IsMember(source_p, chptr)) if(!IsMember(source_p, chptr))
@ -739,6 +742,9 @@ ms_sjoin(struct Client *client_p, struct Client *source_p, int parc, const char
/* Update capitalization in channel name, this makes the /* Update capitalization in channel name, this makes the
* capitalization timestamped like modes are -- jilles */ * capitalization timestamped like modes are -- jilles */
strcpy(chptr->chname, parv[2]); strcpy(chptr->chname, parv[2]);
/* since we're dropping our modes, we want to clear the mlock as well. --nenolod */
set_channel_mlock(client_p, source_p, chptr, NULL, FALSE);
} }
if(*modebuf != '\0') if(*modebuf != '\0')

View file

@ -235,7 +235,7 @@ ms_mlock(struct Client *client_p, struct Client *source_p, int parc, const char
return 0; return 0;
if(IsServer(source_p)) if(IsServer(source_p))
set_channel_mlock(client_p, source_p, chptr, parv[3]); set_channel_mlock(client_p, source_p, chptr, parv[3], TRUE);
return 0; return 0;
} }

View file

@ -1665,7 +1665,7 @@ set_channel_mode(struct Client *client_p, struct Client *source_p,
/* If this mode char is locked, don't allow local users to change it. */ /* If this mode char is locked, don't allow local users to change it. */
if (MyClient(source_p) && chptr->mode_lock && strchr(chptr->mode_lock, c)) if (MyClient(source_p) && chptr->mode_lock && strchr(chptr->mode_lock, c))
{ {
sendto_one_numeric(source_p, ERR_MLOCKRESTRICTED, form_str(ERR_MLOCKRESTRICTED), chptr->name, c, chptr->mode_lock); sendto_one_numeric(source_p, ERR_MLOCKRESTRICTED, form_str(ERR_MLOCKRESTRICTED), chptr->chname, c, chptr->mode_lock);
continue; continue;
} }
chmode_table[(unsigned char) c].set_func(fakesource_p, chptr, alevel, chmode_table[(unsigned char) c].set_func(fakesource_p, chptr, alevel,
@ -1774,12 +1774,15 @@ set_channel_mode(struct Client *client_p, struct Client *source_p,
*/ */
void void
set_channel_mlock(struct Client *client_p, struct Client *source_p, set_channel_mlock(struct Client *client_p, struct Client *source_p,
struct Channel *chptr, const char *newmlock) struct Channel *chptr, const char *newmlock, int propagate)
{ {
rb_free(chptr->mode_lock); rb_free(chptr->mode_lock);
chptr->mode_lock = newmlock ? rb_strdup(newmlock) : NULL; chptr->mode_lock = newmlock ? rb_strdup(newmlock) : NULL;
sendto_server(client_p, NULL, CAP_TS6 | CAP_MLOCK, NOCAPS, ":%s MLOCK %ld %s :%s", if (propagate)
source_p->id, (long) chptr->channelts, chptr->chname, {
chptr->mode_lock ? chptr->mode_lock : ""); sendto_server(client_p, NULL, CAP_TS6 | CAP_MLOCK, NOCAPS, ":%s MLOCK %ld %s :%s",
source_p->id, (long) chptr->channelts, chptr->chname,
chptr->mode_lock ? chptr->mode_lock : "");
}
} }