On Fri, Oct 31, 2014 at 11:32:37PM +0530, Binathi Bingi wrote: > Hello > > I tried to include the changes specified by Nicholas. > We can switch between both Daemon and NoDaemon mode, using the option in > ffserver.conf file. > > From 018f8c1e1acf062a9e6a3ec94f671d574ec4b712 Mon Sep 17 00:00:00 2001 > From: Binathi <binti...@gmail.com> > Date: Fri, 31 Oct 2014 23:27:20 +0530 > Subject: [PATCH] Enable Daemon mode for FFServer > > Signed-off-by: Binathi <binti...@gmail.com> > --- > doc/ffserver.conf | 4 ++++ > doc/ffserver.texi | 7 +++++-- > ffserver.c | 31 +++++++++++++++++++++++++++++-- > ffserver_config.c | 7 +++++-- > ffserver_config.h | 1 + > 5 files changed, 44 insertions(+), 6 deletions(-) > > diff --git a/doc/ffserver.conf b/doc/ffserver.conf > index b756961..eac088b 100644 > --- a/doc/ffserver.conf > +++ b/doc/ffserver.conf > @@ -25,6 +25,10 @@ MaxBandwidth 1000 > # '-' is the standard output. > CustomLog - > > +# Suppress Daemon if you don't want to launch ffserver in daemon mode. > +#NoDaemon > +Daemon > + > ################################################################## > # Definition of the live feeds. Each live feed contains one video > # and/or audio sequence coming from an ffmpeg encoder or another > diff --git a/doc/ffserver.texi b/doc/ffserver.texi > index 77273d2..15dc4b3 100644 > --- a/doc/ffserver.texi > +++ b/doc/ffserver.texi > @@ -406,8 +406,11 @@ ignored, and the log is written to standard output. > > @item NoDaemon > Set no-daemon mode. This option is currently ignored since now > -@command{ffserver} will always work in no-daemon mode, and is > -deprecated. > +@command{ffserver} will always work in daemon mode. > + > +@ Daemon > +Set daemon mode. > +@command{ffserver} will always work in daemon mode. To enable no-daemon > mode, suppress this and enable NoDaemon. > @end table
it seems the patch has been mangled > > @section Feed section > diff --git a/ffserver.c b/ffserver.c > index ea2a2ae..d6eb0b4 100644 > --- a/ffserver.c > +++ b/ffserver.c > @@ -3671,6 +3671,7 @@ static void handle_child_exit(int sig) > static void opt_debug(void) > { > config.debug = 1; > + config.ffserver_daemon = 0; > snprintf(config.logfilename, sizeof(config.logfilename), "-"); > } > > @@ -3736,10 +3737,36 @@ int main(int argc, char **argv) > build_feed_streams(); > > compute_bandwidth(); > - > + > + if (config.ffserver_daemon) { > + int ffserver_id = 0; > + pid_t sid = 0; > + > + ffserver_id = fork(); there is something wrong with the indention here the code inside the if() probably should be indented by 4 more spaces > + > + if (ffserver_id < 0) { > + av_log(NULL, AV_LOG_WARNING, "Fork failed!Couldn't launch ffserver > in daemon mode.\n"); IIRC Nicolas suggested to print the error corresponding to errno, that is not a fixed string. > + exit(1); > + } > + > + if (ffserver_id > 0) { > + exit(0); > + } > + > + sid = setsid(); > + if (sid < 0) { > + exit(1); > + } > + > + open ("/dev/null", O_RDWR); > + > + if (strcmp(config.logfilename, "-") != 0) { > + close(1); > + } > + } > /* signal init */ > signal(SIGPIPE, SIG_IGN); > - > + > if (http_server() < 0) { > http_log("Could not start server\n"); > exit(1); > diff --git a/ffserver_config.c b/ffserver_config.c > index e44cdf7..f46d8f4 100644 > --- a/ffserver_config.c > +++ b/ffserver_config.c > @@ -358,8 +358,11 @@ static int ffserver_parse_config_global(FFServerConfig > *config, const char *cmd, > ffserver_get_arg(arg, sizeof(arg), p); > if (resolve_host(&config->http_addr.sin_addr, arg) != 0) > ERROR("%s:%d: Invalid host/IP address: %s\n", arg); > - } else if (!av_strcasecmp(cmd, "NoDaemon")) { > - WARNING("NoDaemon option has no effect, you should remove it\n"); > + } else if (!av_strcasecmp(cmd, "Daemon") || !av_strcasecmp(cmd, > "NoDaemon")) { > + if (!av_strcasecmp(cmd, "Daemon")) > + config->ffserver_daemon = 1; > + if (!av_strcasecmp(cmd, "NoDaemon")) > + config->ffserver_daemon = 0; why the 2 level duplicated comparission, a simple addition of a check for "Daemon" should be simpler [...] Thanks -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Freedom in capitalist society always remains about the same as it was in ancient Greek republics: Freedom for slave owners. -- Vladimir Lenin
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel