Changes in uspace/srv/net/tl/tcp/tcp.c [fb04cba8:aaa3f33a] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/tl/tcp/tcp.c
rfb04cba8 raaa3f33a 127 127 typedef struct tcp_timeout tcp_timeout_t; 128 128 129 /** Type definition of the TCP timeout pointer.130 * @see tcp_timeout131 */132 typedef tcp_timeout_t *tcp_timeout_ref;133 134 129 /** TCP reply timeout data. 135 130 * Used as a timeouting fibril argument. … … 144 139 145 140 /** Local sockets. */ 146 socket_cores_ reflocal_sockets;141 socket_cores_t *local_sockets; 147 142 148 143 /** Socket identifier. */ … … 166 161 167 162 static int tcp_release_and_return(packet_t, int); 168 static void tcp_prepare_operation_header(socket_core_ ref, tcp_socket_data_ref,169 tcp_header_ ref, int synchronize, int);170 static int tcp_prepare_timeout(int (*)(void *), socket_core_ ref,171 tcp_socket_data_ ref, size_t, tcp_socket_state_t, suseconds_t, int);172 static void tcp_free_socket_data(socket_core_ ref);163 static void tcp_prepare_operation_header(socket_core_t *, tcp_socket_data_t *, 164 tcp_header_t *, int synchronize, int); 165 static int tcp_prepare_timeout(int (*)(void *), socket_core_t *, 166 tcp_socket_data_t *, size_t, tcp_socket_state_t, suseconds_t, int); 167 static void tcp_free_socket_data(socket_core_t *); 173 168 174 169 static int tcp_timeout(void *); … … 177 172 178 173 static int tcp_process_packet(device_id_t, packet_t, services_t); 179 static int tcp_connect_core(socket_core_ ref, socket_cores_ref,174 static int tcp_connect_core(socket_core_t *, socket_cores_t *, 180 175 struct sockaddr *, socklen_t); 181 static int tcp_queue_prepare_packet(socket_core_ ref, tcp_socket_data_ref,176 static int tcp_queue_prepare_packet(socket_core_t *, tcp_socket_data_t *, 182 177 packet_t, size_t); 183 static int tcp_queue_packet(socket_core_ ref, tcp_socket_data_ref, packet_t,178 static int tcp_queue_packet(socket_core_t *, tcp_socket_data_t *, packet_t, 184 179 size_t); 185 static packet_t tcp_get_packets_to_send(socket_core_ ref, tcp_socket_data_ref);180 static packet_t tcp_get_packets_to_send(socket_core_t *, tcp_socket_data_t *); 186 181 static void tcp_send_packets(device_id_t, packet_t); 187 182 188 static void tcp_process_acknowledgement(socket_core_ ref, tcp_socket_data_ref,189 tcp_header_ ref);190 static packet_t tcp_send_prepare_packet(socket_core_ ref, tcp_socket_data_ref,183 static void tcp_process_acknowledgement(socket_core_t *, tcp_socket_data_t *, 184 tcp_header_t *); 185 static packet_t tcp_send_prepare_packet(socket_core_t *, tcp_socket_data_t *, 191 186 packet_t, size_t, size_t); 192 static packet_t tcp_prepare_copy(socket_core_ ref, tcp_socket_data_ref, packet_t,187 static packet_t tcp_prepare_copy(socket_core_t *, tcp_socket_data_t *, packet_t, 193 188 size_t, size_t); 194 /* static */ void tcp_retransmit_packet(socket_core_ ref, tcp_socket_data_ref,189 /* static */ void tcp_retransmit_packet(socket_core_t *, tcp_socket_data_t *, 195 190 size_t); 196 static int tcp_create_notification_packet(packet_t *, socket_core_ ref,197 tcp_socket_data_ ref, int, int);198 static void tcp_refresh_socket_data(tcp_socket_data_ ref);199 200 static void tcp_initialize_socket_data(tcp_socket_data_ ref);201 202 static int tcp_process_listen(socket_core_ ref, tcp_socket_data_ref,203 tcp_header_ ref, packet_t, struct sockaddr *, struct sockaddr *, size_t);204 static int tcp_process_syn_sent(socket_core_ ref, tcp_socket_data_ref,205 tcp_header_ ref, packet_t);206 static int tcp_process_syn_received(socket_core_ ref, tcp_socket_data_ref,207 tcp_header_ ref, packet_t);208 static int tcp_process_established(socket_core_ ref, tcp_socket_data_ref,209 tcp_header_ ref, packet_t, int, size_t);210 static int tcp_queue_received_packet(socket_core_ ref, tcp_socket_data_ref,191 static int tcp_create_notification_packet(packet_t *, socket_core_t *, 192 tcp_socket_data_t *, int, int); 193 static void tcp_refresh_socket_data(tcp_socket_data_t *); 194 195 static void tcp_initialize_socket_data(tcp_socket_data_t *); 196 197 static int tcp_process_listen(socket_core_t *, tcp_socket_data_t *, 198 tcp_header_t *, packet_t, struct sockaddr *, struct sockaddr *, size_t); 199 static int tcp_process_syn_sent(socket_core_t *, tcp_socket_data_t *, 200 tcp_header_t *, packet_t); 201 static int tcp_process_syn_received(socket_core_t *, tcp_socket_data_t *, 202 tcp_header_t *, packet_t); 203 static int tcp_process_established(socket_core_t *, tcp_socket_data_t *, 204 tcp_header_t *, packet_t, int, size_t); 205 static int tcp_queue_received_packet(socket_core_t *, tcp_socket_data_t *, 211 206 packet_t, int, size_t); 212 207 … … 214 209 static int tcp_process_client_messages(ipc_callid_t, ipc_call_t); 215 210 216 static int tcp_listen_message(socket_cores_ ref, int, int);217 static int tcp_connect_message(socket_cores_ ref, int, struct sockaddr *,211 static int tcp_listen_message(socket_cores_t *, int, int); 212 static int tcp_connect_message(socket_cores_t *, int, struct sockaddr *, 218 213 socklen_t); 219 static int tcp_recvfrom_message(socket_cores_ ref, int, int, size_t *);220 static int tcp_send_message(socket_cores_ ref, int, int, size_t *, int);221 static int tcp_accept_message(socket_cores_ ref, int, int, size_t *, size_t *);222 static int tcp_close_message(socket_cores_ ref, int);214 static int tcp_recvfrom_message(socket_cores_t *, int, int, size_t *); 215 static int tcp_send_message(socket_cores_t *, int, int, size_t *, int); 216 static int tcp_accept_message(socket_cores_t *, int, int, size_t *, size_t *); 217 static int tcp_close_message(socket_cores_t *, int); 223 218 224 219 /** TCP global data. */ … … 290 285 size_t offset; 291 286 int result; 292 tcp_header_ refheader;293 socket_core_ refsocket;294 tcp_socket_data_ refsocket_data;287 tcp_header_t *header; 288 socket_core_t *socket; 289 tcp_socket_data_t *socket_data; 295 290 packet_t next_packet; 296 291 size_t total_length; … … 343 338 344 339 /* Get tcp header */ 345 header = (tcp_header_ ref) packet_get_data(packet);340 header = (tcp_header_t *) packet_get_data(packet); 346 341 if (!header) 347 342 return tcp_release_and_return(packet, NO_DATA); … … 380 375 381 376 printf("socket id %d\n", socket->socket_id); 382 socket_data = (tcp_socket_data_ ref) socket->specific_data;377 socket_data = (tcp_socket_data_t *) socket->specific_data; 383 378 assert(socket_data); 384 379 … … 497 492 } 498 493 499 int tcp_process_established(socket_core_ ref socket, tcp_socket_data_ref500 socket_data, tcp_header_ refheader, packet_t packet, int fragments,494 int tcp_process_established(socket_core_t *socket, tcp_socket_data_t * 495 socket_data, tcp_header_t *header, packet_t packet, int fragments, 501 496 size_t total_length) 502 497 { … … 805 800 } 806 801 807 int tcp_queue_received_packet(socket_core_ refsocket,808 tcp_socket_data_ refsocket_data, packet_t packet, int fragments,802 int tcp_queue_received_packet(socket_core_t *socket, 803 tcp_socket_data_t *socket_data, packet_t packet, int fragments, 809 804 size_t total_length) 810 805 { 811 packet_dimension_ refpacket_dimension;806 packet_dimension_t *packet_dimension; 812 807 int rc; 813 808 … … 842 837 } 843 838 844 int tcp_process_syn_sent(socket_core_ ref socket, tcp_socket_data_ref845 socket_data, tcp_header_ refheader, packet_t packet)839 int tcp_process_syn_sent(socket_core_t *socket, tcp_socket_data_t * 840 socket_data, tcp_header_t *header, packet_t packet) 846 841 { 847 842 packet_t next_packet; … … 900 895 } 901 896 902 int tcp_process_listen(socket_core_ reflistening_socket,903 tcp_socket_data_ ref listening_socket_data, tcp_header_refheader,897 int tcp_process_listen(socket_core_t *listening_socket, 898 tcp_socket_data_t *listening_socket_data, tcp_header_t *header, 904 899 packet_t packet, struct sockaddr *src, struct sockaddr *dest, 905 900 size_t addrlen) 906 901 { 907 902 packet_t next_packet; 908 socket_core_ refsocket;909 tcp_socket_data_ refsocket_data;903 socket_core_t *socket; 904 tcp_socket_data_t *socket_data; 910 905 int socket_id; 911 906 int listening_socket_id = listening_socket->socket_id; … … 922 917 return tcp_release_and_return(packet, EINVAL); 923 918 924 socket_data = (tcp_socket_data_ ref) malloc(sizeof(*socket_data));919 socket_data = (tcp_socket_data_t *) malloc(sizeof(*socket_data)); 925 920 if (!socket_data) 926 921 return tcp_release_and_return(packet, ENOMEM); … … 979 974 } 980 975 listening_socket_data = 981 (tcp_socket_data_ ref) listening_socket->specific_data;976 (tcp_socket_data_t *) listening_socket->specific_data; 982 977 assert(listening_socket_data); 983 978 … … 991 986 return ENOTSOCK; 992 987 } 993 socket_data = (tcp_socket_data_ ref) socket->specific_data;988 socket_data = (tcp_socket_data_t *) socket->specific_data; 994 989 assert(socket_data); 995 990 … … 1060 1055 } 1061 1056 1062 int tcp_process_syn_received(socket_core_ refsocket,1063 tcp_socket_data_ ref socket_data, tcp_header_refheader, packet_t packet)1064 { 1065 socket_core_ reflistening_socket;1066 tcp_socket_data_ reflistening_socket_data;1057 int tcp_process_syn_received(socket_core_t *socket, 1058 tcp_socket_data_t *socket_data, tcp_header_t *header, packet_t packet) 1059 { 1060 socket_core_t *listening_socket; 1061 tcp_socket_data_t *listening_socket_data; 1067 1062 int rc; 1068 1063 … … 1086 1081 if (listening_socket) { 1087 1082 listening_socket_data = 1088 (tcp_socket_data_ ref) listening_socket->specific_data;1083 (tcp_socket_data_t *) listening_socket->specific_data; 1089 1084 assert(listening_socket_data); 1090 1085 … … 1127 1122 } 1128 1123 1129 void tcp_process_acknowledgement(socket_core_ refsocket,1130 tcp_socket_data_ ref socket_data, tcp_header_refheader)1124 void tcp_process_acknowledgement(socket_core_t *socket, 1125 tcp_socket_data_t *socket_data, tcp_header_t *header) 1131 1126 { 1132 1127 size_t number; … … 1265 1260 } 1266 1261 1267 void tcp_refresh_socket_data(tcp_socket_data_ refsocket_data)1262 void tcp_refresh_socket_data(tcp_socket_data_t *socket_data) 1268 1263 { 1269 1264 assert(socket_data); … … 1281 1276 } 1282 1277 1283 void tcp_initialize_socket_data(tcp_socket_data_ refsocket_data)1278 void tcp_initialize_socket_data(tcp_socket_data_t *socket_data) 1284 1279 { 1285 1280 assert(socket_data); … … 1304 1299 ipc_call_t answer; 1305 1300 int answer_count; 1306 tcp_socket_data_ refsocket_data;1307 socket_core_ refsocket;1308 packet_dimension_ refpacket_dimension;1301 tcp_socket_data_t *socket_data; 1302 socket_core_t *socket; 1303 packet_dimension_t *packet_dimension; 1309 1304 1310 1305 /* … … 1336 1331 case NET_SOCKET: 1337 1332 socket_data = 1338 (tcp_socket_data_ ref) malloc(sizeof(*socket_data));1333 (tcp_socket_data_t *) malloc(sizeof(*socket_data)); 1339 1334 if (!socket_data) { 1340 1335 res = ENOMEM; … … 1383 1378 SOCKET_GET_SOCKET_ID(call)); 1384 1379 if (socket) { 1385 socket_data = (tcp_socket_data_ ref)1380 socket_data = (tcp_socket_data_t *) 1386 1381 socket->specific_data; 1387 1382 assert(socket_data); … … 1540 1535 int tcp_timeout(void *data) 1541 1536 { 1542 tcp_timeout_ reftimeout = data;1537 tcp_timeout_t *timeout = data; 1543 1538 int keep_write_lock = false; 1544 socket_core_ refsocket;1545 tcp_socket_data_ refsocket_data;1539 socket_core_t *socket; 1540 tcp_socket_data_t *socket_data; 1546 1541 1547 1542 assert(timeout); … … 1561 1556 goto out; 1562 1557 1563 socket_data = (tcp_socket_data_ ref) socket->specific_data;1558 socket_data = (tcp_socket_data_t *) socket->specific_data; 1564 1559 assert(socket_data); 1565 1560 if (socket_data->local_sockets != timeout->local_sockets) … … 1617 1612 int tcp_release_after_timeout(void *data) 1618 1613 { 1619 tcp_timeout_ reftimeout = data;1620 socket_core_ refsocket;1621 tcp_socket_data_ refsocket_data;1614 tcp_timeout_t *timeout = data; 1615 socket_core_t *socket; 1616 tcp_socket_data_t *socket_data; 1622 1617 fibril_rwlock_t *local_lock; 1623 1618 … … 1635 1630 1636 1631 if (socket && (socket->socket_id == timeout->socket_id)) { 1637 socket_data = (tcp_socket_data_ ref) socket->specific_data;1632 socket_data = (tcp_socket_data_t *) socket->specific_data; 1638 1633 assert(socket_data); 1639 1634 if (socket_data->local_sockets == timeout->local_sockets) { … … 1656 1651 } 1657 1652 1658 void tcp_retransmit_packet(socket_core_ ref socket, tcp_socket_data_ref1653 void tcp_retransmit_packet(socket_core_t *socket, tcp_socket_data_t * 1659 1654 socket_data, size_t sequence_number) 1660 1655 { … … 1683 1678 } 1684 1679 1685 int tcp_listen_message(socket_cores_ reflocal_sockets, int socket_id,1680 int tcp_listen_message(socket_cores_t *local_sockets, int socket_id, 1686 1681 int backlog) 1687 1682 { 1688 socket_core_ refsocket;1689 tcp_socket_data_ refsocket_data;1683 socket_core_t *socket; 1684 tcp_socket_data_t *socket_data; 1690 1685 1691 1686 assert(local_sockets); … … 1700 1695 1701 1696 /* Get the socket specific data */ 1702 socket_data = (tcp_socket_data_ ref) socket->specific_data;1697 socket_data = (tcp_socket_data_t *) socket->specific_data; 1703 1698 assert(socket_data); 1704 1699 … … 1709 1704 } 1710 1705 1711 int tcp_connect_message(socket_cores_ reflocal_sockets, int socket_id,1706 int tcp_connect_message(socket_cores_t *local_sockets, int socket_id, 1712 1707 struct sockaddr *addr, socklen_t addrlen) 1713 1708 { 1714 socket_core_ refsocket;1709 socket_core_t *socket; 1715 1710 int rc; 1716 1711 … … 1737 1732 } 1738 1733 1739 int tcp_connect_core(socket_core_ ref socket, socket_cores_reflocal_sockets,1734 int tcp_connect_core(socket_core_t *socket, socket_cores_t *local_sockets, 1740 1735 struct sockaddr *addr, socklen_t addrlen) 1741 1736 { 1742 tcp_socket_data_ refsocket_data;1737 tcp_socket_data_t *socket_data; 1743 1738 packet_t packet; 1744 1739 int rc; … … 1749 1744 1750 1745 /* Get the socket specific data */ 1751 socket_data = (tcp_socket_data_ ref) socket->specific_data;1746 socket_data = (tcp_socket_data_t *) socket->specific_data; 1752 1747 assert(socket_data); 1753 1748 assert(socket->specific_data == socket_data); … … 1828 1823 } 1829 1824 1830 int tcp_queue_prepare_packet(socket_core_ refsocket,1831 tcp_socket_data_ refsocket_data, packet_t packet, size_t data_length)1832 { 1833 tcp_header_ refheader;1825 int tcp_queue_prepare_packet(socket_core_t *socket, 1826 tcp_socket_data_t *socket_data, packet_t packet, size_t data_length) 1827 { 1828 tcp_header_t *header; 1834 1829 int rc; 1835 1830 … … 1839 1834 1840 1835 /* Get TCP header */ 1841 header = (tcp_header_ ref) packet_get_data(packet);1836 header = (tcp_header_t *) packet_get_data(packet); 1842 1837 if (!header) 1843 1838 return NO_DATA; … … 1859 1854 } 1860 1855 1861 int tcp_queue_packet(socket_core_ ref socket, tcp_socket_data_refsocket_data,1856 int tcp_queue_packet(socket_core_t *socket, tcp_socket_data_t *socket_data, 1862 1857 packet_t packet, size_t data_length) 1863 1858 { … … 1881 1876 } 1882 1877 1883 packet_t tcp_get_packets_to_send(socket_core_ ref socket, tcp_socket_data_ref1878 packet_t tcp_get_packets_to_send(socket_core_t *socket, tcp_socket_data_t * 1884 1879 socket_data) 1885 1880 { … … 1941 1936 } 1942 1937 1943 packet_t tcp_send_prepare_packet(socket_core_ ref socket, tcp_socket_data_ref1938 packet_t tcp_send_prepare_packet(socket_core_t *socket, tcp_socket_data_t * 1944 1939 socket_data, packet_t packet, size_t data_length, size_t sequence_number) 1945 1940 { 1946 tcp_header_ refheader;1941 tcp_header_t *header; 1947 1942 uint32_t checksum; 1948 1943 int rc; … … 1961 1956 1962 1957 /* Get the header */ 1963 header = (tcp_header_ ref) packet_get_data(packet);1958 header = (tcp_header_t *) packet_get_data(packet); 1964 1959 if (!header) { 1965 1960 pq_release_remote(tcp_globals.net_phone, packet_get_id(packet)); … … 2002 1997 } 2003 1998 2004 packet_t tcp_prepare_copy(socket_core_ ref socket, tcp_socket_data_ref1999 packet_t tcp_prepare_copy(socket_core_t *socket, tcp_socket_data_t * 2005 2000 socket_data, packet_t packet, size_t data_length, size_t sequence_number) 2006 2001 { … … 2032 2027 } 2033 2028 2034 void tcp_prepare_operation_header(socket_core_ refsocket,2035 tcp_socket_data_ ref socket_data, tcp_header_refheader, int synchronize,2029 void tcp_prepare_operation_header(socket_core_t *socket, 2030 tcp_socket_data_t *socket_data, tcp_header_t *header, int synchronize, 2036 2031 int finalize) 2037 2032 { … … 2050 2045 2051 2046 int tcp_prepare_timeout(int (*timeout_function)(void *tcp_timeout_t), 2052 socket_core_ ref socket, tcp_socket_data_refsocket_data,2047 socket_core_t *socket, tcp_socket_data_t *socket_data, 2053 2048 size_t sequence_number, tcp_socket_state_t state, suseconds_t timeout, 2054 2049 int globals_read_only) 2055 2050 { 2056 tcp_timeout_ refoperation_timeout;2051 tcp_timeout_t *operation_timeout; 2057 2052 fid_t fibril; 2058 2053 … … 2096 2091 } 2097 2092 2098 int tcp_recvfrom_message(socket_cores_ reflocal_sockets, int socket_id,2093 int tcp_recvfrom_message(socket_cores_t *local_sockets, int socket_id, 2099 2094 int flags, size_t *addrlen) 2100 2095 { 2101 socket_core_ refsocket;2102 tcp_socket_data_ refsocket_data;2096 socket_core_t *socket; 2097 tcp_socket_data_t *socket_data; 2103 2098 int packet_id; 2104 2099 packet_t packet; … … 2117 2112 return NO_DATA; 2118 2113 2119 socket_data = (tcp_socket_data_ ref) socket->specific_data;2114 socket_data = (tcp_socket_data_t *) socket->specific_data; 2120 2115 2121 2116 /* Check state */ … … 2154 2149 } 2155 2150 2156 int tcp_send_message(socket_cores_ reflocal_sockets, int socket_id,2151 int tcp_send_message(socket_cores_t *local_sockets, int socket_id, 2157 2152 int fragments, size_t *data_fragment_size, int flags) 2158 2153 { 2159 socket_core_ refsocket;2160 tcp_socket_data_ refsocket_data;2161 packet_dimension_ refpacket_dimension;2154 socket_core_t *socket; 2155 tcp_socket_data_t *socket_data; 2156 packet_dimension_t *packet_dimension; 2162 2157 packet_t packet; 2163 2158 size_t total_length; 2164 tcp_header_ refheader;2159 tcp_header_t *header; 2165 2160 int index; 2166 2161 int result; … … 2179 2174 return NO_DATA; 2180 2175 2181 socket_data = (tcp_socket_data_ ref) socket->specific_data;2176 socket_data = (tcp_socket_data_t *) socket->specific_data; 2182 2177 2183 2178 /* Check state */ … … 2230 2225 2231 2226 int 2232 tcp_close_message(socket_cores_ reflocal_sockets, int socket_id)2233 { 2234 socket_core_ refsocket;2235 tcp_socket_data_ refsocket_data;2227 tcp_close_message(socket_cores_t *local_sockets, int socket_id) 2228 { 2229 socket_core_t *socket; 2230 tcp_socket_data_t *socket_data; 2236 2231 packet_t packet; 2237 2232 int rc; … … 2243 2238 2244 2239 /* Get the socket specific data */ 2245 socket_data = (tcp_socket_data_ ref) socket->specific_data;2240 socket_data = (tcp_socket_data_t *) socket->specific_data; 2246 2241 assert(socket_data); 2247 2242 … … 2298 2293 } 2299 2294 2300 int tcp_create_notification_packet(packet_t *packet, socket_core_ refsocket,2301 tcp_socket_data_ refsocket_data, int synchronize, int finalize)2302 { 2303 packet_dimension_ refpacket_dimension;2304 tcp_header_ refheader;2295 int tcp_create_notification_packet(packet_t *packet, socket_core_t *socket, 2296 tcp_socket_data_t *socket_data, int synchronize, int finalize) 2297 { 2298 packet_dimension_t *packet_dimension; 2299 tcp_header_t *header; 2305 2300 int rc; 2306 2301 … … 2332 2327 } 2333 2328 2334 int tcp_accept_message(socket_cores_ reflocal_sockets, int socket_id,2329 int tcp_accept_message(socket_cores_t *local_sockets, int socket_id, 2335 2330 int new_socket_id, size_t *data_fragment_size, size_t *addrlen) 2336 2331 { 2337 socket_core_ refaccepted;2338 socket_core_ refsocket;2339 tcp_socket_data_ refsocket_data;2340 packet_dimension_ refpacket_dimension;2332 socket_core_t *accepted; 2333 socket_core_t *socket; 2334 tcp_socket_data_t *socket_data; 2335 packet_dimension_t *packet_dimension; 2341 2336 int rc; 2342 2337 … … 2351 2346 2352 2347 /* Get the socket specific data */ 2353 socket_data = (tcp_socket_data_ ref) socket->specific_data;2348 socket_data = (tcp_socket_data_t *) socket->specific_data; 2354 2349 assert(socket_data); 2355 2350 … … 2369 2364 2370 2365 /* Get the socket specific data */ 2371 socket_data = (tcp_socket_data_ ref) accepted->specific_data;2366 socket_data = (tcp_socket_data_t *) accepted->specific_data; 2372 2367 assert(socket_data); 2373 2368 /* TODO can it be in another state? */ … … 2405 2400 } 2406 2401 2407 void tcp_free_socket_data(socket_core_ refsocket)2408 { 2409 tcp_socket_data_ refsocket_data;2402 void tcp_free_socket_data(socket_core_t *socket) 2403 { 2404 tcp_socket_data_t *socket_data; 2410 2405 2411 2406 assert(socket); … … 2414 2409 2415 2410 /* Get the socket specific data */ 2416 socket_data = (tcp_socket_data_ ref) socket->specific_data;2411 socket_data = (tcp_socket_data_t *) socket->specific_data; 2417 2412 assert(socket_data); 2418 2413
Note:
See TracChangeset
for help on using the changeset viewer.