-const char miscutil_rcs[] = "$Id: miscutil.c,v 1.22 2001/10/26 17:39:38 oes Exp $";
+const char miscutil_rcs[] = "$Id: miscutil.c,v 1.25 2001/11/13 00:16:38 jongfoster Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/miscutil.c,v $
*
* Revisions :
* $Log: miscutil.c,v $
+ * Revision 1.25 2001/11/13 00:16:38 jongfoster
+ * Replacing references to malloc.h with the standard stdlib.h
+ * (See ANSI or K&R 2nd Ed)
+ *
+ * Revision 1.24 2001/11/05 21:41:43 steudten
+ * Add changes to be a real daemon just for unix os.
+ * (change cwd to /, detach from controlling tty, set
+ * process group and session leader to the own process.
+ * Add DBG() Macro.
+ * Add some fatal-error log message for failed malloc().
+ * Add '-d' if compiled with 'configure --with-debug' to
+ * enable debug output.
+ *
+ * Revision 1.23 2001/10/29 03:48:10 david__schmidt
+ * OS/2 native needed a snprintf() routine. Added one to miscutil, brackedted
+ * by and __OS2__ ifdef.
+ *
* Revision 1.22 2001/10/26 17:39:38 oes
* Moved ijb_isspace and ijb_tolower to project.h
*
#include "config.h"
#include <stdio.h>
+#include <sys/types.h>
#include <stdlib.h>
+#if !defined(_WIN32) && !defined(__OS2__)
+#include <unistd.h>
+#endif /* #if !defined(_WIN32) && !defined(__OS2__) */
#include <string.h>
-#include <malloc.h>
#include <ctype.h>
#include <assert.h>
return(ret);
}
+#if defined(unix)
+/*********************************************************************
+ *
+ * Function : deletePidFile
+ *
+ * Description : deletes the pid file with the pid of the main process
+ *
+ * Parameters : -
+ *
+ * Returns : -
+ *
+ *********************************************************************/
+void deletePidFile( void )
+{
+ char pidfile[ 64 ];
+
+ snprintf( pidfile, sizeof(pidfile), "%s/%s", PID_FILE_PATH, PID_FILE_NAME);
+ unlink( pidfile );
+}
+/*********************************************************************
+ *
+ * Function : writePidFile
+ *
+ * Description : writes the pid file with the pid of the main process
+ *
+ * Parameters : -
+ *
+ * Returns : -
+ *
+ *********************************************************************/
+void writePidFile( void )
+{
+ FILE *fp;
+ char pidfile[64];
+
+ snprintf( pidfile, sizeof(pidfile), "%s/%s", PID_FILE_PATH, PID_FILE_NAME);
+ if ((fp = fopen( pidfile,"w")) == NULL )
+ {
+ log_error(LOG_LEVEL_INFO, "can't open pidfile '%s': %E", pidfile);
+ return;
+ }
+ fprintf( fp,"%u\n", (unsigned int) getpid());
+ fclose ( fp );
+}
+#endif /* unix */
/*********************************************************************
*
}
else
{
- char * path = malloc(strlen(dir) + strlen(file) + 2);
+ char * path;
+
+#if defined(unix)
+ if ( *dir != '/' && basedir && *basedir )
+ {
+ path = malloc( strlen( basedir ) + strlen(dir) + strlen(file) + 3);
+ if (!path ) log_error(LOG_LEVEL_FATAL, "malloc failed!");
+ strcpy(path, basedir);
+ strcat(path, "/");
+ strcat(path, dir);
+ DBG(1, ("make_path: path: %s\n",path) );
+ }
+ else
+ {
+ path = malloc(strlen(dir) + strlen(file) + 2);
+ if (!path ) log_error(LOG_LEVEL_FATAL, "malloc failed!");
+ strcpy(path, dir);
+ }
+#else
+
+ path = malloc(strlen(dir) + strlen(file) + 2);
+ if (!path ) log_error(LOG_LEVEL_FATAL, "malloc failed!");
strcpy(path, dir);
+
+#endif /* defined unix */
+
#ifdef _WIN32
if(path[strlen(path)-1] != '\\')
{
Local Variables:
tab-width: 3
end:
-*/
\ No newline at end of file
+*/