Disable VFS routines if no libdl available.
authorTim Potter <tpot@samba.org>
Mon, 5 Apr 1999 05:18:07 +0000 (05:18 +0000)
committerTim Potter <tpot@samba.org>
Mon, 5 Apr 1999 05:18:07 +0000 (05:18 +0000)
(This used to be commit cbfd8a8990b4d06d0c866274e7d28e4a5e384686)

source3/smbd/service.c
source3/smbd/vfs.c

index 8202294293acdaed1a99cbbda514834c403ab0c4..5c7929d1b6e25fed82c9255b599c8590d506001a 100644 (file)
@@ -350,11 +350,18 @@ connection_struct *make_connection(char *service,char *user,char *password, int
 
        if (*lp_vfsobj(SNUM(conn))) {
 
 
        if (*lp_vfsobj(SNUM(conn))) {
 
+#ifdef HAVE_LIBDL
+
            /* Loadable object file */
 
            if (vfs_init_custom(conn) < 0) {
                return NULL;
            }
            /* Loadable object file */
 
            if (vfs_init_custom(conn) < 0) {
                return NULL;
            }
+#else
+           DEBUG(0, ("No libdl present - cannot use VFS objects\n"));
+           conn_free(conn);
+           return NULL;
+#endif
 
        } else {
 
 
        } else {
 
index 937bc1606e73b1460f45c3d18135d6b3419ea772..59e7bb493528d56510104e3282a19f1233c0c1ea 100644 (file)
@@ -20,7 +20,9 @@
 */
 
 #include "includes.h"
 */
 
 #include "includes.h"
+#ifdef HAVE_LIBDL
 #include <dlfcn.h>
 #include <dlfcn.h>
+#endif
 
 extern int DEBUGLEVEL;
 
 
 extern int DEBUGLEVEL;
 
@@ -115,6 +117,7 @@ struct vfs_ops default_vfs_ops = {
 /****************************************************************************
   call vfs_init function of loadable module
 ****************************************************************************/
 /****************************************************************************
   call vfs_init function of loadable module
 ****************************************************************************/
+#ifdef HAVE_LIBDL
 BOOL do_vfs_init(char *vfs_object)
 {
     void *handle, (*fptr)(void);
 BOOL do_vfs_init(char *vfs_object)
 {
     void *handle, (*fptr)(void);
@@ -139,6 +142,7 @@ BOOL do_vfs_init(char *vfs_object)
 
     return True;
 }
 
     return True;
 }
+#endif
 
 /****************************************************************************
   initialise default vfs hooks
 
 /****************************************************************************
   initialise default vfs hooks
@@ -154,6 +158,7 @@ int vfs_init_default(connection_struct *conn)
 /****************************************************************************
   initialise custom vfs hooks
 ****************************************************************************/
 /****************************************************************************
   initialise custom vfs hooks
 ****************************************************************************/
+#ifdef HAVE_LIBDL
 int vfs_init_custom(connection_struct *conn)
 {
     void *handle, *fptr;
 int vfs_init_custom(connection_struct *conn)
 {
     void *handle, *fptr;
@@ -189,12 +194,11 @@ int vfs_init_custom(connection_struct *conn)
     bcopy(&dl_ops, &conn->vfs_ops, sizeof(dl_ops));
     dlclose(handle);
 
     bcopy(&dl_ops, &conn->vfs_ops, sizeof(dl_ops));
     dlclose(handle);
 
-#if 0
     do_vfs_init(lp_vfsobj(SNUM(conn)));
     do_vfs_init(lp_vfsobj(SNUM(conn)));
-#endif
 
     return 0;
 }
 
     return 0;
 }
+#endif
 
 /*******************************************************************
   check if a vfs file exists
 
 /*******************************************************************
   check if a vfs file exists
@@ -233,7 +237,6 @@ ssize_t vfs_read_data(files_struct *fsp,char *buffer,size_t N)
     }
 #else /* WITH_SSL */
     ret = fsp->conn->vfs_ops.read(fd,buffer + total,N - total);
     }
 #else /* WITH_SSL */
     ret = fsp->conn->vfs_ops.read(fd,buffer + total,N - total);
-    DEBUG(0, ("VFS_READ -> read %d/%d bytes\n", ret, N));
 #endif /* WITH_SSL */
 
     if (ret == 0)
 #endif /* WITH_SSL */
 
     if (ret == 0)