/*
- * debugging rune:
- * build-lfs/backends/innduct --connection-timeout=30 --no-daemon -C ../inn.conf -f `pwd`/fee sit localhost
+ * innduct
+ * tailing reliable realtime streaming feeder for inn
+ *
+ * Copyright (C) 2010 Ian Jackson <ijackson@chiark.greenend.org.uk>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * (I believe that when you compile and link this as part of the inn2
+ * build, with the Makefile runes I have provided, all the libraries
+ * and files which end up included in innduct are licence-compatible
+ * with GPLv3. If not then please let me know. -Ian Jackson.)
*/
/*
static const oop_rd_style peer_rd_style;
static oop_rd_call peer_rd_err, peer_rd_ok;
+
/*----- configuration options -----*/
/* when changing defaults, remember to update the manpage */
static int period_seconds=60;
static int filepoll_seconds=5;
static int max_queue_per_ipf=-1;
+static int realsockdir_any_perms=0;
static int connection_setup_timeout=200;
static int inndcomm_flush_timeout=100;
r= mkdir(realsockdir, 0700);
if (r) NOCONTROL("mkdir real socket dir %s", realsockdir);
- } else {
+ } else if (!realsockdir_any_perms) {
uid_t self= geteuid();
if (!S_ISDIR(stab.st_mode) ||
stab.st_uid != self ||
DUMPV("%d", ipf->,readcount_ok);
DUMPV("%d", ipf->,readcount_blank);
DUMPV("%d", ipf->,readcount_err);
+ DUMPV("%d", ipf->,count_nooffer_missing);
}
fprintf(f,"\n");
if (ipf) {
{'C',"inndconf", "F", &inndconffile, op_string },
{'P',"port", "PORT", &port, op_integer },
{0,"ctrl-sock-dir", 0, &realsockdir, op_string },
+{0,"no-ctrl-sock-dir-perms-check",0,&realsockdir_any_perms, op_setint, 0 },
{0,"help", 0, 0, help },
{0,"max-connections", "N", &max_connections, op_integer },
notice("starting");
+ int val= 1;
+ r= SMsetup(SM_PREOPEN, &val); if (!r) warn("SMsetup SM_PREOPEN failed");
+// r= SMinit(); if (!r) die("storage manager initialisation (SMinit) failed");
+
if (!become_daemon)
control_stdio();