]> err.no Git - sope/commitdiff
added ability to forward requests to other hosts
authorhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Mon, 21 Aug 2006 11:06:07 +0000 (11:06 +0000)
committerhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Mon, 21 Aug 2006 11:06:07 +0000 (11:06 +0000)
git-svn-id: http://svn.opengroupware.org/SOPE/trunk@1345 e4a50df8-12e2-0310-a44c-efbce7f8a7e3

sope-appserver/mod_ngobjweb/ChangeLog
sope-appserver/mod_ngobjweb/handler.c

index e457e4ac21bae8e960e06042200210e87bc44cf2..c1d3e64b57e4d57195bd844b3ffd8981898b3598 100644 (file)
@@ -1,3 +1,8 @@
+2006-08-21  Helge Hess  <helge.hess@opengroupware.org>
+
+       * handler.c: added ability to forward app requests to other hosts
+         (using IP:port syntax)
+
 2005-10-04  Helge Hess  <helge.hess@skyrix.com>
 
        * GNUmakefile: add APR include dirs if apr-config can be found (this is
index 1476b29ab5dfa047e5f66d70a706cfa7411b6a1a..ab9a4aed2d0b639126e7d22107f663e1011d6581 100644 (file)
@@ -336,14 +336,26 @@ int ngobjweb_handler(request_rec *r) {
     }
     else {
       struct sockaddr_in *snsi;
-      char *host;
+      char *host, *pos;
       int  port;
       
-      host = "127.0.0.1";
-      port = atoi(cfg->appPort);
-
-      //ap_log_error(__FILE__, __LINE__, APLOG_INFO, 0, r->server,
-      //             "appPort: '%s', cfg 0x%08X", cfg->appPort, cfg);
+      if ((pos = index(cfg->appPort, ':'))) {
+       host = apr_palloc(r->pool, (pos - cfg->appPort) + 3);
+       strncpy(host, cfg->appPort, (pos - cfg->appPort));
+       host[pos - cfg->appPort] = '\0';
+       
+       port = atoi(pos + 1);
+      }
+      else {
+       host = "127.0.0.1";
+       port = atoi(cfg->appPort);
+      }
+      
+#if HEAVY_LOG
+      ap_log_error(__FILE__, __LINE__, APLOG_INFO, 0, r->server,
+                   "appPort: '%s' host: %s port %d, cfg 0x%p",
+                  cfg->appPort, host, port, cfg);
+#endif
       
       addressLen = sizeof(struct sockaddr_in);
       address = apr_palloc(r->pool, sizeof(struct sockaddr_in));
@@ -357,7 +369,7 @@ int ngobjweb_handler(request_rec *r) {
       
       if (snsi->sin_addr.s_addr == -1) { 
        ap_log_error(__FILE__, __LINE__, APLOG_ERR, 0, r->server,
-                    "couldn't convert snsd IP address: %s", host); 
+                    "could not convert IP address: %s", host); 
       } 
       if (HEAVY_LOG && 0) { 
         ap_log_error(__FILE__, __LINE__, APLOG_ERR, 0, r->server,