minor vmnet helper update.

This commit is contained in:
Kelvin Sherlock 2024-02-03 13:40:25 -05:00
parent c536b8edb5
commit 5efa2b2cbf
1 changed files with 15 additions and 11 deletions

View File

@ -223,6 +223,19 @@ static int drop_privileges(void) {
return 0; return 0;
} }
void vmnet_start_interface_failed(void) {
warnx("vmnet_start_interface failed");
if (geteuid() != 0) {
fputs(
"\n\n"
"\tvmnet_helper must be run as root.\n"
"\tGo to Ample -> Preferences and Fix VMNet Permissions.\n\n"
, stderr);
}
exit(1);
}
void vm_startup(void) { void vm_startup(void) {
xpc_object_t dict; xpc_object_t dict;
@ -265,7 +278,7 @@ void vm_startup(void) {
dispatch_semaphore_signal(sem); dispatch_semaphore_signal(sem);
}); });
if (!interface) { if (!interface) {
errx(1, "vmnet_start_interface failed"); vmnet_start_interface_failed();
} }
dispatch_semaphore_wait(sem, DISPATCH_TIME_FOREVER); dispatch_semaphore_wait(sem, DISPATCH_TIME_FOREVER);
@ -282,18 +295,9 @@ void vm_startup(void) {
dispatch_semaphore_wait(sem, DISPATCH_TIME_FOREVER); dispatch_semaphore_wait(sem, DISPATCH_TIME_FOREVER);
interface = NULL; interface = NULL;
} }
warnx("vmnet_start_interface failed"); vmnet_start_interface_failed();
if (geteuid() != 0) {
fputs(
"\n\n"
"\tvmnet_helper must be run as root.\n"
"\tGo to Ample -> Preferences and Fix VMNet Permissions.\n\n"
,stderr);
}
exit(1);
} }
dispatch_release(sem); dispatch_release(sem);
xpc_release(dict); xpc_release(dict);
drop_privileges(); drop_privileges();