From 92f3844a5357ce9826838d05b7bbc9486d59f531 Mon Sep 17 00:00:00 2001
From: Chris Boden <cboden@gmail.com>
Date: Sun, 31 Mar 2013 14:16:40 -0400
Subject: [PATCH] [WebSocket] Prevent division by 0 in Hixie handshake

---
 src/Ratchet/WebSocket/Version/Hixie76.php             | 4 ++++
 tests/Ratchet/Tests/WebSocket/Version/Hixie76Test.php | 1 +
 2 files changed, 5 insertions(+)

diff --git a/src/Ratchet/WebSocket/Version/Hixie76.php b/src/Ratchet/WebSocket/Version/Hixie76.php
index 536977b..069263a 100644
--- a/src/Ratchet/WebSocket/Version/Hixie76.php
+++ b/src/Ratchet/WebSocket/Version/Hixie76.php
@@ -103,6 +103,10 @@ class Hixie76 implements VersionInterface {
     }
 
     public function generateKeyNumber($key) {
+        if (0 === substr_count($key, ' ')) {
+            return 0;
+        }
+
         return preg_replace('[\D]', '', $key) / substr_count($key, ' ');
     }
 
diff --git a/tests/Ratchet/Tests/WebSocket/Version/Hixie76Test.php b/tests/Ratchet/Tests/WebSocket/Version/Hixie76Test.php
index fecca81..d31ce64 100644
--- a/tests/Ratchet/Tests/WebSocket/Version/Hixie76Test.php
+++ b/tests/Ratchet/Tests/WebSocket/Version/Hixie76Test.php
@@ -32,6 +32,7 @@ class Hixie76Test extends \PHPUnit_Framework_TestCase {
         return array(
             array(179922739, '17  9 G`ZD9   2 2b 7X 3 /r90')
           , array(906585445, '3e6b263  4 17 80')
+          , array(0, '3e6b26341780')
         );
     }