diff options
Diffstat (limited to 'src')
128 files changed, 8019 insertions, 1035 deletions
diff --git a/src/Makefile.in b/src/Makefile.in index 0382389..66ab5be 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -1,21 +1,33 @@ -SRCS=WILLBEADDEDBYCONFIGURE -OBJS=$(addprefix ../obj/,$(SRCS:.cpp=.o)) -CC=WILLBEADDEDBYCONFIGURE -LIBADD=`cat libs.add` -LDFLAGS=$(LIBADD) -lstdc++ -LDADD=-pthread -D_THREAD_SAFE -export-dynamic -ldl -INCLUDES=`cat includes.add` -CFLAGS=-fno-inline -fno-default-inline -frepo -all: ychat -$(SRCS): - $(CC) $(INCLUDES) $(CFLAGS) -c $*.cpp -infotext: - @echo Compiling base -ychat: infotext $(OBJS) - $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDADD) - @mv ychat ../bin - @echo -n "Size of linked executable: " - @du -hc ../bin/ychat | tail -n 1 -clean: - @echo Cleaning base obj - @if test -d ../obj; then rm -Rf ../obj; fi +BIN=../bin/ychat +CXX=@CXX@ +#EFLAGS=-frepo +CXXFLAGS=-fno-inline -fno-default-inline @CXXFLAGS@ ${EFLAGS} ${BOOST_CPPFLAGS} +LDADD+=@LIBS@-lstdc++ -D_THREAD_SAVE -export-dynamic +PREFIX=@prefix@ +all: message ${OBJS} + @dirname=`dirname ${BIN}`; if ! test -d $$dirname; then mkdir -p $$dirname; fi + @echo; echo "===> Linking base sources" + @${CXX} -o ${BIN} ${OBJS} ${LDADD} + @echo "===> LDADD : ${LDADD}" + @echo "===> CXXFLAGS : ${CXXFLAGS}" + @echo "===> CXX : ${CXX}" + @echo "===> Binary size : `du -hs ${BIN} | sed 's/\.\.\/bin\///'`" + @echo "===> `cd ..; ./scripts/version.sh`" + @echo +${OBJS}: + @dirname=`dirname $@`; if ! test -d $$dirname; then mkdir -p $$dirname; fi + @${CXX} ${CXXFLAGS} -c -o $@ `echo $@ | \ + sed 's/\.\.\/obj\/\.\/\(.*\)\.o/\.\/\1.cpp/'` + @echo "base:`echo $@ | sed 's/\.\.\/obj\/\.\/\(.*\)\.o$$/\1/'` (`du \ + -hs $@ | awk '{ print $$1 }'`) " +message: + @echo "===> Building base sources" +clean: + @echo "===> Cleaning base" + @find ../obj -name '*.o' | grep -v mods | xargs rm -f + @if [ -f ${BIN} ]; then rm -f ${BIN}; fi +mrproper: clean + @for i in autom4te.cache; \ + do if [ -d $$i ]; then rm -Rf $$i; fi; done + @for i in Makefile config.h config.log config.status; \ + do if [ -f $$i ]; then rm -f $$i; fi; done diff --git a/src/chat/base.h b/src/chat/base.h index bfdd6f6..145fb6c 100644 --- a/src/chat/base.h +++ b/src/chat/base.h @@ -1,7 +1,7 @@ /*:* *: File: ./src/chat/base.h *: - *: yChat; Homepage: www.yChat.org; Version 0.7.9.5-RELEASE + *: yChat; Homepage: www.yChat.org; Version 0.8.3-CURRENT *: *: Copyright (C) 2003 Paul C. Buetow, Volker Richter *: Copyright (C) 2004 Paul C. Buetow diff --git a/src/chat/base.tmpl b/src/chat/base.tmpl index c94ed44..87c3a0b 100644 --- a/src/chat/base.tmpl +++ b/src/chat/base.tmpl @@ -1,7 +1,7 @@ /*:* *: File: ./src/chat/base.tmpl *: - *: yChat; Homepage: www.yChat.org; Version 0.7.9.5-RELEASE + *: yChat; Homepage: www.yChat.org; Version 0.8.3-CURRENT *: *: Copyright (C) 2003 Paul C. Buetow, Volker Richter *: Copyright (C) 2004 Paul C. Buetow @@ -64,18 +64,21 @@ template<class type> void base<type>::dumpit() { - dumpable::add("[base]"); + dumpable::add + ("[base]"); vector<string>* p_vec = nhashmap<type*>::get_key_vector(); vector<string>::iterator iter; for (iter = p_vec->begin(); iter != p_vec->end(); ++iter) { - dumpable::add(*iter); + dumpable::add + (*iter); type* p_elem = get_elem(*iter); if (p_elem) { dumpable::next_no_newline(); - dumpable::add(p_elem->dump(dumpable::get_level())); + dumpable::add + (p_elem->dump(dumpable::get_level())); } } diff --git a/src/chat/chat.cpp b/src/chat/chat.cpp index 764da85..a56c74d 100644 --- a/src/chat/chat.cpp +++ b/src/chat/chat.cpp @@ -1,7 +1,7 @@ /*:* *: File: ./src/chat/chat.cpp *: - *: yChat; Homepage: www.yChat.org; Version 0.7.9.5-RELEASE + *: yChat; Homepage: www.yChat.org; Version 0.8.3-CURRENT *: *: Copyright (C) 2003 Paul C. Buetow, Volker Richter *: Copyright (C) 2004 Paul C. Buetow @@ -40,9 +40,8 @@ chat::chat( ) wrap::system_message(CHATREP); vector<string>* p_vec_keys = wrap::CONF->get_key_vector(); - for (vector<string>::iterator iter = p_vec_keys->begin(); - iter != p_vec_keys->end(); - iter++ ) + for (vector<string>::iterator iter = p_vec_keys-> begin(); + iter != p_vec_keys->end(); iter++ ) { if ( iter->length() >= 24 && iter->compare( 0, 22, "chat.html.replace.from" ) == 0 ) { @@ -147,8 +146,8 @@ chat::login( map<string,string> &map_params ) return; } - // prove if maxpoolsize (threads) allows this login - else if ( !wrap::POOL->allow_user_login() ) + // prove if maxpoolsize (threads) allows this login + else if ( !pool::allow_user_login() ) { map_params["INFO"] = wrap::CONF->get_elem( "chat.msgs.err.maxuserlimit" ); map_params["request"] = wrap::CONF->get_elem( "httpd.startsite" ); // redirect to the startpage. @@ -156,6 +155,13 @@ chat::login( map<string,string> &map_params ) return; } + // prove if nick is banned from chat + if (map_banned_nicks.exists(tool::to_lower(s_user))) { + map_params["INFO"] = wrap::CONF->get_elem( "chat.msgs.err.banned" ); + map_params["request"] = wrap::CONF->get_elem( "httpd.startsite" ); + return; + } + bool b_flag; // prove if nick is already online / logged in. @@ -349,6 +355,13 @@ chat::post( user* p_user, map<string,string> &map_params ) if ( i_pos == 0 ) return p_user->command( s_msg ); + if (p_user->get_is_gag()) + { + p_user->msg_post(wrap::CONF->colored_error_msg("chat.msgs.err.gagged")); + return; + } + + string_replacer(&s_msg); string s_post; @@ -387,8 +400,38 @@ chat::string_replacer(string *p_msg) void chat::dumpit() { - dumpable::add("[chat]"); + dumpable::add + ("[chat]"); base<room>::dumpit(); } +string +chat::ban_nick(string &s_nick, string s_reason) { + string s_lower_nick(tool::to_lower(s_nick)); + + if (map_banned_nicks.exists(s_lower_nick)) + return map_banned_nicks.get_elem(s_lower_nick); + + map_banned_nicks.add_elem(s_reason, s_lower_nick); + return ""; +} + +string +chat::unban_nick(string &s_nick) { + string s_lower_nick(tool::to_lower(s_nick)); + + if (!map_banned_nicks.exists(s_lower_nick)) + return ""; + + string s_ret(map_banned_nicks.get_elem(s_lower_nick)); + map_banned_nicks.del_elem(s_lower_nick); + + return s_ret; +} + +shashmap<string>* +chat::get_map_banned_nicks() { + return &map_banned_nicks; +} + #endif diff --git a/src/chat/chat.h b/src/chat/chat.h index b61ed95..1758790 100644 --- a/src/chat/chat.h +++ b/src/chat/chat.h @@ -1,7 +1,7 @@ /*:* *: File: ./src/chat/chat.h *: - *: yChat; Homepage: www.yChat.org; Version 0.7.9.5-RELEASE + *: yChat; Homepage: www.yChat.org; Version 0.8.3-CURRENT *: *: Copyright (C) 2003 Paul C. Buetow, Volker Richter *: Copyright (C) 2004 Paul C. Buetow diff --git a/src/chat/gcol.cpp b/src/chat/gcol.cpp index 099f11e..b7f1288 100644 --- a/src/chat/gcol.cpp +++ b/src/chat/gcol.cpp @@ -1,7 +1,7 @@ /*:* *: File: ./src/chat/gcol.cpp *: - *: yChat; Homepage: www.yChat.org; Version 0.7.9.5-RELEASE + *: yChat; Homepage: www.yChat.org; Version 0.8.3-CURRENT *: *: Copyright (C) 2003 Paul C. Buetow, Volker Richter *: Copyright (C) 2004 Paul C. Buetow @@ -36,10 +36,6 @@ gcol::gcol() p_map_users = new shashmap<user*>; wrap::system_message( GARBAGE ); -#ifdef NCURSES - - print_garbage(); -#endif } gcol::~gcol() @@ -66,14 +62,10 @@ void gcol::add_user_to_garbage( user* p_user ) { p_user->s_mess_delete(); - p_map_users->add_elem( p_user, tool::to_lower(p_user->get_name()) |
