Commit bbad0d9d authored by Rom Walton's avatar Rom Walton
Browse files

client: VirtualBox now installs VboxManage to /usr/local/bin. Make detection...

client: VirtualBox now installs VboxManage to /usr/local/bin.  Make detection of VirtualBox work again.
parent fcb359d2
......@@ -1224,33 +1224,47 @@ bool isDualGPUMacBook() {
// see if Virtualbox is installed
//
static const struct dir_vbox_locations {
const char *dir;
} vbox_locations[] = {
{ "/usr/bin/VboxManage" },
{ "/usr/local/bin/VboxManage" },
// add other ifdefs here as necessary.
{ NULL },
};
int HOST_INFO::get_virtualbox_version() {
char path[MAXPATHLEN];
char cmd [MAXPATHLEN+35];
char buf[256];
int i = 0;
FILE* fd;
safe_strcpy(path, "/usr/bin/VBoxManage");
if (boinc_file_exists(path)) {
if (access(path, X_OK)) {
return 0;
}
safe_strcpy(cmd, path);
safe_strcat(cmd, " --version");
fd = popen(cmd, "r");
if (fd) {
if (fgets(buf, sizeof(buf), fd)) {
strip_whitespace(buf);
int n, a,b,c;
n = sscanf(buf, "%d.%d.%d", &a, &b, &c);
if (n == 3) {
strcpy(virtualbox_version, buf);
}
}
pclose(fd);
}
}
do {
safe_strcpy(path, vbox_locations[i].dir);
if (boinc_file_exists(path)) {
if (access(path, X_OK)) {
return 0;
}
safe_strcpy(cmd, path);
safe_strcat(cmd, " --version");
fd = popen(cmd, "r");
if (fd) {
if (fgets(buf, sizeof(buf), fd)) {
strip_whitespace(buf);
int n, a,b,c;
n = sscanf(buf, "%d.%d.%d", &a, &b, &c);
if (n == 3) {
strcpy(virtualbox_version, buf);
}
}
pclose(fd);
}
}
++i;
} while (vbox_locations[i].dir != NULL);
return 0;
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment