add nsapi_set_saf_return_callback as preparation for proxy saf testing default tip

Wed, 04 Mar 2026 22:05:07 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Wed, 04 Mar 2026 22:05:07 +0100
changeset 716
0b3d0af5d74f
parent 715
30732c5b292c

add nsapi_set_saf_return_callback as preparation for proxy saf testing

src/server/daemon/httprequest.c file | annotate | diff | comparison | revisions
src/server/daemon/httprequest.h file | annotate | diff | comparison | revisions
src/server/safs/proxy.h file | annotate | diff | comparison | revisions
--- a/src/server/daemon/httprequest.c	Wed Mar 04 21:54:54 2026 +0100
+++ b/src/server/daemon/httprequest.c	Wed Mar 04 22:05:07 2026 +0100
@@ -1160,6 +1160,12 @@
     return REQ_PROCESSING;
 }
 
+static nsapi_return_callback_func nsapi_return_callback;
+
+void nsapi_set_saf_return_callback(nsapi_return_callback_func callback) {
+    nsapi_return_callback = callback;
+}
+
 void nsapi_saf_return(Session *session, Request *request, int ret) {
     NSAPISession *sn = (NSAPISession*)session;
     NSAPIRequest *rq = (NSAPIRequest*)request;
@@ -1174,6 +1180,9 @@
 }
 
 void nsapi_function_return(Session *session, Request *request, int ret) {
+    if(nsapi_return_callback && nsapi_return_callback(session, request, ret)) {
+        return;
+    }
     ev_saf_return(session->ev, session, request, ret);
 }
 
--- a/src/server/daemon/httprequest.h	Wed Mar 04 21:54:54 2026 +0100
+++ b/src/server/daemon/httprequest.h	Wed Mar 04 22:05:07 2026 +0100
@@ -102,6 +102,21 @@
 
 void nsapi_saf_return(Session *sn, Request *rq, int ret);
 
+/*
+ * return: 0: noop, 1: abort
+ */
+typedef int(*nsapi_return_callback_func)(Session *, Request *, int);
+
+/*
+ * Sets a callback function, that is called by nsapi_function_return.
+ * If the callback returns 1, nsapi_function_return does not return to the
+ * normal nsapi processing.
+ * 
+ * This function is only useful for test implementations, to intercept
+ * nsapi_function_return calls.
+ */
+void nsapi_set_saf_return_callback(nsapi_return_callback_func callback);
+
 void request_free_resources(NSAPISession *sn, NSAPIRequest *rq);
 
 int nsapi_authtrans(NSAPISession *sn, NSAPIRequest *rq);
--- a/src/server/safs/proxy.h	Wed Mar 04 21:54:54 2026 +0100
+++ b/src/server/safs/proxy.h	Wed Mar 04 22:05:07 2026 +0100
@@ -35,7 +35,7 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
-    
+       
 int http_reverse_proxy_service(pblock *param, Session *sn, Request *rq);
 
 

mercurial