Support re-reading config files on SIGHUP.
[fwd] / socket.c
index afa3dc0..0a80b48 100644 (file)
--- a/socket.c
+++ b/socket.c
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: socket.c,v 1.5 2000/03/23 23:20:42 mdw Exp $
+ * $Id: socket.c,v 1.6 2001/02/03 20:30:03 mdw Exp $
  *
  * Socket source and target definitions
  *
@@ -29,6 +29,9 @@
 /*----- Revision history --------------------------------------------------* 
  *
  * $Log: socket.c,v $
+ * Revision 1.6  2001/02/03 20:30:03  mdw
+ * Support re-reading config files on SIGHUP.
+ *
  * Revision 1.5  2000/03/23 23:20:42  mdw
  * Remove listener even if connection option isn't SOCKOPT_LIMITED.
  *
@@ -123,7 +126,7 @@ typedef struct starget {
 typedef struct stept {
   endpt e;
   conn c;
-  const char *desc;
+  char *desc;
 } stept;
 
 /* --- Socket source endpoint --- */
@@ -254,6 +257,7 @@ static void stept_close(endpt *e)
     REFFD_DEC(ee->e.out);
   }
 
+  free(ee->desc);
   fw_dec();
   DESTROY(ee);
 }
@@ -636,7 +640,7 @@ static void ssource_destroy(source *s)
     ss->a->ops->freeopts(ss->ao);
   else
     DESTROY(ss->ao);
-  /* free(ss->s.desc); */
+  free(ss->s.desc);
   ss->a->ops->destroy(ss->a);
   ss->t->ops->destroy(ss->t);
   source_remove(&ss->s);
@@ -697,7 +701,7 @@ static endpt *starget_create(target *t, const char *desc)
   e->e.other = 0;
   e->e.f = EPF_FILE | SKF_CONN;
   e->e.t = 0;
-  e->desc = desc;
+  e->desc = xstrdup(desc);
 
   /* --- Pay attention --- *
    *
@@ -729,7 +733,7 @@ static void starget_destroy(target *t)
 {
   starget *st = (starget *)t;
   st->a->ops->destroy(st->a);
-  /* free(st->t.desc); */
+  free(st->t.desc);
   DESTROY(st);
 }