66
77#include " TCPClient.h"
88
9- CTCPClient::CTCPClient (const LogFnCallback oLogger) :
10- ASocket(oLogger),
9+ CTCPClient::CTCPClient (const LogFnCallback oLogger,
10+ const SettingsFlag eSettings /* = ALL_FLAGS*/ ) :
11+ ASocket(oLogger, eSettings),
1112 m_eStatus(DISCONNECTED),
1213 #ifdef WINDOWS
1314 m_ConnectSocket (INVALID_SOCKET),
@@ -27,7 +28,8 @@ bool CTCPClient::Connect(const std::string& strServer, const std::string& strPor
2728 if (m_eStatus == CONNECTED)
2829 {
2930 Disconnect ();
30- m_oLog (" [TCPClient][Warning] Opening a new connexion. The last one was automatically closed." );
31+ if (m_eSettingsFlags & ENABLE_LOG)
32+ m_oLog (" [TCPClient][Warning] Opening a new connexion. The last one was automatically closed." );
3133 }
3234
3335 #ifdef WINDOWS
@@ -43,7 +45,8 @@ bool CTCPClient::Connect(const std::string& strServer, const std::string& strPor
4345 int iResult = getaddrinfo (strServer.c_str (), strPort.c_str (), &m_HintsAddrInfo, &m_pResultAddrInfo);
4446 if (iResult != 0 )
4547 {
46- m_oLog (StringFormat (" [TCPClient][Error] getaddrinfo failed : %d" , iResult));
48+ if (m_eSettingsFlags & ENABLE_LOG)
49+ m_oLog (StringFormat (" [TCPClient][Error] getaddrinfo failed : %d" , iResult));
4750
4851 if (m_pResultAddrInfo != nullptr )
4952 {
@@ -61,7 +64,9 @@ bool CTCPClient::Connect(const std::string& strServer, const std::string& strPor
6164
6265 if (m_ConnectSocket == INVALID_SOCKET)
6366 {
64- m_oLog (StringFormat (" [TCPClient][Error] socket failed : %d" , WSAGetLastError ()));
67+ if (m_eSettingsFlags & ENABLE_LOG)
68+ m_oLog (StringFormat (" [TCPClient][Error] socket failed : %d" , WSAGetLastError ()));
69+
6570 closesocket (m_ConnectSocket);
6671 freeaddrinfo (m_pResultAddrInfo);
6772 m_pResultAddrInfo = nullptr ;
@@ -100,7 +105,9 @@ bool CTCPClient::Connect(const std::string& strServer, const std::string& strPor
100105
101106 // retry mechanism
102107 // if (uRetry < m_uRetryCount)
103- // m_oLog(StringFormat("[TCPClient][Error] connect retry %u after %u second(s)", m_uRetryCount + 1, m_uRetryPeriod));
108+ // if (m_eSettingsFlags & ENABLE_LOG)
109+ /* m_oLog(StringFormat("[TCPClient][Error] connect retry %u after %u second(s)",
110+ m_uRetryCount + 1, m_uRetryPeriod));*/
104111
105112 // if (m_uRetryPeriod > 0)
106113 // {
@@ -117,22 +124,27 @@ bool CTCPClient::Connect(const std::string& strServer, const std::string& strPor
117124 m_eStatus = CONNECTED;
118125 return true ;
119126 }
120- m_oLog (StringFormat (" [TCPClient][Error] Unable to connect to server : %d" , WSAGetLastError ()));
127+ if (m_eSettingsFlags & ENABLE_LOG)
128+ m_oLog (StringFormat (" [TCPClient][Error] Unable to connect to server : %d" , WSAGetLastError ()));
121129
122130 #else
123131 // socket creation
124132 m_ConnectSocket = socket (AF_INET, SOCK_STREAM, 0 );
125133 if (m_ConnectSocket < 0 )
126134 {
127- m_oLog (StringFormat (" [TCPClient][Error] opening socket: %s" , strerror (errno)));
135+ if (m_eSettingsFlags & ENABLE_LOG)
136+ m_oLog (StringFormat (" [TCPClient][Error] opening socket: %s" , strerror (errno)));
137+
128138 return false ;
129139 }
130140
131141 int iPort = atoi (strPort.c_str ());
132142 m_pServer = gethostbyname (strServer.c_str ());
133143 if (m_pServer == nullptr )
134144 {
135- m_oLog (" [TCPClient][Error] no such host." );
145+ if (m_eSettingsFlags & ENABLE_LOG)
146+ m_oLog (" [TCPClient][Error] no such host." );
147+
136148 return false ;
137149 }
138150
@@ -158,7 +170,8 @@ bool CTCPClient::Connect(const std::string& strServer, const std::string& strPor
158170 m_eStatus = CONNECTED;
159171 return true ;
160172 }
161- m_oLog (StringFormat (" [TCPClient][Error] connecting : %s" , strerror (errno)));
173+ if (m_eSettingsFlags & ENABLE_LOG)
174+ m_oLog (StringFormat (" [TCPClient][Error] connecting : %s" , strerror (errno)));
162175 #endif
163176
164177 return false ;
@@ -168,7 +181,9 @@ bool CTCPClient::Send(const char* pData, const size_t uSize) const
168181{
169182 if (m_eStatus != CONNECTED)
170183 {
171- m_oLog (" [TCPClient][Error] send failed : not connected to a server." );
184+ if (m_eSettingsFlags & ENABLE_LOG)
185+ m_oLog (" [TCPClient][Error] send failed : not connected to a server." );
186+
172187 return false ;
173188 }
174189
@@ -177,15 +192,19 @@ bool CTCPClient::Send(const char* pData, const size_t uSize) const
177192 iResult = send (m_ConnectSocket, pData, uSize, 0 );
178193 if (iResult == SOCKET_ERROR)
179194 {
180- m_oLog (StringFormat (" [TCPClient][Error] send failed : %d" , WSAGetLastError ()));
195+ if (m_eSettingsFlags & ENABLE_LOG)
196+ m_oLog (StringFormat (" [TCPClient][Error] send failed : %d" , WSAGetLastError ()));
181197 // Disconnect();
198+
182199 return false ;
183200 }
184201 #else
185202 iResult = write (m_ConnectSocket, pData, uSize);
186203 if (iResult < 0 )
187204 {
188- m_oLog (StringFormat (" [TCPClient][Error] writing to socket : %s" , strerror (errno)));
205+ if (m_eSettingsFlags & ENABLE_LOG)
206+ m_oLog (StringFormat (" [TCPClient][Error] writing to socket : %s" , strerror (errno)));
207+
189208 return false ;
190209 }
191210 #endif
@@ -211,7 +230,9 @@ int CTCPClient::Receive(char* pData, const size_t uSize) const
211230{
212231 if (m_eStatus != CONNECTED)
213232 {
214- m_oLog (" [TCPClient][Error] recv failed : not connected to a server." );
233+ if (m_eSettingsFlags & ENABLE_LOG)
234+ m_oLog (" [TCPClient][Error] recv failed : not connected to a server." );
235+
215236 return -1 ;
216237 }
217238
@@ -221,14 +242,16 @@ int CTCPClient::Receive(char* pData, const size_t uSize) const
221242 iBytesRcvd = recv (m_ConnectSocket, pData, uSize, 0 );
222243 if (iBytesRcvd < 0 )
223244 {
224- m_oLog (StringFormat (" [TCPClient][Error] recv failed : %d" , WSAGetLastError ()));
245+ if (m_eSettingsFlags & ENABLE_LOG)
246+ m_oLog (StringFormat (" [TCPClient][Error] recv failed : %d" , WSAGetLastError ()));
225247 }
226248 #else
227249 // bzero(pData, uSize);
228250 iBytesRcvd = read (m_ConnectSocket, pData, uSize);
229251 if (iBytesRcvd < 0 )
230252 {
231- m_oLog (StringFormat (" [TCPClient][Error] reading from socket : %s" , strerror (errno)));
253+ if (m_eSettingsFlags & ENABLE_LOG)
254+ m_oLog (StringFormat (" [TCPClient][Error] reading from socket : %s" , strerror (errno)));
232255 }
233256 #endif
234257
@@ -247,7 +270,9 @@ bool CTCPClient::Disconnect()
247270 int iResult = shutdown (m_ConnectSocket, SD_SEND);
248271 if (iResult == SOCKET_ERROR)
249272 {
250- m_oLog (StringFormat (" [TCPClient][Error] shutdown failed : %d" , WSAGetLastError ()));
273+ if (m_eSettingsFlags & ENABLE_LOG)
274+ m_oLog (StringFormat (" [TCPClient][Error] shutdown failed : %d" , WSAGetLastError ()));
275+
251276 return false ;
252277 }
253278 closesocket (m_ConnectSocket);
0 commit comments