Quellcode durchsuchen

a better fix of valgrind related issues, relates to #153

Stasik0 vor 10 Jahren
Ursprung
Commit
171fc1fb97
2 geänderte Dateien mit 5 neuen und 6 gelöschten Zeilen
  1. 2 6
      examples/networklayer_udp.c
  2. 3 0
      src/server/ua_server_binary.c

+ 2 - 6
examples/networklayer_udp.c

@@ -78,8 +78,8 @@ static void setFDSet(NetworkLayerUDP *layer) {
 }
 
 // the callbacks are thread-safe if UA_MULTITHREADING is defined
-void closeConnectionUDP(UDPConnection *write){
-
+void closeConnectionUDP(UDPConnection *handle){
+	free(handle);
 }
 void writeCallbackUDP(UDPConnection *handle, UA_ByteStringArray gather_buf);
 
@@ -137,10 +137,6 @@ void writeCallbackUDP(UDPConnection *handle, UA_ByteStringArray gather_buf) {
         nWritten += n;
 	}
 #endif
-	//remove the session
-	//TODO: without this line we have a memleak
-	//with this line we have some illegal memory flagged by valgrind
-	free(handle);
 }
 
 UA_StatusCode NetworkLayerUDP_start(NetworkLayerUDP *layer) {

+ 3 - 0
src/server/ua_server_binary.c

@@ -441,7 +441,10 @@ void UA_Server_processBinaryMessage(UA_Server *server, UA_Connection *connection
                 if(connection->state == UA_CONNECTION_OPENING &&
                 		connection->channel == UA_NULL) {
                 	processMessage(connection, server, msg, &pos);
+                	connection->close(connection);
                 	break;
+                }else{
+                	connection->close(connection);
                 }
 #else
                 connection->close(connection);