#include <stdio.h>
#include <ctype.h>
#include <string.h>
enum {max_user = 1024};
enum {max_password = 10}; /* sizeof("password\n\0") */
const char* valid_user = "user";
const char* valid_password = "password";
int do_auth(void) {
char username[max_user];
char password[max_password];
puts("Please enter your username: ");
if (fgets(username, sizeof( username), stdin) == NULL) {
/* handle error */
}
/* trim off ws at end, including newline */
while (strlen(username) > 0 &&
isspace( username[ strlen(username) - 1])) {
username[ strlen(username) - 1] = '\0';
}
puts("Please enter your password: ");
if (fgets(password, sizeof( password), stdin) == NULL) {
/* handle error */
}
/* trim off ws at end, including newline */
while (strlen(password) > 0 &&
isspace( password[ strlen(password) - 1])) {
password[ strlen(password) - 1] = '\0';
}
if (!strcmp(username, valid_user) &&
!strcmp(password, valid_password)) {
return 0;
}
return -1;
}
void report_error(const char *msg) {
const char *error_log;
char buffer[24];
sprintf(buffer, "Error: %s", error_log);
printf("%s\n", buffer);
}
int main(void) {
if (do_auth() == -1) {
report_error("Unable to login");
}
return 0;
}
|