mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-03-13 11:01:13 +01:00
MINOR: stconn: Totally app_ops from the stconns
The stconn app_ops structure is now empty and can be safely removed. So let's do so.
This commit is contained in:
parent
27ab9ef545
commit
b88a7c4ade
@ -349,14 +349,6 @@ struct sedesc {
|
||||
unsigned long long kop; /* Known outgoing payload length (see above) */
|
||||
};
|
||||
|
||||
/* sc_app_ops describes the application layer's operations and notification
|
||||
* callbacks when I/O activity is reported and to use to perform shutr/shutw.
|
||||
* There are very few combinations in practice (strm/chk <-> none/mux/applet).
|
||||
*/
|
||||
struct sc_app_ops {
|
||||
char name[8]; /* data layer name, zero-terminated */
|
||||
};
|
||||
|
||||
/*
|
||||
* This structure describes the elements of a connection relevant to a stream
|
||||
*/
|
||||
@ -378,7 +370,6 @@ struct stconn {
|
||||
struct wait_event wait_event; /* We're in a wait list */
|
||||
struct sedesc *sedesc; /* points to the stream endpoint descriptor */
|
||||
enum obj_type *app; /* points to the applicative point (stream or check) */
|
||||
const struct sc_app_ops *app_ops; /* general operations used at the app layer */
|
||||
struct sockaddr_storage *src; /* source address (pool), when known, otherwise NULL */
|
||||
struct sockaddr_storage *dst; /* destination address (pool), when known, otherwise NULL */
|
||||
};
|
||||
|
||||
@ -351,16 +351,6 @@ static inline struct hstream *sc_hstream(const struct stconn *sc)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Returns the name of the application layer's name for the stconn,
|
||||
* or "NONE" when none is attached.
|
||||
*/
|
||||
static inline const char *sc_get_data_name(const struct stconn *sc)
|
||||
{
|
||||
if (!sc->app_ops)
|
||||
return "NONE";
|
||||
return sc->app_ops->name;
|
||||
}
|
||||
|
||||
/* Returns non-zero if the stream connector's Rx path is blocked because of
|
||||
* lack of room in the input buffer. This usually happens after applets failed
|
||||
* to deliver data into the channel's buffer and reported it via sc_need_room().
|
||||
|
||||
51
src/stconn.c
51
src/stconn.c
@ -32,30 +32,6 @@ DECLARE_TYPED_POOL(pool_head_sedesc, "sedesc", struct sedesc);
|
||||
static int sc_conn_recv(struct stconn *sc);
|
||||
static int sc_conn_send(struct stconn *sc);
|
||||
|
||||
/* stream connector operations for connections */
|
||||
struct sc_app_ops sc_app_conn_ops = {
|
||||
.name = "STRM",
|
||||
};
|
||||
|
||||
/* stream connector operations for embedded tasks */
|
||||
struct sc_app_ops sc_app_embedded_ops = {
|
||||
.name = "NONE", /* may never be used */
|
||||
};
|
||||
|
||||
/* stream connector operations for applets */
|
||||
struct sc_app_ops sc_app_applet_ops = {
|
||||
.name = "STRM",
|
||||
};
|
||||
|
||||
/* stream connector for health checks on connections */
|
||||
struct sc_app_ops sc_app_check_ops = {
|
||||
.name = "CHCK",
|
||||
};
|
||||
|
||||
struct sc_app_ops sc_app_hstream_ops = {
|
||||
.name = "HTERM",
|
||||
};
|
||||
|
||||
/* Initializes an endpoint */
|
||||
void sedesc_init(struct sedesc *sedesc)
|
||||
{
|
||||
@ -107,7 +83,7 @@ void sedesc_free(struct sedesc *sedesc)
|
||||
/* Performs a shutdown on the endpoint. This function deals with connection and
|
||||
* applet endpoints. It is responsible to set SE flags corresponding to the
|
||||
* given shut modes and to call right shutdown functions of the endpoint. It is
|
||||
* called from the .abort and .shut app_ops callback functions at the SC level.
|
||||
* called from the sc_abort and sc_shutdown functions at the SC level.
|
||||
*/
|
||||
void se_shutdown(struct sedesc *sedesc, enum se_shut_mode mode)
|
||||
{
|
||||
@ -173,7 +149,6 @@ static struct stconn *sc_new(struct sedesc *sedesc)
|
||||
sc->ioto = TICK_ETERNITY;
|
||||
sc->room_needed = 0;
|
||||
sc->app = NULL;
|
||||
sc->app_ops = NULL;
|
||||
sc->src = NULL;
|
||||
sc->dst = NULL;
|
||||
sc->bytes_in = sc->bytes_out = 0;
|
||||
@ -237,7 +212,6 @@ struct stconn *sc_new_from_strm(struct stream *strm, unsigned int flags)
|
||||
sc->flags |= flags;
|
||||
sc_ep_set(sc, SE_FL_DETACHED);
|
||||
sc->app = &strm->obj_type;
|
||||
sc->app_ops = &sc_app_embedded_ops;
|
||||
return sc;
|
||||
}
|
||||
|
||||
@ -255,7 +229,6 @@ struct stconn *sc_new_from_check(struct check *check, unsigned int flags)
|
||||
sc->flags |= flags;
|
||||
sc_ep_set(sc, SE_FL_DETACHED);
|
||||
sc->app = &check->obj_type;
|
||||
sc->app_ops = &sc_app_check_ops;
|
||||
return sc;
|
||||
}
|
||||
|
||||
@ -308,7 +281,6 @@ int sc_attach_mux(struct stconn *sc, void *sd, void *ctx)
|
||||
sc->wait_event.events = 0;
|
||||
}
|
||||
|
||||
sc->app_ops = &sc_app_conn_ops;
|
||||
xref_create(&sc->sedesc->xref, &sc_opposite(sc)->sedesc->xref);
|
||||
}
|
||||
else if (sc_check(sc)) {
|
||||
@ -320,8 +292,6 @@ int sc_attach_mux(struct stconn *sc, void *sd, void *ctx)
|
||||
sc->wait_event.tasklet->context = sc;
|
||||
sc->wait_event.events = 0;
|
||||
}
|
||||
|
||||
sc->app_ops = &sc_app_check_ops;
|
||||
}
|
||||
|
||||
sedesc->se = sd;
|
||||
@ -343,10 +313,8 @@ static int sc_attach_applet(struct stconn *sc, struct appctx *appctx)
|
||||
sc->sedesc->se = appctx;
|
||||
sc_ep_set(sc, SE_FL_T_APPLET);
|
||||
sc_ep_clr(sc, SE_FL_DETACHED);
|
||||
if (sc_strm(sc)) {
|
||||
sc->app_ops = &sc_app_applet_ops;
|
||||
if (sc_strm(sc))
|
||||
xref_create(&sc->sedesc->xref, &sc_opposite(sc)->sedesc->xref);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -368,14 +336,6 @@ int sc_attach_strm(struct stconn *sc, struct stream *strm)
|
||||
sc->wait_event.tasklet->process = sc_conn_io_cb;
|
||||
sc->wait_event.tasklet->context = sc;
|
||||
sc->wait_event.events = 0;
|
||||
|
||||
sc->app_ops = &sc_app_conn_ops;
|
||||
}
|
||||
else if (sc_ep_test(sc, SE_FL_T_APPLET)) {
|
||||
sc->app_ops = &sc_app_applet_ops;
|
||||
}
|
||||
else {
|
||||
sc->app_ops = &sc_app_embedded_ops;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -399,8 +359,6 @@ int sc_attach_hstream(struct stconn *sc, struct hstream *hs)
|
||||
sc->wait_event.tasklet->process = sc_hstream_io_cb;
|
||||
sc->wait_event.tasklet->context = sc;
|
||||
sc->wait_event.events = 0;
|
||||
|
||||
sc->app_ops = &sc_app_hstream_ops;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -470,10 +428,6 @@ static void sc_detach_endp(struct stconn **scp)
|
||||
* connection related for now but this will evolved
|
||||
*/
|
||||
sc->flags &= SC_FL_ISBACK;
|
||||
if (sc_strm(sc))
|
||||
sc->app_ops = &sc_app_embedded_ops;
|
||||
else
|
||||
sc->app_ops = NULL;
|
||||
sc_free_cond(scp);
|
||||
}
|
||||
|
||||
@ -488,7 +442,6 @@ static void sc_detach_app(struct stconn **scp)
|
||||
return;
|
||||
|
||||
sc->app = NULL;
|
||||
sc->app_ops = NULL;
|
||||
sockaddr_free(&sc->src);
|
||||
sockaddr_free(&sc->dst);
|
||||
|
||||
|
||||
@ -3670,12 +3670,11 @@ static void __strm_dump_to_buffer(struct buffer *buf, const struct show_sess_ctx
|
||||
}
|
||||
|
||||
chunk_appendf(buf,
|
||||
"%s co0=%p ctrl=%s xprt=%s mux=%s data=%s target=%s:%p\n", pfx,
|
||||
"%s co0=%p ctrl=%s xprt=%s mux=%s target=%s:%p\n", pfx,
|
||||
conn,
|
||||
conn_get_ctrl_name(conn),
|
||||
conn_get_xprt_name(conn),
|
||||
conn_get_mux_name(conn),
|
||||
sc_get_data_name(scf),
|
||||
obj_type_name(conn->target),
|
||||
obj_base_ptr(conn->target));
|
||||
|
||||
@ -3732,12 +3731,11 @@ static void __strm_dump_to_buffer(struct buffer *buf, const struct show_sess_ctx
|
||||
}
|
||||
|
||||
chunk_appendf(buf,
|
||||
"%s co1=%p ctrl=%s xprt=%s mux=%s data=%s target=%s:%p\n", pfx,
|
||||
"%s co1=%p ctrl=%s xprt=%s mux=%s target=%s:%p\n", pfx,
|
||||
conn,
|
||||
conn_get_ctrl_name(conn),
|
||||
conn_get_xprt_name(conn),
|
||||
conn_get_mux_name(conn),
|
||||
sc_get_data_name(scb),
|
||||
obj_type_name(conn->target),
|
||||
obj_base_ptr(conn->target));
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user