static int login_exec ( int argc, char **argv ) { int rc; if ( argc > 1 ) { printf ( "Usage: %s\n" "Prompt for login credentials\n", argv[0] ); return 1; } if ( ( rc = login_ui() ) != 0 ) { printf ( "Could not set credentials: %s\n", strerror ( rc ) ); return 1; } return 0; }
/** * "login" command * * @v argc Argument count * @v argv Argument list * @ret rc Return status code */ static int login_exec ( int argc, char **argv ) { struct login_options opts; int rc; /* Parse options */ if ( ( rc = parse_options ( argc, argv, &login_cmd, &opts ) ) != 0 ) return rc; /* Show login UI */ if ( ( rc = login_ui() ) != 0 ) { printf ( "Could not set credentials: %s\n", strerror ( rc ) ); return rc; } return 0; }
/* handle client login */ int clnt_login(SSL *ssl,int order) { ACCOUNT account; int ret = 0; memset(&account,0,sizeof(account)); login_ui(); login: account_input(account.name,"User name: ",NAME_SIZE); echo_mode(STDIN_FILENO,ECHO_OFF); /* set echo off */ pwloop: account_input(account.passwd,"Password: "******"clear"); logo_ui(); break; /* user not exist */ case USER_ERROR: fprintf(stderr, "%s is not exist!\n", account.name); goto login; /* passwd error */ case PASSWD_ERR: fprintf(stderr, "password error\n"); goto pwloop; /* undefine error */ default: fprintf(stderr,"undefine error\n"); ret = -1;break; } return ret; }