mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 04:57:45 +00:00
UserspaceEmulator: Handle SO_ERROR in getsockopt
This makes GUI applications work again
This commit is contained in:
parent
5017cc2bd3
commit
93ce8fc985
1 changed files with 11 additions and 0 deletions
|
@ -709,7 +709,18 @@ int Emulator::virt$getsockopt(FlatPtr params_addr)
|
||||||
mmu().copy_to_vm((FlatPtr)params.value, &creds, sizeof(creds));
|
mmu().copy_to_vm((FlatPtr)params.value, &creds, sizeof(creds));
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
if (params.option == SO_ERROR) {
|
||||||
|
int so_error;
|
||||||
|
socklen_t so_error_len = sizeof(so_error);
|
||||||
|
int rc = getsockopt(params.sockfd, params.level, SO_ERROR, &so_error, &so_error_len);
|
||||||
|
if (rc < 0)
|
||||||
|
return -errno;
|
||||||
|
// FIXME: Check params.value_size
|
||||||
|
mmu().copy_to_vm((FlatPtr)params.value, &so_error, sizeof(so_error));
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
|
dbgln("Not implemented socket param: {}", params.option);
|
||||||
TODO();
|
TODO();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue