You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.2 KiB
52 lines
1.2 KiB
/* Copyright 2015-2016 Alex 'AdUser' Z (ad_user@runbox.com) |
|
* |
|
* This program is free software; you can redistribute it and/or modify |
|
* it under the terms of the GNU General Public License version 2 as |
|
* published by the Free Software Foundation. |
|
*/ |
|
#include <string.h> |
|
#include <stdio.h> |
|
#include <stdlib.h> |
|
|
|
#include "config.h" |
|
#include "ldapauth.h" |
|
|
|
int main(int argc, char *argv[]) { |
|
char buf[128]; |
|
char username[32]; |
|
char password[32]; |
|
oal_config_t *config; |
|
|
|
if (argc < 2) { |
|
fprintf(stderr, "Usage: %s <config>\n", argv[0]); |
|
return 1; |
|
} |
|
|
|
config = (oal_config_t *) calloc (1, sizeof (oal_config_t)); |
|
|
|
if (parse_config(config, argv[1]) != 0) { |
|
fprintf(stderr, "config parser failed: %s\n", config->error); |
|
return 1; |
|
} |
|
|
|
if (check_config(config) != 0) { |
|
fprintf(stderr, "config check failed: %s\n", config->error); |
|
return 1; |
|
} |
|
|
|
while (fgets(buf, sizeof(buf), stdin) != NULL) { |
|
if (sscanf(buf, "%31s %31s", username, password) != 2) { |
|
fputs("fail: expected '<username> <password>' line\n", stdout); |
|
continue; |
|
} |
|
if (oal_check_cred(config, username, password) > 0) { |
|
fputs("ok\n", stdout); |
|
} else { |
|
fprintf(stderr, "fail: %s\n", config->error); |
|
} |
|
} |
|
|
|
free(config); |
|
|
|
return 0; |
|
}
|
|
|