Home | History | Annotate | Download | only in src

Lines Matching full:daemon

44   char *packet = daemon->packet;
53 int port = daemon->start_tftp_port; /* may be zero to use ephemeral port */
78 iov.iov_len = daemon->packet_buff_sz;
81 daemon->srv_save = NULL;
86 if (daemon->options & OPT_NOWILD)
129 for (tmp = daemon->dhcp_except; tmp; tmp = tmp->next)
172 if (errno == EADDRINUSE && daemon->start_tftp_port != 0)
174 if (++port <= daemon->end_tftp_port)
205 !(daemon->options & OPT_TFTP_NOBLOCK))
210 if (transfer->blocksize > (unsigned)daemon->packet_buff_sz - 4)
211 transfer->blocksize = (unsigned)daemon->packet_buff_sz - 4;
230 strcpy(daemon->namebuff, "/");
231 if (daemon->tftp_prefix)
233 if (daemon->tftp_prefix[0] == '/')
234 daemon->namebuff[0] = 0;
235 strncat(daemon->namebuff, daemon->tftp_prefix, (MAXDNAME-1) - strlen(daemon->namebuff));
236 if (daemon->tftp_prefix[strlen(daemon->tftp_prefix)-1] != '/')
237 strncat(daemon->namebuff, "/", (MAXDNAME-1) - strlen(daemon->namebuff));
239 if (daemon->options & OPT_TFTP_APREF)
241 size_t oldlen = strlen(daemon->namebuff);
244 strncat(daemon->namebuff, inet_ntoa(peer.sin_addr), (MAXDNAME-1) - strlen(daemon->namebuff));
245 strncat(daemon->namebuff, "/", (MAXDNAME-1) - strlen(daemon->namebuff));
248 if (stat(daemon->namebuff, &statbuf) == -1 || !S_ISDIR(statbuf.st_mode))
249 daemon->namebuff[oldlen] = 0;
255 if (strstr(filename, daemon->namebuff) == filename)
256 daemon->namebuff[0] = 0;
262 daemon->namebuff[0] = 0;
263 strncat(daemon->namebuff, filename, (MAXDNAME-1) - strlen(daemon->namebuff));
269 len = tftp_err_oops(packet, daemon->namebuff);
282 my_syslog(MS_TFTP | LOG_INFO, _("TFTP sent %s to %s"), daemon->namebuff, inet_ntoa(peer.sin_addr));
283 transfer->next = daemon->tftp_trans;
284 daemon->tftp_trans = transfer;
290 char *packet = daemon->packet, *namebuff = daemon->namebuff;
298 if (daemon->tftp_prefix && strstr(namebuff, "/../"))
325 else if ((daemon->options & OPT_TFTP_SECURE) && uid != statbuf.st_uid)
333 for (t = daemon->tftp_trans; t; t = t->next)
378 } *mess = (struct ack *)daemon->packet;
381 for (transfer = daemon->tftp_trans, up = &daemon->tftp_trans; transfer; transfer = tmp)
388 daemon->srv_save = NULL;
390 if ((len = recv(transfer->sockfd, daemon->packet, daemon->packet_buff_sz, 0)) >= (ssize_t)sizeof(struct ack))
402 char *p = daemon->packet + sizeof(struct ack);
403 char *end = daemon->packet + len;
435 daemon->srv_save = NULL;
437 if ((len = get_block(daemon->packet, transfer)) == -1)
439 len = tftp_err_oops(daemon->packet, transfer->file->filename);
453 while(sendto(transfer->sockfd, daemon->packet, len, 0,