2009-12-21 16:18:18 +01:00
|
|
|
--- blogd.c
|
|
|
|
+++ blogd.c 2009-12-21 15:55:09.295430094 +0100
|
|
|
|
@@ -364,8 +364,8 @@ int main(int argc, char *argv[])
|
|
|
|
fflush(stdout);
|
|
|
|
exit(0);
|
|
|
|
}
|
|
|
|
- pidfile();
|
|
|
|
- prepareIO(reconnect, pgrp, 0, 1, fd2);
|
|
|
|
+
|
|
|
|
+ prepareIO(reconnect, pidfile, pgrp, 0, 1, fd2);
|
|
|
|
while (!signaled)
|
|
|
|
safeIO();
|
|
|
|
|
|
|
|
--- libconsole.c
|
|
|
|
+++ libconsole.c 2009-12-21 16:02:20.007429734 +0100
|
|
|
|
@@ -155,7 +155,7 @@ out:
|
|
|
|
/*
|
|
|
|
* Arg used: safe out
|
|
|
|
*/
|
|
|
|
-static void (*vc_reconnect)(int fd) = NULL;
|
|
|
|
+static void (*vc_reconnect)(int fd);
|
|
|
|
static inline void safeout (int fd, const char *ptr, size_t s)
|
|
|
|
{
|
|
|
|
int saveerr = errno;
|
|
|
|
@@ -739,11 +739,13 @@ static void *action(void *dummy)
|
|
|
|
* Prepare I/O
|
|
|
|
*/
|
|
|
|
static const char *fifo_name = _PATH_BLOG_FIFO;
|
|
|
|
+static void (*vr_access)(void);
|
|
|
|
static pid_t pgroup = -1;
|
|
|
|
|
|
|
|
-void prepareIO(void (*rfunc)(int), const pid_t pgrp, const int in, const int out, const int second)
|
|
|
|
+void prepareIO(void (*rfunc)(int), void (*pfunc)(void), const pid_t pgrp, const int in, const int out, const int second)
|
|
|
|
{
|
|
|
|
vc_reconnect = rfunc;
|
|
|
|
+ vr_access = pfunc;
|
|
|
|
pgroup = pgrp;
|
|
|
|
fdread = in;
|
|
|
|
fdwrite = out;
|
|
|
|
@@ -871,6 +873,10 @@ void safeIO (void)
|
|
|
|
error("Can not open %s: %s\n", BOOT_LOGFILE, STRERR);
|
|
|
|
goto skip;
|
|
|
|
}
|
|
|
|
+ if (vr_access) {
|
|
|
|
+ (*vr_access)();
|
|
|
|
+ vr_access = NULL;
|
|
|
|
+ }
|
|
|
|
if ((flog = fdopen (log, "a")) == NULL)
|
|
|
|
error("Can not open %s: %s\n", BOOT_LOGFILE, STRERR);
|
|
|
|
|
|
|
|
--- libconsole.h
|
|
|
|
+++ libconsole.h 2009-12-21 15:54:41.299449887 +0100
|
|
|
|
@@ -2,6 +2,6 @@ extern void pushd(const char * path);
|
|
|
|
extern void popd(void);
|
|
|
|
extern char * fetchtty(const pid_t pid, const pid_t ppid, unsigned int *mjmi);
|
|
|
|
extern char * secondtty(char * compare);
|
|
|
|
-extern void prepareIO(void (*rfunc)(int), const pid_t pgrp, const int in, const int out, const int second);
|
|
|
|
+extern void prepareIO(void (*rfunc)(int), void (*pfunc)(void), const pid_t pgrp, const int in, const int out, const int second);
|
|
|
|
extern void safeIO (void);
|
|
|
|
extern void closeIO(void);
|