static forceinline void applet_fl_set(struct appctx *appctx, uint on);
static forceinline void applet_fl_clr(struct appctx *appctx, uint off);
+
+static forceinline uint appctx_app_test(const struct appctx *appctx, uint test)
+{
+ return (appctx->applet->flags & test);
+}
+
static inline struct appctx *appctx_new_here(struct applet *applet, struct sedesc *sedesc)
{
return appctx_new_on(applet, sedesc, tid);
*/
static inline struct buffer *applet_get_inbuf(struct appctx *appctx)
{
- if (appctx->applet->flags & APPLET_FL_NEW_API) {
+ if (appctx_app_test(appctx, APPLET_FL_NEW_API)) {
if (applet_fl_test(appctx, APPCTX_FL_INBLK_ALLOC) || !appctx_get_buf(appctx, &appctx->inbuf))
return NULL;
return &appctx->inbuf;
*/
static inline struct buffer *applet_get_outbuf(struct appctx *appctx)
{
- if (appctx->applet->flags & APPLET_FL_NEW_API) {
+ if (appctx_app_test(appctx, APPLET_FL_NEW_API)) {
if (applet_fl_test(appctx, APPCTX_FL_OUTBLK_ALLOC|APPCTX_FL_OUTBLK_FULL) ||
!appctx_get_buf(appctx, &appctx->outbuf))
return NULL;
/* Returns the amount of data in the input buffer (see applet_get_inbuf) */
static inline size_t applet_input_data(const struct appctx *appctx)
{
- if (appctx->applet->flags & APPLET_FL_NEW_API)
+ if (appctx_app_test(appctx, APPLET_FL_NEW_API))
return b_data(&appctx->inbuf);
else
return co_data(sc_oc(appctx_sc(appctx)));
/* Returns the amount of HTX data in the input buffer (see applet_get_inbuf) */
static inline size_t applet_htx_input_data(const struct appctx *appctx)
{
- if (appctx->applet->flags & APPLET_FL_NEW_API)
+ if (appctx_app_test(appctx, APPLET_FL_NEW_API))
return htx_used_space(htxbuf(&appctx->inbuf));
else
return co_data(sc_oc(appctx_sc(appctx)));
*/
static inline void applet_skip_input(struct appctx *appctx, size_t len)
{
- if (appctx->applet->flags & APPLET_FL_NEW_API) {
+ if (appctx_app_test(appctx, APPLET_FL_NEW_API)) {
b_del(&appctx->inbuf, len);
applet_fl_clr(appctx, APPCTX_FL_INBLK_FULL);
}
*/
static inline void applet_reset_input(struct appctx *appctx)
{
- if (appctx->applet->flags & APPLET_FL_NEW_API) {
+ if (appctx_app_test(appctx, APPLET_FL_NEW_API)) {
b_reset(&appctx->inbuf);
applet_fl_clr(appctx, APPCTX_FL_INBLK_FULL);
}
*/
static inline size_t applet_output_room(const struct appctx *appctx)
{
- if (appctx->applet->flags & APPLET_FL_NEW_API)
+ if (appctx_app_test(appctx, APPLET_FL_NEW_API))
return b_room(&appctx->outbuf);
else
return channel_recv_max(sc_ic(appctx_sc(appctx)));
*/
static inline size_t applet_htx_output_room(const struct appctx *appctx)
{
- if (appctx->applet->flags & APPLET_FL_NEW_API)
+ if (appctx_app_test(appctx, APPLET_FL_NEW_API))
return htx_free_data_space(htxbuf(&appctx->outbuf));
else
return channel_recv_max(sc_ic(appctx_sc(appctx)));
*/
static inline void applet_need_room(struct appctx *appctx, size_t room_needed)
{
- if (appctx->applet->flags & APPLET_FL_NEW_API)
+ if (appctx_app_test(appctx, APPLET_FL_NEW_API))
applet_have_more_data(appctx);
else
sc_need_room(appctx_sc(appctx), room_needed);
{
int ret;
- if (appctx->applet->flags & APPLET_FL_NEW_API) {
+ if (appctx_app_test(appctx, APPLET_FL_NEW_API)) {
if (unlikely(stress) ?
b_data(&appctx->outbuf) :
b_data(chunk) > b_room(&appctx->outbuf)) {
{
int ret;
- if (appctx->applet->flags & APPLET_FL_NEW_API) {
+ if (appctx_app_test(appctx, APPLET_FL_NEW_API)) {
if (len > b_room(&appctx->outbuf)) {
applet_fl_set(appctx, APPCTX_FL_OUTBLK_FULL);
ret = -1;
{
int ret;
- if (appctx->applet->flags & APPLET_FL_NEW_API) {
+ if (appctx_app_test(appctx, APPLET_FL_NEW_API)) {
int len = strlen(str);
if (len > b_room(&appctx->outbuf)) {
{
int ret;
- if (appctx->applet->flags & APPLET_FL_NEW_API) {
+ if (appctx_app_test(appctx, APPLET_FL_NEW_API)) {
if (b_full(&appctx->outbuf)) {
applet_fl_set(appctx, APPCTX_FL_OUTBLK_FULL);
ret = -1;
static inline int applet_may_get(const struct appctx *appctx, size_t len)
{
- if (appctx->applet->flags & APPLET_FL_NEW_API) {
+ if (appctx_app_test(appctx, APPLET_FL_NEW_API)) {
if (len > b_data(&appctx->inbuf)) {
if (se_fl_test(appctx->sedesc, SE_FL_SHW))
return -1;
ret = applet_may_get(appctx, 1);
if (ret <= 0)
return ret;
- *c = ((appctx->applet->flags & APPLET_FL_NEW_API)
+ *c = ((appctx_app_test(appctx, APPLET_FL_NEW_API))
? *(b_head(&appctx->inbuf))
: *(co_head(sc_oc(appctx_sc(appctx)))));
if (ret <= 0)
return ret;
- buf = ((appctx->applet->flags & APPLET_FL_NEW_API)
+ buf = ((appctx_app_test(appctx, APPLET_FL_NEW_API))
? &appctx->inbuf
: sc_ob(appctx_sc(appctx)));
return b_getblk(buf, blk, len, offset);
if (ret <= 0)
goto out;
- if (appctx->applet->flags & APPLET_FL_NEW_API) {
+ if (appctx_app_test(appctx, APPLET_FL_NEW_API)) {
buf = &appctx->inbuf;
input = b_data(buf);
}
p = b_next(buf, p);
}
- if (appctx->applet->flags & APPLET_FL_NEW_API) {
+ if (appctx_app_test(appctx, APPLET_FL_NEW_API)) {
if (ret < len && (ret < input || b_room(buf)) &&
!se_fl_test(appctx->sedesc, SE_FL_SHW))
ret = 0;
if (ret <= 0)
return ret;
- if (appctx->applet->flags & APPLET_FL_NEW_API) {
+ if (appctx_app_test(appctx, APPLET_FL_NEW_API)) {
buf = &appctx->inbuf;
max = b_data(buf);
}
* the resulting string is made of the concatenation of the pending
* blocks (1 or 2).
*/
- if (appctx->applet->flags & APPLET_FL_NEW_API) {
+ if (appctx_app_test(appctx, APPLET_FL_NEW_API)) {
if (b_full(&appctx->inbuf) || se_fl_test(appctx->sedesc, SE_FL_SHW))
return ret;
}