Factor out window bits value validation code into a separate function.

Release note: n/a
Review URL: https://codereview.appspot.com/7643044
diff --git a/src/mod_pywebsocket/extensions.py b/src/mod_pywebsocket/extensions.py
index 8a388a6..eb846b8 100644
--- a/src/mod_pywebsocket/extensions.py
+++ b/src/mod_pywebsocket/extensions.py
@@ -136,6 +136,17 @@
         (ratio, average_ratio))
 
 
+def _validate_window_bits(bits):
+    if bits is not None:
+        try:
+            bits = int(bits)
+        except ValueError, e:
+            return False
+        if bits < 8 or bits > 15:
+            return False
+    return True
+
+
 class DeflateFrameExtensionProcessor(ExtensionProcessorInterface):
     """WebSocket Per-frame DEFLATE extension processor.
 
@@ -181,13 +192,8 @@
                 self._NO_CONTEXT_TAKEOVER_PARAM) is not None):
             return None
 
-        if window_bits is not None:
-            try:
-                window_bits = int(window_bits)
-            except ValueError, e:
-                return None
-            if window_bits < 8 or window_bits > 15:
-                return None
+        if not _validate_window_bits(window_bits):
+            return None
 
         self._deflater = util._RFC1979Deflater(
             window_bits, no_context_takeover)
@@ -476,13 +482,8 @@
 
         s2c_max_window_bits = self._request.get_parameter_value(
             self._S2C_MAX_WINDOW_BITS_PARAM)
-        if s2c_max_window_bits is not None:
-            try:
-                s2c_max_window_bits = int(s2c_max_window_bits)
-            except ValueError, e:
-                return None
-            if s2c_max_window_bits < 8 or s2c_max_window_bits > 15:
-                return None
+        if not _validate_window_bits(s2c_max_window_bits):
+            return None
 
         s2c_no_context_takeover = self._request.has_parameter(
             self._S2C_NO_CONTEXT_TAKEOVER_PARAM)