auth-master.h revision 69d60dcff2614c4bfc8ad59e8fdc09e39c9dd0dc
8da250dad4b11c4983031742a83fb8f358044fe0Stéphane Graber#ifndef AUTH_MASTER_H
8da250dad4b11c4983031742a83fb8f358044fe0Stéphane Graber#define AUTH_MASTER_H
8da250dad4b11c4983031742a83fb8f358044fe0Stéphane Graber
2a31251cc5f428f96ee3d322a78556310a681e14Stéphane Graberstruct auth_user_reply {
2a31251cc5f428f96ee3d322a78556310a681e14Stéphane Graber uid_t uid;
2a31251cc5f428f96ee3d322a78556310a681e14Stéphane Graber gid_t gid;
8da250dad4b11c4983031742a83fb8f358044fe0Stéphane Graber const char *user, *home, *chroot;
2a31251cc5f428f96ee3d322a78556310a681e14Stéphane Graber ARRAY_TYPE(const_string) extra_fields;
2a31251cc5f428f96ee3d322a78556310a681e14Stéphane Graber};
8da250dad4b11c4983031742a83fb8f358044fe0Stéphane Graber
8da250dad4b11c4983031742a83fb8f358044fe0Stéphane Graberstruct auth_master_connection *
8da250dad4b11c4983031742a83fb8f358044fe0Stéphane Graberauth_master_init(const char *auth_socket_path, bool debug);
8da250dad4b11c4983031742a83fb8f358044fe0Stéphane Grabervoid auth_master_deinit(struct auth_master_connection **conn);
8da250dad4b11c4983031742a83fb8f358044fe0Stéphane Graber
8da250dad4b11c4983031742a83fb8f358044fe0Stéphane Graber/* Returns -1 = error, 0 = user not found, 1 = ok */
1b0c17462ad4f9a05ea6e5ced5e444152ec7a193Serge Hallynint auth_master_user_lookup(struct auth_master_connection *conn,
64b4c7a34b5c0407f3bcddc83f7c061dadb583bbMartin Pitt const char *user, const char *service,
05352fc9304f465b9322e22d19f62641d82dc6adWolfgang Bumiller pool_t pool, struct auth_user_reply *reply_r);
8da250dad4b11c4983031742a83fb8f358044fe0Stéphane Graber
8da250dad4b11c4983031742a83fb8f358044fe0Stéphane Graber/* Iterate through all users. */
8da250dad4b11c4983031742a83fb8f358044fe0Stéphane Graberstruct auth_master_user_list_ctx *
8da250dad4b11c4983031742a83fb8f358044fe0Stéphane Graberauth_master_user_list_init(struct auth_master_connection *conn);
8da250dad4b11c4983031742a83fb8f358044fe0Stéphane Graberconst char *auth_master_user_list_next(struct auth_master_user_list_ctx *ctx);
8da250dad4b11c4983031742a83fb8f358044fe0Stéphane Graberunsigned int auth_master_user_list_count(struct auth_master_user_list_ctx *ctx);
8da250dad4b11c4983031742a83fb8f358044fe0Stéphane Graber/* Returns -1 if anything failed, 0 if ok */
8da250dad4b11c4983031742a83fb8f358044fe0Stéphane Graberint auth_master_user_list_deinit(struct auth_master_user_list_ctx **ctx);
8da250dad4b11c4983031742a83fb8f358044fe0Stéphane Graber
8da250dad4b11c4983031742a83fb8f358044fe0Stéphane Graber#endif
8da250dad4b11c4983031742a83fb8f358044fe0Stéphane Graber