Explorar el Código

Check that socket is valid before attempting to close it

This prevents unnecessary failed close of socket -1.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
Joachim Wiberg hace 3 años
padre
commit
5d066fbf92
Se han modificado 1 ficheros con 6 adiciones y 8 borrados
  1. 6 8
      source/src/cip/cipioconnection.c

+ 6 - 8
source/src/cip/cipioconnection.c

@@ -985,15 +985,13 @@ CipError OpenCommunicationChannels(CipConnectionObject *connection_object) {
 
 void CloseCommunicationChannelsAndRemoveFromActiveConnectionsList(
   CipConnectionObject *connection_object) {
-  CloseUdpSocket(connection_object->socket[kUdpCommuncationDirectionConsuming]);
+  if(kEipInvalidSocket !=
+      connection_object->socket[kUdpCommuncationDirectionConsuming])
+    CloseUdpSocket(connection_object->socket[kUdpCommuncationDirectionConsuming]);
 
-  connection_object->socket[kUdpCommuncationDirectionConsuming] =
-    kEipInvalidSocket;
-
-  CloseUdpSocket(connection_object->socket[kUdpCommuncationDirectionProducing]);
-
-  connection_object->socket[kUdpCommuncationDirectionProducing] =
-    kEipInvalidSocket;
+  if(kEipInvalidSocket !=
+      connection_object->socket[kUdpCommuncationDirectionProducing])
+    CloseUdpSocket(connection_object->socket[kUdpCommuncationDirectionProducing]);
 
   RemoveFromActiveConnections(connection_object);
   ConnectionObjectInitializeEmpty(connection_object);