| 1070 | } |
| 1071 | |
| 1072 | NETSOCKET net_tcp_create(NETADDR bindaddr) |
| 1073 | { |
| 1074 | NETSOCKET sock = invalid_socket; |
| 1075 | NETADDR tmpbindaddr = bindaddr; |
| 1076 | |
| 1077 | if(bindaddr.type&NETTYPE_IPV4) |
| 1078 | { |
| 1079 | struct sockaddr_in addr; |
| 1080 | int socket = -1; |
| 1081 | |
| 1082 | /* bind, we should check for error */ |
| 1083 | tmpbindaddr.type = NETTYPE_IPV4; |
| 1084 | netaddr_to_sockaddr_in(&tmpbindaddr, &addr); |
| 1085 | socket = priv_net_create_socket(AF_INET, SOCK_STREAM, (struct sockaddr *)&addr, sizeof(addr)); |
| 1086 | if(socket >= 0) |
| 1087 | { |
| 1088 | sock.type |= NETTYPE_IPV4; |
| 1089 | sock.ipv4sock = socket; |
| 1090 | } |
| 1091 | } |
| 1092 | |
| 1093 | if(bindaddr.type&NETTYPE_IPV6) |
| 1094 | { |
| 1095 | struct sockaddr_in6 addr; |
| 1096 | int socket = -1; |
| 1097 | |
| 1098 | /* bind, we should check for error */ |
| 1099 | tmpbindaddr.type = NETTYPE_IPV6; |
| 1100 | netaddr_to_sockaddr_in6(&tmpbindaddr, &addr); |
| 1101 | socket = priv_net_create_socket(AF_INET6, SOCK_STREAM, (struct sockaddr *)&addr, sizeof(addr)); |
| 1102 | if(socket >= 0) |
| 1103 | { |
| 1104 | sock.type |= NETTYPE_IPV6; |
| 1105 | sock.ipv6sock = socket; |
| 1106 | } |
| 1107 | } |
| 1108 | |
| 1109 | /* return */ |
| 1110 | return sock; |
| 1111 | } |
| 1112 | |
| 1113 | int net_set_non_blocking(NETSOCKET sock) |
| 1114 | { |
no test coverage detected