Blame library/adconn.h

Packit 8586cb
/*
Packit 8586cb
 * adcli
Packit 8586cb
 *
Packit 8586cb
 * Copyright (C) 2012 Red Hat Inc.
Packit 8586cb
 *
Packit 8586cb
 * This program is free software; you can redistribute it and/or modify
Packit 8586cb
 * it under the terms of the GNU Lesser General Public License as
Packit 8586cb
 * published by the Free Software Foundation; either version 2.1 of
Packit 8586cb
 * the License, or (at your option) any later version.
Packit 8586cb
 *
Packit 8586cb
 * This program is distributed in the hope that it will be useful, but
Packit 8586cb
 * WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 8586cb
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 8586cb
 * Lesser General Public License for more details.
Packit 8586cb
 *
Packit 8586cb
 * You should have received a copy of the GNU Lesser General Public
Packit 8586cb
 * License along with this program; if not, write to the Free Software
Packit 8586cb
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
Packit 8586cb
 * MA 02110-1301 USA
Packit 8586cb
 *
Packit 8586cb
 * Author: Stef Walter <stefw@gnome.org>
Packit 8586cb
 */
Packit 8586cb
Packit 8586cb
#ifndef ADCONN_H_
Packit 8586cb
#define ADCONN_H_
Packit 8586cb
Packit 8586cb
#include "adutil.h"
Packit 8586cb
Packit 8586cb
#include <krb5/krb5.h>
Packit 8586cb
#include <ldap.h>
Packit 8586cb
Packit 8586cb
typedef enum {
Packit 8586cb
	ADCLI_LOGIN_UNKNOWN = 0,
Packit 8586cb
	ADCLI_LOGIN_COMPUTER_ACCOUNT = 1 << 1,
Packit 8586cb
	ADCLI_LOGIN_USER_ACCOUNT = 1 << 2,
Packit 8586cb
} adcli_login_type;
Packit 8586cb
Packit 8586cb
#define ADCLI_CAP_OID                      "1.2.840.113556.1.4.800"
Packit 8586cb
#define ADCLI_CAP_LDAP_INTEG_OID           "1.2.840.113556.1.4.1791"
Packit 8586cb
#define ADCLI_CAP_V51_OID                  "1.2.840.113556.1.4.1670"
Packit 8586cb
#define ADCLI_CAP_ADAM_DIGEST              "1.2.840.113556.1.4.1880"
Packit 8586cb
#define ADCLI_CAP_ADAM_OID                 "1.2.840.113556.1.4.1851"
Packit 8586cb
#define ADCLI_CAP_PARTIAL_SECRETS_OID      "1.2.840.113556.1.4.1920"
Packit 8586cb
#define ADCLI_CAP_V60_OID                  "1.2.840.113556.1.4.1935"
Packit 8586cb
#define ADCLI_CAP_V61_R2_OID               "1.2.840.113556.1.4.2080"
Packit 8586cb
#define ADCLI_CAP_W8_OID                   "1.2.840.113556.1.4.2237"
Packit 8586cb
Packit 8586cb
typedef char *      (* adcli_password_func)          (adcli_login_type type,
Packit 8586cb
                                                      const char *name,
Packit 8586cb
                                                      int flags,
Packit 8586cb
                                                      void *data);
Packit 8586cb
Packit 8586cb
typedef void        (* adcli_destroy_func)           (void *data);
Packit 8586cb
Packit 8586cb
typedef struct _adcli_conn_ctx adcli_conn;
Packit 8586cb
Packit 8586cb
adcli_result        adcli_conn_discover              (adcli_conn *conn);
Packit 8586cb
Packit 8586cb
adcli_result        adcli_conn_connect               (adcli_conn *conn);
Packit 8586cb
Packit 8586cb
adcli_conn *        adcli_conn_new                   (const char *domain);
Packit 8586cb
Packit 8586cb
adcli_conn *        adcli_conn_ref                   (adcli_conn *conn);
Packit 8586cb
Packit 8586cb
void                adcli_conn_unref                 (adcli_conn *conn);
Packit 8586cb
Packit 8586cb
void                adcli_conn_set_password_func     (adcli_conn *conn,
Packit 8586cb
                                                      adcli_password_func password_func,
Packit 8586cb
                                                      void *data,
Packit 8586cb
                                                      adcli_destroy_func destroy_data);
Packit 8586cb
Packit 8586cb
const char *        adcli_conn_get_host_fqdn         (adcli_conn *conn);
Packit 8586cb
Packit 8586cb
void                adcli_conn_set_host_fqdn         (adcli_conn *conn,
Packit 8586cb
                                                      const char *value);
