mirror of
https://gitea.invidious.io/iv-org/litespeed-quic.git
synced 2024-08-15 00:53:43 +00:00
Release 1.17.10
Fix the example program to be able to use parallel connections again. (See the -n argument.)
This commit is contained in:
parent
6b58dff0c3
commit
f2450c4325
3 changed files with 56 additions and 6 deletions
|
@ -1,6 +1,11 @@
|
||||||
|
2018-12-27
|
||||||
|
- 1.17.10
|
||||||
|
- Fix the example program to be able to use parallel connections
|
||||||
|
again. (See the -n argument.)
|
||||||
|
|
||||||
2018-12-18
|
2018-12-18
|
||||||
- 1.17.9
|
- 1.17.9
|
||||||
- [BUGFIX] Engine: reduce minumum batch size from 256 to 4
|
- [BUGFIX] Engine: reduce minimum batch size from 256 to 4
|
||||||
|
|
||||||
2018-12-10
|
2018-12-10
|
||||||
- 1.17.8
|
- 1.17.8
|
||||||
|
|
|
@ -25,7 +25,7 @@ extern "C" {
|
||||||
|
|
||||||
#define LSQUIC_MAJOR_VERSION 1
|
#define LSQUIC_MAJOR_VERSION 1
|
||||||
#define LSQUIC_MINOR_VERSION 17
|
#define LSQUIC_MINOR_VERSION 17
|
||||||
#define LSQUIC_PATCH_VERSION 9
|
#define LSQUIC_PATCH_VERSION 10
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Engine flags:
|
* Engine flags:
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
#endif
|
#endif
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
#include <event2/event.h>
|
||||||
|
|
||||||
|
|
||||||
#ifndef WIN32
|
#ifndef WIN32
|
||||||
|
@ -153,11 +154,39 @@ http_client_on_new_conn (void *stream_if_ctx, lsquic_conn_t *conn)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
struct create_another_conn_or_stop_ctx
|
||||||
|
{
|
||||||
|
struct event *event;
|
||||||
|
struct http_client_ctx *client_ctx;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
create_another_conn_or_stop (evutil_socket_t sock, short events, void *ctx)
|
||||||
|
{
|
||||||
|
struct create_another_conn_or_stop_ctx *const cacos = ctx;
|
||||||
|
struct http_client_ctx *const client_ctx = cacos->client_ctx;
|
||||||
|
|
||||||
|
event_del(cacos->event);
|
||||||
|
event_free(cacos->event);
|
||||||
|
free(cacos);
|
||||||
|
|
||||||
|
create_connections(client_ctx);
|
||||||
|
if (0 == client_ctx->hcc_n_open_conns)
|
||||||
|
{
|
||||||
|
LSQ_INFO("All connections are closed: stop engine");
|
||||||
|
prog_stop(client_ctx->prog);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
http_client_on_conn_closed (lsquic_conn_t *conn)
|
http_client_on_conn_closed (lsquic_conn_t *conn)
|
||||||
{
|
{
|
||||||
lsquic_conn_ctx_t *conn_h = lsquic_conn_get_ctx(conn);
|
lsquic_conn_ctx_t *conn_h = lsquic_conn_get_ctx(conn);
|
||||||
|
struct create_another_conn_or_stop_ctx *cacos;
|
||||||
enum LSQUIC_CONN_STATUS status;
|
enum LSQUIC_CONN_STATUS status;
|
||||||
|
struct event_base *eb;
|
||||||
char errmsg[80];
|
char errmsg[80];
|
||||||
|
|
||||||
status = lsquic_conn_status(conn, errmsg, sizeof(errmsg));
|
status = lsquic_conn_status(conn, errmsg, sizeof(errmsg));
|
||||||
|
@ -170,12 +199,28 @@ http_client_on_conn_closed (lsquic_conn_t *conn)
|
||||||
}
|
}
|
||||||
TAILQ_REMOVE(&conn_h->client_ctx->conn_ctxs, conn_h, next_ch);
|
TAILQ_REMOVE(&conn_h->client_ctx->conn_ctxs, conn_h, next_ch);
|
||||||
--conn_h->client_ctx->hcc_n_open_conns;
|
--conn_h->client_ctx->hcc_n_open_conns;
|
||||||
create_connections(conn_h->client_ctx);
|
|
||||||
if (0 == conn_h->client_ctx->hcc_n_open_conns)
|
cacos = calloc(1, sizeof(*cacos));
|
||||||
|
if (!cacos)
|
||||||
{
|
{
|
||||||
LSQ_INFO("All connections are closed: stop engine");
|
LSQ_ERROR("cannot allocate cacos");
|
||||||
prog_stop(conn_h->client_ctx->prog);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
eb = prog_eb(conn_h->client_ctx->prog);
|
||||||
|
cacos->client_ctx = conn_h->client_ctx;
|
||||||
|
cacos->event = event_new(eb, -1, 0, create_another_conn_or_stop, cacos);
|
||||||
|
if (!cacos->event)
|
||||||
|
{
|
||||||
|
LSQ_ERROR("cannot allocate event");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
if (0 != event_add(cacos->event, NULL))
|
||||||
|
{
|
||||||
|
LSQ_ERROR("cannot add cacos event");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
event_active(cacos->event, 0, 0);
|
||||||
|
|
||||||
free(conn_h);
|
free(conn_h);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue