--- embedtools/src/cfexec.c 2009/11/12 11:45:34 1.1.1.1.2.2 +++ embedtools/src/cfexec.c 2011/06/08 12:45:41 1.2 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ - * $Id: cfexec.c,v 1.1.1.1.2.2 2009/11/12 11:45:34 misho Exp $ + * $Id: cfexec.c,v 1.2 2011/06/08 12:45:41 misho Exp $ * *************************************************************************/ #include "global.h" @@ -25,7 +25,7 @@ static void Usage() "\t-v\t\tVerbose ...\n" "\t-c \tAfter execute chroot to dir [default=/]\n" "\t-u \tAfter execute suid to user [default=root]\n" - "\t-d \tOther device [default=/dev/ufs/AITBSDonCF]\n" + "\t-d \tOther device [default=/dev/ufs/elwix]\n" "\t-m \tOther mount dir [default=/cf]\n" "\t-t \tTimeout for autolock mount dir after seconds [default=300]\n" "\n", compiled, compiledby, compilehost); @@ -110,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; @@ -149,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; @@ -191,8 +191,10 @@ int main(int argc, char **argv) if ((f = mkevent(&chg, &evt)) == -1) return 5; - memset(&ts, 0, sizeof ts); - ts.tv_sec = Timeout; + 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", @@ -237,7 +239,7 @@ int main(int argc, char **argv) if (strncmp(szUser, "root", 5)) setuser(); - chdir("/"); + /* chdir("/"); */ execvp(*argv, argv); } _exit(127);