--- embedtools/src/cfexec.c 2009/11/12 10:35:55 1.1.1.1 +++ embedtools/src/cfexec.c 2009/11/12 11:51:50 1.1.1.1.2.3 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ - * $Id: cfexec.c,v 1.1.1.1 2009/11/12 10:35:55 misho Exp $ + * $Id: cfexec.c,v 1.1.1.1.2.3 2009/11/12 11:51:50 misho Exp $ * *************************************************************************/ #include "global.h" @@ -15,6 +15,7 @@ char szUser[MAX_STR], szMount[MAXPATHLEN], szDev[MAXPA szChroot[MAXPATHLEN], szSess[MAXPATHLEN], szConfig[MAXPATHLEN]; extern char compiled[], compiledby[], compilehost[]; + static void Usage() { @@ -109,8 +110,8 @@ int main(int argc, char **argv) // Load variables from config if exists if (!LoadConfig(szConfig, &cfg)) { cfg_LoadAttribute(&cfg, CFG("cfexec"), CFG("timeout"), CFG(szUser), MAX_STR, DEFAULT_TIMEOUT); - Timeout = strtonum(szUser, 1, 3600, &err); - if (!Timeout) { + Timeout = strtonum(szUser, 0, 3600, &err); + if (!Timeout && err) { printf("Error:: in seconds for timeout %s - %s\n", optarg, err); UnloadConfig(&cfg); return 1; @@ -148,8 +149,8 @@ int main(int argc, char **argv) strlcpy(szMount, optarg, MAXPATHLEN); break; case 't': - Timeout = strtonum(optarg, 1, 3600, &err); - if (!Timeout) { + Timeout = strtonum(optarg, 0, 3600, &err); + if (!Timeout && err) { printf("Error:: in seconds for timeout %s - %s\n", optarg, err); return 1; @@ -190,9 +191,11 @@ int main(int argc, char **argv) if ((f = mkevent(&chg, &evt)) == -1) return 5; - memset(&ts, 0, sizeof ts); - ts.tv_sec = Timeout; - switch (kevent(kq, &chg, 1, &evt, 1, &ts)) { + if (Timeout) { + memset(&ts, 0, sizeof ts); + ts.tv_sec = Timeout; + } + switch (kevent(kq, &chg, 1, &evt, 1, !Timeout ? NULL : &ts)) { case -1: printf("Error:: can`t execute safe mount #%d - %s\n", errno, strerror(errno));