diff --git a/src/sbbs3/getnode.cpp b/src/sbbs3/getnode.cpp index 1249685a6c068c6017fd04e8c33aec2cf5cf2f73..5e0d13c811346d2adc563bd8932d534a8b3a7350 100644 --- a/src/sbbs3/getnode.cpp +++ b/src/sbbs3/getnode.cpp @@ -43,12 +43,11 @@ bool sbbs_t::getnodedat(uint number, node_t *node, bool lockit) if(node!=&thisnode) memset(node,0,sizeof(node_t)); - SAFEPRINTF(str,"%snode.dab",cfg.ctrl_dir); pthread_mutex_lock(&nodefile_mutex); if(nodefile==-1) { - if((nodefile=nopen(str,O_RDWR|O_DENYNONE))==-1) { + if((nodefile=opennodedat(&cfg))==-1) { pthread_mutex_unlock(&nodefile_mutex); - errormsg(WHERE,ERR_OPEN,str,O_RDWR|O_DENYNONE); + errormsg(WHERE,ERR_OPEN,"nodefile",number); return false; } } diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index 9cac3aabff648e72d5a3152574b860810a5a477b..2b28fafdde288c36a07b5c02bb87ada738827d1f 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -3630,11 +3630,10 @@ bool sbbs_t::init() } /* Shared NODE files */ - SAFEPRINTF2(str,"%s%s",cfg.ctrl_dir,"node.dab"); pthread_mutex_lock(&nodefile_mutex); - if((nodefile=nopen(str,O_DENYNONE|O_RDWR|O_CREAT))==-1) { + if((nodefile=opennodedat(&cfg))==-1) { pthread_mutex_unlock(&nodefile_mutex); - errormsg(WHERE, ERR_OPEN, str, cfg.node_num); + errormsg(WHERE, ERR_OPEN, "nodefile", cfg.node_num); return(false); } memset(&node,0,sizeof(node_t)); /* write NULL to node struct */ @@ -3643,13 +3642,13 @@ bool sbbs_t::init() lseek(nodefile,0L,SEEK_END); if(write(nodefile,&node,sizeof(node_t))!=sizeof(node_t)) { pthread_mutex_unlock(&nodefile_mutex); - errormsg(WHERE,ERR_WRITE,str,sizeof(node_t)); + errormsg(WHERE,ERR_WRITE,"nodefile",sizeof(node_t)); break; } } if(chsize(nodefile, (off_t)(cfg.sys_nodes*sizeof(node_t))) != 0) { pthread_mutex_unlock(&nodefile_mutex); - errormsg(WHERE, ERR_LEN, str, cfg.sys_nodes*sizeof(node_t)); + errormsg(WHERE, ERR_LEN, "ndoefile", cfg.sys_nodes*sizeof(node_t)); } for(i=0; cfg.node_num>0 && i<LOOP_NODEDAB; i++) { if(lock(nodefile,(cfg.node_num-1)*sizeof(node_t),sizeof(node_t))==0) { @@ -3665,7 +3664,7 @@ bool sbbs_t::init() pthread_mutex_unlock(&nodefile_mutex); if(i>=LOOP_NODEDAB) { - errormsg(WHERE, ERR_LOCK, str, cfg.node_num); + errormsg(WHERE, ERR_LOCK, "nodefile", cfg.node_num); return(false); } diff --git a/src/sbbs3/userdat.c b/src/sbbs3/userdat.c index 65c1a79e4a568906fa7b36905fe35f1914b33d72..ad3e15c70262f5364a89a77c95b8c196576d84ec 100644 --- a/src/sbbs3/userdat.c +++ b/src/sbbs3/userdat.c @@ -1099,7 +1099,7 @@ int opennodedat(scfg_t* cfg) return -1; SAFEPRINTF(fname, "%snode.dab", cfg->ctrl_dir); - return nopen(fname, O_RDWR|O_DENYNONE); + return nopen(fname, O_RDWR | O_CREAT | O_DENYNONE); } /****************************************************************************/