+ if ((sessionflags & (AFB_SESSION_CREATE | AFB_SESSION_RENEW)) != 0) {
+ afb_context_refresh(&xreq->context);
+ }
+ if ((sessionflags & AFB_SESSION_CLOSE) != 0) {
+ afb_context_change_loa(&xreq->context, 0);
+ afb_context_close(&xreq->context);
+ }
+}
+
+int xreq_session_check_apply(struct afb_xreq *xreq, int sessionflags)
+{
+ int rc = xreq_session_check(xreq, sessionflags);
+ if (!rc)
+ xreq_session_apply(xreq, sessionflags);
+
+ return rc;
+}
+
+void afb_xreq_call(struct afb_xreq *xreq, void (*method)(struct afb_req req))
+{
+ method(to_req(xreq));