xsasl save/load more or less works, need to get rid of lists
This commit is contained in:
parent
66d8b0ad7b
commit
1cbe3789da
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
#define PNAME "XSASL"
|
#define PNAME "XSASL"
|
||||||
#define PDESC "SASL authentication plugin";
|
#define PDESC "SASL authentication plugin";
|
||||||
#define PVERSION "0.0.4"
|
#define PVERSION "1.0"
|
||||||
|
|
||||||
static xchat_plugin *ph; /* plugin handle */
|
static xchat_plugin *ph; /* plugin handle */
|
||||||
|
|
||||||
|
@ -40,6 +40,7 @@ sasl_info* all_info = NULL;
|
||||||
|
|
||||||
static void add_info(char const* login, char const* password, char const* network)
|
static void add_info(char const* login, char const* password, char const* network)
|
||||||
{
|
{
|
||||||
|
char buffer[512];
|
||||||
sasl_info* prev = all_info;
|
sasl_info* prev = all_info;
|
||||||
sasl_info* info = (sasl_info*)malloc(sizeof(sasl_info));
|
sasl_info* info = (sasl_info*)malloc(sizeof(sasl_info));
|
||||||
|
|
||||||
|
@ -49,16 +50,43 @@ static void add_info(char const* login, char const* password, char const* networ
|
||||||
info->next = prev;
|
info->next = prev;
|
||||||
|
|
||||||
all_info = info;
|
all_info = info;
|
||||||
|
|
||||||
|
sprintf (buffer, "%s:%s", login, password);
|
||||||
|
xchat_set_pluginpref_str (ph, network, buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
static sasl_info* find_info(char const* network)
|
static sasl_info* find_info(char const* network)
|
||||||
{
|
{
|
||||||
sasl_info* cur = all_info;
|
//sasl_info* cur;
|
||||||
|
sasl_info* cur = (sasl_info*)malloc(sizeof(sasl_info));
|
||||||
|
char buffer[512];
|
||||||
|
char* pos;
|
||||||
|
char* token;
|
||||||
|
|
||||||
|
// DEBUG
|
||||||
|
if (xchat_get_pluginpref_str (ph, network, buffer))
|
||||||
|
{
|
||||||
|
cur->network = strdup (network);
|
||||||
|
//pos = strchr (buffer, ':');
|
||||||
|
//cur->login = g_strndup (buffer, pos-buffer);
|
||||||
|
token = strtok (buffer, ":");
|
||||||
|
cur->login = g_strdup (token);
|
||||||
|
token = strtok (NULL, ":");
|
||||||
|
cur->password = g_strdup (token);
|
||||||
|
//xchat_printf (ph, "network: %s\n", cur->network);
|
||||||
|
//xchat_printf (ph, "login: %s\n", cur->login);
|
||||||
|
//xchat_printf (ph, "password: %s\n", cur->password);
|
||||||
|
cur->next = NULL;
|
||||||
|
return cur;
|
||||||
|
}
|
||||||
|
#if 0
|
||||||
|
cur = all_info;
|
||||||
while (cur)
|
while (cur)
|
||||||
{
|
{
|
||||||
if (0 == strcmp(cur->network, network)) return cur;
|
if (0 == strcmp(cur->network, network)) return cur;
|
||||||
cur = cur->next;
|
cur = cur->next;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,7 +170,7 @@ static int sasl_cmd_cb(char *word[], char *word_eol[], void *userdata)
|
||||||
sasl_info *cur = all_info;
|
sasl_info *cur = all_info;
|
||||||
if (NULL == cur)
|
if (NULL == cur)
|
||||||
{
|
{
|
||||||
xchat_printf(ph,"Nothing, see /help sasl");
|
xchat_printf(ph,"Nothing, see /HELP XSASL");
|
||||||
return XCHAT_EAT_ALL;
|
return XCHAT_EAT_ALL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -156,7 +184,7 @@ static int sasl_cmd_cb(char *word[], char *word_eol[], void *userdata)
|
||||||
|
|
||||||
if (!login || !password || !network || !*login || !*password || !*network)
|
if (!login || !password || !network || !*login || !*password || !*network)
|
||||||
{
|
{
|
||||||
xchat_printf(ph,"Wrong usage, try /help sasl");
|
xchat_printf(ph,"Wrong usage, try /HELP XSASL");
|
||||||
return XCHAT_EAT_ALL;
|
return XCHAT_EAT_ALL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -192,7 +220,7 @@ int xchat_plugin_init(xchat_plugin *plugin_handle,
|
||||||
*plugin_desc = PDESC;
|
*plugin_desc = PDESC;
|
||||||
*plugin_version = PVERSION;
|
*plugin_version = PVERSION;
|
||||||
|
|
||||||
xchat_hook_command(ph, "sasl", XCHAT_PRI_NORM, sasl_cmd_cb,
|
xchat_hook_command(ph, "xsasl", XCHAT_PRI_NORM, sasl_cmd_cb,
|
||||||
"Usage: SASL <login> <password> <network>, enable SASL authentication for given network", 0);
|
"Usage: SASL <login> <password> <network>, enable SASL authentication for given network", 0);
|
||||||
|
|
||||||
xchat_hook_print(ph, "Connected", XCHAT_PRI_NORM, connect_cb, NULL);
|
xchat_hook_print(ph, "Connected", XCHAT_PRI_NORM, connect_cb, NULL);
|
||||||
|
|
Loading…
Reference in New Issue