mirror of https://github.com/neutrinolabs/xrdp
Merge pull request #3082 from matt335672/chansrv_fuse_fixes
chansrv FUSE fixes
This commit is contained in:
commit
640411dd39
|
@ -540,10 +540,25 @@ xfuse_init(void)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_snprintf(g_fuse_clipboard_path, 255, "%s/.clipboard", g_fuse_root_path);
|
g_snprintf(g_fuse_clipboard_path, sizeof(g_fuse_clipboard_path),
|
||||||
|
"%s/.clipboard", g_fuse_root_path);
|
||||||
|
|
||||||
|
/* if FUSE mount point does not exist, create it */
|
||||||
|
if (!g_directory_exist(g_fuse_root_path))
|
||||||
|
{
|
||||||
|
(void)g_create_path(g_fuse_root_path);
|
||||||
|
if (!g_create_dir(g_fuse_root_path))
|
||||||
|
{
|
||||||
|
LOG(LOG_LEVEL_ERROR, "mkdir %s failed (%s)",
|
||||||
|
g_fuse_root_path, g_get_strerror());
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Get the characteristics of the parent directory of the FUSE mount
|
/* Get the characteristics of the parent directory of the FUSE mount
|
||||||
* point. Used by xfuse_path_in_xfuse_fs() */
|
* point. Used by xfuse_path_in_xfuse_fs() */
|
||||||
|
g_fuse_root_parent_dev = -1;
|
||||||
|
g_fuse_root_parent_ino = -1;
|
||||||
p = (char *)g_strrchr(g_fuse_root_path, '/');
|
p = (char *)g_strrchr(g_fuse_root_path, '/');
|
||||||
if (p != NULL)
|
if (p != NULL)
|
||||||
{
|
{
|
||||||
|
@ -554,11 +569,6 @@ xfuse_init(void)
|
||||||
g_fuse_root_parent_ino = g_file_get_inode_num(g_fuse_root_path);
|
g_fuse_root_parent_ino = g_file_get_inode_num(g_fuse_root_path);
|
||||||
*p = '/';
|
*p = '/';
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
g_fuse_root_parent_dev = -1;
|
|
||||||
g_fuse_root_parent_ino = -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (g_fuse_root_parent_dev == -1 || g_fuse_root_parent_ino == -1)
|
if (g_fuse_root_parent_dev == -1 || g_fuse_root_parent_ino == -1)
|
||||||
{
|
{
|
||||||
|
@ -568,18 +578,6 @@ xfuse_init(void)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if FUSE mount point does not exist, create it */
|
|
||||||
if (!g_directory_exist(g_fuse_root_path))
|
|
||||||
{
|
|
||||||
(void)g_create_path(g_fuse_root_path);
|
|
||||||
if (!g_create_dir(g_fuse_root_path))
|
|
||||||
{
|
|
||||||
LOG(LOG_LEVEL_ERROR, "mkdir %s failed. If %s is already mounted, you must "
|
|
||||||
"first unmount it", g_fuse_root_path, g_fuse_root_path);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* setup xrdp file system */
|
/* setup xrdp file system */
|
||||||
if (xfuse_init_xrdp_fs())
|
if (xfuse_init_xrdp_fs())
|
||||||
{
|
{
|
||||||
|
@ -906,14 +904,16 @@ static int xfuse_init_lib(struct fuse_args *args)
|
||||||
{
|
{
|
||||||
if (fuse_parse_cmdline(args, &g_mount_point, 0, 0) < 0)
|
if (fuse_parse_cmdline(args, &g_mount_point, 0, 0) < 0)
|
||||||
{
|
{
|
||||||
LOG_DEVEL(LOG_LEVEL_ERROR, "fuse_parse_cmdline() failed");
|
LOG(LOG_LEVEL_ERROR, "fuse_parse_cmdline() failed");
|
||||||
fuse_opt_free_args(args);
|
fuse_opt_free_args(args);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((g_ch = fuse_mount(g_mount_point, args)) == 0)
|
if ((g_ch = fuse_mount(g_mount_point, args)) == 0)
|
||||||
{
|
{
|
||||||
LOG_DEVEL(LOG_LEVEL_ERROR, "fuse_mount() failed");
|
LOG(LOG_LEVEL_ERROR, "FUSE mount on %s failed."
|
||||||
|
" If %s is already mounted, you must first unmount it",
|
||||||
|
g_mount_point, g_mount_point);
|
||||||
fuse_opt_free_args(args);
|
fuse_opt_free_args(args);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -921,7 +921,7 @@ static int xfuse_init_lib(struct fuse_args *args)
|
||||||
g_se = fuse_lowlevel_new(args, &g_xfuse_ops, sizeof(g_xfuse_ops), 0);
|
g_se = fuse_lowlevel_new(args, &g_xfuse_ops, sizeof(g_xfuse_ops), 0);
|
||||||
if (g_se == 0)
|
if (g_se == 0)
|
||||||
{
|
{
|
||||||
LOG_DEVEL(LOG_LEVEL_ERROR, "fuse_lowlevel_new() failed");
|
LOG(LOG_LEVEL_ERROR, "fuse_lowlevel_new() failed");
|
||||||
fuse_unmount(g_mount_point, g_ch);
|
fuse_unmount(g_mount_point, g_ch);
|
||||||
g_ch = 0;
|
g_ch = 0;
|
||||||
fuse_opt_free_args(args);
|
fuse_opt_free_args(args);
|
||||||
|
|
Loading…
Reference in New Issue