[WebSockets] Handshake encoding + case insensitivity
Updated RFC6455 handshaker to check values case insensitively Made sure RFC6455 handshaker matches encoding properly Added mbstring as a requirement for Ratchet Refs #28, #30
This commit is contained in:
parent
b9144b3b82
commit
1be159f9fa
@ -2,12 +2,6 @@
|
|||||||
namespace Ratchet\WebSocket\Version;
|
namespace Ratchet\WebSocket\Version;
|
||||||
|
|
||||||
interface FrameInterface {
|
interface FrameInterface {
|
||||||
/**
|
|
||||||
* Dunno if I'll use this
|
|
||||||
* Thinking could be used if a control frame?
|
|
||||||
*/
|
|
||||||
// function __invoke();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
|
@ -32,10 +32,9 @@ class HandshakeVerifier {
|
|||||||
* Test the HTTP method. MUST be "GET"
|
* Test the HTTP method. MUST be "GET"
|
||||||
* @param string
|
* @param string
|
||||||
* @return bool
|
* @return bool
|
||||||
* @todo Look into STD if "get" is valid (am I supposed to do case conversion?)
|
|
||||||
*/
|
*/
|
||||||
public function verifyMethod($val) {
|
public function verifyMethod($val) {
|
||||||
return ('GET' === $val);
|
return ('get' === mb_strtolower($val, 'ASCII'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -50,7 +49,6 @@ class HandshakeVerifier {
|
|||||||
/**
|
/**
|
||||||
* @param string
|
* @param string
|
||||||
* @return bool
|
* @return bool
|
||||||
* @todo Verify the logic here is correct
|
|
||||||
*/
|
*/
|
||||||
public function verifyRequestURI($val) {
|
public function verifyRequestURI($val) {
|
||||||
if ($val[0] != '/') {
|
if ($val[0] != '/') {
|
||||||
@ -80,7 +78,7 @@ class HandshakeVerifier {
|
|||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function verifyUpgradeRequest($val) {
|
public function verifyUpgradeRequest($val) {
|
||||||
return ('websocket' === $val);
|
return ('websocket' === mb_strtolower($val, 'ASCII'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -89,12 +87,16 @@ class HandshakeVerifier {
|
|||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function verifyConnection($val) {
|
public function verifyConnection($val) {
|
||||||
if ('Upgrade' === $val) {
|
$val = mb_strtolower($val, 'ASCII');
|
||||||
|
|
||||||
|
if ('upgrade' === $val) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// todo change this to mb_eregi_replace
|
||||||
$vals = explode(',', str_replace(', ', ',', $val));
|
$vals = explode(',', str_replace(', ', ',', $val));
|
||||||
return (false !== array_search('Upgrade', $vals));
|
|
||||||
|
return (false !== array_search('upgrade', $vals));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user