]> arthur.barton.de Git - netatalk.git/blobdiff - libatalk/dsi/dsi_init.c
Add vasprintf compatibility function
[netatalk.git] / libatalk / dsi / dsi_init.c
index 6d4dd0d342c6b3241ffc1c805a39bdb5f94959a3..824d31f36d255d407192bd6a9eaec98be63fda80 100644 (file)
@@ -1,7 +1,5 @@
 /*
- * $Id: dsi_init.c,v 1.3 2001-06-29 14:14:46 rufustfirefly Exp $
- *
- * Copyright (c) 1997 Adrian Sun (asun@zoology.washington.edu)
+ * Copyright (c) 2012, Frank Lahm <franklahm@googlemail.com>
  * All rights reserved. See COPYRIGHT.
  */
 
 #include <stdlib.h>
 #include <signal.h>
 #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 int port, const int proxy, const u_int32_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;
+    if ((dsi = (DSI *)calloc(1, sizeof(DSI))) == NULL)
+        return NULL;
 
-    /* signals to block. we actually disable timers for "known" 
-     * large transfers (i.e., dsi_read/write). */
-    sigemptyset(&dsi->sigblockset);
-    sigaddset(&dsi->sigblockset, SIGTERM);
-    sigaddset(&dsi->sigblockset, SIGHUP);
-    sigaddset(&dsi->sigblockset, SIGALRM);
-    
-    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;
+    dsi->attn_quantum = DSI_DEFQUANT;
+    dsi->server_quantum = obj->options.server_quantum;
+    dsi->dsireadbuf = obj->options.dsireadbuf;
 
-    default: /* unknown protocol */
-      free(dsi);
-      dsi = NULL;
-      break;
+    /* currently the only transport protocol that exists for dsi */
+    if (dsi_tcp_init(dsi, hostname, address, port) != 0) {
+        free(dsi);
+        dsi = NULL;
     }
 
     return dsi;
 }
-
-void dsi_setstatus(DSI *dsi, u_int8_t *status, const int slen)
-{
-    dsi->status = status;
-    dsi->statuslen = slen;
-}