--- tftpd/src/tftpd.c 2014/02/21 15:49:51 1.2.2.1 +++ tftpd/src/tftpd.c 2014/02/21 15:58:30 1.2.2.2 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: tftpd.c,v 1.2.2.1 2014/02/21 15:49:51 misho Exp $ +* $Id: tftpd.c,v 1.2.2.2 2014/02/21 15:58:30 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -51,6 +51,7 @@ intptr_t Kill; struct tagCli cli; cfg_root_t cfg; sched_root_task_t *root; +ait_val_t *bufIO; char szCfgName[PATH_MAX] = DEFAULT_CFGNAME; struct timespec timeout = { DEFAULT_TIMEOUT, 0 }; extern char compiled[], compiledby[], compilehost[]; @@ -100,6 +101,14 @@ sigHandler(sched_task_t *task) str = cfg_getAttribute(&cfg, "tftpd", "timeout"); if (str) timeout.tv_sec = strtol(str, NULL, 10); + + ait_freeVar(&bufIO); + str = cfg_getAttribute(&cfg, "tftpd", "buf_io"); + if (str) { + bufIO = ait_allocVar(); + if (bufIO) + AIT_SET_BUFSIZ(bufIO, 0, strtol(str, NULL, 0)); + } break; case SIGINT: case SIGTERM: @@ -239,6 +248,13 @@ main(int argc, char **argv) chdir(str); } + str = cfg_getAttribute(&cfg, "tftpd", "buf_io"); + if (str) { + bufIO = ait_allocVar(); + if (bufIO) + AIT_SET_BUFSIZ(bufIO, 0, strtol(str, NULL, 0)); + } + if (!(pkt = rpack_create(NULL, 0))) { ELIBERR(elwix); close(fd); @@ -265,6 +281,7 @@ end: schedEnd(&root); rpack_detach(pkt); rpack_destroy(&pkt); + ait_freeVar(&bufIO); cfgUnloadConfig(&cfg); closelog(); return ret;