summaryrefslogtreecommitdiffstats
path: root/src/flt_spoe.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/flt_spoe.c')
-rw-r--r--src/flt_spoe.c28
1 files changed, 9 insertions, 19 deletions
diff --git a/src/flt_spoe.c b/src/flt_spoe.c
index 43f6bd9..95930f1 100644
--- a/src/flt_spoe.c
+++ b/src/flt_spoe.c
@@ -249,7 +249,7 @@ static const char *spoe_appctx_state_str[SPOE_APPCTX_ST_END+1] = {
static char *
generate_pseudo_uuid()
{
- ha_generate_uuid(&trash);
+ ha_generate_uuid_v4(&trash);
return my_strndup(trash.area, trash.data);
}
@@ -1131,7 +1131,6 @@ spoe_handle_healthcheck_response(char *frame, size_t size, char *err, int errlen
static int
spoe_send_frame(struct appctx *appctx, char *buf, size_t framesz)
{
- struct stconn *sc = appctx_sc(appctx);
int ret;
uint32_t netint;
@@ -1140,15 +1139,8 @@ spoe_send_frame(struct appctx *appctx, char *buf, size_t framesz)
netint = htonl(framesz);
memcpy(buf, (char *)&netint, 4);
ret = applet_putblk(appctx, buf, framesz+4);
- if (ret <= 0) {
- if (ret == -3 && b_is_null(&sc_ic(sc)->buf)) {
- /* WT: is this still needed for the case ret==-3 ? */
- sc_need_room(sc, 0);
- return 1; /* retry */
- }
- SPOE_APPCTX(appctx)->status_code = SPOE_FRM_ERR_IO;
- return -1; /* error */
- }
+ if (ret <= 0)
+ return 1; /* retry */
return framesz;
}
@@ -1934,7 +1926,7 @@ spoe_handle_appctx(struct appctx *appctx)
if (SPOE_APPCTX(appctx) == NULL)
return;
- if (unlikely(se_fl_test(appctx->sedesc, (SE_FL_EOS|SE_FL_ERROR|SE_FL_SHR|SE_FL_SHW)))) {
+ if (unlikely(se_fl_test(appctx->sedesc, (SE_FL_EOS|SE_FL_ERROR)))) {
co_skip(sc_oc(sc), co_data(sc_oc(sc)));
goto out;
}
@@ -2860,21 +2852,19 @@ spoe_acquire_buffer(struct buffer *buf, struct buffer_wait *buffer_wait)
if (buf->size)
return 1;
- if (LIST_INLIST(&buffer_wait->list))
- LIST_DEL_INIT(&buffer_wait->list);
+ b_dequeue(buffer_wait);
- if (b_alloc(buf))
+ if (b_alloc(buf, DB_CHANNEL))
return 1;
- LIST_APPEND(&th_ctx->buffer_wq, &buffer_wait->list);
+ b_requeue(DB_CHANNEL, buffer_wait);
return 0;
}
static void
spoe_release_buffer(struct buffer *buf, struct buffer_wait *buffer_wait)
{
- if (LIST_INLIST(&buffer_wait->list))
- LIST_DEL_INIT(&buffer_wait->list);
+ b_dequeue(buffer_wait);
/* Release the buffer if needed */
if (buf->size) {
@@ -3022,7 +3012,7 @@ spoe_init(struct proxy *px, struct flt_conf *fconf)
/* conf->agent_fe was already initialized during the config
* parsing. Finish initialization. */
- conf->agent_fe.last_change = ns_to_sec(now_ns);
+ conf->agent_fe.fe_counters.last_change = ns_to_sec(now_ns);
conf->agent_fe.cap = PR_CAP_FE;
conf->agent_fe.mode = PR_MODE_TCP;
conf->agent_fe.maxconn = 0;