瀏覽代碼

use sensible buffer sizes

Julius Pfrommer 10 年之前
父節點
當前提交
80df96a185
共有 3 個文件被更改,包括 6 次插入4 次删除
  1. 2 0
      examples/networklayer_tcp.c
  2. 2 2
      examples/networklayer_tcp_concurrent.c
  3. 2 2
      src/ua_connection.c

+ 2 - 0
examples/networklayer_tcp.c

@@ -52,6 +52,7 @@ typedef struct TCPConnectionHandle {
 
 UA_Int32 NetworklayerTCP_new(NetworklayerTCP **newlayer, UA_ConnectionConfig localConf,
 							 UA_UInt32 port) {
+    if(!*newlayer) return UA_ERROR;
     *newlayer = malloc(sizeof(NetworklayerTCP));
     if(newlayer == UA_NULL)
         return UA_ERROR;
@@ -210,6 +211,7 @@ void readConnection(NetworklayerTCP *layer, UA_Server *server, TCPConnection *en
 			UA_Server_processBinaryMessage(server, &entry->connection, &readBuffer);
 		}
 	}
+    readBuffer.length = layer->localConf.recvBufferSize; // because this was malloc'd. Length=0 would lead to errors.
 	UA_ByteString_deleteMembers(&readBuffer);
 }
 

+ 2 - 2
examples/networklayer_tcp_concurrent.c

@@ -114,8 +114,8 @@ static void handle_message(uv_stream_t* handle, ssize_t nread, uv_buf_t buf) {
 }
 
 static uv_buf_t read_alloc(uv_handle_t * handle, size_t suggested_size) {
-    //UA_Server *server = (UA_Server*)handle->loop->data;
-    UA_UInt32 receive_bufsize = 2048; // todo: server->layer.localConf.recvBufferSize;
+    NetworklayerTCP *layer = (NetworklayerTCP*)handle->loop->data;
+    UA_UInt32 receive_bufsize = layer->localConf.recvBufferSize;
 	char* buf = malloc(sizeof(char)*receive_bufsize);
     return uv_buf_init(buf, receive_bufsize);
 }

+ 2 - 2
src/ua_connection.c

@@ -1,8 +1,8 @@
 #include "ua_connection.h"
 #include "ua_util.h"
 
-UA_ConnectionConfig UA_ConnectionConfig_standard = { .protocolVersion = 0,    .sendBufferSize = 8192,
-                                                     .recvBufferSize  = 8192, .maxMessageSize = 8192,
+UA_ConnectionConfig UA_ConnectionConfig_standard = { .protocolVersion = 0,    .sendBufferSize = 65536,
+                                                     .recvBufferSize  = 65536, .maxMessageSize = 65536,
                                                      .maxChunkCount   = 1 };
 
 UA_Int32 UA_Connection_init(UA_Connection *connection, UA_ConnectionConfig localConf, void *callbackHandle,