diff -r 0185b13bf41f -r 09fbefc0e6a9 src/server/daemon/ldap_auth.h --- a/src/server/daemon/ldap_auth.h Mon Nov 04 10:55:27 2013 +0100 +++ b/src/server/daemon/ldap_auth.h Sun Aug 17 15:15:32 2014 +0200 @@ -30,16 +30,21 @@ #define LDAP_AUTH_H #include "../public/auth.h" +#include #include +#include #ifdef __cplusplus extern "C" { #endif -typedef struct ldap_auth_db LDAPAuthDB; -typedef struct ldap_config LDAPConfig; -typedef struct ldap_user LDAPUser; - +typedef struct ldap_auth_db LDAPAuthDB; +typedef struct ldap_config LDAPConfig; +typedef struct ldap_user LDAPUser; +typedef struct ldap_group LDAPGroup; +typedef struct ldap_member LDAPMember; +typedef struct ldap_group_cache LDAPGroupCache; + struct ldap_config { char *hostname; int port; @@ -51,9 +56,16 @@ char *groupsearch; }; +struct ldap_group_cache { + LDAPGroup *first; + LDAPGroup *last; + UcxMap *map; +}; + struct ldap_auth_db { - AuthDB authdb; - LDAPConfig config; + AuthDB authdb; + LDAPConfig config; + LDAPGroupCache groups; }; struct ldap_user { @@ -61,12 +73,31 @@ LDAPAuthDB *authdb; LDAP *ldap; char *userdn; + int uid; + int gid; +}; + +struct ldap_member { + char *name; + int uid; +}; + +struct ldap_group { + char *name; + LDAPMember *members; + size_t nmembers; + time_t update; + LDAPGroup *next; }; AuthDB* create_ldap_authdb(char *name, LDAPConfig *conf); +LDAP* get_ldap_session(LDAPAuthDB *authdb); + User* ldap_get_user(AuthDB *sb, char *username); +LDAPGroup* ldap_get_group(LDAPAuthDB *authdb, char *group); + int ldap_user_verify_password(User *user, char *password); int ldap_user_check_group(User *user, char *group); void ldap_user_free(User *user);