rem: if (target_socket.away && (type_str == "PRIVMSG") ) 
add: if (target_socket.away && (type_str == "PRIVMSG") && !this.server) 
context: function IRCClient_do_msg(target,type_str,send_str) {	if ((target[0] == "$") && (this.mode&USERMODE_OPER)) {		var global_mask = target.slice(1);		var global_str = type_str + " " + target + " :" + send_str;		for(globClient in Clients) {			var Client = Clients[globClient];			if ((Client.conntype == TYPE_USER) &&			    match_irc_mask(Client.servername,global_mask) &&			    Client.local)				Client.originatorout(global_str,this);		}		global_str = ":" + this.nick + " " + global_str;		if(this.parent) {			var globServer = Clients[this.parent];			globServer.bcast_to_servers_raw(global_str);		} else {			server_bcast_to_servers(global_str);		}		return 1;	}	send_to_list = -1;	if (target[0] == "@" && ( (target[1] == "#") || target[1] == "&") ) {		send_to_list = CHANLIST_OP;		target = target.slice(1);	} else if (target[0]=="+" && ((target[1] == "#")|| target[1] == "&")) {		send_to_list = CHANLIST_VOICE;		target = target.slice(1);	}			if ((target[0] == "#") || (target[0] == "&")) {		chan = searchbychannel(target);		if (!chan) {			this.numeric401(target);			return 0;		}		if ( (chan.mode&CHANMODE_NOOUTSIDE) &&		     !this.onchannel(chan.nam.toUpperCase())) {			this.numeric(404, chan.nam + " :Cannot send to channel (+n: no outside messages)");			return 0;		}		if ( (chan.mode&CHANMODE_MODERATED) &&		     !chan.ismode(this.id,CHANLIST_VOICE) &&		     !chan.ismode(this.id,CHANLIST_OP) ) {			this.numeric(404, chan.nam + " :Cannot send to channel (+m: moderated)");			return 0;		}		if (chan.isbanned(this.ircnuh) &&		   !chan.ismode(this.id,CHANLIST_VOICE) &&		   !chan.ismode(this.id,CHANLIST_OP) ) {			this.numeric(404, chan.nam + " :Cannot send to channel (+b: you're banned!)");			return 0;		}		if(send_to_list == -1) {			str = type_str +" "+ chan.nam +" :"+ send_str;			this.bcast_to_channel(chan.nam, str, false);			this.bcast_to_channel_servers(chan.nam, str);		} else {			if (send_to_list == CHANLIST_OP)				prefix_chr="@";			else if (send_to_list == CHANLIST_VOICE)				prefix_chr="+";			str = type_str +" " + prefix_chr + chan.nam + " :"+ send_str;			this.bcast_to_list(chan, str, false, send_to_list);			this.bcast_to_channel_servers(chan.nam, str);		}	} else {		target_socket = searchbynick(target);		if (target_socket) {			str = type_str +" " + target_socket.nick +" :"+ send_str;			target_socket.originatorout(str,this);			if (target_socket.away && (type_str == "PRIVMSG") )				this.numeric(301, target_socket.nick + " :" + target_socket.away);		} else {			this.numeric401(target);			return 0;		}	}}
meta: 9592	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9592/5b26562d6bd0c6a3f63d13d5cf5f58fe68b5ce99/ircd.js/buggy/ircd.js