devserver: work on system with kernel that does not support IPv6
BUG=none
TEST=Unittests. Verified that devserver now runs on non-IPv6 kernel.
Change-Id: Idc6a437bfc8c1f4dead169b5eda042c0cc82cf0a
Reviewed-on: https://gerrit.chromium.org/gerrit/39434
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Ready: Mandeep Singh Baines <msb@chromium.org>
Tested-by: Mandeep Singh Baines <msb@chromium.org>
diff --git a/devserver.py b/devserver.py
index 5692d97..6a855e8 100755
--- a/devserver.py
+++ b/devserver.py
@@ -11,6 +11,7 @@
import optparse
import os
import re
+import socket
import sys
import subprocess
import tempfile
@@ -107,10 +108,20 @@
def _GetConfig(options):
"""Returns the configuration for the devserver."""
+
+ # On a system with IPv6 not compiled into the kernel,
+ # AF_INET6 sockets will return a socket.error exception.
+ # On such systems, fall-back to IPv4.
+ socket_host = '::'
+ try:
+ socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
+ except socket.error:
+ socket_host = '0.0.0.0'
+
base_config = { 'global':
{ 'server.log_request_headers': True,
'server.protocol_version': 'HTTP/1.1',
- 'server.socket_host': '::',
+ 'server.socket_host': socket_host,
'server.socket_port': int(options.port),
'response.timeout': 6000,
'request.show_tracebacks': True,