]> arthur.barton.de Git - netatalk.git/blobdiff - libatalk/dsi/dsi_init.c
Rework volume parsing code to ini style and rework main, config init and dsi startup
[netatalk.git] / libatalk / dsi / dsi_init.c
index ee75fcc71ebb26be21a7c3ca40241c352a1d2409..568f9ffdfd9f6565547f453f45a0f1ea49ed409e 100644 (file)
 #include <atalk/dsi.h>
 #include "dsi_private.h"
 
-DSI *dsi_init(const dsi_proto protocol, const char *program, 
-             const char *hostname, const char *address,
-             const char *port, const int proxy, const uint32_t quantum)
+DSI *dsi_init(AFPObj *obj, const char *hostname, const char *address, const char *port)
 {
     DSI                *dsi;
 
-    if ((dsi = (DSI *) calloc(1, sizeof(DSI))) == NULL) {
-      return( NULL );
-    }
-    dsi->attn_quantum = DSI_DEFQUANT; /* default quantum size */
-    dsi->server_quantum = quantum; /* default server quantum */
-    dsi->program = program;
-
-    switch (protocol) {
-      /* currently the only transport protocol that exists for dsi */
-    case DSI_TCPIP: 
-      if (!dsi_tcp_init(dsi, hostname, address, port, proxy)) {
-       free(dsi);
-       dsi = NULL;
-      }
-      break;
-
-    default: /* unknown protocol */
-      free(dsi);
-      dsi = NULL;
-      break;
+    if ((dsi = (DSI *)calloc(1, sizeof(DSI))) == NULL)
+        return NULL;
+
+    dsi->attn_quantum = DSI_DEFQUANT;
+    dsi->server_quantum = obj->options.server_quantum;
+    dsi->dsireadbuf = obj->options->dsireadbuf;
+
+    /* currently the only transport protocol that exists for dsi */
+    if (dsi_tcp_init(dsi, hostname, address, port) != 0) {
+        free(dsi);
+        dsi = NULL;
     }
 
     return dsi;