]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Allow Netware awk script which handles proxy
authorRainer Jung <rjung@apache.org>
Fri, 5 Feb 2016 12:31:33 +0000 (12:31 +0000)
committerRainer Jung <rjung@apache.org>
Fri, 5 Feb 2016 12:31:33 +0000 (12:31 +0000)
symbol import/export to differentiate between
hooks which call APR_HOOK_LINK() in the C
files and those who don't by marking them
in the header file.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1728656 13f79535-47bb-0310-9956-ffa450edef68

build/make_nw_export.awk
modules/proxy/mod_proxy.h

index ccfb0dc8646de79564ce723a34199899c2b668a4..5603e822c5ba0ea624789da4403583b4cf1e7588 100644 (file)
@@ -60,6 +60,17 @@ function add_symbol(sym_name) {
     next
 }
 
+/^[ \t]*PROXY_HOOK_NON_LINKED[ \t]*AP[RU]?_DECLARE_EXTERNAL_HOOK[^(]*[(][^)]*/ {
+    split($0, args, ",")
+    prefix = args[1]
+    sub("^.*[(]", "", prefix)
+    symbol = args[4]
+    sub("^[ \t]+", "", symbol)
+    sub("[ \t]+$", "", symbol)
+    add_symbol(prefix "_run_" symbol)
+    next
+}
+
 /^[ \t]*APR_POOL_DECLARE_ACCESSOR[^(]*[(][^)]*[)]/ {
     sub("[ \t]*APR_POOL_DECLARE_ACCESSOR[^(]*[(]", "", $0)
     sub("[)].*$", "", $0)
index 985e4589db6354358a07089cd127dab862586c2c..0acf84ac8b5426ea7b2be0e85fda5902cf751e65 100644 (file)
@@ -558,6 +558,11 @@ struct proxy_balancer_method {
 #define PROXY_DECLARE_DATA             __declspec(dllimport)
 #endif
 
+/* A non-functional marker tag to inform build/make_nw_export.awk
+ * that this hook is not linked in the module.
+ */
+#define PROXY_HOOK_NON_LINKED
+
 
 /* These 2 are in mod_proxy.c */
 PROXY_DECLARE_DATA extern proxy_hcmethods_t proxy_hcmethods[];
@@ -572,11 +577,16 @@ APR_DECLARE_OPTIONAL_FN(const char *, set_worker_hc_param,
                          const char *, const char *, void *));
 
 
-APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, scheme_handler, (request_rec *r,
-                          proxy_worker *worker, proxy_server_conf *conf, char *url,
-                          const char *proxyhost, apr_port_t proxyport))
-APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, canon_handler, (request_rec *r,
-                          char *url))
+PROXY_HOOK_NON_LINKED APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, scheme_handler,
+                                               (request_rec *r,
+                                                proxy_worker *worker,
+                                                proxy_server_conf *conf,
+                                                char *url,
+                                                const char *proxyhost,
+                                                apr_port_t proxyport))
+PROXY_HOOK_NON_LINKED APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, canon_handler,
+                                                (request_rec *r,
+                                                 char *url))
 
 APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, create_req, (request_rec *r, request_rec *pr))
 APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, fixups, (request_rec *r))
@@ -598,25 +608,30 @@ APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, detach_backend, (request_rec *r,
  * and then the scheme_handler is called.
  *
  */
-APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, pre_request, (proxy_worker **worker,
-                          proxy_balancer **balancer,
-                          request_rec *r,
-                          proxy_server_conf *conf, char **url))
+PROXY_HOOK_NON_LINKED APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, pre_request,
+                                                (proxy_worker **worker,
+                                                 proxy_balancer **balancer,
+                                                 request_rec *r,
+                                                 proxy_server_conf *conf,
+                                                 char **url))
 /**
  * post request hook.
  * It is called after request for updating runtime balancer status.
  */
-APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, post_request, (proxy_worker *worker,
-                          proxy_balancer *balancer, request_rec *r,
-                          proxy_server_conf *conf))
+PROXY_HOOK_NON_LINKED APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, post_request,
+                                                (proxy_worker *worker,
+                                                 proxy_balancer *balancer,
+                                                 request_rec *r,
+                                                 proxy_server_conf *conf))
 
 /**
  * request status hook
  * It is called after all proxy processing has been done.  This gives other
  * modules a chance to create default content on failure, for example
  */
-APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, request_status,
-                          (int *status, request_rec *r))
+PROXY_HOOK_NON_LINKED APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, request_status,
+                                                (int *status,
+                                                 request_rec *r))
 
 /* proxy_util.c */