parent
1c99633848
commit
d905d2f5fe
1 changed files with 16 additions and 8 deletions
|
|
@ -675,7 +675,7 @@ fusefmt(Fmt *fmt)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case FUSE_SETXATTR: {
|
case FUSE_SETXATTR: {
|
||||||
fmtprint(fmt, "(Serxattr)");
|
fmtprint(fmt, "(Setxattr)");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case FUSE_GETXATTR: {
|
case FUSE_GETXATTR: {
|
||||||
|
|
@ -798,11 +798,13 @@ mountfuse(char *mtpt)
|
||||||
int i, pid, fd, r;
|
int i, pid, fd, r;
|
||||||
char buf[20];
|
char buf[20];
|
||||||
struct vfsconf vfs;
|
struct vfsconf vfs;
|
||||||
char *f;
|
char *f, *v;
|
||||||
|
|
||||||
if(getvfsbyname("fusefs", &vfs) < 0){
|
if(getvfsbyname(v="osxfusefs", &vfs) < 0 && getvfsbyname(v="fusefs", &vfs) < 0){
|
||||||
if(access(f="/System/Library/Extensions/fusefs.kext"
|
if(access((v="osxfusefs", f="/Library/Filesystems/osxfusefs.fs"
|
||||||
"/Contents/Resources/load_fusefs", 0) < 0 &&
|
"/Support/load_osxfusefs"), 0) < 0 &&
|
||||||
|
access((v="fusefs", f="/System/Library/Extensions/fusefs.kext"
|
||||||
|
"/Contents/Resources/load_fusefs"), 0) < 0 &&
|
||||||
access(f="/Library/Extensions/fusefs.kext"
|
access(f="/Library/Extensions/fusefs.kext"
|
||||||
"/Contents/Resources/load_fusefs", 0) < 0 &&
|
"/Contents/Resources/load_fusefs", 0) < 0 &&
|
||||||
access(f="/Library/Filesystems"
|
access(f="/Library/Filesystems"
|
||||||
|
|
@ -820,15 +822,15 @@ mountfuse(char *mtpt)
|
||||||
werrstr("load_fusefs failed: exit %d", r);
|
werrstr("load_fusefs failed: exit %d", r);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if(getvfsbyname("fusefs", &vfs) < 0){
|
if(getvfsbyname(v, &vfs) < 0){
|
||||||
werrstr("getvfsbyname fusefs: %r");
|
werrstr("getvfsbyname %s: %r", v);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Look for available FUSE device. */
|
/* Look for available FUSE device. */
|
||||||
for(i=0;; i++){
|
for(i=0;; i++){
|
||||||
snprint(buf, sizeof buf, "/dev/fuse%d", i);
|
snprint(buf, sizeof buf, "/dev/%.*s%d", strlen(v)-2, v, i);
|
||||||
if(access(buf, 0) < 0){
|
if(access(buf, 0) < 0){
|
||||||
werrstr("no available fuse devices");
|
werrstr("no available fuse devices");
|
||||||
return -1;
|
return -1;
|
||||||
|
|
@ -848,6 +850,12 @@ mountfuse(char *mtpt)
|
||||||
* mount_fusefs binary in different places.
|
* mount_fusefs binary in different places.
|
||||||
* Try all.
|
* Try all.
|
||||||
*/
|
*/
|
||||||
|
/* Lion OSXFUSE location */
|
||||||
|
putenv("MOUNT_FUSEFS_DAEMON_PATH",
|
||||||
|
"/Library/Filesystems/osxfusefs.fs/Support/mount_osxfusefs");
|
||||||
|
execl("/Library/Filesystems/osxfusefs.fs/Support/mount_osxfusefs",
|
||||||
|
"mount_osxfusefs", buf, mtpt, nil);
|
||||||
|
|
||||||
/* Leopard location */
|
/* Leopard location */
|
||||||
putenv("MOUNT_FUSEFS_DAEMON_PATH",
|
putenv("MOUNT_FUSEFS_DAEMON_PATH",
|
||||||
"/Library/Filesystems/fusefs.fs/Support/mount_fusefs");
|
"/Library/Filesystems/fusefs.fs/Support/mount_fusefs");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue