[balsa] Declare LibBalsaAddressBookLdap final
- From: Peter Bloomfield <peterb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [balsa] Declare LibBalsaAddressBookLdap final
- Date: Wed, 15 May 2019 19:12:50 +0000 (UTC)
commit 70e87b811e6c91dfe3ce3c19b7d00b330a4f2a84
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date: Wed May 15 15:09:58 2019 -0400
Declare LibBalsaAddressBookLdap final
Use G_DECLARE_FINAL_TYPE to declare LibBalsaAddressBookLdap
Make the structure private, and provide and use the necessary
getters and setters.
Adopt ab_ldap as the identifier.
* libbalsa/address-book-ldap.c
(libbalsa_address_book_ldap_class_init),
(libbalsa_address_book_ldap_init),
(libbalsa_address_book_ldap_finalize),
(libbalsa_address_book_ldap_new),
(libbalsa_address_book_ldap_close_connection), (abl_interaction),
(libbalsa_address_book_ldap_open_connection),
(libbalsa_address_book_ldap_load),
(libbalsa_address_book_ldap_get_address),
(libbalsa_address_book_ldap_add_address),
(libbalsa_address_book_ldap_remove_address),
(libbalsa_address_book_ldap_modify_address),
(libbalsa_address_book_ldap_save_config),
(libbalsa_address_book_ldap_load_config),
(libbalsa_address_book_ldap_alias_complete),
(libbalsa_address_book_ldap_get_host),
(libbalsa_address_book_ldap_get_base_dn),
(libbalsa_address_book_ldap_get_bind_dn),
(libbalsa_address_book_ldap_get_passwd),
(libbalsa_address_book_ldap_get_book_dn),
(libbalsa_address_book_ldap_get_enable_tls),
(libbalsa_address_book_ldap_set_host),
(libbalsa_address_book_ldap_set_base_dn),
(libbalsa_address_book_ldap_set_bind_dn),
(libbalsa_address_book_ldap_set_passwd),
(libbalsa_address_book_ldap_set_book_dn),
(libbalsa_address_book_ldap_set_enable_tls):
* libbalsa/address-book-ldap.h:
* src/address-book-config.c (create_ldap_dialog), (create_book),
(modify_book):
ChangeLog | 40 +++++
libbalsa/address-book-ldap.c | 418 ++++++++++++++++++++++++++-----------------
libbalsa/address-book-ldap.h | 58 +++---
src/address-book-config.c | 40 ++---
4 files changed, 345 insertions(+), 211 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index b7c76cc85..164dce433 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,43 @@
+2019-05-15 Peter Bloomfield <pbloomfield bellsouth net>
+
+ Use G_DECLARE_FINAL_TYPE to declare LibBalsaAddressBookLdap
+
+ Make the structure private, and provide and use the necessary
+ getters and setters.
+
+ Adopt ab_ldap as the identifier.
+
+ * libbalsa/address-book-ldap.c
+ (libbalsa_address_book_ldap_class_init),
+ (libbalsa_address_book_ldap_init),
+ (libbalsa_address_book_ldap_finalize),
+ (libbalsa_address_book_ldap_new),
+ (libbalsa_address_book_ldap_close_connection), (abl_interaction),
+ (libbalsa_address_book_ldap_open_connection),
+ (libbalsa_address_book_ldap_load),
+ (libbalsa_address_book_ldap_get_address),
+ (libbalsa_address_book_ldap_add_address),
+ (libbalsa_address_book_ldap_remove_address),
+ (libbalsa_address_book_ldap_modify_address),
+ (libbalsa_address_book_ldap_save_config),
+ (libbalsa_address_book_ldap_load_config),
+ (libbalsa_address_book_ldap_alias_complete),
+ (libbalsa_address_book_ldap_get_host),
+ (libbalsa_address_book_ldap_get_base_dn),
+ (libbalsa_address_book_ldap_get_bind_dn),
+ (libbalsa_address_book_ldap_get_passwd),
+ (libbalsa_address_book_ldap_get_book_dn),
+ (libbalsa_address_book_ldap_get_enable_tls),
+ (libbalsa_address_book_ldap_set_host),
+ (libbalsa_address_book_ldap_set_base_dn),
+ (libbalsa_address_book_ldap_set_bind_dn),
+ (libbalsa_address_book_ldap_set_passwd),
+ (libbalsa_address_book_ldap_set_book_dn),
+ (libbalsa_address_book_ldap_set_enable_tls):
+ * libbalsa/address-book-ldap.h:
+ * src/address-book-config.c (create_ldap_dialog), (create_book),
+ (modify_book):
+
2019-05-15 Peter Bloomfield <pbloomfield bellsouth net>
Use G_DECLARE_FINAL_TYPE to declare LibBalsaAddressBookGpe
diff --git a/libbalsa/address-book-ldap.c b/libbalsa/address-book-ldap.c
index 136861770..6a1305884 100644
--- a/libbalsa/address-book-ldap.c
+++ b/libbalsa/address-book-ldap.c
@@ -78,11 +78,8 @@ static char* complete_attrs[] = {
};
/* End of FIXME */
-static LibBalsaAddressBookClass *parent_class = NULL;
-
static void
-libbalsa_address_book_ldap_class_init(LibBalsaAddressBookLdapClass *
- klass);
+libbalsa_address_book_ldap_class_init(LibBalsaAddressBookLdapClass * klass);
static void libbalsa_address_book_ldap_init(LibBalsaAddressBookLdap * ab);
static void libbalsa_address_book_ldap_finalize(GObject * object);
@@ -120,31 +117,25 @@ libbalsa_address_book_ldap_get_address(LibBalsaAddressBook * ab,
static gchar *create_name(gchar *, gchar *);
-GType libbalsa_address_book_ldap_get_type(void)
-{
- static GType address_book_ldap_type = 0;
-
- if (!address_book_ldap_type) {
- static const GTypeInfo address_book_ldap_info = {
- sizeof(LibBalsaAddressBookLdapClass),
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) libbalsa_address_book_ldap_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof(LibBalsaAddressBookLdap),
- 0, /* n_preallocs */
- (GInstanceInitFunc) libbalsa_address_book_ldap_init
- };
-
- address_book_ldap_type =
- g_type_register_static(LIBBALSA_TYPE_ADDRESS_BOOK,
- "LibBalsaAddressBookLdap",
- &address_book_ldap_info, 0);
- }
-
- return address_book_ldap_type;
-}
+struct _LibBalsaAddressBookLdap {
+ LibBalsaAddressBook parent;
+
+ gchar *host;
+ gchar *base_dn;
+ gchar *bind_dn;
+ gchar *priv_book_dn; /* location of user-writeable entries */
+ gchar *passwd;
+ gboolean enable_tls;
+
+ LDAP *directory;
+};
+
+struct _LibBalsaAddressBookLdapClass {
+ LibBalsaAddressBookClass parent_class;
+};
+
+G_DEFINE_TYPE(LibBalsaAddressBookLdap, libbalsa_address_book_ldap,
+ LIBBALSA_TYPE_ADDRESS_BOOK)
static void
libbalsa_address_book_ldap_class_init(LibBalsaAddressBookLdapClass * klass)
@@ -152,8 +143,6 @@ libbalsa_address_book_ldap_class_init(LibBalsaAddressBookLdapClass * klass)
LibBalsaAddressBookClass *address_book_class;
GObjectClass *object_class;
- parent_class = g_type_class_peek_parent(klass);
-
object_class = G_OBJECT_CLASS(klass);
address_book_class = LIBBALSA_ADDRESS_BOOK_CLASS(klass);
@@ -176,34 +165,34 @@ libbalsa_address_book_ldap_class_init(LibBalsaAddressBookLdapClass * klass)
}
static void
-libbalsa_address_book_ldap_init(LibBalsaAddressBookLdap * ab)
+libbalsa_address_book_ldap_init(LibBalsaAddressBookLdap * ab_ldap)
{
- ab->host = NULL;
- ab->base_dn = NULL;
- ab->bind_dn = NULL;
- ab->priv_book_dn = NULL;
- ab->passwd = NULL;
- ab->enable_tls = FALSE;
- ab->directory = NULL;
- libbalsa_address_book_set_is_expensive(LIBBALSA_ADDRESS_BOOK(ab), TRUE);
+ ab_ldap->host = NULL;
+ ab_ldap->base_dn = NULL;
+ ab_ldap->bind_dn = NULL;
+ ab_ldap->priv_book_dn = NULL;
+ ab_ldap->passwd = NULL;
+ ab_ldap->enable_tls = FALSE;
+ ab_ldap->directory = NULL;
+ libbalsa_address_book_set_is_expensive(LIBBALSA_ADDRESS_BOOK(ab_ldap), TRUE);
}
static void
libbalsa_address_book_ldap_finalize(GObject * object)
{
- LibBalsaAddressBookLdap *addr_ldap;
+ LibBalsaAddressBookLdap *ab_ldap;
- addr_ldap = LIBBALSA_ADDRESS_BOOK_LDAP(object);
+ ab_ldap = LIBBALSA_ADDRESS_BOOK_LDAP(object);
- libbalsa_address_book_ldap_close_connection(addr_ldap);
+ libbalsa_address_book_ldap_close_connection(ab_ldap);
- g_free(addr_ldap->host); addr_ldap->host = NULL;
- g_free(addr_ldap->base_dn); addr_ldap->base_dn = NULL;
- g_free(addr_ldap->bind_dn); addr_ldap->bind_dn = NULL;
- g_free(addr_ldap->priv_book_dn); addr_ldap->priv_book_dn = NULL;
- g_free(addr_ldap->passwd); addr_ldap->passwd = NULL;
+ g_free(ab_ldap->host); ab_ldap->host = NULL;
+ g_free(ab_ldap->base_dn); ab_ldap->base_dn = NULL;
+ g_free(ab_ldap->bind_dn); ab_ldap->bind_dn = NULL;
+ g_free(ab_ldap->priv_book_dn); ab_ldap->priv_book_dn = NULL;
+ g_free(ab_ldap->passwd); ab_ldap->passwd = NULL;
- G_OBJECT_CLASS(parent_class)->finalize(object);
+ G_OBJECT_CLASS(libbalsa_address_book_ldap_parent_class)->finalize(object);
}
LibBalsaAddressBook *
@@ -212,25 +201,25 @@ libbalsa_address_book_ldap_new(const gchar *name, const gchar *host,
const gchar *passwd, const gchar *priv_book_dn,
gboolean enable_tls)
{
- LibBalsaAddressBookLdap *ldap;
+ LibBalsaAddressBookLdap *ab_ldap;
LibBalsaAddressBook *ab;
- ldap =
+ ab_ldap =
LIBBALSA_ADDRESS_BOOK_LDAP(g_object_new
(LIBBALSA_TYPE_ADDRESS_BOOK_LDAP,
NULL));
- ab = LIBBALSA_ADDRESS_BOOK(ldap);
+ ab = LIBBALSA_ADDRESS_BOOK(ab_ldap);
libbalsa_address_book_set_name(ab, name);
- ldap->host = g_strdup(host);
- ldap->base_dn = g_strdup(base_dn);
- ldap->bind_dn = g_strdup(bind_dn);
- ldap->priv_book_dn = g_strdup(priv_book_dn ? priv_book_dn : bind_dn);
- ldap->passwd = g_strdup(passwd);
- ldap->enable_tls = enable_tls;
+ ab_ldap->host = g_strdup(host);
+ ab_ldap->base_dn = g_strdup(base_dn);
+ ab_ldap->bind_dn = g_strdup(bind_dn);
+ ab_ldap->priv_book_dn = g_strdup(priv_book_dn ? priv_book_dn : bind_dn);
+ ab_ldap->passwd = g_strdup(passwd);
+ ab_ldap->enable_tls = enable_tls;
/* We open on demand... */
- ldap->directory = NULL;
+ ab_ldap->directory = NULL;
return ab;
}
@@ -238,11 +227,11 @@ libbalsa_address_book_ldap_new(const gchar *name, const gchar *host,
* Close the ldap connection....
*/
void
-libbalsa_address_book_ldap_close_connection(LibBalsaAddressBookLdap * ab)
+libbalsa_address_book_ldap_close_connection(LibBalsaAddressBookLdap * ab_ldap)
{
- if (ab->directory) {
- ldap_unbind_ext(ab->directory, NULL, NULL);
- ab->directory = NULL;
+ if (ab_ldap->directory) {
+ ldap_unbind_ext(ab_ldap->directory, NULL, NULL);
+ ab_ldap->directory = NULL;
}
}
@@ -253,7 +242,7 @@ libbalsa_address_book_ldap_close_connection(LibBalsaAddressBookLdap * ab)
#ifdef HAVE_CYRUS_SASL
static int
abl_interaction(unsigned flags, sasl_interact_t *interact,
- LibBalsaAddressBookLdap *ab)
+ LibBalsaAddressBookLdap *ab_ldap)
{
switch(interact->id) {
case SASL_CB_PASS: break;
@@ -266,7 +255,7 @@ abl_interaction(unsigned flags, sasl_interact_t *interact,
return LDAP_INAVAILABLE;
}
- interact->result = ab->passwd;;
+ interact->result = ab_ldap->passwd;;
interact->len = interact->result ? strlen(interact->result) : 0;
return LDAP_SUCCESS;
}
@@ -292,52 +281,52 @@ int abl_interact(LDAP *ld, unsigned flags, void* defaults, void *interact )
#endif
static int
-libbalsa_address_book_ldap_open_connection(LibBalsaAddressBookLdap * ab)
+libbalsa_address_book_ldap_open_connection(LibBalsaAddressBookLdap * ab_ldap)
{
int result;
static const int version = LDAP_VERSION3;
gboolean v3_enabled;
- LibBalsaAddressBook *lbab = LIBBALSA_ADDRESS_BOOK(ab);
+ LibBalsaAddressBook *ab = LIBBALSA_ADDRESS_BOOK(ab_ldap);
- g_return_val_if_fail(ab->host != NULL, FALSE);
+ g_return_val_if_fail(ab_ldap->host != NULL, FALSE);
- ldap_initialize(&ab->directory, ab->host);
- if (ab->directory == NULL) { /* very unlikely... */
- libbalsa_address_book_set_status(lbab, _("Host not found"));
+ ldap_initialize(&ab_ldap->directory, ab_ldap->host);
+ if (ab_ldap->directory == NULL) { /* very unlikely... */
+ libbalsa_address_book_set_status(ab, _("Host not found"));
return LDAP_SERVER_DOWN;
}
/* ignore error if the V3 LDAP cannot be set */
v3_enabled =
- ldap_set_option(ab->directory, LDAP_OPT_PROTOCOL_VERSION, &version)
+ ldap_set_option(ab_ldap->directory, LDAP_OPT_PROTOCOL_VERSION, &version)
== LDAP_OPT_SUCCESS;
if(!v3_enabled) printf("Too old LDAP server - interaction may fail.\n");
- if(v3_enabled && ab->enable_tls) {
+ if(v3_enabled && ab_ldap->enable_tls) {
#ifdef HAVE_LDAP_TLS
/* turn TLS on but what if we have SSL already on? */
- result = ldap_start_tls_s(ab->directory, NULL, NULL);
+ result = ldap_start_tls_s(ab_ldap->directory, NULL, NULL);
if(result != LDAP_SUCCESS) {
- ldap_unbind_ext(ab->directory, NULL, NULL);
- ab->directory = NULL;
- libbalsa_address_book_set_status(lbab, ldap_err2string(result));
+ ldap_unbind_ext(ab_ldap->directory, NULL, NULL);
+ ab_ldap->directory = NULL;
+ libbalsa_address_book_set_status(ab, ldap_err2string(result));
return result;
}
#else /* HAVE_LDAP_TLS */
- libbalsa_address_book_set_status(lbab,
+ libbalsa_address_book_set_status(ab,
_("TLS requested but not compiled in"));
return LDAP_INAPPRIOPRIATE_AUTH;
#endif /* HAVE_LDAP_TLS */
}
#ifdef HAVE_CYRUS_SASL
- result = ldap_sasl_interactive_bind_s(ab->directory, ab->bind_dn, NULL,
+ result = ldap_sasl_interactive_bind_s(ab_ldap->directory, ab_ldap->bind_dn, NULL,
NULL, NULL,
- LDAP_SASL_QUIET, abl_interact, ab);
+ LDAP_SASL_QUIET, abl_interact, ab_ldap);
#else /* HAVE_CYRUS_SASL */
{
- struct berval cred;
- cred.bv_val = ab->passwd;
- cred.bv_len = ab->passwd ? strlen(ab->passwd) : 0;
- result = ldap_sasl_bind_s(ab->directory, ab->bind_dn, NULL, &cred,
+ struct berval cred;
+ cred.bv_val = ab_ldap->passwd;
+ cred.bv_len = ab_ldap->passwd ? strlen(ab_ldap->passwd) : 0;
+ result = ldap_sasl_bind_s(ab_ldap->directory, ab_ldap->bind_dn, NULL, &cred,
NULL, NULL, NULL);
}
#endif /* HAVE_CYRUS_SASL */
@@ -345,12 +334,12 @@ libbalsa_address_book_ldap_open_connection(LibBalsaAddressBookLdap * ab)
/* do not follow referrals (OpenLDAP binds anonymously here, which will usually
* fail */
if (result == LDAP_SUCCESS)
- result = ldap_set_option(ab->directory, LDAP_OPT_REFERRALS, (void *)LDAP_OPT_OFF);
+ result = ldap_set_option(ab_ldap->directory, LDAP_OPT_REFERRALS, (void *)LDAP_OPT_OFF);
if (result != LDAP_SUCCESS) {
- libbalsa_address_book_set_status(lbab, ldap_err2string(result));
- ldap_unbind_ext(ab->directory, NULL, NULL);
- ab->directory = NULL;
+ libbalsa_address_book_set_status(ab, ldap_err2string(result));
+ ldap_unbind_ext(ab_ldap->directory, NULL, NULL);
+ ab_ldap->directory = NULL;
}
return result;
}
@@ -366,7 +355,7 @@ libbalsa_address_book_ldap_load(LibBalsaAddressBook * ab,
LibBalsaAddressBookLoadFunc callback,
gpointer closure)
{
- LibBalsaAddressBookLdap *ldap_ab;
+ LibBalsaAddressBookLdap *ab_ldap;
LibBalsaAddress *address;
LDAPMessage *msg, *result;
int msgid, rc, attempt;
@@ -377,13 +366,13 @@ libbalsa_address_book_ldap_load(LibBalsaAddressBook * ab,
if (callback == NULL)
return LBABERR_OK;
- ldap_ab = LIBBALSA_ADDRESS_BOOK_LDAP(ab);
+ ab_ldap = LIBBALSA_ADDRESS_BOOK_LDAP(ab);
/*
* Connect to the server.
*/
for(attempt=0; attempt<2; attempt++) {
- if (ldap_ab->directory == NULL) {
- if ((rc=libbalsa_address_book_ldap_open_connection(ldap_ab))
+ if (ab_ldap->directory == NULL) {
+ if ((rc=libbalsa_address_book_ldap_open_connection(ab_ldap))
!= LDAP_SUCCESS)
return LBABERR_CANNOT_CONNECT;
}
@@ -402,21 +391,21 @@ libbalsa_address_book_ldap_load(LibBalsaAddressBook * ab,
: g_strdup("(&(objectClass=organizationalPerson)(mail=*))");
if(DEBUG_LDAP)
g_print("Send LDAP request: %s (basedn=%s)\n", ldap_filter,
- ldap_ab->base_dn);
- if(ldap_search_ext(ldap_ab->directory, ldap_ab->base_dn,
+ ab_ldap->base_dn);
+ if(ldap_search_ext(ab_ldap->directory, ab_ldap->base_dn,
LDAP_SCOPE_SUBTREE,
ldap_filter, book_attrs, 0, NULL, NULL,
NULL, ABL_SIZE_LIMIT, &msgid) != LDAP_SUCCESS) {
- libbalsa_address_book_ldap_close_connection(ldap_ab);
+ libbalsa_address_book_ldap_close_connection(ab_ldap);
continue; /* try again */
}
/*
* Now loop over all the results, and spit out the output.
*/
- while((rc=ldap_result(ldap_ab->directory, msgid,
+ while((rc=ldap_result(ab_ldap->directory, msgid,
LDAP_MSG_ONE, NULL, &result))>0) {
- msg = ldap_first_entry(ldap_ab->directory, result);
+ msg = ldap_first_entry(ab_ldap->directory, result);
if (!msg || ldap_msgtype( msg ) == LDAP_RES_SEARCH_RESULT)
break;
address = libbalsa_address_book_ldap_get_address(ab, msg);
@@ -424,7 +413,7 @@ libbalsa_address_book_ldap_load(LibBalsaAddressBook * ab,
g_object_unref(address);
}
if(rc == -1) { /* try again */
- libbalsa_address_book_ldap_close_connection(ldap_ab);
+ libbalsa_address_book_ldap_close_connection(ab_ldap);
continue;
}
callback(ab, NULL, closure);
@@ -445,7 +434,7 @@ static LibBalsaAddress*
libbalsa_address_book_ldap_get_address(LibBalsaAddressBook * ab,
LDAPMessage * e)
{
- LibBalsaAddressBookLdap *ldap_ab;
+ LibBalsaAddressBookLdap *ab_ldap;
GList *email = NULL;
gchar *cn = NULL, *org = NULL, *uid = NULL;
gchar *first = NULL, *last = NULL;
@@ -455,14 +444,14 @@ libbalsa_address_book_ldap_get_address(LibBalsaAddressBook * ab,
BerElement *ber = NULL;
int i;
- ldap_ab = LIBBALSA_ADDRESS_BOOK_LDAP(ab);
+ ab_ldap = LIBBALSA_ADDRESS_BOOK_LDAP(ab);
- for (attr = ldap_first_attribute(ldap_ab->directory, e, &ber);
- attr != NULL; attr=ldap_next_attribute(ldap_ab->directory, e, ber)) {
+ for (attr = ldap_first_attribute(ab_ldap->directory, e, &ber);
+ attr != NULL; attr=ldap_next_attribute(ab_ldap->directory, e, ber)) {
/*
* For each attribute, get the attribute name and values.
*/
- if ((vals=ldap_get_values_len(ldap_ab->directory, e, attr)) != NULL) {
+ if ((vals=ldap_get_values_len(ab_ldap->directory, e, attr)) != NULL) {
for (i = 0; vals[i] != NULL; i++) {
if ((g_ascii_strcasecmp(attr, "sn") == 0) && (!last))
last = g_strndup(vals[i]->bv_val, vals[i]->bv_len);
@@ -589,17 +578,17 @@ libbalsa_address_book_ldap_add_address(LibBalsaAddressBook *ab,
char *org[] = {NULL, NULL};
char *sn[] = {NULL, NULL};
char *mail[] = {NULL, NULL};
- LibBalsaAddressBookLdap *ldap_ab = LIBBALSA_ADDRESS_BOOK_LDAP(ab);
+ LibBalsaAddressBookLdap *ab_ldap = LIBBALSA_ADDRESS_BOOK_LDAP(ab);
g_return_val_if_fail(address, LBABERR_CANNOT_WRITE);
g_return_val_if_fail(address->address_list, LBABERR_CANNOT_WRITE);
- if (ldap_ab->directory == NULL) {
- if(libbalsa_address_book_ldap_open_connection(ldap_ab) != LDAP_SUCCESS)
+ if (ab_ldap->directory == NULL) {
+ if(libbalsa_address_book_ldap_open_connection(ab_ldap) != LDAP_SUCCESS)
return LBABERR_CANNOT_CONNECT;
}
- if(ldap_ab->priv_book_dn == NULL) {
+ if(ab_ldap->priv_book_dn == NULL) {
libbalsa_address_book_set_status
(ab, _("Undefined location of user address book"));
return LBABERR_CANNOT_WRITE;
@@ -607,7 +596,7 @@ libbalsa_address_book_ldap_add_address(LibBalsaAddressBook *ab,
dn = g_strdup_printf("mail=%s,%s",
(char*)address->address_list->data,
- ldap_ab->priv_book_dn);
+ ab_ldap->priv_book_dn);
mods[0] = &modarr[0];
modarr[0].mod_op = LDAP_MOD_ADD;
modarr[0].mod_type = "objectClass";
@@ -639,7 +628,7 @@ libbalsa_address_book_ldap_add_address(LibBalsaAddressBook *ab,
cnt = 0;
do {
- int rc = ldap_add_ext_s(ldap_ab->directory, dn, mods, NULL, NULL);
+ int rc = ldap_add_ext_s(ab_ldap->directory, dn, mods, NULL, NULL);
switch(rc) {
case LDAP_SUCCESS: g_free(dn); return LBABERR_OK;
case LDAP_ALREADY_EXISTS:
@@ -647,8 +636,8 @@ libbalsa_address_book_ldap_add_address(LibBalsaAddressBook *ab,
libbalsa_address_book_set_status(ab, ldap_err2string(rc));
return LBABERR_DUPLICATE;
case LDAP_SERVER_DOWN:
- libbalsa_address_book_ldap_close_connection(ldap_ab);
- if( (rc=libbalsa_address_book_ldap_open_connection(ldap_ab))
+ libbalsa_address_book_ldap_close_connection(ab_ldap);
+ if( (rc=libbalsa_address_book_ldap_open_connection(ab_ldap))
!= LDAP_SUCCESS) {
g_free(dn);
return LBABERR_CANNOT_CONNECT;
@@ -668,30 +657,30 @@ static LibBalsaABErr
libbalsa_address_book_ldap_remove_address(LibBalsaAddressBook *ab,
LibBalsaAddress *address)
{
- LibBalsaAddressBookLdap *ldap_ab = LIBBALSA_ADDRESS_BOOK_LDAP(ab);
+ LibBalsaAddressBookLdap *ab_ldap = LIBBALSA_ADDRESS_BOOK_LDAP(ab);
gchar *dn;
int cnt, rc;
g_return_val_if_fail(address, LBABERR_CANNOT_WRITE);
g_return_val_if_fail(address->address_list, LBABERR_CANNOT_WRITE);
- if (ldap_ab->directory == NULL) {
- if( (rc=libbalsa_address_book_ldap_open_connection(ldap_ab))
+ if (ab_ldap->directory == NULL) {
+ if( (rc=libbalsa_address_book_ldap_open_connection(ab_ldap))
!= LDAP_SUCCESS)
return LBABERR_CANNOT_CONNECT;
}
dn = g_strdup_printf("mail=%s,%s",
(char*)address->address_list->data,
- ldap_ab->priv_book_dn);
+ ab_ldap->priv_book_dn);
cnt = 0;
do {
- rc = ldap_delete_ext_s(ldap_ab->directory, dn, NULL, NULL);
+ rc = ldap_delete_ext_s(ab_ldap->directory, dn, NULL, NULL);
switch(rc) {
case LDAP_SUCCESS: g_free(dn); return LBABERR_OK;
case LDAP_SERVER_DOWN:
- libbalsa_address_book_ldap_close_connection(ldap_ab);
- if( (rc=libbalsa_address_book_ldap_open_connection(ldap_ab))
+ libbalsa_address_book_ldap_close_connection(ab_ldap);
+ if( (rc=libbalsa_address_book_ldap_open_connection(ab_ldap))
!= LDAP_SUCCESS) {
g_free(dn);
return LBABERR_CANNOT_CONNECT;
@@ -725,7 +714,7 @@ libbalsa_address_book_ldap_modify_address(LibBalsaAddressBook *ab,
char *gn[] = {NULL, NULL};
char *org[] = {NULL, NULL};
char *sn[] = {NULL, NULL};
- LibBalsaAddressBookLdap *ldap_ab = LIBBALSA_ADDRESS_BOOK_LDAP(ab);
+ LibBalsaAddressBookLdap *ab_ldap = LIBBALSA_ADDRESS_BOOK_LDAP(ab);
g_return_val_if_fail(address, LBABERR_CANNOT_WRITE);
g_return_val_if_fail(address->address_list, LBABERR_CANNOT_WRITE);
@@ -741,15 +730,15 @@ libbalsa_address_book_ldap_modify_address(LibBalsaAddressBook *ab,
}
/* the email address has not changed, continue with changing other
* attributes. */
- if (ldap_ab->directory == NULL) {
- if( (rc=libbalsa_address_book_ldap_open_connection(ldap_ab))
+ if (ab_ldap->directory == NULL) {
+ if( (rc=libbalsa_address_book_ldap_open_connection(ab_ldap))
!= LDAP_SUCCESS)
return LBABERR_CANNOT_CONNECT;
}
dn = g_strdup_printf("mail=%s,%s",
(char*)address->address_list->data,
- ldap_ab->priv_book_dn);
+ ab_ldap->priv_book_dn);
cnt = 0;
if(!STREQ(address->full_name,newval->full_name)) {
@@ -797,12 +786,12 @@ libbalsa_address_book_ldap_modify_address(LibBalsaAddressBook *ab,
}
cnt = 0;
do {
- rc = ldap_modify_ext_s(ldap_ab->directory, dn, mods, NULL, NULL);
+ rc = ldap_modify_ext_s(ab_ldap->directory, dn, mods, NULL, NULL);
switch(rc) {
case LDAP_SUCCESS: return LBABERR_OK;
case LDAP_SERVER_DOWN:
- libbalsa_address_book_ldap_close_connection(ldap_ab);
- if( (rc=libbalsa_address_book_ldap_open_connection(ldap_ab))
+ libbalsa_address_book_ldap_close_connection(ab_ldap);
+ if( (rc=libbalsa_address_book_ldap_open_connection(ab_ldap))
!= LDAP_SUCCESS) {
g_free(dn);
return LBABERR_CANNOT_CONNECT;
@@ -822,52 +811,63 @@ static void
libbalsa_address_book_ldap_save_config(LibBalsaAddressBook * ab,
const gchar * prefix)
{
- LibBalsaAddressBookLdap *ldap;
+ LibBalsaAddressBookClass *parent_class =
+ LIBBALSA_ADDRESS_BOOK_CLASS(libbalsa_address_book_ldap_parent_class);
+ LibBalsaAddressBookLdap *ab_ldap;
g_return_if_fail(LIBBALSA_IS_ADDRESS_BOOK_LDAP(ab));
- ldap = LIBBALSA_ADDRESS_BOOK_LDAP(ab);
-
- libbalsa_conf_set_string("Host", ldap->host);
- if(ldap->base_dn) libbalsa_conf_set_string("BaseDN", ldap->base_dn);
- if(ldap->bind_dn) libbalsa_conf_private_set_string("BindDN", ldap->bind_dn, FALSE);
- if(ldap->passwd) libbalsa_conf_private_set_string("Passwd", ldap->passwd, FALSE);
- if(ldap->priv_book_dn)
- libbalsa_conf_set_string("BookDN", ldap->priv_book_dn);
- libbalsa_conf_set_bool("EnableTLS", ldap->enable_tls);
- if (LIBBALSA_ADDRESS_BOOK_CLASS(parent_class)->save_config)
- LIBBALSA_ADDRESS_BOOK_CLASS(parent_class)->save_config(ab, prefix);
+ ab_ldap = LIBBALSA_ADDRESS_BOOK_LDAP(ab);
+
+ libbalsa_conf_set_string("Host", ab_ldap->host);
+ if (ab_ldap->base_dn != NULL)
+ libbalsa_conf_set_string("BaseDN", ab_ldap->base_dn);
+ if (ab_ldap->bind_dn != NULL)
+ libbalsa_conf_private_set_string("BindDN", ab_ldap->bind_dn, FALSE);
+ if (ab_ldap->passwd != NULL)
+ libbalsa_conf_private_set_string("Passwd", ab_ldap->passwd, FALSE);
+ if (ab_ldap->priv_book_dn != NULL)
+ libbalsa_conf_set_string("BookDN", ab_ldap->priv_book_dn);
+ libbalsa_conf_set_bool("EnableTLS", ab_ldap->enable_tls);
+ if (parent_class->save_config != NULL)
+ parent_class->save_config(ab, prefix);
}
static void
libbalsa_address_book_ldap_load_config(LibBalsaAddressBook * ab,
const gchar * prefix)
{
- LibBalsaAddressBookLdap *ldap;
+ LibBalsaAddressBookClass *parent_class =
+ LIBBALSA_ADDRESS_BOOK_CLASS(libbalsa_address_book_ldap_parent_class);
+ LibBalsaAddressBookLdap *ab_ldap;
g_return_if_fail(LIBBALSA_IS_ADDRESS_BOOK_LDAP(ab));
- ldap = LIBBALSA_ADDRESS_BOOK_LDAP(ab);
+ ab_ldap = LIBBALSA_ADDRESS_BOOK_LDAP(ab);
- ldap->host = libbalsa_conf_get_string("Host");
- ldap->base_dn = libbalsa_conf_get_string("BaseDN");
- if(ldap->base_dn && *ldap->base_dn == 0) {
- g_free(ldap->base_dn); ldap->base_dn = NULL;
+ ab_ldap->host = libbalsa_conf_get_string("Host");
+ ab_ldap->base_dn = libbalsa_conf_get_string("BaseDN");
+ if (ab_ldap->base_dn != NULL && *ab_ldap->base_dn == '\0') {
+ g_free(ab_ldap->base_dn);
+ ab_ldap->base_dn = NULL;
}
- ldap->bind_dn = libbalsa_conf_private_get_string("BindDN", FALSE);
- if(ldap->bind_dn && *ldap->bind_dn == 0) {
- g_free(ldap->bind_dn); ldap->bind_dn = NULL;
+ ab_ldap->bind_dn = libbalsa_conf_private_get_string("BindDN", FALSE);
+ if (ab_ldap->bind_dn != NULL && *ab_ldap->bind_dn == '\0') {
+ g_free(ab_ldap->bind_dn);
+ ab_ldap->bind_dn = NULL;
}
- ldap->passwd = libbalsa_conf_private_get_string("Passwd", FALSE);
- if(ldap->passwd && *ldap->passwd == 0) {
- g_free(ldap->passwd); ldap->passwd = NULL;
+ ab_ldap->passwd = libbalsa_conf_private_get_string("Passwd", FALSE);
+ if (ab_ldap->passwd != NULL && *ab_ldap->passwd == '\0') {
+ g_free(ab_ldap->passwd);
+ ab_ldap->passwd = NULL;
}
- ldap->priv_book_dn = libbalsa_conf_get_string("BookDN");
- if(ldap->priv_book_dn && *ldap->priv_book_dn == 0) {
- g_free(ldap->priv_book_dn); ldap->priv_book_dn = NULL;
+ ab_ldap->priv_book_dn = libbalsa_conf_get_string("BookDN");
+ if (ab_ldap->priv_book_dn != NULL && *ab_ldap->priv_book_dn == '\0') {
+ g_free(ab_ldap->priv_book_dn);
+ ab_ldap->priv_book_dn = NULL;
}
- ldap->enable_tls = libbalsa_conf_get_bool("EnableTLS");
+ ab_ldap->enable_tls = libbalsa_conf_get_bool("EnableTLS");
if (LIBBALSA_ADDRESS_BOOK_CLASS(parent_class)->load_config)
LIBBALSA_ADDRESS_BOOK_CLASS(parent_class)->load_config(ab, prefix);
@@ -947,20 +947,20 @@ libbalsa_address_book_ldap_alias_complete(LibBalsaAddressBook * ab,
const gchar * prefix)
{
static struct timeval timeout = { 15, 0 }; /* 15 sec timeout */
- LibBalsaAddressBookLdap *ldap_ab;
+ LibBalsaAddressBookLdap *ab_ldap;
GList *res = NULL;
gchar* filter;
gchar* ldap;
int rc;
LDAPMessage * e, *result;
- ldap_ab = LIBBALSA_ADDRESS_BOOK_LDAP(ab);
+ ab_ldap = LIBBALSA_ADDRESS_BOOK_LDAP(ab);
if (!libbalsa_address_book_get_expand_aliases(ab) || strlen(prefix) < ABL_MIN_LEN)
return NULL;
- if (ldap_ab->directory == NULL) {
- if( (rc=libbalsa_address_book_ldap_open_connection(ldap_ab))
+ if (ab_ldap->directory == NULL) {
+ if( (rc=libbalsa_address_book_ldap_open_connection(ab_ldap))
!= LDAP_SUCCESS)
return NULL;
}
@@ -976,21 +976,21 @@ libbalsa_address_book_ldap_alias_complete(LibBalsaAddressBook * ab,
ldap, ldap, ldap);
g_free(ldap);
result = NULL;
- rc = ldap_search_ext_s(ldap_ab->directory, ldap_ab->base_dn,
+ rc = ldap_search_ext_s(ab_ldap->directory, ab_ldap->base_dn,
LDAP_SCOPE_SUBTREE, filter, complete_attrs, 0,
NULL, NULL, &timeout, ABL_SIZE_LIMIT_LOOKUP,
&result);
if(DEBUG_LDAP)
g_print("Sent LDAP request: %s (basedn=%s) res=0x%x\n",
- filter, ldap_ab->base_dn, rc);
+ filter, ab_ldap->base_dn, rc);
g_free(filter);
switch (rc) {
case LDAP_SUCCESS:
case LDAP_PARTIAL_RESULTS:
if (result)
- for(e = ldap_first_entry(ldap_ab->directory, result);
- e != NULL; e = ldap_next_entry(ldap_ab->directory, e)) {
- res = lbabl_get_internet_address(res, ldap_ab->directory, e);
+ for(e = ldap_first_entry(ab_ldap->directory, result);
+ e != NULL; e = ldap_next_entry(ab_ldap->directory, e)) {
+ res = lbabl_get_internet_address(res, ab_ldap->directory, e);
}
case LDAP_SIZELIMIT_EXCEEDED:
case LDAP_TIMELIMIT_EXCEEDED:
@@ -1000,7 +1000,7 @@ libbalsa_address_book_ldap_alias_complete(LibBalsaAddressBook * ab,
*/
break;
case LDAP_SERVER_DOWN:
- libbalsa_address_book_ldap_close_connection(ldap_ab);
+ libbalsa_address_book_ldap_close_connection(ab_ldap);
g_print("Server down. Next attempt will try to reconnect.\n");
break;
default:
@@ -1019,4 +1019,96 @@ libbalsa_address_book_ldap_alias_complete(LibBalsaAddressBook * ab,
return res;
}
+
+/*
+ * Getters
+ */
+
+const gchar *
+libbalsa_address_book_ldap_get_host(LibBalsaAddressBookLdap * ab_ldap)
+{
+ return ab_ldap->host;
+}
+
+const gchar *
+libbalsa_address_book_ldap_get_base_dn(LibBalsaAddressBookLdap * ab_ldap)
+{
+ return ab_ldap->base_dn;
+}
+
+const gchar *
+libbalsa_address_book_ldap_get_bind_dn(LibBalsaAddressBookLdap * ab_ldap)
+{
+ return ab_ldap->bind_dn;
+}
+
+const gchar *
+libbalsa_address_book_ldap_get_passwd(LibBalsaAddressBookLdap * ab_ldap)
+{
+ return ab_ldap->passwd;
+}
+
+const gchar *
+libbalsa_address_book_ldap_get_book_dn(LibBalsaAddressBookLdap * ab_ldap)
+{
+ return ab_ldap->priv_book_dn;
+}
+
+gboolean
+libbalsa_address_book_ldap_get_enable_tls(LibBalsaAddressBookLdap * ab_ldap)
+{
+ return ab_ldap->enable_tls;
+}
+
+/*
+ * Setters
+ */
+
+void
+libbalsa_address_book_ldap_set_host(LibBalsaAddressBookLdap * ab_ldap,
+ const gchar * host)
+{
+ g_free(ab_ldap->host);
+ ab_ldap->host = g_strdup(host);
+}
+
+void
+libbalsa_address_book_ldap_set_base_dn(LibBalsaAddressBookLdap * ab_ldap,
+ const gchar * base_dn)
+{
+ g_free(ab_ldap->base_dn);
+ ab_ldap->base_dn = g_strdup(base_dn);
+}
+
+void
+libbalsa_address_book_ldap_set_bind_dn(LibBalsaAddressBookLdap * ab_ldap,
+ const gchar * bind_dn)
+{
+ g_free(ab_ldap->bind_dn);
+ ab_ldap->bind_dn = g_strdup(bind_dn);
+}
+
+void
+libbalsa_address_book_ldap_set_passwd(LibBalsaAddressBookLdap * ab_ldap,
+ const gchar * passwd)
+{
+ g_free(ab_ldap->passwd);
+ ab_ldap->passwd = g_strdup(passwd);
+}
+
+void
+libbalsa_address_book_ldap_set_book_dn(LibBalsaAddressBookLdap * ab_ldap,
+ const gchar * book_dn)
+{
+ g_free(ab_ldap->priv_book_dn);
+ ab_ldap->priv_book_dn = g_strdup(book_dn);
+}
+
+void
+libbalsa_address_book_ldap_set_enable_tls(LibBalsaAddressBookLdap * ab_ldap,
+ gboolean enable_tls)
+{
+ ab_ldap->enable_tls = enable_tls;
+}
+
#endif /*LDAP_ENABLED */
diff --git a/libbalsa/address-book-ldap.h b/libbalsa/address-book-ldap.h
index 62a68f48e..14ec4bd22 100644
--- a/libbalsa/address-book-ldap.h
+++ b/libbalsa/address-book-ldap.h
@@ -30,33 +30,9 @@
#include "address-book.h"
-#define LIBBALSA_TYPE_ADDRESS_BOOK_LDAP (libbalsa_address_book_ldap_get_type())
-#define LIBBALSA_ADDRESS_BOOK_LDAP(obj) (G_TYPE_CHECK_INSTANCE_CAST(obj,
LIBBALSA_TYPE_ADDRESS_BOOK_LDAP, LibBalsaAddressBookLdap))
-#define LIBBALSA_ADDRESS_BOOK_LDAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST (klass,
LIBBALSA_TYPE_ADDRESS_BOOK_LDAP, LibBalsaAddressBookLdapClass))
-#define LIBBALSA_IS_ADDRESS_BOOK_LDAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE(obj,
LIBBALSA_TYPE_ADDRESS_BOOK_LDAP))
-#define LIBBALSA_IS_ADDRESS_BOOK_LDAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE (klass,
LIBBALSA_TYPE_ADDRESS_BOOK_LDAP))
-
-typedef struct _LibBalsaAddressBookLdap LibBalsaAddressBookLdap;
-typedef struct _LibBalsaAddressBookLdapClass LibBalsaAddressBookLdapClass;
-
-struct _LibBalsaAddressBookLdap {
- LibBalsaAddressBook parent;
-
- gchar *host;
- gchar *base_dn;
- gchar *bind_dn;
- gchar *priv_book_dn; /* location of user-writeable entries */
- gchar *passwd;
- gboolean enable_tls;
-
- LDAP *directory;
-};
-
-struct _LibBalsaAddressBookLdapClass {
- LibBalsaAddressBookClass parent_class;
-};
-
-GType libbalsa_address_book_ldap_get_type(void);
+#define LIBBALSA_TYPE_ADDRESS_BOOK_LDAP (libbalsa_address_book_ldap_get_type())
+G_DECLARE_FINAL_TYPE(LibBalsaAddressBookLdap, libbalsa_address_book_ldap,
+ LIBBALSA, ADDRESS_BOOK_LDAP, LibBalsaAddressBook)
LibBalsaAddressBook *libbalsa_address_book_ldap_new(const gchar *name,
const gchar *host,
@@ -65,7 +41,33 @@ LibBalsaAddressBook *libbalsa_address_book_ldap_new(const gchar *name,
const gchar *passwd,
const gchar *priv_book_dn,
gboolean enable_tls);
-void libbalsa_address_book_ldap_close_connection(LibBalsaAddressBookLdap *ab);
+void libbalsa_address_book_ldap_close_connection(LibBalsaAddressBookLdap *ab_ldap);
+/*
+ * Getters
+ */
+const gchar * libbalsa_address_book_ldap_get_host (LibBalsaAddressBookLdap * ab_ldap);
+const gchar * libbalsa_address_book_ldap_get_passwd (LibBalsaAddressBookLdap * ab_ldap);
+const gchar * libbalsa_address_book_ldap_get_base_dn(LibBalsaAddressBookLdap * ab_ldap);
+const gchar * libbalsa_address_book_ldap_get_bind_dn(LibBalsaAddressBookLdap * ab_ldap);
+const gchar * libbalsa_address_book_ldap_get_book_dn(LibBalsaAddressBookLdap * ab_ldap);
+gboolean libbalsa_address_book_ldap_get_enable_tls(LibBalsaAddressBookLdap *
+ ab_ldap);
+
+/*
+ * Setters
+ */
+void libbalsa_address_book_ldap_set_host (LibBalsaAddressBookLdap * ab_ldap,
+ const gchar * host);
+void libbalsa_address_book_ldap_set_passwd (LibBalsaAddressBookLdap * ab_ldap,
+ const gchar * passwd);
+void libbalsa_address_book_ldap_set_base_dn (LibBalsaAddressBookLdap * ab_ldap,
+ const gchar * base_dn);
+void libbalsa_address_book_ldap_set_bind_dn (LibBalsaAddressBookLdap * ab_ldap,
+ const gchar * bind_dn);
+void libbalsa_address_book_ldap_set_book_dn (LibBalsaAddressBookLdap * ab_ldap,
+ const gchar * book_dn);
+void libbalsa_address_book_ldap_set_enable_tls(LibBalsaAddressBookLdap * ab_ldap,
+ gboolean enable_tls);
#endif /* __LIBBALSA_ADDRESS_BOOK_LDAP_H__ */
diff --git a/src/address-book-config.c b/src/address-book-config.c
index 49ee8cbb9..6eb4f0818 100644
--- a/src/address-book-config.c
+++ b/src/address-book-config.c
@@ -50,7 +50,7 @@ struct _AddressBookConfig {
#ifdef ENABLE_LDAP
struct {
- GtkWidget *host_name;
+ GtkWidget *host;
GtkWidget *base_dn;
GtkWidget *bind_dn;
GtkWidget *book_dn;
@@ -501,34 +501,34 @@ create_ldap_dialog(AddressBookConfig * abc)
label);
label = libbalsa_create_grid_label(_("_Host Name"), grid, 1);
- abc->ab_specific.ldap.host_name =
+ abc->ab_specific.ldap.host =
libbalsa_create_grid_entry(grid, NULL, NULL, 1,
- ab ? ab->host : host, label);
+ ab ? libbalsa_address_book_ldap_get_host(ab) : host, label);
label = libbalsa_create_grid_label(_("Base Domain _Name"), grid, 2);
abc->ab_specific.ldap.base_dn =
libbalsa_create_grid_entry(grid, NULL, NULL, 2,
- ab ? ab->base_dn : base, label);
+ ab ? libbalsa_address_book_ldap_get_base_dn(ab) : base, label);
label = libbalsa_create_grid_label(_("_User Name (Bind DN)"), grid, 3);
abc->ab_specific.ldap.bind_dn =
libbalsa_create_grid_entry(grid, NULL, NULL, 3,
- ab ? ab->bind_dn : "", label);
+ ab ? libbalsa_address_book_ldap_get_bind_dn(ab) : "", label);
label = libbalsa_create_grid_label(_("_Password"), grid, 4);
abc->ab_specific.ldap.passwd =
libbalsa_create_grid_entry(grid, NULL, NULL, 4,
- ab ? ab->passwd : "", label);
+ ab ? libbalsa_address_book_ldap_get_passwd(ab) : "", label);
gtk_entry_set_visibility(GTK_ENTRY(abc->ab_specific.ldap.passwd), FALSE);
label = libbalsa_create_grid_label(_("_User Address Book DN"), grid, 5);
abc->ab_specific.ldap.book_dn =
libbalsa_create_grid_entry(grid, NULL, NULL, 5,
- ab ? ab->priv_book_dn : "", label);
+ ab ? libbalsa_address_book_ldap_get_book_dn(ab) : "", label);
abc->ab_specific.ldap.enable_tls =
libbalsa_create_grid_check(_("Enable _TLS"), grid, 6,
- ab ? ab->enable_tls : FALSE);
+ ab ? libbalsa_address_book_ldap_get_enable_tls(ab) : FALSE);
add_radio_buttons(grid, 7, abc);
@@ -724,8 +724,8 @@ create_book(AddressBookConfig * abc)
g_free(path);
#ifdef ENABLE_LDAP
} else if (abc->type == LIBBALSA_TYPE_ADDRESS_BOOK_LDAP) {
- const gchar *host_name =
- gtk_entry_get_text(GTK_ENTRY(abc->ab_specific.ldap.host_name));
+ const gchar *host =
+ gtk_entry_get_text(GTK_ENTRY(abc->ab_specific.ldap.host));
const gchar *base_dn =
gtk_entry_get_text(GTK_ENTRY(abc->ab_specific.ldap.base_dn));
const gchar *bind_dn =
@@ -738,7 +738,7 @@ create_book(AddressBookConfig * abc)
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON
(abc->ab_specific.ldap.enable_tls));
address_book =
- libbalsa_address_book_ldap_new(name, host_name, base_dn,
+ libbalsa_address_book_ldap_new(name, host, base_dn,
bind_dn, passwd, book_dn,
enable_tls);
#endif
@@ -815,8 +815,8 @@ modify_book(AddressBookConfig * abc)
#ifdef ENABLE_LDAP
} else if (abc->type == LIBBALSA_TYPE_ADDRESS_BOOK_LDAP) {
LibBalsaAddressBookLdap *ldap;
- const gchar *host_name =
- gtk_entry_get_text(GTK_ENTRY(abc->ab_specific.ldap.host_name));
+ const gchar *host =
+ gtk_entry_get_text(GTK_ENTRY(abc->ab_specific.ldap.host));
const gchar *base_dn =
gtk_entry_get_text(GTK_ENTRY(abc->ab_specific.ldap.base_dn));
const gchar *bind_dn =
@@ -831,13 +831,13 @@ modify_book(AddressBookConfig * abc)
ldap = LIBBALSA_ADDRESS_BOOK_LDAP(address_book);
- g_free(ldap->host); ldap->host = g_strdup(host_name);
- g_free(ldap->base_dn); ldap->base_dn = g_strdup(base_dn);
- g_free(ldap->bind_dn); ldap->bind_dn = g_strdup(bind_dn);
- g_free(ldap->passwd); ldap->passwd = g_strdup(passwd);
- g_free(ldap->priv_book_dn);
- ldap->priv_book_dn = g_strdup(book_dn && *book_dn ? book_dn : bind_dn);
- ldap->enable_tls = enable_tls;
+ libbalsa_address_book_ldap_set_host(ldap, host);
+ libbalsa_address_book_ldap_set_base_dn(ldap, base_dn);
+ libbalsa_address_book_ldap_set_bind_dn(ldap, bind_dn);
+ libbalsa_address_book_ldap_set_passwd(ldap, passwd);
+ libbalsa_address_book_ldap_set_book_dn(ldap,
+ book_dn && *book_dn ? book_dn : bind_dn);
+ libbalsa_address_book_ldap_set_enable_tls(ldap, enable_tls);
libbalsa_address_book_ldap_close_connection(ldap);
#endif
#if HAVE_SQLITE
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]