diff options
Diffstat (limited to 'cli/src/cli-rpc-ops.c')
| -rw-r--r-- | cli/src/cli-rpc-ops.c | 39 | 
1 files changed, 39 insertions, 0 deletions
diff --git a/cli/src/cli-rpc-ops.c b/cli/src/cli-rpc-ops.c index ee7d3b2c841..b7c6691abd5 100644 --- a/cli/src/cli-rpc-ops.c +++ b/cli/src/cli-rpc-ops.c @@ -215,6 +215,31 @@ out:  }  int +gf_cli_output_peer_hostnames (dict_t *dict, int count, char *prefix) +{ +        int ret = -1; +        char key[256] = {0,}; +        int i = 0; +        char *hostname = NULL; + +        cli_out ("Other names:"); +        /* Starting from friend.hostname1, as friend.hostname0 will be the same +         * as friend.hostname +         */ +        for (i = 1; i < count; i++) { +                memset (key, 0, sizeof (key)); +                snprintf (key, sizeof (key), "%s.hostname%d", prefix, i); +                ret = dict_get_str (dict, key, &hostname); +                if (ret) +                        break; +                cli_out ("%s", hostname); +                hostname = NULL; +        } + +        return ret; +} + +int  gf_cli_output_peer_status (dict_t *dict, int count)  {          int                        ret   = -1; @@ -225,6 +250,7 @@ gf_cli_output_peer_status (dict_t *dict, int count)          char                       *state = NULL;          int32_t                    connected = 0;          char                       *connected_str = NULL; +        int                        hostname_count = 0;          cli_out ("Number of Peers: %d", count);          i = 1; @@ -256,6 +282,19 @@ gf_cli_output_peer_status (dict_t *dict, int count)                  cli_out ("\nHostname: %s\nUuid: %s\nState: %s (%s)",                           hostname_buf, uuid_buf, state, connected_str); + +                memset (key, 0, sizeof (key)); +                snprintf (key, sizeof (key), "friend%d.hostname_count", i); +                ret = dict_get_int32 (dict, key, &hostname_count); +                /* Print other addresses only if there are more than 1. +                 */ +                if ((ret == 0) && (hostname_count > 1)) { +                        memset (key, 0, sizeof (key)); +                        snprintf (key, sizeof (key), "friend%d", i); +                        ret = gf_cli_output_peer_hostnames (dict, +                                                            hostname_count, +                                                            key); +                }                  i++;          }  | 
