Wed, 04 Mar 2026 22:05:07 +0100
add nsapi_set_saf_return_callback as preparation for proxy saf testing
--- 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);