• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/ap/gpl/timemachine/netatalk-2.2.0/libatalk/dsi/

Lines Matching defs:dsi

58 #include <atalk/dsi.h>
80 static void dsi_tcp_close(DSI *dsi)
82 if (dsi->socket == -1)
85 close(dsi->socket);
86 dsi->socket = -1;
98 static int dsi_tcp_open(DSI *dsi)
103 len = sizeof(dsi->client);
104 dsi->socket = accept(dsi->serversock, (struct sockaddr *) &dsi->client, &len);
109 request_init(&req, RQ_DAEMON, dsi->program, RQ_FILE, dsi->socket, NULL);
113 close(dsi->socket);
115 dsi->socket = -1;
120 if (dsi->socket < 0)
157 len = dsi_stream_read(dsi, block, 2);
170 len = dsi_stream_read(dsi, block + stored, sizeof(block) - stored);
179 dsi->header.dsi_flags = block[0];
180 dsi->header.dsi_command = block[1];
181 memcpy(&dsi->header.dsi_requestID, block + 2,
182 sizeof(dsi->header.dsi_requestID));
183 memcpy(&dsi->header.dsi_code, block + 4, sizeof(dsi->header.dsi_code));
184 memcpy(&dsi->header.dsi_len, block + 8, sizeof(dsi->header.dsi_len));
185 memcpy(&dsi->header.dsi_reserved, block + 12,
186 sizeof(dsi->header.dsi_reserved));
187 dsi->clientID = ntohs(dsi->header.dsi_requestID);
190 dsi->cmdlen = min(ntohl(dsi->header.dsi_len), DSI_CMDSIZ);
193 while (stored < dsi->cmdlen) {
194 len = dsi_stream_read(dsi, dsi->commands + stored, dsi->cmdlen - stored);
211 getip_string((struct sockaddr *)&dsi->client),
212 getip_port((struct sockaddr *)&dsi->client));
224 static void guess_interface(DSI *dsi, const char *hostname, const char *port)
229 struct sockaddr_in *sa = (struct sockaddr_in *)&dsi->server;
235 if (ioctl(dsi->serversock, SIOCGIFFLAGS, &ifr) >= 0)
243 memset(&dsi->server, 0, sizeof(struct sockaddr_storage));
249 getip_string((struct sockaddr *)&dsi->server), port, ifr.ifr_name);
269 int dsi_tcp_init(DSI *dsi, const char *hostname, const char *address,
276 dsi->protocol = DSI_TCPIP;
305 dsi->serversock = -1;
309 if ((dsi->serversock = socket(p->ai_family, p->ai_socktype, p->ai_protocol)) == -1) {
321 setsockopt(dsi->serversock, SOL_SOCKET, SO_REUSEADDR, &flag, sizeof(flag));
325 setsockopt(dsi->serversock, IPPROTO_IPV6, IPV6_BINDV6ONLY, (char *)&on, sizeof (on));
333 setsockopt(dsi->serversock, SOL_TCP, TCP_NODELAY, &flag, sizeof(flag));
336 if (bind(dsi->serversock, p->ai_addr, p->ai_addrlen) == -1) {
337 close(dsi->serversock);
342 if (listen(dsi->serversock, DSI_TCPMAXPEND) < 0) {
343 close(dsi->serversock);
358 memcpy(&dsi->server, p->ai_addr, p->ai_addrlen);
363 dsi->proto_open = dsi_tcp_open;
364 dsi->proto_close = dsi_tcp_close;
398 /* Store found address in dsi->server */
399 memcpy(&dsi->server, p->ai_addr, p->ai_addrlen);
407 guess_interface(dsi, hostname, port ? port : "548");