2 * $Id: dsi_init.c,v 1.3.14.1.2.1 2005-09-27 10:40:41 didg Exp $
4 * Copyright (c) 1997 Adrian Sun (asun@zoology.washington.edu)
5 * All rights reserved. See COPYRIGHT.
10 #endif /* HAVE_CONFIG_H */
15 #include <atalk/dsi.h>
16 #include "dsi_private.h"
18 DSI *dsi_init(const dsi_proto protocol, const char *program,
19 const char *hostname, const char *address,
20 const int port, const int proxy, const u_int32_t quantum)
24 if ((dsi = (DSI *) calloc(1, sizeof(DSI))) == NULL) {
27 dsi->attn_quantum = DSI_DEFQUANT; /* default quantum size */
28 dsi->server_quantum = quantum; /* default server quantum */
29 dsi->program = program;
31 /* signals to block. we actually disable timers for "known"
32 * large transfers (i.e., dsi_read/write). */
33 sigemptyset(&dsi->sigblockset);
34 sigaddset(&dsi->sigblockset, SIGTERM);
35 sigaddset(&dsi->sigblockset, SIGHUP);
36 sigaddset(&dsi->sigblockset, SIGALRM);
37 sigaddset(&dsi->sigblockset, SIGUSR1);
38 /* always block SIGUSR2 even if SERVERTEXT is not defined */
39 sigaddset(&dsi->sigblockset, SIGUSR2);
41 /* currently the only transport protocol that exists for dsi */
43 if (!dsi_tcp_init(dsi, hostname, address, port, proxy)) {
49 default: /* unknown protocol */
58 void dsi_setstatus(DSI *dsi, char *status, const size_t slen)
61 dsi->statuslen = slen;