DOS->Unix line endings
[privoxy.git] / miscutil.c
index f79cfd7..ed09ff8 100644 (file)
@@ -1,4 +1,4 @@
-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 $
@@ -36,6 +36,23 @@ const char miscutil_rcs[] = "$Id: miscutil.c,v 1.22 2001/10/26 17:39:38 oes Exp
  *
  * 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
  *
@@ -145,9 +162,12 @@ const char miscutil_rcs[] = "$Id: miscutil.c,v 1.22 2001/10/26 17:39:38 oes Exp
 #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>
 
@@ -181,7 +201,52 @@ void *zalloc(int size)
 
    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 */
 
 /*********************************************************************
  *
@@ -736,8 +801,32 @@ char * make_path(const char * dir, const char * file)
    }
    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] != '\\')
       {
@@ -1529,4 +1618,4 @@ int portable_vsnprintf(char *str, size_t str_m, const char *fmt, va_list ap) {
   Local Variables:
   tab-width: 3
   end:
-*/
\ No newline at end of file
+*/