Packit 8586cb
Packit 8586cb
const char *        adcli_conn_get_domain_name       (adcli_conn *conn);
Packit 8586cb
Packit 8586cb
void                adcli_conn_set_domain_name       (adcli_conn *conn,
Packit 8586cb
                                                      const char *value);
Packit 8586cb
Packit 8586cb
const char *        adcli_conn_get_domain_realm      (adcli_conn *conn);
Packit 8586cb
Packit 8586cb
void                adcli_conn_set_domain_realm      (adcli_conn *conn,
Packit 8586cb
                                                      const char *value);
Packit 8586cb
Packit 8586cb
const char *        adcli_conn_get_domain_controller (adcli_conn *conn);
Packit 8586cb
Packit 8586cb
void                adcli_conn_set_domain_controller (adcli_conn *conn,
Packit 8586cb
                                                      const char *value);
Packit 8586cb
Packit 8586cb
const char *        adcli_conn_get_domain_short      (adcli_conn *conn);
Packit 8586cb
Packit 8586cb
LDAP *              adcli_conn_get_ldap_connection   (adcli_conn *conn);
Packit 8586cb
Packit 8586cb
krb5_context        adcli_conn_get_krb5_context      (adcli_conn *conn);
Packit 8586cb
Packit 8586cb
const char *        adcli_conn_get_computer_name     (adcli_conn *conn);
Packit 8586cb
Packit 8586cb
void                adcli_conn_set_computer_name     (adcli_conn *conn,
Packit 8586cb
                                                      const char *value);
Packit 8586cb
Packit 8586cb
const char *        adcli_conn_get_computer_password (adcli_conn *conn);
Packit 8586cb
Packit 8586cb
void                adcli_conn_set_computer_password (adcli_conn *conn,
Packit 8586cb
                                                      const char *password);
Packit 8586cb
Packit 8586cb
const char *        adcli_conn_get_login_user         (adcli_conn *conn);
Packit 8586cb
Packit 8586cb
void                adcli_conn_set_login_user         (adcli_conn *conn,
Packit 8586cb
                                                      const char *value);
Packit 8586cb
Packit 8586cb
const char *        adcli_conn_get_user_password     (adcli_conn *conn);
Packit 8586cb
Packit 8586cb
void                adcli_conn_set_user_password     (adcli_conn *conn,
Packit 8586cb
                                                      const char *value);
Packit 8586cb
Packit 8586cb
adcli_login_type    adcli_conn_get_login_type        (adcli_conn *conn);
Packit 8586cb
Packit 8586cb
adcli_login_type    adcli_conn_get_allowed_login_types  (adcli_conn *conn);
Packit 8586cb
Packit 8586cb
void                adcli_conn_set_allowed_login_types  (adcli_conn *conn,
Packit 8586cb
                                                         adcli_login_type types);
Packit 8586cb
Packit 8586cb
krb5_ccache         adcli_conn_get_login_ccache      (adcli_conn *conn);
Packit 8586cb
Packit 8586cb
const char *        adcli_conn_get_login_ccache_name (adcli_conn *conn);
Packit 8586cb
Packit 8586cb
void                adcli_conn_set_login_ccache_name (adcli_conn *conn,
Packit 8586cb
                                                      const char *ccname);
Packit 8586cb
Packit 8586cb
const char *        adcli_conn_get_login_keytab_name (adcli_conn *conn);
Packit 8586cb
Packit 8586cb
void                adcli_conn_set_login_keytab_name (adcli_conn *conn,
Packit 8586cb
                                                      const char *ktname);
Packit 8586cb
Packit 8586cb
const char *        adcli_conn_get_default_naming_context (adcli_conn *conn);
Packit 8586cb
Packit 8586cb
const char *        adcli_conn_get_krb5_conf_dir     (adcli_conn *conn);
Packit 8586cb
Packit 8586cb
void                adcli_conn_set_krb5_conf_dir     (adcli_conn *conn,
Packit 8586cb
                                                      const char *value);
Packit 8586cb
Packit 8586cb
int                 adcli_conn_server_has_capability (adcli_conn *conn,
Packit 8586cb
                                                      const char *capability);
Packit 8586cb
Packit Service d74f6d
bool                adcli_conn_is_writeable          (adcli_conn *conn);
Packit Service d74f6d
Packit 8586cb
#endif /* ADCONN_H_ */