1
10
13
14
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
98
99
100
104
105
106
107
111
112
113
119
120
121
132
133
134
138
139
140
141
142
143
144
145
146
147
148
...
...
...
#define NX_SOURCE_CODE
#include "nx_api.h"
#include "nx_tcp.h"
NX_CALLER_CHECKING_EXTERNS
...
...
UINT _nxde_tcp_client_socket_connect(NX_TCP_SOCKET *socket_ptr,
NXD_ADDRESS *server_ip,
UINT server_port, ULONG wait_option)
{
UINT status;
if ((socket_ptr == NX_NULL) || (socket_ptr -> nx_tcp_socket_id != NX_TCP_ID))
{
return(NX_PTR_ERROR);
}if ((socket_ptr == NX_NULL) || (socket_ptr -> nx_tcp_socket_id != NX_TCP_ID)) { ... }
if (!(socket_ptr -> nx_tcp_socket_ip_ptr) -> nx_ip_tcp_packet_receive)
{
return(NX_NOT_ENABLED);
}if (!(socket_ptr -> nx_tcp_socket_ip_ptr) -> nx_ip_tcp_packet_receive) { ... }
if (server_ip == NX_NULL)
{
return(NX_IP_ADDRESS_ERROR);
}if (server_ip == NX_NULL) { ... }
if ((server_ip -> nxd_ip_version != NX_IP_VERSION_V4) &&
(server_ip -> nxd_ip_version != NX_IP_VERSION_V6))
{
return(NX_IP_ADDRESS_ERROR);
}if ((server_ip -> nxd_ip_version != NX_IP_VERSION_V4) && (server_ip -> nxd_ip_version != NX_IP_VERSION_V6)) { ... }
#ifndef NX_DISABLE_IPV4
if (server_ip -> nxd_ip_version == NX_IP_VERSION_V4)
{
if (((server_ip -> nxd_ip_address.v4 & NX_IP_CLASS_A_MASK) != NX_IP_CLASS_A_TYPE) &&
((server_ip -> nxd_ip_address.v4 & NX_IP_CLASS_B_MASK) != NX_IP_CLASS_B_TYPE) &&
((server_ip -> nxd_ip_address.v4 & NX_IP_CLASS_C_MASK) != NX_IP_CLASS_C_TYPE))
{
return(NX_IP_ADDRESS_ERROR);
}if (((server_ip -> nxd_ip_address.v4 & NX_IP_CLASS_A_MASK) != NX_IP_CLASS_A_TYPE) && ((server_ip -> nxd_ip_address.v4 & NX_IP_CLASS_B_MASK) != NX_IP_CLASS_B_TYPE) && ((server_ip -> nxd_ip_address.v4 & NX_IP_CLASS_C_MASK) != NX_IP_CLASS_C_TYPE)) { ... }
}if (server_ip -> nxd_ip_version == NX_IP_VERSION_V4) { ... }
/* ... */#endif
if (((ULONG)server_port) > (ULONG)NX_MAX_PORT)
{
return(NX_INVALID_PORT);
}if (((ULONG)server_port) > (ULONG)NX_MAX_PORT) { ... }
NX_THREADS_ONLY_CALLER_CHECKING
status = _nxd_tcp_client_socket_connect(socket_ptr, server_ip, server_port, wait_option);
return(status);
}{ ... }