Pass proxy addresses/ports to continued trasnports. Bug 2710
[users/heiko/exim.git] / src / src / transport.c
index 31edb96929f06c714bfb8143188d136101d5add5..39b8c411abe688239360b08557af2f99870c3a00 100644 (file)
@@ -1880,7 +1880,7 @@ void
 transport_do_pass_socket(const uschar *transport_name, const uschar *hostname,
   const uschar *hostaddress, uschar *id, int socket_fd)
 {
-int i = 22;
+int i = 27;
 const uschar **argv;
 
 /* Set up the calling arguments; use the standard function for the basics,
@@ -1923,6 +1923,17 @@ if (queue_run_pid != (pid_t)0)
   argv[i++] = string_sprintf("%d", queue_run_pipe);
   }
 
+#ifdef SUPPORT_SOCKS
+if (proxy_session)
+  {
+  argv[i++] = US"-MCp";
+  argv[i++] = proxy_local_address;
+  argv[i++] = string_sprintf("%d", proxy_local_port);
+  argv[i++] = proxy_external_address;
+  argv[i++] = string_sprintf("%d", proxy_external_port);
+  }
+#endif
+
 argv[i++] = US"-MC";
 argv[i++] = US transport_name;
 argv[i++] = US hostname;