diff options
Diffstat (limited to 'phpBB/includes')
| -rw-r--r-- | phpBB/includes/functions_jabber.php | 20 | ||||
| -rw-r--r-- | phpBB/includes/functions_user.php | 17 | ||||
| -rw-r--r-- | phpBB/includes/message_parser.php | 11 | ||||
| -rw-r--r-- | phpBB/includes/ucp/ucp_pm_compose.php | 6 | 
4 files changed, 29 insertions, 25 deletions
diff --git a/phpBB/includes/functions_jabber.php b/phpBB/includes/functions_jabber.php index e8bd3d423e..72dbbd2869 100644 --- a/phpBB/includes/functions_jabber.php +++ b/phpBB/includes/functions_jabber.php @@ -20,11 +20,11 @@ if (!defined('IN_PHPBB'))  *  * Jabber class from Flyspray project  * -* @version class.jabber2.php 1306 2007-06-21 +* @version class.jabber2.php 1488 2007-11-25  * @copyright 2006 Flyspray.org  * @author Florian Schmitz (floele)  * -* Modified by Acyd Burn +* Only slightly modified by Acyd Burn  *  * @package phpBB3  */ @@ -286,7 +286,7 @@ class jabber  			$read = trim(fread($this->connection, 4096));  			$data .= $read;  		} -		while (time() <= $start + $timeout && ($wait || $data == '' || $read != '' || (substr(rtrim($data), -1) != '>'))); +		while (time() <= $start + $timeout && !feof($this->connection) && ($wait || $data == '' || $read != '' || (substr(rtrim($data), -1) != '>')));  		if ($data != '')  		{ @@ -385,7 +385,6 @@ class jabber  		{  			case 'stream:stream':  				// Connection initialised (or after authentication). Not much to do here... -				$this->session['id'] = $xml['stream:stream'][0]['@']['id'];  				if (isset($xml['stream:stream'][0]['#']['stream:features']))  				{ @@ -397,6 +396,16 @@ class jabber  					$this->features = $this->listen();  				} +				$second_time = isset($this->session['id']); +				$this->session['id'] = $xml['stream:stream'][0]['@']['id']; + +				if ($second_time) +				{ +					// If we are here for the second time after TLS, we need to continue logging in +					$this->login(); +					return; +				} +  				// go on with authentication?  				if (isset($this->features['stream:features'][0]['#']['bind']) || !empty($this->session['tls']))  				{ @@ -519,9 +528,10 @@ class jabber  						'response'	=> $this->encrypt_password(array_merge($decoded, array('nc' => '00000001'))),  						'charset'	=> 'utf-8',  						'nc'		=> '00000001', +						'qop'		=> 'auth',			// only auth being supported  					); -					foreach (array('nonce', 'qop', 'digest-uri', 'realm', 'cnonce') as $key) +					foreach (array('nonce', 'digest-uri', 'realm', 'cnonce') as $key)  					{  						if (isset($decoded[$key]))  						{ diff --git a/phpBB/includes/functions_user.php b/phpBB/includes/functions_user.php index edaaee3d8f..84e75670fb 100644 --- a/phpBB/includes/functions_user.php +++ b/phpBB/includes/functions_user.php @@ -137,6 +137,9 @@ function user_update_name($old_name, $new_name)  	{  		set_config('newest_username', $new_name, true);  	} + +	// Because some tables/caches use username-specific data we need to purge this here. +	$cache->destroy('sql', MODERATOR_CACHE_TABLE);  }  /** @@ -1422,20 +1425,6 @@ function validate_username($username, $allowed_username = false)  		}  	} -	$sql = 'SELECT word -		FROM ' . WORDS_TABLE; -	$result = $db->sql_query($sql); - -	while ($row = $db->sql_fetchrow($result)) -	{ -		if (preg_match('#(' . str_replace('\*', '.*?', preg_quote($row['word'], '#')) . ')#i', $username)) -		{ -			$db->sql_freeresult($result); -			return 'USERNAME_DISALLOWED'; -		} -	} -	$db->sql_freeresult($result); -  	return false;  } diff --git a/phpBB/includes/message_parser.php b/phpBB/includes/message_parser.php index 82755b1f15..418a26776a 100644 --- a/phpBB/includes/message_parser.php +++ b/phpBB/includes/message_parser.php @@ -913,9 +913,14 @@ class bbcode_firstpass extends bbcode  		$url = ($var1) ? $var1 : $var2; -		if (!$url || ($var1 && !$var2)) +		if ($var1 && !$var2)  		{ -			return ''; +			$var2 = $var1; +		} + +		if (!$url) +		{ +			return '[url' . (($var1) ? '=' . $var1 : '') . ']' . $var2 . '[/url]';  		}  		$valid = false; @@ -1088,7 +1093,7 @@ class parse_message extends bbcode_firstpass  		}  		// Check for "empty" message -		if ($mode !== 'sig' && !utf8_clean_string($this->message)) +		if ($mode !== 'sig' && utf8_clean_string($this->message) === '')  		{  			$this->warn_msg[] = $user->lang['TOO_FEW_CHARS'];  			return $this->warn_msg; diff --git a/phpBB/includes/ucp/ucp_pm_compose.php b/phpBB/includes/ucp/ucp_pm_compose.php index 6b56b52a5d..b2e91d8dde 100644 --- a/phpBB/includes/ucp/ucp_pm_compose.php +++ b/phpBB/includes/ucp/ucp_pm_compose.php @@ -494,12 +494,12 @@ function compose_pm($id, $mode, $action)  		}  		else  		{ -			if (!$subject || !utf8_clean_string($subject)) +			if (utf8_clean_string($subject) === '')  			{  				$error[] = $user->lang['EMPTY_MESSAGE_SUBJECT'];  			} -			if (!$message) +			if (utf8_clean_string($message) === '')  			{  				$error[] = $user->lang['TOO_FEW_CHARS'];  			} @@ -600,7 +600,7 @@ function compose_pm($id, $mode, $action)  		// Subject defined  		if ($submit)  		{ -			if (!$subject || !utf8_clean_string($subject)) +			if (utf8_clean_string($subject) === '')  			{  				$error[] = $user->lang['EMPTY_MESSAGE_SUBJECT'];  			}  | 
