Hi,

why not having SCGI_DEFAULT_PORT in a .h file, just as AJP13_DEF_PORT?
This would avoid using SCGI_DEFAULT_PORT in one place and 4000 in another.

Moreover, this could be renamed as SCGI_DEF_PORT to be consistent with AJP.

Just my 2 cents.

CJ

Le 05/05/2014 16:02, traw...@apache.org a écrit :
Author: trawick
Date: Mon May  5 14:02:48 2014
New Revision: 1592529

URL: http://svn.apache.org/r1592529
Log:
mod_proxy_scgi: Support Unix sockets.

ap_proxy_port_of_scheme(): Support default SCGI port (4000).

Modified:
     httpd/httpd/trunk/CHANGES
     httpd/httpd/trunk/modules/proxy/mod_proxy_scgi.c
     httpd/httpd/trunk/modules/proxy/proxy_util.c

Modified: httpd/httpd/trunk/CHANGES
URL: 
http://svn.apache.org/viewvc/httpd/httpd/trunk/CHANGES?rev=1592529&r1=1592528&r2=1592529&view=diff
==============================================================================
--- httpd/httpd/trunk/CHANGES [utf-8] (original)
+++ httpd/httpd/trunk/CHANGES [utf-8] Mon May  5 14:02:48 2014
@@ -1,6 +1,9 @@
                                                           -*- coding: utf-8 -*-
  Changes with Apache 2.5.0
+ *) mod_proxy_scgi: Support Unix sockets. ap_proxy_port_of_scheme():
+     Support default SCGI port (4000).  [Jeff Trawick]
+
    *) mod_proxy_fcgi: Fix occasional high CPU when handling request bodies.
       [Jeff Trawick]
Modified: httpd/httpd/trunk/modules/proxy/mod_proxy_scgi.c
URL: 
http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy_scgi.c?rev=1592529&r1=1592528&r2=1592529&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/proxy/mod_proxy_scgi.c (original)
+++ httpd/httpd/trunk/modules/proxy/mod_proxy_scgi.c Mon May  5 14:02:48 2014
@@ -176,13 +176,15 @@ static int scgi_canon(request_rec *r, ch
  {
      char *host, sport[sizeof(":65535")];
      const char *err, *path;
-    apr_port_t port = SCGI_DEFAULT_PORT;
+    apr_port_t port, def_port;
if (strncasecmp(url, SCHEME "://", sizeof(SCHEME) + 2)) {
          return DECLINED;
      }
      url += sizeof(SCHEME); /* Keep slashes */
+ port = def_port = SCGI_DEFAULT_PORT;
+
      err = ap_proxy_canon_netloc(r->pool, &url, NULL, NULL, &host, &port);
      if (err) {
          ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(00857)
@@ -190,7 +192,12 @@ static int scgi_canon(request_rec *r, ch
          return HTTP_BAD_REQUEST;
      }
- apr_snprintf(sport, sizeof(sport), ":%u", port);
+    if (port != def_port) {
+        apr_snprintf(sport, sizeof(sport), ":%u", port);
+    }
+    else {
+        sport[0] = '\0';
+    }
if (ap_strchr(host, ':')) { /* if literal IPv6 address */
          host = apr_pstrcat(r->pool, "[", host, "]", NULL);

Modified: httpd/httpd/trunk/modules/proxy/proxy_util.c
URL: 
http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/proxy_util.c?rev=1592529&r1=1592528&r2=1592529&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/proxy/proxy_util.c (original)
+++ httpd/httpd/trunk/modules/proxy/proxy_util.c Mon May  5 14:02:48 2014
@@ -3514,6 +3514,7 @@ static proxy_schemes_t pschemes[] =
  {
      {"fcgi",     8000},
      {"ajp",      AJP13_DEF_PORT},
+    {"scgi",     4000},
      { NULL, 0xFFFF }     /* unknown port */
  };

Reply via email to