--- tftpd/src/tftpd.c 2014/02/21 15:49:51 1.2.2.1 +++ tftpd/src/tftpd.c 2014/02/24 15:23:39 1.3 @@ -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.3 2014/02/24 15:23:39 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -45,12 +45,14 @@ SUCH DAMAGE. */ #include "global.h" #include "srv.h" +#include "buf.h" intptr_t Kill; struct tagCli cli; cfg_root_t cfg; sched_root_task_t *root; +rpack_t *bf; char szCfgName[PATH_MAX] = DEFAULT_CFGNAME; struct timespec timeout = { DEFAULT_TIMEOUT, 0 }; extern char compiled[], compiledby[], compilehost[]; @@ -100,6 +102,11 @@ sigHandler(sched_task_t *task) str = cfg_getAttribute(&cfg, "tftpd", "timeout"); if (str) timeout.tv_sec = strtol(str, NULL, 10); + + endBuffer(); + str = cfg_getAttribute(&cfg, "tftpd", "buf_io"); + if (str) + initBuffer(strtol(str, NULL, 0)); break; case SIGINT: case SIGTERM: @@ -239,6 +246,10 @@ main(int argc, char **argv) chdir(str); } + str = cfg_getAttribute(&cfg, "tftpd", "buf_io"); + if (str) + initBuffer(strtol(str, NULL, 0)); + if (!(pkt = rpack_create(NULL, 0))) { ELIBERR(elwix); close(fd); @@ -265,6 +276,7 @@ end: schedEnd(&root); rpack_detach(pkt); rpack_destroy(&pkt); + endBuffer(); cfgUnloadConfig(&cfg); closelog(); return ret;