diff --git a/src/common/remoteio.c b/src/common/remoteio.c --- a/src/common/remoteio.c +++ b/src/common/remoteio.c @@ -141,10 +141,17 @@ int remoteio_config(cfg_t *cfg, struct r char *method; cfg_aserver = cfg_getnsec(cfg, "server", counter); + + aserver.name = NULL; + aserver.hostname = NULL; + aserver.username = NULL; + aserver.password = NULL; aserver.name = strdup(cfg_title(cfg_aserver)); aserver.hostname = strdup(cfg_getstr(cfg_aserver, "hostname")); aserver.username = strdup(cfg_getstr(cfg_aserver, "username")); + if(cfg_getstr(cfg_aserver, "password")) + aserver.password = strdup(cfg_getstr(cfg_aserver, "password")); aserver.method = REMOTEIO_METHOD_MAX; method = cfg_getstr(cfg_aserver, "method"); @@ -288,6 +295,26 @@ int remoteio_open_server(struct remoteio return 0; } +int remoteio_authinfo_get(struct remoteio_opts *rem_opts, const char *servername, const char **username, const char **pass) +{ + struct remoteio_server *server; + + *username = NULL; + *pass = NULL; + + server = remoteio_getserver(rem_opts, servername); + if(!server) + { + fprintf(stderr, "%s:%d: Could not find server named ``%s''\n", __FILE__, __LINE__, servername); + return 1; + } + + *username = server->username; + *pass = server->password; + + return 0; +} + /** * Implementation of multiio_event_handler_func_t */