File pacemaker-lrmd-TLS-listener-messages.patch of Package pacemaker.14737

commit b728824f9701c7cb77b9e7dfcac1b9cf21caed5f
Author: Ken Gaillot <kgaillot@redhat.com>
Date:   Wed Oct 25 15:02:34 2017 -0500

    Log: lrmd: tweak TLS listener messages
    
    also minor refactor for simplicity

diff --git a/lrmd/lrmd_private.h b/lrmd/lrmd_private.h
index 773374b46..4ceb74e85 100644
--- a/lrmd/lrmd_private.h
+++ b/lrmd/lrmd_private.h
@@ -61,7 +61,7 @@ typedef struct lrmd_rsc_s {
 
 #  ifdef HAVE_GNUTLS_GNUTLS_H
 /* in remote_tls.c */
-int lrmd_init_remote_tls_server(int port);
+int lrmd_init_remote_tls_server(void);
 void lrmd_tls_server_destroy(void);
 
 /* Hidden in lrmd client lib */
diff --git a/lrmd/main.c b/lrmd/main.c
index e4c499889..9670015a1 100644
--- a/lrmd/main.c
+++ b/lrmd/main.c
@@ -618,15 +618,11 @@ main(int argc, char **argv, char **envp)
     }
 
 #ifdef ENABLE_PCMK_REMOTE
-    {
-        int remote_port = crm_default_remote_port();
-
-        if (lrmd_init_remote_tls_server(remote_port) < 0) {
-            crm_err("Failed to create TLS server on port %d: shutting down and inhibiting respawn", remote_port);
-            crm_exit(DAEMON_RESPAWN_STOP);
-        }
-        ipc_proxy_init();
+    if (lrmd_init_remote_tls_server() < 0) {
+        crm_err("Failed to create TLS listener: shutting down and staying down");
+        crm_exit(DAEMON_RESPAWN_STOP);
     }
+    ipc_proxy_init();
 #endif
 
     mainloop_add_signal(SIGTERM, lrmd_shutdown);
diff --git a/lrmd/tls_backend.c b/lrmd/tls_backend.c
index 7d790cf80..ce62bfbf6 100644
--- a/lrmd/tls_backend.c
+++ b/lrmd/tls_backend.c
@@ -291,19 +291,20 @@ bind_and_listen(struct addrinfo *addr)
 }
 
 int
-lrmd_init_remote_tls_server(int port)
+lrmd_init_remote_tls_server()
 {
     int rc;
     int filter;
+    int port = crm_default_remote_port();
     struct addrinfo hints, *res = NULL, *iter;
-    char port_str[16];
+    char port_str[6]; // at most "65535"
 
     static struct mainloop_fd_callbacks remote_listen_fd_callbacks = {
         .dispatch = lrmd_remote_listen,
         .destroy = lrmd_remote_connection_destroy,
     };
 
-    crm_notice("Starting a tls listener on port %d.", port);
+    crm_notice("Starting TLS listener on port %d", port);
     crm_gnutls_global_init();
     gnutls_global_set_log_function(debug_log);
 
@@ -314,7 +315,10 @@ lrmd_init_remote_tls_server(int port)
     gnutls_psk_set_server_dh_params(psk_cred_s, dh_params);
 
     memset(&hints, 0, sizeof(struct addrinfo));
-    hints.ai_flags = AI_PASSIVE; /* Only return socket addresses with wildcard INADDR_ANY or IN6ADDR_ANY_INIT */
+    /* Bind to the wildcard address (INADDR_ANY or IN6ADDR_ANY_INIT).
+     * @TODO allow user to specify a specific address
+     */
+    hints.ai_flags = AI_PASSIVE;
     hints.ai_family = AF_UNSPEC; /* Return IPv6 or IPv4 */
     hints.ai_socktype = SOCK_STREAM;
     hints.ai_protocol = IPPROTO_TCP;
@@ -322,7 +326,8 @@ lrmd_init_remote_tls_server(int port)
     snprintf(port_str, sizeof(port_str), "%d", port);
     rc = getaddrinfo(NULL, port_str, &hints, &res);
     if (rc) {
-        crm_err("getaddrinfo: %s", gai_strerror(rc));
+        crm_err("Unable to get IP address info for local node: %s",
+                gai_strerror(rc));
         return -1;
     }
 
openSUSE Build Service is sponsored by