]> git.sur5r.net Git - openldap/blobdiff - libraries/liblutil/fetch.c
add ifdefs for SASL_GSS_CREDS to accomodate ancient Cyrus SASL
[openldap] / libraries / liblutil / fetch.c
index 6535dd20b6ec6b4cb358ce8097779d5dcce4c04c..a56806e0c01f79e2140ee2194760bdec8e0a4369 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1999-2007 The OpenLDAP Foundation.
+ * Copyright 1999-2010 The OpenLDAP Foundation.
  * Portions Copyright 1999-2003 Kurt D. Zeilenga.
  * All rights reserved.
  *
@@ -43,10 +43,7 @@ ldif_open_url(
        LDAP_CONST char *urlstr )
 {
        FILE *url;
-#ifdef HAVE_FETCH
-       url = fetchGetURL( (char*) urlstr, "" );
 
-#else
        if( strncasecmp( "file:", urlstr, sizeof("file:")-1 ) == 0 ) {
                char *p;
                urlstr += sizeof("file:")-1;
@@ -60,15 +57,26 @@ ldif_open_url(
                }
 
                p = ber_strdup( urlstr );
+
+               /* But we should convert to LDAP_DIRSEP before use */
+               if ( LDAP_DIRSEP[0] != '/' ) {
+                       char *s = p;
+                       while (( s = strchr( s, '/' )))
+                               *s++ = LDAP_DIRSEP[0];
+               }
+
                ldap_pvt_hex_unescape( p );
 
                url = fopen( p, "rb" );
 
                ber_memfree( p );
        } else {
-               return NULL;
-       }
+#ifdef HAVE_FETCH
+               url = fetchGetURL( (char*) urlstr, "" );
+#else
+               url = NULL;
 #endif
+       }
        return url;
 }