gconf r2550 - in trunk: . backends
- From: jmouette svn gnome org
- To: svn-commits-list gnome org
- Subject: gconf r2550 - in trunk: . backends
- Date: Tue, 19 Feb 2008 18:42:42 +0000 (GMT)
Author: jmouette
Date: Tue Feb 19 18:42:42 2008
New Revision: 2550
URL: http://svn.gnome.org/viewvc/gconf?rev=2550&view=rev
Log:
2008-02-19  Josselin Mouette  <joss malsain org>
        reviewed by: Mark McLoughlin.
        * backends/evoldap-backend.c: (get_variable),
        (get_ldap_connection), (lookup_values_from_ldap): replace
        functions that have been deprecated in OpenLDAP 2.4 by
        up-to-date ones. Closes bug#516877.
Modified:
   trunk/ChangeLog
   trunk/backends/evoldap-backend.c
Modified: trunk/backends/evoldap-backend.c
==============================================================================
--- trunk/backends/evoldap-backend.c	(original)
+++ trunk/backends/evoldap-backend.c	Tue Feb 19 18:42:42 2008
@@ -258,14 +258,14 @@
   attr = ldap_first_attribute (connection, entry, &berptr);
   while (attr != NULL && retval == NULL)
     {
-      char **values;
+      struct berval **values;
 
       if (strcmp (attr, varname) == 0)
 	{
-	  values = ldap_get_values (connection, entry, attr);
-	  if (values != NULL)
-	    retval = g_strdup (values[0]);
-	  ldap_value_free (values);
+	  values = ldap_get_values_len (connection, entry, attr);
+	  if (values != NULL && values[0] != NULL)
+	    retval = g_strdup (values[0]->bv_val);
+	  ldap_value_free_len (values);
 	}
 
       attr = ldap_next_attribute (connection, entry, berptr);
@@ -560,6 +560,7 @@
 		     GError    **err)
 {
   LDAP *connection;
+  char *url;
 
   g_assert (esource->conf_file_parsed);
 
@@ -576,13 +577,15 @@
 	     _("Contacting LDAP server: host '%s', port '%d', base DN '%s'"),
 	     esource->ldap_host, esource->ldap_port, esource->base_dn);
 
-  if ((connection = ldap_init (esource->ldap_host, esource->ldap_port)) == NULL)
+  url = g_strdup_printf ("ldap://%s:%i", esource->ldap_host, esource->ldap_port);
+  if (ldap_initialize (&connection, url) != LDAP_SUCCESS)
     {
       gconf_log (GCL_ERR,
 		 _("Failed to contact LDAP server: %s"),
 		 g_strerror (errno));
       return NULL;
     }
+  g_free (url);
 
   esource->connection = connection;
 
@@ -670,12 +673,13 @@
 	     esource->filter_str);
 
   entries = NULL;
-  ret = ldap_search_s (connection,
-		       esource->base_dn,
-		       LDAP_SCOPE_ONELEVEL,
-		       esource->filter_str,
-		       NULL, 0,
-		       &entries);
+  ret = ldap_search_ext_s (connection,
+			   esource->base_dn,
+			   LDAP_SCOPE_ONELEVEL,
+			   esource->filter_str,
+			   NULL, 0,
+			   NULL, NULL, NULL, 0,
+			   &entries);
   if (ret != LDAP_SUCCESS)
     {
       gconf_log (GCL_ERR,
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]