From 44f42ef738a03bad66b455c5e5adea9af2fb3c8b Mon Sep 17 00:00:00 2001 From: Neil Williams Date: Thu, 3 Jan 2013 22:30:03 -0800 Subject: [PATCH] Middleware: Replace pylons.Response with raw WSGI. pylons.Response is deprecated and we're not really using its capabilities here anyway. --- r2/r2/config/middleware.py | 44 ++++++++++++++++---------------------- 1 file changed, 18 insertions(+), 26 deletions(-) diff --git a/r2/r2/config/middleware.py b/r2/r2/config/middleware.py index 06e82b74d..a275dd3e2 100644 --- a/r2/r2/config/middleware.py +++ b/r2/r2/config/middleware.py @@ -31,7 +31,7 @@ from paste.cascade import Cascade from paste.registry import RegistryManager from paste.urlparser import StaticURLParser from paste.deploy.converters import asbool -from pylons import config, Response +from pylons import config from pylons.error import error_template from pylons.middleware import ErrorDocuments, ErrorHandler, StaticJavascripts from pylons.wsgiapp import PylonsApp, PylonsBaseWSGIApp @@ -179,17 +179,15 @@ class DomainMiddleware(object): # if there was a subreddit subdomain, redirect if sr_redirect and environ.get("FULLPATH"): - r = Response() if not subdomains and g.domain_prefix: subdomains.append(g.domain_prefix) subdomains.append(g.domain) redir = "%s/r/%s/%s" % ('.'.join(subdomains), sr_redirect, environ['FULLPATH']) redir = "http://" + redir.replace('//', '/') - r.status_code = 301 - r.headers['location'] = redir - r.content = "" - return r(environ, start_response) + + start_response("301 Moved Permanently", [("Location", redir)]) + return [""] return self.app(environ, start_response) @@ -304,34 +302,28 @@ class LimitUploadSize(object): cl_key = 'CONTENT_LENGTH' if environ['REQUEST_METHOD'] == 'POST': if cl_key not in environ: - r = Response() - r.status_code = 411 - r.content = 'length required' - return r(environ, start_response) + start_response("411 Length Required", []) + return ['length required'] try: cl_int = int(environ[cl_key]) except ValueError: - r = Response() - r.status_code = 400 - r.content = 'bad request' - return r(environ, start_response) + start_response("400 Bad Request", []) + return ['bad request'] if cl_int > self.max_size: from r2.lib.strings import string_dict error_msg = string_dict['css_validator_messages']['max_size'] % dict(max_size = self.max_size/1024) - r = Response() - r.status_code = 413 - r.content = ("" - "" - "you shouldn\'t be here") - return r(environ, start_response) + start_response("413 Too Big", []) + return ["" + "" + "you shouldn\'t be here"] return self.app(environ, start_response)