On 08/23/2013 03:56:41 PM, Felix Janda wrote:
# HG changeset patch
# User Felix Janda <felix.ja...@posteo.de>
# Date 1377291029 -7200
# Node ID 378ab7bde3df8fc8de3e3b3ec3d2bd665610ea37
# Parent  42d4b68e3490ab722c637d6d211a18454deb450d
syslogd: stop abusing arg_list

diff -r 42d4b68e3490 -r 378ab7bde3df toys/pending/syslogd.c
--- a/toys/pending/syslogd.c    Fri Aug 23 22:19:55 2013 +0200
+++ b/toys/pending/syslogd.c    Fri Aug 23 22:50:29 2013 +0200
@@ -37,6 +37,26 @@
 #include "toys.h"
 #include "toynet.h"

+// UNIX Sockets for listening
+struct unsocks {
+  struct unsocks *next;
+  char *path;
+  struct sockaddr_un sdu;
+  int sd;
+};
+
+// Log file entry to log into.
+struct logfile {
+  struct logfile *next;
+  char *filename;
+  char *config;
+  int isNetwork;
+  uint32_t facility[8];
+  uint8_t level[LOG_NFACILITIES];
+  int logfd;
+  struct sockaddr_in saddr;
+};
+
 GLOBALS(
   char *socket;
   char *config_file;
@@ -48,32 +68,13 @@
   char *remote_log;
   long log_prio;

-  struct arg_list *lsocks;  // list of listen sockets
-  struct arg_list *lfiles;  // list of write logfiles
+  struct unsocks *lsocks;  // list of listen sockets
+  struct logfile *lfiles;  // list of write logfiles

That won't work if you build any command other than this one. The union is defined in the headers of every command's c file, so the type has to be in lib.h for you to use it in GLOBALS. And I'd rather not pollute lib.h with a lot of command-local types...

Easy fix is just use a void * in GLOBALS and cast it to a local you actually use. (I've considered adding a generic list type that's a struct with just a next *, but you'd still have to typecast to use it, so it wouldn't help much.)

(P.S: I've got your pass 3 patch saved but I'm moving laptops and everything's in a halfway state that makes pushing changes to the website a bit funky just now. Hope to have that cleared up by monday.)

Rob
_______________________________________________
Toybox mailing list
Toybox@lists.landley.net
http://lists.landley.net/listinfo.cgi/toybox-landley.net

Reply via email to