mirror of
https://github.com/simh/simh.git
synced 2026-02-03 15:13:56 +00:00
SOCKETS: Cleanup, simplify and extend the sim_sock API set.
Cleanup/Simplification by: 1) removing irrelevant master flag variable from sim_close_sock and thus sim_err_sock 2) change previous boolean feature arguments (datagram, nodelay, reuseaddr) to flag bits in a single option argument. This allows for features to be added by new flag bits which don't change the calling signatures. 3) changed all status returns to be int (vs t_stat) with success being 0 and error being -1 4) removed unneeded simh specific type references to allow sim_sock to be used by n Extended API by providing flags to influence socket setup/behavior: SIM_SOCK_OPT_REUSEADDR Retains prior behavior when sim_switches had -U set SIM_SOCK_OPT_DATAGRAM UDP socket setup provided for when prior datagram argument was specified SIM_SOCK_OPT_NODELAY TCP Nagle disable provided for when prior nodelay argument was specified SIM_SOCK_OPT_BLOCKING Blocking socket mode (detault is non blocking)
This commit is contained in:
@@ -1906,7 +1906,7 @@ else
|
||||
sim_printf ("Eth: Must specify different udp localhost ports\r\n");
|
||||
return SCPE_OPENERR;
|
||||
}
|
||||
*fd_handle = sim_connect_sock_ex (localport, hostport, NULL, NULL, TRUE, FALSE);
|
||||
*fd_handle = sim_connect_sock_ex (localport, hostport, NULL, NULL, SIM_SOCK_OPT_DATAGRAM);
|
||||
if (INVALID_SOCKET == *fd_handle)
|
||||
return SCPE_OPENERR;
|
||||
*eth_api = ETH_API_UDP;
|
||||
@@ -2101,7 +2101,7 @@ switch (eth_api) {
|
||||
break;
|
||||
#endif
|
||||
case ETH_API_UDP:
|
||||
sim_close_sock(pcap_fd, TRUE);
|
||||
sim_close_sock(pcap_fd);
|
||||
break;
|
||||
#ifdef USE_SLIRP_NETWORK
|
||||
case ETH_API_NAT:
|
||||
@@ -2363,7 +2363,7 @@ switch (dev->eth_api) {
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
sim_err_sock (INVALID_SOCKET, msg, 0);
|
||||
sim_err_sock (INVALID_SOCKET, msg);
|
||||
break;
|
||||
}
|
||||
#ifdef USE_READER_THREAD
|
||||
|
||||
Reference in New Issue
Block a user