From: Timo Sirainen Date: Thu, 9 Apr 2020 19:19:48 +0000 (+0300) Subject: login-common: Add event to client X-Git-Tag: 2.3.11.2~223 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=85c00c3b5727aaac34263643ff8f2c21ff1ec18d;p=thirdparty%2Fdovecot%2Fcore.git login-common: Add event to client --- diff --git a/src/login-common/client-common.c b/src/login-common/client-common.c index 8b0faa087c..1ea167c714 100644 --- a/src/login-common/client-common.c +++ b/src/login-common/client-common.c @@ -204,6 +204,14 @@ client_alloc(int fd, pool_t pool, net_ip_compare(&conn->real_remote_ip, &conn->real_local_ip); } client->proxy_ttl = LOGIN_PROXY_TTL; + + client->event = event_create(NULL); + event_add_category(client->event, &login_binary->event_category); + event_add_str(client->event, "local_ip", net_ip2addr(&conn->local_ip)); + event_add_int(client->event, "local_port", conn->local_port); + event_add_str(client->event, "remote_ip", net_ip2addr(&conn->remote_ip)); + event_add_int(client->event, "remote_port", conn->remote_port); + client_open_streams(client); return client; } @@ -353,6 +361,7 @@ bool client_unref(struct client **_client) i_stream_unref(&client->input); o_stream_unref(&client->output); pool_unref(&client->preproxy_pool); + event_unref(&client->event); pool_unref(&client->pool); return FALSE; } @@ -373,6 +382,7 @@ bool client_unref(struct client **_client) i_stream_unref(&client->input); o_stream_unref(&client->output); i_close_fd(&client->fd); + event_unref(&client->event); i_free(client->proxy_user); i_free(client->proxy_master_user); diff --git a/src/login-common/client-common.h b/src/login-common/client-common.h index 08f7ebcc20..4145e68305 100644 --- a/src/login-common/client-common.h +++ b/src/login-common/client-common.h @@ -146,6 +146,7 @@ struct client { time_t created; int refcount; + struct event *event; struct ip_addr local_ip; struct ip_addr ip; diff --git a/src/login-common/sasl-server.c b/src/login-common/sasl-server.c index edbec36471..137f5c41e4 100644 --- a/src/login-common/sasl-server.c +++ b/src/login-common/sasl-server.c @@ -296,6 +296,7 @@ static bool args_parse_user(struct client *client, const char *arg) i_free_and_null(client->virtual_user_orig); i_free_and_null(client->virtual_auth_user); client->virtual_user = i_strdup(arg + 5); + event_add_str(client->event, "user", client->virtual_user); } else if (str_begins(arg, "original_user=")) { i_free(client->virtual_user_orig); client->virtual_user_orig = i_strdup(arg + 14);