# HG changeset patch # User Olaf Wintermann # Date 1772658307 -3600 # Node ID 0b3d0af5d74f8edc95b9ff60b8e0e49aa03461f4 # Parent 30732c5b292c471d3bdeacb1e7177f15fe49d9a1 add nsapi_set_saf_return_callback as preparation for proxy saf testing diff -r 30732c5b292c -r 0b3d0af5d74f src/server/daemon/httprequest.c --- 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); } diff -r 30732c5b292c -r 0b3d0af5d74f src/server/daemon/httprequest.h --- 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); diff -r 30732c5b292c -r 0b3d0af5d74f src/server/safs/proxy.h --- 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);