Mercurial > dovecot > core-2.2
changeset 22644:2ed6735ffc7a
director: Change request callback to take mail_host parameter
This allows accessing the IP address both as struct and as string without
any conversions.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Sat, 04 Nov 2017 02:05:26 +0200 |
parents | 6e235143e177 |
children | 57e7fafb10c5 |
files | src/director/director-request.c src/director/director-request.h src/director/login-connection.c |
diffstat | 3 files changed, 8 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/director/director-request.c Sat Nov 04 01:59:27 2017 +0200 +++ b/src/director/director-request.c Sat Nov 04 02:05:26 2017 +0200 @@ -325,7 +325,7 @@ i_assert(!user->weak); director_update_user(dir, dir->self_host, user); T_BEGIN { - request->callback(&user->host->ip, user->host->hostname, + request->callback(user->host, user->host->hostname, NULL, request->context); } T_END; director_request_free(request);
--- a/src/director/director-request.h Sat Nov 04 01:59:27 2017 +0200 +++ b/src/director/director-request.h Sat Nov 04 02:05:26 2017 +0200 @@ -5,7 +5,7 @@ struct director_request; typedef void -director_request_callback(const struct ip_addr *ip, const char *hostname, +director_request_callback(const struct mail_host *host, const char *hostname, const char *errormsg, void *context); void director_request(struct director *dir, const char *username,
--- a/src/director/login-connection.c Sat Nov 04 01:59:27 2017 +0200 +++ b/src/director/login-connection.c Sat Nov 04 02:05:26 2017 +0200 @@ -11,6 +11,7 @@ #include "master-service.h" #include "director.h" #include "director-request.h" +#include "mail-host.h" #include "auth-connection.h" #include "login-connection.h" @@ -132,7 +133,7 @@ } static void -login_host_callback(const struct ip_addr *ip, const char *hostname, +login_host_callback(const struct mail_host *host, const char *hostname, const char *errormsg, void *context) { struct login_host_request *request = context; @@ -140,7 +141,7 @@ const char *line, *line_params; unsigned int secs; - if (ip == NULL) { + if (host == NULL) { if (strncmp(request->line, "OK\t", 3) == 0) line_params = request->line + 3; else if (strncmp(request->line, "PASS\t", 5) == 0) @@ -153,7 +154,7 @@ line = t_strconcat("FAIL\t", t_strcut(line_params, '\t'), "\ttemp", NULL); } else if (request->director_proxy_maybe && - login_host_request_is_self(request, ip)) { + login_host_request_is_self(request, &host->ip)) { line = request->line; } else { string_t *str = t_str_new(64); @@ -161,10 +162,10 @@ secs = dir->set->director_user_expire / 2; str_printfa(str, "%s\tproxy_refresh=%u\t", request->line, secs); if (hostname == NULL || hostname[0] == '\0') - str_printfa(str, "host=%s", net_ip2addr(ip)); + str_printfa(str, "host=%s", host->ip_str); else { str_printfa(str, "host=%s\thostip=%s", - hostname, net_ip2addr(ip)); + hostname, host->ip_str); } line = str_c(str); }