/*
- $Id: uuidtest.c,v 1.3 2009-11-28 12:27:24 franklahm Exp $
Copyright (c) 2008,2009 Frank Lahm <franklahm@gmail.com>
This program is free software; you can redistribute it and/or modify
#include "config.h"
#endif /* HAVE_CONFIG_H */
-#ifdef HAVE_ACLS
-
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
+
+#ifdef HAVE_LDAP
+#define LDAP_DEPRECATED 1
#include <ldap.h>
+#endif
#include <atalk/ldapconfig.h>
#include <atalk/uuid.h>
#include <atalk/logger.h>
+#include <atalk/iniparser.h>
#define STRNCMP(a, R, b, l) (strncmp(a,b,l) R 0)
static void parse_ldapconf()
{
static int inited = 0;
+ dictionary *iniconfig;
if (! inited) {
- /* Parse afp_ldap.conf */
- printf("Start parsing afp_ldap.conf\n");
- acl_ldap_readconfig(_PATH_ACL_LDAPCONF);
- printf("Finished parsing afp_ldap.conf\n");
+#ifdef HAVE_LDAP
+ /* Parse afp.conf */
+ printf("Start parsing afp.conf\n");
+ iniconfig = iniparser_load(_PATH_CONFDIR "afp.conf");
+ acl_ldap_readconfig(iniconfig);
+ printf("Finished parsing afp.conf\n");
if (ldap_config_valid) {
if (ldap_auth_method == LDAP_AUTH_NONE)
- printf("afp_ldap.conf is ok. Using anonymous bind.\n");
+ printf("afp.conf is ok. Using anonymous bind.\n");
else if (ldap_auth_method == LDAP_AUTH_SIMPLE)
- printf("afp_ldap.conf is ok. Using simple bind.\n");
+ printf("afp.conf is ok. Using simple bind.\n");
else {
ldap_config_valid = 0;
- printf("afp_ldap.conf wants SASL which is not yet supported.\n");
+ printf("afp.conf wants SASL which is not yet supported.\n");
exit(EXIT_FAILURE);
}
} else {
- printf("afp_ldap.conf is not ok.\n");
- exit(EXIT_FAILURE);
+ printf("afp.conf is not ok, not using LDAP. Only local UUID testing available.\n");
}
+#else
+ printf("Built without LDAP support, only local UUID testing available.\n");
+#endif
inited = 1;
}
}
int main( int argc, char **argv)
{
- int ret, i, c;
+ int ret, c;
int verbose = 0;
atalk_uuid_t uuid;
+ int logsetup = 0;
uuidtype_t type;
- char *uuidstring = NULL;
char *name = NULL;
- setuplog("console log_error /dev/tty");
-
while ((c = getopt(argc, argv, ":vu:g:i:")) != -1) {
switch(c) {
case 'v':
if (! verbose) {
verbose = 1;
- setuplog("console log_debug /dev/tty");
+ setuplog("default:maxdebug", "/dev/tty");
+ logsetup = 1;
}
break;
case 'u':
+ if (! logsetup)
+ setuplog("default:info", "/dev/tty");
parse_ldapconf();
printf("Searching user: %s\n", optarg);
ret = getuuidfromname( optarg, UUID_USER, uuid);
if (ret == 0) {
- uuid_bin2string( uuid, &uuidstring);
- printf("User: %s ==> UUID: %s\n", optarg, uuidstring);
- free(uuidstring);
+ printf("User: %s ==> UUID: %s\n", optarg, uuid_bin2string(uuid));
} else {
printf("User %s not found.\n", optarg);
}
break;
case 'g':
+ if (! logsetup)
+ setuplog("default:info", "/dev/tty");
parse_ldapconf();
printf("Searching group: %s\n", optarg);
ret = getuuidfromname( optarg, UUID_GROUP, uuid);
if (ret == 0) {
- uuid_bin2string( uuid, &uuidstring);
- printf("Group: %s ==> UUID: %s\n", optarg, uuidstring);
- free(uuidstring);
+ printf("Group: %s ==> UUID: %s\n", optarg, uuid_bin2string(uuid));
} else {
printf("Group %s not found.\n", optarg);
}
break;
case 'i':
+ if (! logsetup)
+ setuplog("default:info", "/dev/tty");
parse_ldapconf();
printf("Searching uuid: %s\n", optarg);
uuid_string2bin(optarg, uuid);
ret = getnamefromuuid( uuid, &name, &type);
if (ret == 0) {
- if (type == UUID_USER)
+ switch (type) {
+ case UUID_USER:
printf("UUID: %s ==> User: %s\n", optarg, name);
- else
+ break;
+ case UUID_GROUP:
printf("UUID: %s ==> Group: %s\n", optarg, name);
+ break;
+ default:
+ printf("???: %s\n", optarg);
+ break;
+ }
free(name);
} else {
printf("UUID: %s not found.\n", optarg);
return 0;
}
-#endif /* HAVE_ACLS */