]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
director: Change request callback to take mail_host parameter
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Sat, 4 Nov 2017 00:05:26 +0000 (02:05 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Tue, 7 Nov 2017 19:24:11 +0000 (21:24 +0200)
This allows accessing the IP address both as struct and as string without
any conversions.

src/director/director-request.c
src/director/director-request.h
src/director/login-connection.c

index 66d2cd5067fef7130f1cea75d21e9205a0cf6dba..2800308b7f4fc2640d556639a360c80457489f3a 100644 (file)
@@ -325,7 +325,7 @@ bool director_request_continue(struct director_request *request)
        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);
index f8ec74a5cd63a5845ee40829dd39117a8e3db933..e6fff802df2129670735ea6346d9a34b3df97b56 100644 (file)
@@ -5,7 +5,7 @@ struct director;
 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,
index f55519cd5be10333cbda876383ca142c63b39809..7a979a6bf7b71f999ab216c9dcd48ce412cb72e4 100644 (file)
@@ -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 bool login_host_request_is_self(struct login_host_request *request,
 }
 
 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 @@ login_host_callback(const struct ip_addr *ip, const char *hostname,
        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 @@ login_host_callback(const struct ip_addr *ip, const char *hostname,
                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 @@ login_host_callback(const struct ip_addr *ip, const char *hostname,
                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);
        }