implement XSASL LIST

This commit is contained in:
Berke Viktor 2012-01-15 21:15:33 +01:00
parent 5c30b84891
commit 306b2a8707
1 changed files with 29 additions and 1 deletions

View File

@ -43,7 +43,7 @@ static xchat_plugin *ph; /* plugin handle */
static const char name[] = "X-SASL";
static const char desc[] = "SASL authentication plugin for XChat";
static const char version[] = "1.1";
static const char xsasl_help[] = "X-SASL Usage:\n /XSASL ADD <login> <password> <network>, enable SASL authentication for given network\n /XSASL DEL <network>, disable SASL authentication for given network\n";
static const char xsasl_help[] = "X-SASL Usage:\n /XSASL ADD <login> <password> <network>, enable SASL authentication for given network\n /XSASL DEL <network>, disable SASL authentication for given network\n /XSASL LIST, get the list of SASL-enabled networks\n";
struct sasl_info
{
@ -69,6 +69,29 @@ del_info (char const* network)
return xchat_pluginpref_delete (ph, network);
}
static void
print_info ()
{
char list[512];
char* token;
if (xchat_pluginpref_list (ph, list))
{
xchat_printf (ph, "%s\tSASL-enabled networks:", name);
xchat_printf (ph, "%s\t----------------------", name);
token = strtok (list, ",");
while (token != NULL)
{
xchat_printf (ph, "%s\t%s", name, token);
token = strtok (NULL, ",");
}
}
else
{
xchat_printf (ph, "%s\tThere are no SASL-enabled networks currently", name);
}
}
static sasl_info*
find_info (char const* network)
{
@ -232,6 +255,11 @@ sasl_cmd_cb (char *word[], char *word_eol[], void *userdata)
return XCHAT_EAT_ALL;
}
else if (!stricmp ("LIST", mode))
{
print_info ();
return XCHAT_EAT_ALL;
}
else
{
xchat_printf (ph, "%s", xsasl_help);