| 1264 | } |
| 1265 | |
| 1266 | int net_tcp_accept(NETSOCKET sock, NETSOCKET *new_sock, NETADDR *a) |
| 1267 | { |
| 1268 | *new_sock = nullptr; |
| 1269 | |
| 1270 | if(sock->ipv4sock >= 0) |
| 1271 | { |
| 1272 | sockaddr_storage addr; |
| 1273 | socklen_t sockaddr_len = sizeof(addr); |
| 1274 | |
| 1275 | int s = accept(sock->ipv4sock, (sockaddr *)&addr, &sockaddr_len); |
| 1276 | if(s != -1) |
| 1277 | { |
| 1278 | sockaddr_to_netaddr((sockaddr *)&addr, sockaddr_len, a); |
| 1279 | |
| 1280 | *new_sock = (NETSOCKET_INTERNAL *)malloc(sizeof(**new_sock)); |
| 1281 | **new_sock = invalid_socket; |
| 1282 | (*new_sock)->type = NETTYPE_IPV4; |
| 1283 | (*new_sock)->ipv4sock = s; |
| 1284 | return s; |
| 1285 | } |
| 1286 | } |
| 1287 | |
| 1288 | if(sock->ipv6sock >= 0) |
| 1289 | { |
| 1290 | sockaddr_storage addr; |
| 1291 | socklen_t sockaddr_len = sizeof(addr); |
| 1292 | |
| 1293 | int s = accept(sock->ipv6sock, (sockaddr *)&addr, &sockaddr_len); |
| 1294 | if(s != -1) |
| 1295 | { |
| 1296 | *new_sock = (NETSOCKET_INTERNAL *)malloc(sizeof(**new_sock)); |
| 1297 | **new_sock = invalid_socket; |
| 1298 | sockaddr_to_netaddr((sockaddr *)&addr, sockaddr_len, a); |
| 1299 | (*new_sock)->type = NETTYPE_IPV6; |
| 1300 | (*new_sock)->ipv6sock = s; |
| 1301 | return s; |
| 1302 | } |
| 1303 | } |
| 1304 | |
| 1305 | return -1; |
| 1306 | } |
| 1307 | |
| 1308 | int net_tcp_connect(NETSOCKET sock, const NETADDR *a) |
| 1309 | { |
no test coverage detected