]> arthur.barton.de Git - netatalk.git/blobdiff - libatalk/dsi/dsi_opensess.c
Merge master
[netatalk.git] / libatalk / dsi / dsi_opensess.c
index 38382c7c938bbf25f421779d5740a2e20518ff0f..2d7fd23b84c947789f060dfe7b89b3e3ab41f398 100644 (file)
 
 static void dsi_init_buffer(DSI *dsi)
 {
-    dsi->maxsize = 64 * dsi->server_quantum;
-    if (!dsi->maxsize)
-        dsi->maxsize = 64 * DSI_SERVQUANT_DEF;
-    if ((dsi->buffer = malloc(dsi->maxsize)) == NULL) {
+    size_t quantum = dsi->server_quantum ? dsi->server_quantum : DSI_SERVQUANT_DEF;
+
+    /* default is 12 * 300k = 3,6 MB (Apr 2011) */
+    if ((dsi->buffer = malloc(dsi->dsireadbuf * quantum)) == NULL) {
         LOG(log_error, logtype_dsi, "dsi_init_buffer: OOM");
         AFP_PANIC("OOM in dsi_init_buffer");
     }
     dsi->start = dsi->buffer;
     dsi->eof = dsi->buffer;
-    dsi->end = dsi->buffer + dsi->maxsize;
+    dsi->end = dsi->buffer + (dsi->dsireadbuf * quantum);
 }
 
 /* OpenSession. set up the connection */