#endif
#include "afb-method.h"
-#include <afb/afb-req-itf.h>
#include "afb-msg-json.h"
#include "afb-context.h"
#include "afb-hreq.h"
void afb_hreq_addref(struct afb_hreq *hreq)
{
- afb_xreq_addref(&hreq->xreq);
+ afb_xreq_unhooked_addref(&hreq->xreq);
}
void afb_hreq_unref(struct afb_hreq *hreq)
{
- afb_xreq_unref(&hreq->xreq);
+ if (hreq->replied)
+ hreq->xreq.replied = 1;
+ afb_xreq_unhooked_unref(&hreq->xreq);
}
/*
} else if (afb_hreq_init_context(hreq) < 0) {
afb_hreq_reply_error(hreq, MHD_HTTP_INTERNAL_SERVER_ERROR);
} else {
- afb_xreq_addref(&hreq->xreq); /* TODO check if needed */
+ afb_xreq_unhooked_addref(&hreq->xreq);
afb_xreq_process(&hreq->xreq, apiset);
}
}
if (hreq) {
/* init the request */
afb_xreq_init(&hreq->xreq, &afb_hreq_xreq_query_itf);
- hreq->xreq.cred = afb_cred_current();
hreq->reqid = ++global_reqids;
}
return hreq;