From: Colin Leroy Date: Fri, 9 Nov 2007 16:59:46 +0000 (+0000) Subject: 2007-11-09 [colin] 3.0.2cvs129 X-Git-Tag: rel_3_1_0~18 X-Git-Url: http://git.claws-mail.org/?p=claws.git;a=commitdiff_plain;h=774450f92c07a34c73cb150e2f940f133589f98f 2007-11-09 [colin] 3.0.2cvs129 * src/addressbook.c * src/ldapupdate.c fix bug 1375, 'Impossible to modify e-mail in LDAP addressbook twice'; Try two. update externalID, don't make display lag, and fix the cases where dn is not mail. --- diff --git a/ChangeLog b/ChangeLog index bdb3a6a05..af7efdde7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2007-11-09 [colin] 3.0.2cvs129 + + * src/addressbook.c + * src/ldapupdate.c + fix bug 1375, 'Impossible to modify e-mail + in LDAP addressbook twice'; Try two. update + externalID, don't make display lag, and + fix the cases where dn is not mail. + 2007-11-08 [paul] 3.0.2cvs128 * src/account.c diff --git a/PATCHSETS b/PATCHSETS index 49ad3d02a..d7c8d79b0 100644 --- a/PATCHSETS +++ b/PATCHSETS @@ -3041,3 +3041,4 @@ ( cvs diff -u -r 1.43.2.93 -r 1.43.2.94 src/toolbar.c; ) > 3.0.2cvs126.patchset ( cvs diff -u -r 1.96.2.191 -r 1.96.2.192 src/textview.c; ) > 3.0.2cvs127.patchset ( cvs diff -u -r 1.61.2.75 -r 1.61.2.76 src/account.c; cvs diff -u -r 1.382.2.419 -r 1.382.2.420 src/compose.c; cvs diff -u -r 1.94.2.162 -r 1.94.2.163 src/messageview.c; cvs diff -u -r 1.105.2.115 -r 1.105.2.116 src/prefs_account.c; cvs diff -u -r 1.49.2.34 -r 1.49.2.35 src/prefs_account.h; ) > 3.0.2cvs128.patchset +( cvs diff -u -r 1.60.2.104 -r 1.60.2.105 src/addressbook.c; cvs diff -u -r 1.1.2.17 -r 1.1.2.18 src/ldapupdate.c; ) > 3.0.2cvs129.patchset diff --git a/configure.ac b/configure.ac index b1ebd3551..e86fb11f7 100644 --- a/configure.ac +++ b/configure.ac @@ -11,7 +11,7 @@ MINOR_VERSION=0 MICRO_VERSION=2 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=128 +EXTRA_VERSION=129 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/addressbook.c b/src/addressbook.c index 07275e1d1..f308bcc38 100644 --- a/src/addressbook.c +++ b/src/addressbook.c @@ -3199,7 +3199,10 @@ static void addressbook_move_nodes_up( GtkCTree *ctree, GtkCTreeNode *node ) { static void addressbook_edit_address_post_cb( ItemPerson *person ) { if( person ) { - +#ifdef USE_LDAP + if (strcmp2(person->nickName, ADDRITEM_NAME(person))) + addritem_person_set_nick_name( person, ADDRITEM_NAME(person)); +#endif addressbook_folder_refresh_one_person( GTK_CTREE(addrbook.clist), person ); invalidate_address_completion(); } diff --git a/src/ldapupdate.c b/src/ldapupdate.c index 5769942a5..73f8082f4 100644 --- a/src/ldapupdate.c +++ b/src/ldapupdate.c @@ -195,6 +195,7 @@ gboolean ldapsvr_retrieve_item_person(ItemPerson *person, GHashTable *array) { g_hash_table_insert(array, "sn", person->lastName); g_hash_table_insert(array, "nickName", person->nickName); g_hash_table_insert(array, "dn", person->externalID); + g_hash_table_insert(array, "person", person); node = person->listEMail; attr = NULL; while (node) { @@ -423,7 +424,7 @@ void rdn_free(Rdn *rdn) { */ void update_rdn(Rdn *rdn, gchar *head, gchar *tail) { rdn->value = g_strdup(head); - rdn->new_dn = g_strdup_printf("mail=%s%s", head, tail); + rdn->new_dn = g_strdup_printf("%s=%s%s", rdn->attribute, head, tail); } /** @@ -1150,6 +1151,7 @@ void ldapsvr_update_contact(LdapServer *server, GHashTable *contact) { return; } dn = g_hash_table_lookup(contact, "dn"); + if (dn == NULL) { clean_up(ld, server, contact); return; @@ -1179,9 +1181,14 @@ void ldapsvr_update_contact(LdapServer *server, GHashTable *contact) { } } else { + ItemPerson *person = g_hash_table_lookup(contact, "person"); g_free(newRdn); dn = g_strdup(NoRemove->new_dn); g_hash_table_replace(contact, "dn", dn); + if (person) { + g_free(person->externalID); + person->externalID = dn; + } } } else {