+ if ((uid_t) 0 == geteuid ())
+ {
+ struct group sg;
+ struct group *grp;
+ char grbuf[2048];
+ int status;
+
+ grp = NULL;
+ status = getgrnam_r (sock_group, &sg, grbuf, sizeof (grbuf), &grp);
+ if (status != 0)
+ {
+ char errbuf[1024];
+ log_warn ("getgrnam_r (%s) failed: %s", sock_group,
+ sstrerror (errno, errbuf, sizeof (errbuf)));
+ }
+ else if (grp == NULL)
+ {
+ log_warn ("No such group: `%s'", sock_group);
+ }
+ else
+ {
+ status = chown (sock_file, (uid_t) -1, grp->gr_gid);
+ if (status != 0)
+ {
+ char errbuf[1024];
+ log_warn ("chown (%s, -1, %i) failed: %s",
+ sock_file, (int) grp->gr_gid,
+ sstrerror (errno, errbuf, sizeof (errbuf)));
+ }
+ }
+ }
+ else /* geteuid != 0 */
+ {
+ log_warn ("not running as root");
+ }
+
+ errno = 0;
+ if (0 != chmod (sock_file, sock_perms)) {
+ char errbuf[1024];
+ log_warn ("chmod() failed: %s",
+ sstrerror (errno, errbuf, sizeof (errbuf)));
+ }
+
+ { /* initialize collector threads */
+ int i = 0;
+ int err = 0;
+
+ pthread_attr_t ptattr;
+
+ conns.head = NULL;
+ conns.tail = NULL;