summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--eurephiadm/eurephiadm.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/eurephiadm/eurephiadm.c b/eurephiadm/eurephiadm.c
index 43ae999..3cc1fa2 100644
--- a/eurephiadm/eurephiadm.c
+++ b/eurephiadm/eurephiadm.c
@@ -170,14 +170,19 @@ int eurephia_ConnectDB(eurephiaCTX *ctx, const char *argstr) {
return 1;
}
-eurephiaSESSION *do_login(eurephiaCTX *ctx, const char *req_access) {
+eurephiaSESSION *do_login(eurephiaCTX *ctx, eurephiaVALUES *cfg, const char *req_access) {
eurephiaSESSION *session = NULL;
- char username[33], password[33];
+ char username[33], password[33], *tmp = NULL;
int uid = 0;
memset(&username, 0, 33);
memset(&password, 0, 33);
- get_console_input(username, 32, "User:", 0);
+ if( (tmp = eGet_value(cfg, "username")) == NULL ) {
+ memset(username, 0, 34);
+ get_console_input(username, 32, "User:", 0);
+ } else {
+ strncpy(username, tmp, 32);
+ }
get_console_input(password, 32, "Password:", 1);
if( (uid = eDBadminAuth(ctx, req_access, username, password)) < 1 ) {
@@ -350,7 +355,7 @@ int main(int argc, char **argv) {
rc = 0;
goto exit;
}
- session = do_login(ctx, call_fnc->accesslvl);
+ session = do_login(ctx, cfg, call_fnc->accesslvl);
if( session == NULL ) {
fprintf(stderr, "Login failed\n");
}
@@ -370,7 +375,7 @@ int main(int argc, char **argv) {
} else {
// If not valid, remove session file and go to login
remove_session_file(ctx);
- session = do_login(ctx, call_fnc->accesslvl);
+ session = do_login(ctx, cfg, call_fnc->accesslvl);
if( session == NULL ) {
fprintf(stderr, "Login failed\n");
}