]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: connection - Add connection_init_server_ip().
authorStephan Bosch <stephan.bosch@dovecot.fi>
Wed, 27 Feb 2019 01:28:23 +0000 (02:28 +0100)
committerStephan Bosch <stephan.bosch@dovecot.fi>
Fri, 1 Mar 2019 23:35:58 +0000 (00:35 +0100)
src/lib/connection.c
src/lib/connection.h

index b11bd9d88eb6f1c476aea3a111c9c3786c8e69fc..dec722340905260b28656a08b0c88c0c0902b0ad 100644 (file)
@@ -402,6 +402,20 @@ void connection_init_server(struct connection_list *list,
        connection_init_streams(conn);
 }
 
+void connection_init_server_ip(struct connection_list *list,
+                              struct connection *conn, const char *name,
+                              int fd_in, int fd_out,
+                              const struct ip_addr *remote_ip,
+                              in_port_t remote_port)
+{
+       if (remote_ip != NULL && remote_ip->family != 0)
+               conn->remote_ip = *remote_ip;
+       if (remote_port != 0)
+               conn->remote_port = remote_port;
+
+       connection_init_server(list, conn, name, fd_in, fd_out);
+}
+
 void connection_init_client_fd(struct connection_list *list,
                               struct connection *conn, const char *name,
                               int fd_in, int fd_out)
index 7e43fd2deca5c95b968e635b6fc62f3f0d597435..50443b749b103f01b0eb0353394c615f733dc7df 100644 (file)
@@ -160,6 +160,11 @@ void connection_init(struct connection_list *list, struct connection *conn,
 void connection_init_server(struct connection_list *list,
                            struct connection *conn, const char *name,
                            int fd_in, int fd_out);
+void connection_init_server_ip(struct connection_list *list,
+                              struct connection *conn, const char *name,
+                              int fd_in, int fd_out,
+                              const struct ip_addr *remote_ip,
+                              in_port_t remote_port) ATTR_NULL(6);
 void connection_init_client_ip(struct connection_list *list,
                               struct connection *conn, const char *name,
                               const struct ip_addr *ip, in_port_t port)