]> git.proxmox.com Git - mirror_frr.git/blobdiff - lib/keychain.c
lib: Support auto completion of configured keychain.
[mirror_frr.git] / lib / keychain.c
index 02f83ef0a834f50ff06ce2f50a65c73a8b1c7333..1d678b949e8d11ebb521245b9b686b9c8e6e9a4c 100644 (file)
@@ -1051,10 +1051,28 @@ static int keychain_config_write(struct vty *vty)
        return 0;
 }
 
+static void keychain_active_config(vector comps, struct cmd_token *token)
+{
+       struct keychain *keychain;
+       struct listnode *node;
+
+       for (ALL_LIST_ELEMENTS_RO(keychain_list, node, keychain))
+               vector_set(comps, XSTRDUP(MTYPE_COMPLETION, keychain->name));
+}
+
+static const struct cmd_variable_handler keychain_var_handlers[] = {
+       {.varname = "key_chain", .completions = keychain_active_config},
+       {.tokenname = "KEYCHAIN_NAME", .completions = keychain_active_config},
+       {.tokenname = "KCHAIN_NAME", .completions = keychain_active_config},
+       {.completions = NULL}
+};
+
 void keychain_init(void)
 {
        keychain_list = list_new();
 
+       /* Register handler for keychain auto config support */
+       cmd_variable_handler_register(keychain_var_handlers);
        install_node(&keychain_node);
        install_node(&keychain_key_node);