return status;
}
-/*
- * Success: return 0
- * Failure: set errno, return -1
- */
-
-static int mh_symlink(vfs_handle_struct *handle,
- const char *link_contents,
- const struct smb_filename *new_smb_fname)
-{
- int status = -1;
- char *client_link_contents = NULL;
- struct smb_filename *newclientFname = NULL;
-
- DEBUG(MH_INFO_DEBUG, ("Entering mh_symlink\n"));
- if (!is_in_media_files(link_contents) &&
- !is_in_media_files(new_smb_fname->base_name)) {
- status = SMB_VFS_NEXT_SYMLINK(handle,
- link_contents,
- new_smb_fname);
- goto out;
- }
-
- if ((status = alloc_get_client_path(handle, talloc_tos(),
- link_contents,
- &client_link_contents))) {
- goto err;
- }
- if ((status = alloc_get_client_smb_fname(handle, talloc_tos(),
- new_smb_fname,
- &newclientFname))) {
- goto err;
- }
-
- status = SMB_VFS_NEXT_SYMLINK(handle,
- client_link_contents,
- newclientFname);
-err:
- TALLOC_FREE(client_link_contents);
- TALLOC_FREE(newclientFname);
-out:
- return status;
-}
-
/*
* Success: return 0
* Failure: set errno, return -1
.lchown_fn = mh_lchown,
.chdir_fn = mh_chdir,
.ntimes_fn = mh_ntimes,
- .symlink_fn = mh_symlink,
.symlinkat_fn = mh_symlinkat,
.readlinkat_fn = mh_readlinkat,
.linkat_fn = mh_linkat,