[Slabot-devel] Funciones depuración.

KmIkC kmikc.cvb at gmail.com
Wed Jun 27 06:31:57 CEST 2007


 Aquí os envío una pequeña aportación con unas funciones que ayudarán
a depurar el proyecto.

Index: src/slabot.c
===================================================================
--- src/slabot.c	(revisión: 52)
+++ src/slabot.c	(copia de trabajo)
@@ -34,6 +34,7 @@
 #include <config.h>
 #include "irc/irc.h"
 #include "common.h"
+#include "debug.h"

 #define DEFAULT_NICK     "Slabot"
 #define DEFAULT_PORT     6667
@@ -159,6 +160,8 @@
   /* Aqui debe ir un bucle */
   IrcServer * irc;
   irc = irc_server_new (server, port);
+
+  debug_init ();

   irc_init ();
   irc_connect (irc, nick);
@@ -168,6 +171,7 @@

   irc_server_destroy (irc);

+  /* debug_end (); */

   return 0;
 }
Index: src/ChangeLog
===================================================================
--- src/ChangeLog	(revisión: 52)
+++ src/ChangeLog	(copia de trabajo)
@@ -1,3 +1,10 @@
+2007-06-27  kmikc  <kmikc.cvb at gmail.com>
+
+	* debug.c (debug_init): Inicializa el sistema de depurado.
+	(debug_end): Finaliza el sistema de depurado.
+	(pidfile_create): Crea el archivo /tmp/slabot.$UID con el PID del proceso.
+	(pidfile_remove): Borra el archivo con el PID.
+
 2007-06-27  iobrain  <iobrain <iobrain at users.ourproject.org>>

 	* debug.h:
@@ -105,7 +112,7 @@
 	programa fallaba al hacer -V. Faltaba la entrada NULL en longopts.
 	(main): La opcion V faltaba en el tercer argumento de getopt_long_only.

-2007-06-24  KmIkC <kmikc.cvb at gmail.com>
+2007-06-24  kmikc <kmikc.cvb at gmail.com>
 	
 	* slabot.c (notice_version): Crea el argumento --version para
 	mostrar el aviso de Copyright.
Index: src/debug.c
===================================================================
--- src/debug.c	(revisión: 52)
+++ src/debug.c	(copia de trabajo)
@@ -26,4 +26,56 @@
  *
  */

+#include <stdio.h>
+#include <sys/types.h>
+#include <unistd.h>
+
 #include "debug.h"
+#include "common.h"
+
+#define PATH_PIDFILE "/tmp/"
+
+static char * path = NULL;
+
+static void pidfile_create ();
+static void pidfile_remove ();
+
+static void
+pidfile_create ()
+{
+  if (path != NULL)
+    pidfile_remove ();
+
+  path = strbuild (PATH_PIDFILE "slabot.%d", PATH_PIDFILE, getuid ());
+
+  pid_t pid = getpid ();
+  FILE * file;
+  file = fopen (path, "wb");
+  fwrite (&pid, sizeof (pid_t), 1, file);
+
+  fclose (file);
+}
+
+static void
+pidfile_remove ()
+{
+  if (path == NULL)
+    return;
+
+  remove (path);
+  free (path);
+}
+
+void
+debug_init ()
+{
+  atexit (debug_end);
+
+  pidfile_create ();
+}
+
+void
+debug_end ()
+{
+  pidfile_remove ();
+}
Index: src/debug.h
===================================================================
--- src/debug.h	(revisión: 52)
+++ src/debug.h	(copia de trabajo)
@@ -29,9 +29,9 @@
 #ifndef DEBUG_H
 #define DEBUG_H

+void debug_init ();
+void debug_end ();



-
-
 #endif	/* not DEBUG_H */



More information about the Slabot-devel mailing list