Here's the output from the debugger:
(dbx) run -t /tmp/config.tcl -u nsadmin -g catia
trace in main.c: 64 return Ns_Main(argc, argv, ServerInit);
trace in nsmain.c: 126 Ns_MutexLock(&nsconf.state.lock);
trace in nsmain.c: 85 int uid = 0;
trace in nsmain.c: 86 int gid = 0;
trace in nsmain.c: 87 int debug = 0;
trace in nsmain.c: 88 int mode = 0;
trace in nsmain.c: 89 char *root = NULL;
trace in nsmain.c: 90 char *garg = NULL;
trace in nsmain.c: 91 char *uarg = NULL;
trace in nsmain.c: 92 char *bindargs = NULL;
trace in nsmain.c: 93 char *bindfile = NULL;
trace in nsmain.c: 95 char *server = NULL;
trace in nsmain.c: 126 Ns_MutexLock(&nsconf.state.lock);
trace in mutex.c: 202 Mutex *mutexPtr = GETMUTEX(mutex);
trace in mutex.c: 379 Ns_MasterLock();
trace in master.c: 70 if (initialized) {
trace in mutex.c: 380 if (*mutex == NULL) {
trace in mutex.c: 381 Ns_MutexInit(mutex);
trace in mutex.c: 380 if (*mutex == NULL) {
trace in mutex.c: 381 Ns_MutexInit(mutex);
trace in mutex.c: 82 mutexPtr = ns_calloc(1, sizeof(Mutex));
trace in memory.c: 84 size = num * esize;
trace in memory.c: 85 new = ns_malloc(size);
trace in memory.c: 67 return Tcl_Alloc(size);
trace in memory.c: 68 }
trace in memory.c: 86 memset(new, 0, size);
trace in memory.c: 88 return new;
trace in memory.c: 89 }
trace in mutex.c: 83 mutexPtr->lock = NsLockAlloc();
trace in pthread.c: 156 lock = ns_malloc(sizeof(pthread_mutex_t));
trace in memory.c: 67 return Tcl_Alloc(size);
trace in memory.c: 68 }
trace in pthread.c: 157 err = pthread_mutex_init(lock, NULL);
trace in pthread.c: 159 NsThreadFatal("NsLockAlloc",
"pthread_mutex_init", err);
trace in pthread.c: 158 if (err != 0) {
trace in pthread.c: 161 return lock;
trace in pthread.c: 162 }
trace in mutex.c: 84 Ns_MasterLock();
trace in master.c: 70 if (initialized) {
trace in mutex.c: 85 mutexPtr->nextPtr = firstMutexPtr;
trace in mutex.c: 88 sprintf(mutexPtr->name, "mu%d", mutexPtr->id);
trace in mutex.c: 85 mutexPtr->nextPtr = firstMutexPtr;
trace in mutex.c: 87 mutexPtr->id = nextid++;
trace in mutex.c: 88 sprintf(mutexPtr->name, "mu%d", mutexPtr->id);
trace in mutex.c: 85 mutexPtr->nextPtr = firstMutexPtr;
trace in mutex.c: 86 firstMutexPtr = mutexPtr;
trace in mutex.c: 87 mutexPtr->id = nextid++;
trace in mutex.c: 88 sprintf(mutexPtr->name, "mu%d", mutexPtr->id);
trace in mutex.c: 89 Ns_MasterUnlock();
trace in master.c: 78 if (initialized) {
trace in mutex.c: 90 *mutex = (Ns_Mutex) mutexPtr;
trace in mutex.c: 91 }
trace in mutex.c: 383 Ns_MasterUnlock();
trace in master.c: 78 if (initialized) {
trace in mutex.c: 384 return (Mutex *) *mutex;
trace in mutex.c: 385 }
trace in mutex.c: 204 if (!NsLockTry(mutexPtr->lock)) {
trace in pthread.c: 243 err = pthread_mutex_trylock((pthread_mutex_t
*) lock);
trace in pthread.c: 244 if (err == EBUSY) {
trace in pthread.c: 245 return 0;
trace in pthread.c: 247 NsThreadFatal("NsLockTry",
"pthread_mutex_trylock", err);
trace in pthread.c: 244 if (err == EBUSY) {
trace in pthread.c: 247 NsThreadFatal("NsLockTry",
"pthread_mutex_trylock", err);
trace in pthread.c: 246 } else if (err != 0) {
trace in pthread.c: 249 return 1;
trace in pthread.c: 250 }
trace in mutex.c: 205 NsLockSet(mutexPtr->lock);
trace in mutex.c: 204 if (!NsLockTry(mutexPtr->lock)) {
trace in mutex.c: 208 ++mutexPtr->nlock;
trace in mutex.c: 209 }
trace in nsmain.c: 127 nsconf.state.started = 0;
trace in nsmain.c: 128 Ns_MutexUnlock(&nsconf.state.lock);
trace in mutex.c: 260 Mutex *mutexPtr = (Mutex *) *mutex;
trace in mutex.c: 262 NsLockUnset(mutexPtr->lock);
trace in pthread.c: 274 err = pthread_mutex_unlock((pthread_mutex_t
*) lock);
trace in pthread.c: 276 NsThreadFatal("NsLockUnset",
"pthread_mutex_unlock", err);
trace in pthread.c: 275 if (err != 0) {
trace in pthread.c: 278 }
trace in mutex.c: 263 }
trace in nsmain.c: 146 nsconf.argv0 = argv[0];
trace in nsmain.c: 153 fd = open(DEVNULL, O_RDONLY);
trace in nsmain.c: 146 nsconf.argv0 = argv[0];
trace in nsmain.c: 153 fd = open(DEVNULL, O_RDONLY);
trace in nsmain.c: 154 if (fd > 0) {
trace in nsmain.c: 155 dup2(fd, 0);
trace in nsmain.c: 156 close(fd);
trace in nsmain.c: 167 fd = open(DEVNULL, O_WRONLY);
trace in nsmain.c: 168 if (fd > 0 && fd != 1) {
trace in nsmain.c: 169 close(fd);
trace in nsmain.c: 171 fd = open(DEVNULL, O_WRONLY);
trace in nsmain.c: 172 if (fd > 0 && fd != 2) {
trace in nsmain.c: 173 close(fd);
trace in nsmain.c: 180 opterr = 0;
trace in nsmain.c: 181 while ((i = getopt(argc, argv,
"hpzifVs:t:IRSkKdr:u:g:b:B:")) != -1
) {
trace in nsmain.c: 180 opterr = 0;
trace in nsmain.c: 181 while ((i = getopt(argc, argv,
"hpzifVs:t:IRSkKdr:u:g:b:B:")) != -1) {
trace in nsmain.c: 224 bindfile = optarg;
trace in nsmain.c: 241 sprintf(buf, "option -%c requires a
parameter", optopt);
trace in nsmain.c: 182 switch (i) {
trace in nsmain.c: 241 sprintf(buf, "option -%c requires a
parameter", optopt);
trace in nsmain.c: 182 switch (i) {
trace in nsmain.c: 211 UsageError("multiple -t <file>
options");
trace in nsmain.c: 210 if (nsconf.config != NULL) {
trace in nsmain.c: 211 UsageError("multiple -t <file>
options");
trace in nsmain.c: 213 nsconf.config = optarg;
trace in nsmain.c: 214 break;
trace in nsmain.c: 181 while ((i = getopt(argc, argv,
"hpzifVs:t:IRSkKdr:u:g:b:B:")) != -1) {
trace in nsmain.c: 182 switch (i) {
trace in nsmain.c: 241 sprintf(buf, "option -%c requires a
parameter", optopt);
trace in nsmain.c: 182 switch (i) {
trace in nsmain.c: 237 uarg = optarg;
trace in nsmain.c: 238 break;
trace in nsmain.c: 181 while ((i = getopt(argc, argv,
"hpzifVs:t:IRSkKdr:u:g:b:B:")) != -1) {
trace in nsmain.c: 182 switch (i) {
trace in nsmain.c: 241 sprintf(buf, "option -%c requires a
parameter", optopt);
trace in nsmain.c: 182 switch (i) {
trace in nsmain.c: 234 garg = optarg;
trace in nsmain.c: 235 break;
trace in nsmain.c: 181 while ((i = getopt(argc, argv,
"hpzifVs:t:IRSkKdr:u:g:b:B:")) != -1) {
trace in nsmain.c: 250 if (mode == 'V') {
trace in nsmain.c: 257 } else if (nsconf.config == NULL) {
trace in nsmain.c: 266 nsconf.config = FindConfig(nsconf.config);
trace in nsmain.c: 876 Ns_DStringInit(&ds1);
trace in nsmain.c: 877 Ns_DStringInit(&ds2);
trace in nsmain.c: 878 if (!Ns_PathIsAbsolute(config) && getcwd(cwd,
sizeof(cwd)) != NULL) {
trace in pathname.c: 74 if (isslash(*path)) {
trace in pathname.c: 75 return NS_TRUE;
trace in pathname.c: 74 if (isslash(*path)) {
trace in nsmain.c: 882 Ns_NormalizePath(&ds1, config);
trace in pathname.c: 104 Ns_DStringInit(&tmp);
trace in pathname.c: 105 src = Ns_DStringAppend(&tmp, path);
trace in pathname.c: 120 while (isslash(*src)) {
trace in pathname.c: 121 ++src;
trace in pathname.c: 120 while (isslash(*src)) {
trace in pathname.c: 153 Ns_DStringNAppend(dsPtr, "/", 1);
trace in pathname.c: 124 part = src;
trace in pathname.c: 130 while (*src && !isslash(*src)) {
trace in pathname.c: 131 ++src;
trace in pathname.c: 130 while (*src && !isslash(*src)) {
trace in pathname.c: 131 ++src;
trace in pathname.c: 130 while (*src && !isslash(*src)) {
trace in pathname.c: 131 ++src;
trace in pathname.c: 130 while (*src && !isslash(*src)) {
trace in pathname.c: 134 *src++ = '\0';
trace in pathname.c: 136 if (part[0] == '.' && part[1] == '.' &&
part[2] == '\0') {
trace in pathname.c: 134 *src++ = '\0';
trace in pathname.c: 153 Ns_DStringNAppend(dsPtr, "/", 1);
trace in pathname.c: 136 if (part[0] == '.' && part[1] == '.' &&
part[2] == '\0') {
trace in pathname.c: 146 } else if (part[0] != '\0' &&
trace in pathname.c: 153 Ns_DStringNAppend(dsPtr, "/", 1);
trace in pathname.c: 136 if (part[0] == '.' && part[1] == '.' &&
part[2] == '\0') {
trace in pathname.c: 147 (part[0] != '.' || part[1] !=
'\0')) {
trace in pathname.c: 153 Ns_DStringNAppend(dsPtr, "/", 1);
trace in pathname.c: 154 Ns_DStringAppend(dsPtr, part);
trace in pathname.c: 156 } while (end != '\0');
trace in pathname.c: 124 part = src;
trace in pathname.c: 130 while (*src && !isslash(*src)) {
trace in pathname.c: 131 ++src;
trace in pathname.c: 130 while (*src && !isslash(*src)) {
trace in pathname.c: 131 ++src;
trace in pathname.c: 130 while (*src && !isslash(*src)) {
trace in pathname.c: 131 ++src;
trace in pathname.c: 130 while (*src && !isslash(*src)) {
trace in pathname.c: 131 ++src;
trace in pathname.c: 130 while (*src && !isslash(*src)) {
trace in pathname.c: 131 ++src;
trace in pathname.c: 130 while (*src && !isslash(*src)) {
trace in pathname.c: 131 ++src;
trace in pathname.c: 130 while (*src && !isslash(*src)) {
trace in pathname.c: 131 ++src;
trace in pathname.c: 130 while (*src && !isslash(*src)) {
trace in pathname.c: 131 ++src;
trace in pathname.c: 130 while (*src && !isslash(*src)) {
trace in pathname.c: 131 ++src;
trace in pathname.c: 130 while (*src && !isslash(*src)) {
trace in pathname.c: 131 ++src;
trace in pathname.c: 130 while (*src && !isslash(*src)) {
trace in pathname.c: 134 *src++ = '\0';
trace in pathname.c: 136 if (part[0] == '.' && part[1] == '.' &&
part[2] == '\0') {
trace in pathname.c: 134 *src++ = '\0';
trace in pathname.c: 153 Ns_DStringNAppend(dsPtr, "/", 1);
trace in pathname.c: 136 if (part[0] == '.' && part[1] == '.' &&
part[2] == '\0') {
trace in pathname.c: 146 } else if (part[0] != '\0' &&
trace in pathname.c: 153 Ns_DStringNAppend(dsPtr, "/", 1);
trace in pathname.c: 136 if (part[0] == '.' && part[1] == '.' &&
part[2] == '\0') {
trace in pathname.c: 147 (part[0] != '.' || part[1] !=
'\0')) {
trace in pathname.c: 153 Ns_DStringNAppend(dsPtr, "/", 1);
trace in pathname.c: 154 Ns_DStringAppend(dsPtr, part);
trace in pathname.c: 156 } while (end != '\0');
trace in pathname.c: 162 if (dsPtr->string[0] == '\0') {
trace in pathname.c: 165 Ns_DStringFree(&tmp);
trace in pathname.c: 167 return dsPtr->string;
trace in pathname.c: 168 }
trace in nsmain.c: 883 config = Ns_DStringExport(&ds1);
trace in dstring.c: 97 if (dsPtr->string != dsPtr->staticSpace) {
trace in dstring.c: 101 s = ns_malloc((size_t)dsPtr->length+1);
trace in memory.c: 67 return Tcl_Alloc(size);
trace in memory.c: 68 }
trace in dstring.c: 102 memcpy(s, dsPtr->string,
(size_t)(dsPtr->length+1));
trace in dstring.c: 101 s = ns_malloc((size_t)dsPtr->length+1);
trace in dstring.c: 102 memcpy(s, dsPtr->string,
(size_t)(dsPtr->length+1));
trace in dstring.c: 104 Ns_DStringFree(dsPtr);
trace in dstring.c: 105 return s;
trace in dstring.c: 106 }
trace in nsmain.c: 884 Ns_DStringFree(&ds2);
trace in nsmain.c: 885 return config;
trace in nsmain.c: 886 }
trace in nsmain.c: 267 config = NsConfigRead(nsconf.config);
trace in config.c: 384 if (stat(file, &st) != 0) {
trace in config.c: 385 Ns_Fatal("config: stat(%s) failed: %s",
file, strerror(errno));
trace in config.c: 384 if (stat(file, &st) != 0) {
trace in config.c: 387 if (S_ISREG(st.st_mode) == 0) {
trace in config.c: 388 Ns_Fatal("config: not regular file: %s", file);
trace in config.c: 387 if (S_ISREG(st.st_mode) == 0) {
trace in config.c: 390 fd = open(file, O_RDONLY);
trace in config.c: 391 if (fd < 0) {
trace in config.c: 394 n = st.st_size;
trace in config.c: 395 buf = ns_malloc(n + 1);
trace in memory.c: 67 return Tcl_Alloc(size);
trace in memory.c: 68 }
trace in config.c: 396 n = read(fd, buf, n);
trace in config.c: 400 buf[n] = '\0';
trace in config.c: 401 close(fd);
trace in config.c: 402 return buf;
trace in config.c: 403 }
trace in nsmain.c: 275 if (uarg != NULL) {
trace in nsmain.c: 276 uid = Ns_GetUid(uarg);
trace in unix.c: 366 Ns_MutexLock(&lock);
trace in mutex.c: 202 Mutex *mutexPtr = GETMUTEX(mutex);
trace in mutex.c: 379 Ns_MasterLock();
trace in master.c: 70 if (initialized) {
trace in mutex.c: 380 if (*mutex == NULL) {
trace in mutex.c: 381 Ns_MutexInit(mutex);
trace in mutex.c: 380 if (*mutex == NULL) {
trace in mutex.c: 381 Ns_MutexInit(mutex);
trace in mutex.c: 82 mutexPtr = ns_calloc(1, sizeof(Mutex));
trace in memory.c: 84 size = num * esize;
trace in memory.c: 85 new = ns_malloc(size);
trace in memory.c: 67 return Tcl_Alloc(size);
trace in memory.c: 68 }
trace in memory.c: 86 memset(new, 0, size);
trace in memory.c: 88 return new;
trace in memory.c: 89 }
trace in mutex.c: 83 mutexPtr->lock = NsLockAlloc();
trace in pthread.c: 156 lock = ns_malloc(sizeof(pthread_mutex_t));
trace in memory.c: 67 return Tcl_Alloc(size);
trace in memory.c: 68 }
trace in pthread.c: 157 err = pthread_mutex_init(lock, NULL);
trace in pthread.c: 159 NsThreadFatal("NsLockAlloc",
"pthread_mutex_init", err);
trace in pthread.c: 158 if (err != 0) {
trace in pthread.c: 161 return lock;
trace in pthread.c: 162 }
trace in mutex.c: 84 Ns_MasterLock();
trace in master.c: 70 if (initialized) {
trace in mutex.c: 85 mutexPtr->nextPtr = firstMutexPtr;
trace in mutex.c: 88 sprintf(mutexPtr->name, "mu%d", mutexPtr->id);
trace in mutex.c: 85 mutexPtr->nextPtr = firstMutexPtr;
trace in mutex.c: 87 mutexPtr->id = nextid++;
trace in mutex.c: 88 sprintf(mutexPtr->name, "mu%d", mutexPtr->id);
trace in mutex.c: 85 mutexPtr->nextPtr = firstMutexPtr;
trace in mutex.c: 86 firstMutexPtr = mutexPtr;
trace in mutex.c: 87 mutexPtr->id = nextid++;
trace in mutex.c: 88 sprintf(mutexPtr->name, "mu%d", mutexPtr->id);
trace in mutex.c: 89 Ns_MasterUnlock();
trace in master.c: 78 if (initialized) {
trace in mutex.c: 90 *mutex = (Ns_Mutex) mutexPtr;
trace in mutex.c: 91 }
trace in mutex.c: 383 Ns_MasterUnlock();
trace in master.c: 78 if (initialized) {
trace in mutex.c: 384 return (Mutex *) *mutex;
trace in mutex.c: 385 }
trace in mutex.c: 204 if (!NsLockTry(mutexPtr->lock)) {
trace in pthread.c: 243 err = pthread_mutex_trylock((pthread_mutex_t
*) lock);
trace in pthread.c: 244 if (err == EBUSY) {
trace in pthread.c: 245 return 0;
trace in pthread.c: 247 NsThreadFatal("NsLockTry",
"pthread_mutex_trylock", err);
trace in pthread.c: 244 if (err == EBUSY) {
trace in pthread.c: 247 NsThreadFatal("NsLockTry",
"pthread_mutex_trylock", err);
trace in pthread.c: 246 } else if (err != 0) {
trace in pthread.c: 249 return 1;
trace in pthread.c: 250 }
trace in mutex.c: 205 NsLockSet(mutexPtr->lock);
trace in mutex.c: 204 if (!NsLockTry(mutexPtr->lock)) {
trace in mutex.c: 208 ++mutexPtr->nlock;
trace in mutex.c: 209 }
trace in unix.c: 367 pw = getpwnam(user);
trace in unix.c: 368 if (pw == NULL) {
trace in unix.c: 371 retcode = pw->pw_uid;
trace in unix.c: 373 Ns_MutexUnlock(&lock);
trace in unix.c: 368 if (pw == NULL) {
trace in unix.c: 373 Ns_MutexUnlock(&lock);
trace in mutex.c: 260 Mutex *mutexPtr = (Mutex *) *mutex;
trace in mutex.c: 262 NsLockUnset(mutexPtr->lock);
trace in pthread.c: 274 err = pthread_mutex_unlock((pthread_mutex_t
*) lock);
trace in pthread.c: 276 NsThreadFatal("NsLockUnset",
"pthread_mutex_unlock", err);
trace in pthread.c: 275 if (err != 0) {
trace in pthread.c: 278 }
trace in mutex.c: 263 }
trace in unix.c: 374 return retcode;
trace in unix.c: 375 }
trace in nsmain.c: 277 gid = Ns_GetUserGid(uarg);
trace in unix.c: 332 Ns_MutexLock(&lock);
trace in mutex.c: 202 Mutex *mutexPtr = GETMUTEX(mutex);
trace in mutex.c: 204 if (!NsLockTry(mutexPtr->lock)) {
trace in pthread.c: 243 err = pthread_mutex_trylock((pthread_mutex_t
*) lock);
trace in pthread.c: 244 if (err == EBUSY) {
trace in pthread.c: 245 return 0;
trace in pthread.c: 247 NsThreadFatal("NsLockTry",
"pthread_mutex_trylock", err);
trace in pthread.c: 244 if (err == EBUSY) {
trace in pthread.c: 247 NsThreadFatal("NsLockTry",
"pthread_mutex_trylock", err);
trace in pthread.c: 246 } else if (err != 0) {
trace in pthread.c: 249 return 1;
trace in pthread.c: 250 }
trace in mutex.c: 205 NsLockSet(mutexPtr->lock);
trace in mutex.c: 204 if (!NsLockTry(mutexPtr->lock)) {
trace in mutex.c: 208 ++mutexPtr->nlock;
trace in mutex.c: 209 }
trace in unix.c: 333 pw = getpwnam(user);
trace in unix.c: 334 if (pw == NULL) {
trace in unix.c: 337 retcode = pw->pw_gid;
trace in unix.c: 339 Ns_MutexUnlock(&lock);
trace in unix.c: 334 if (pw == NULL) {
trace in unix.c: 339 Ns_MutexUnlock(&lock);
trace in mutex.c: 260 Mutex *mutexPtr = (Mutex *) *mutex;
trace in mutex.c: 262 NsLockUnset(mutexPtr->lock);
trace in pthread.c: 274 err = pthread_mutex_unlock((pthread_mutex_t
*) lock);
trace in pthread.c: 276 NsThreadFatal("NsLockUnset",
"pthread_mutex_unlock", err);
trace in pthread.c: 275 if (err != 0) {
trace in pthread.c: 278 }
trace in mutex.c: 263 }
trace in unix.c: 340 return retcode;
trace in unix.c: 341 }
trace in nsmain.c: 278 if (uid < 0) {
trace in nsmain.c: 281 if (uid == 0) {
trace in nsmain.c: 285 if (garg != NULL) {
trace in nsmain.c: 286 gid = Ns_GetGid(garg);
trace in unix.c: 298 Ns_MutexLock(&lock);
trace in mutex.c: 202 Mutex *mutexPtr = GETMUTEX(mutex);
trace in mutex.c: 204 if (!NsLockTry(mutexPtr->lock)) {
trace in pthread.c: 243 err = pthread_mutex_trylock((pthread_mutex_t
*) lock);
trace in pthread.c: 244 if (err == EBUSY) {
trace in pthread.c: 245 return 0;
trace in pthread.c: 247 NsThreadFatal("NsLockTry",
"pthread_mutex_trylock", err);
trace in pthread.c: 244 if (err == EBUSY) {
trace in pthread.c: 247 NsThreadFatal("NsLockTry",
"pthread_mutex_trylock", err);
trace in pthread.c: 246 } else if (err != 0) {
trace in pthread.c: 249 return 1;
trace in pthread.c: 250 }
trace in mutex.c: 205 NsLockSet(mutexPtr->lock);
trace in mutex.c: 204 if (!NsLockTry(mutexPtr->lock)) {
trace in mutex.c: 208 ++mutexPtr->nlock;
trace in mutex.c: 209 }
trace in unix.c: 299 grent = getgrnam(group);
trace in unix.c: 300 if (grent == NULL) {
trace in unix.c: 303 retcode = grent->gr_gid;
trace in unix.c: 305 Ns_MutexUnlock(&lock);
trace in unix.c: 300 if (grent == NULL) {
trace in unix.c: 305 Ns_MutexUnlock(&lock);
trace in mutex.c: 260 Mutex *mutexPtr = (Mutex *) *mutex;
trace in mutex.c: 262 NsLockUnset(mutexPtr->lock);
trace in pthread.c: 274 err = pthread_mutex_unlock((pthread_mutex_t
*) lock);
trace in pthread.c: 276 NsThreadFatal("NsLockUnset",
"pthread_mutex_unlock", err);
trace in pthread.c: 275 if (err != 0) {
trace in pthread.c: 278 }
trace in mutex.c: 263 }
trace in unix.c: 306 return retcode;
trace in unix.c: 307 }
trace in nsmain.c: 287 if (gid < 0) {
trace in nsmain.c: 307 if (getrlimit(RLIMIT_NOFILE, &rl) != 0) {
trace in nsmain.c: 311 if (rl.rlim_max > FD_SETSIZE) {
trace in nsmain.c: 312 rl.rlim_max = FD_SETSIZE;
trace in nsmain.c: 314 if (rl.rlim_cur != rl.rlim_max) {
trace in nsmain.c: 315 rl.rlim_cur = rl.rlim_max;
trace in nsmain.c: 316 if (setrlimit(RLIMIT_NOFILE, &rl) != 0) {
trace in nsmain.c: 330 NsPreBind(bindargs, bindfile);
trace in binder.c: 142 if (args != NULL) {
trace in binder.c: 143 PreBind(args);
trace in binder.c: 145 if (file != NULL && (fp = fopen(file, "r")) !=
NULL) {
trace in binder.c: 151 }
trace in nsmain.c: 336 if (root != NULL) {
trace in nsmain.c: 350 if (getuid() == 0) {
trace in nsmain.c: 351 if (uid == 0) {
trace in nsmain.c: 355 if (gid != 0 && gid != getgid() &&
setgid(gid) != 0) {
trace in nsmain.c: 358 if (setuid(uid) != 0) {
trace in nsmain.c: 368 if (mode == 0) {
trace in nsmain.c: 369 i = ns_fork();
trace in fork.c: 64 return fork();
[10/Nov/2003:18:24:05][20214.1][] Notice: config.tcl: starting to read
config file...
[10/Nov/2003:18:24:05][20214.1][] Notice: right before SLC...
trace in fork.c: 66 }
trace in nsmain.c: 370 if (i < 0) {
trace in nsmain.c: 373 if (i > 0) {
trace in nsmain.c: 374 return 0;
trace in nsmain.c: 648 }
trace in main.c: 65 }
execution completed
(dbx)
Any help is appreaciated, as I'm not a C-Programmer, just a C-Hacker. I
would be glad to contribute my finshed findings to an officially newly test
platform, that being AIX5.1
Thanks.
Ken
--
AOLserver - http://www.aolserver.com/
To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> with the
body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of
your email blank.