1. Armin Ronacher
  2. werkzeug-main

Commits

mitsuhiko  committed 8586ab6 Merge

Automated merge with ssh://team@pocoo.org/werkzeug-main

  • Participants
  • Parent commits 648b79b, 4090e57
  • Branches default

Comments (0)

Files changed (4)

File CHANGES

View file
  • Ignore whitespace
 Werkzeug Changelog
 ==================
 
-Version 1.0
+Version 0.7
 -----------
-(first 1.0 release, release date to be announced)
+(Last pre 1.0 release, release date to be announced)
 
 - improved func:`url_decode` and :func:`url_encode` performance.
 - fixed an issue where the SharedDataMiddleware could cause an
   generated component contains a colon.
 - :func:`werkzeug.import_string` now works with partially set up
   packages properly.
+- disabled automatic socket swiching for IPv6 on the development
+  server due to problems it caused.
+- Werkzeug no longer overrides the Date header when creating a
+  conditional HTTP response.
 
 Version 0.6.2
 -------------

File tests/test_wrappers.py

View file
  • Ignore whitespace
     response.headers['Content-Length'] = len(response.data)
     assert response.headers['Cache-Control'] == 'must-revalidate, max-age=60'
 
+    assert 'date' not in response.headers
     env = create_environ()
     env.update({
         'REQUEST_METHOD':       'GET',
         'HTTP_IF_NONE_MATCH':   response.get_etag()[0]
     })
     response.make_conditional(env)
+    assert 'date' in response.headers
 
     # after the thing is invoked by the server as wsgi application
     # (we're emulating this here), there must not be any entity
     assert resp.status_code == 304
     assert not 'content-length' in resp.headers
 
+    # make sure date is not overriden
+    response = Response('Hello World')
+    response.date = 1337
+    d = response.date
+    response.make_conditional(env)
+    assert response.date == d
+
 
 def test_etag_response_mixin_freezing():
     """Freeze of the etag response mixin adds etag if mixed first"""

File werkzeug/serving.py

View file
  • Ignore whitespace
 
 def select_ip_version(host, port):
     """Returns AF_INET4 or AF_INET6 depending on where to connect to."""
-    try:
-        info = socket.getaddrinfo(host, port, socket.AF_UNSPEC,
-                                  socket.SOCK_STREAM, 0,
-                                  socket.AI_PASSIVE)
-        if info:
-            return info[0][0]
-    except socket.gaierror:
-        pass
+    # disabled due to problems with current ipv6 implementations
+    # and various operating systems.  Probably this code also is
+    # not supposed to work, but I can't come up with any other
+    # ways to implement this.
+    ##try:
+    ##    info = socket.getaddrinfo(host, port, socket.AF_UNSPEC,
+    ##                              socket.SOCK_STREAM, 0,
+    ##                              socket.AI_PASSIVE)
+    ##    if info:
+    ##        return info[0][0]
+    ##except socket.gaierror:
+    ##    pass
     if ':' in host and hasattr(socket, 'AF_INET6'):
         return socket.AF_INET6
     return socket.AF_INET

File werkzeug/wrappers.py

View file
  • Ignore whitespace
         """
         environ = _get_environ(request_or_environ)
         if environ['REQUEST_METHOD'] in ('GET', 'HEAD'):
-            self.headers['Date'] = http_date()
+            # if the date is not in the headers, add it now.  We however
+            # will not override an already existing header.  Unfortunately
+            # will this header be overriden by many WSGI servers including
+            # wsgiref.
+            if 'date' not in self.headers:
+                self.headers['Date'] = http_date()
             if 'content-length' in self.headers:
                 self.headers['Content-Length'] = len(self.data)
             if not is_resource_modified(environ, self.headers.get('etag'), None,