summaryrefslogtreecommitdiff
path: root/proxy.c
diff options
context:
space:
mode:
authorDavid Härdeman <david@hardeman.nu>2020-06-21 21:39:15 +0200
committerDavid Härdeman <david@hardeman.nu>2020-06-21 21:39:15 +0200
commit0ba4f18ea6981b4d2b4eded11b2da4b2a2192d5b (patch)
treeb10104c574b719cf78f10945526a21a9fd385d64 /proxy.c
parent003159e92bb4526845a8a1a1a4627824e939cd4b (diff)
Finish up the assert conversion
Diffstat (limited to 'proxy.c')
-rw-r--r--proxy.c27
1 files changed, 24 insertions, 3 deletions
diff --git a/proxy.c b/proxy.c
index a629d7c..05117fd 100644
--- a/proxy.c
+++ b/proxy.c
@@ -10,6 +10,8 @@
void
proxy_refdump(struct server_proxy *proxy)
{
+ assert_return(proxy);
+
uring_task_refdump(&proxy->task);
uring_task_refdump(&proxy->clienttask);
uring_task_refdump(&proxy->servertask);
@@ -21,6 +23,8 @@ format_bytes(char *buf, size_t len, uint64_t val)
uint64_t tmp;
const char *suffix = "B";
+ assert_return(buf && len > 0);
+
tmp = val * 10;
if (val > 1152921504606846976ULL) {
tmp = val / 115292150460684697ULL;
@@ -50,6 +54,8 @@ format_time(char *buf, size_t len, time_t diff)
{
unsigned hh, mm, ss;
+ assert_return(buf && len > 0);
+
hh = diff / 3600;
diff %= 3600;
mm = diff / 60;
@@ -67,6 +73,8 @@ proxy_free(struct uring_task *task)
char stc[100];
char duration[100];
+ assert_return(task);
+
debug(DBG_PROXY, "server: %s, src: %s, dst: %s",
proxy->server->name,
proxy->client_conn.remote.addrstr,
@@ -94,6 +102,8 @@ proxy_client_free(struct uring_task *task)
{
struct server_proxy *proxy = container_of(task, struct server_proxy, clienttask);
+ assert_return(task);
+
debug(DBG_PROXY, "%s: client connection closed", proxy->server->name);
}
@@ -102,6 +112,8 @@ proxy_server_free(struct uring_task *task)
{
struct server_proxy *proxy = container_of(task, struct server_proxy, servertask);
+ assert_return(task);
+
debug(DBG_PROXY, "%s: server connection closed", proxy->server->name);
}
@@ -110,6 +122,8 @@ proxy_delete(struct cfg *cfg, struct server_proxy *proxy)
{
debug(DBG_PROXY, "%s: shutting down proxy %p", proxy->server->name, proxy);
+ assert_return(cfg && proxy);
+
uring_task_destroy(cfg, &proxy->servertask);
uring_task_destroy(cfg, &proxy->clienttask);
uring_task_destroy(cfg, &proxy->task);
@@ -122,6 +136,7 @@ proxy_client_data_out(struct cfg *cfg, struct uring_task *task, int res)
{
struct server_proxy *proxy = container_of(task, struct server_proxy, clienttask);
+ assert_return(cfg && task);
assert_task_alive(DBG_PROXY, task);
if (res <= 0) {
@@ -141,6 +156,7 @@ proxy_client_data_in(struct cfg *cfg, struct uring_task *task, int res)
{
struct server_proxy *proxy = container_of(task, struct server_proxy, clienttask);
+ assert_return(cfg && task);
assert_task_alive(DBG_PROXY, task);
if (res <= 0) {
@@ -162,6 +178,7 @@ proxy_server_data_out(struct cfg *cfg, struct uring_task *task, int res)
{
struct server_proxy *proxy = container_of(task, struct server_proxy, servertask);
+ assert_return(cfg && task);
assert_task_alive(DBG_PROXY, task);
if (res <= 0) {
@@ -181,6 +198,7 @@ proxy_server_data_in(struct cfg *cfg, struct uring_task *task, int res)
{
struct server_proxy *proxy = container_of(task, struct server_proxy, servertask);
+ assert_return(cfg && task);
assert_task_alive(DBG_PROXY, task);
if (res <= 0) {
@@ -199,6 +217,7 @@ proxy_connected_cb(struct cfg *cfg, struct connection *conn, bool connected)
{
struct server_proxy *proxy = container_of(conn, struct server_proxy, server_conn);
+ assert_return(cfg && conn);
assert_task_alive(DBG_PROXY, &proxy->clienttask);
assert_task_alive(DBG_PROXY, &proxy->servertask);
@@ -225,6 +244,8 @@ proxy_new(struct cfg *cfg, struct server *server, struct saddr *client, int fd)
{
struct server_proxy *proxy;
+ assert_return(cfg && server && client && fd > 0, NULL);
+
proxy = zmalloc(sizeof(*proxy));
if (!proxy) {
error("malloc: %m");
@@ -234,17 +255,17 @@ proxy_new(struct cfg *cfg, struct server *server, struct saddr *client, int fd)
proxy->sfd = -1;
proxy->cfd = fd;
proxy->server = server;
- uring_task_init(&proxy->task, "proxy", &server->task, proxy_free);
+ uring_task_init(cfg, &proxy->task, "proxy", &server->task, proxy_free);
connection_set_local(cfg, &proxy->client_conn, fd);
connection_set_remote(cfg, &proxy->client_conn, client);
- uring_task_init(&proxy->clienttask, "proxy_client", &proxy->task,
+ uring_task_init(cfg, &proxy->clienttask, "proxy_client", &proxy->task,
proxy_client_free);
uring_task_set_buf(&proxy->clienttask, &proxy->clientbuf);
uring_task_set_fd(&proxy->clienttask, fd);
- uring_task_init(&proxy->servertask, "proxy_server", &proxy->task,
+ uring_task_init(cfg, &proxy->servertask, "proxy_server", &proxy->task,
proxy_server_free);
uring_task_set_buf(&proxy->servertask, &proxy->serverbuf);