Blame library/adconn.h

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