mirror of
https://github.com/genodelabs/genode.git
synced 2025-06-01 23:20:55 +00:00
parent
a03a37b1d9
commit
7996fc45f3
@ -458,6 +458,7 @@ static int read_sockaddr_in(Socket_fs::Sockaddr_functor &func,
|
|||||||
int const n = read(func.fd(), addr_string.base(), addr_string.capacity() - 1);
|
int const n = read(func.fd(), addr_string.base(), addr_string.capacity() - 1);
|
||||||
|
|
||||||
if (n == -1) return Errno(errno);
|
if (n == -1) return Errno(errno);
|
||||||
|
/* 0 return value means "no packet resp. not connected" */
|
||||||
if (!n)
|
if (!n)
|
||||||
switch (func.context.proto()) {
|
switch (func.context.proto()) {
|
||||||
case Socket_fs::Context::Proto::UDP: return Errno(EAGAIN);
|
case Socket_fs::Context::Proto::UDP: return Errno(EAGAIN);
|
||||||
|
@ -988,9 +988,9 @@ class Lwip::Udp_socket_dir final :
|
|||||||
char const *src, file_size count,
|
char const *src, file_size count,
|
||||||
file_size &out_count) override
|
file_size &out_count) override
|
||||||
{
|
{
|
||||||
Genode::Mutex::Guard g { Lwip::mutex() };
|
Genode::Mutex::Guard guard { Lwip::mutex() };
|
||||||
|
|
||||||
switch(handle.kind) {
|
switch (handle.kind) {
|
||||||
|
|
||||||
case Lwip_file_handle::DATA: {
|
case Lwip_file_handle::DATA: {
|
||||||
if (ip_addr_isany(&_to_addr)) break;
|
if (ip_addr_isany(&_to_addr)) break;
|
||||||
@ -1300,7 +1300,7 @@ class Lwip::Tcp_socket_dir final :
|
|||||||
{
|
{
|
||||||
Genode::Mutex::Guard g { Lwip::mutex() };
|
Genode::Mutex::Guard g { Lwip::mutex() };
|
||||||
|
|
||||||
switch(handle.kind) {
|
switch (handle.kind) {
|
||||||
|
|
||||||
case Lwip_file_handle::DATA:
|
case Lwip_file_handle::DATA:
|
||||||
{
|
{
|
||||||
@ -1363,7 +1363,8 @@ class Lwip::Tcp_socket_dir final :
|
|||||||
out_count = Genode::snprintf(dst, count, "%s:%d\n",
|
out_count = Genode::snprintf(dst, count, "%s:%d\n",
|
||||||
ip_str, _pcb->remote_port);
|
ip_str, _pcb->remote_port);
|
||||||
return Read_result::READ_OK;
|
return Read_result::READ_OK;
|
||||||
} else if (state == CLOSED) {
|
} else {
|
||||||
|
out_count = 0;
|
||||||
return Read_result::READ_OK;
|
return Read_result::READ_OK;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -1457,7 +1458,7 @@ class Lwip::Tcp_socket_dir final :
|
|||||||
return Write_result::WRITE_ERR_IO;
|
return Write_result::WRITE_ERR_IO;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(handle.kind) {
|
switch (handle.kind) {
|
||||||
case Lwip_file_handle::DATA:
|
case Lwip_file_handle::DATA:
|
||||||
if (state == READY) {
|
if (state == READY) {
|
||||||
Write_result res = Write_result::WRITE_ERR_WOULD_BLOCK;
|
Write_result res = Write_result::WRITE_ERR_WOULD_BLOCK;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user