/*
- * Copyright (c) 1997 Adrian Sun (asun@zoology.washington.edu)
+ * Copyright (c) 2012, Frank Lahm <franklahm@googlemail.com>
* All rights reserved. See COPYRIGHT.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
+#endif /* HAVE_CONFIG_H */
#include <stdio.h>
#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;
-}