diff options
author | Jason Fesler <jfesler@guest.gigo.com> | 2015-02-17 11:52:32 -0800 |
---|---|---|
committer | Jason Fesler <jfesler@guest.gigo.com> | 2015-02-17 11:52:32 -0800 |
commit | 834078a53da95d2261d5f8d042b773d3ed2f04b3 (patch) | |
tree | 14472058e54bf4e2cf671ca2a52d56dcfb37c452 /mtu1280.c | |
parent | 4c0ba28666d939f06759a1cb7f16e00ad80a93b1 (diff) | |
download | mtu1280d-834078a53da95d2261d5f8d042b773d3ed2f04b3.tar.gz mtu1280d-834078a53da95d2261d5f8d042b773d3ed2f04b3.zip |
Add daemon flag
Diffstat (limited to 'mtu1280.c')
-rw-r--r-- | mtu1280.c | 20 |
1 files changed, 17 insertions, 3 deletions
@@ -408,7 +408,6 @@ cb (struct nfq_q_handle *qh, struct nfgenmsg *nfmsg, } - int main (int argc, char **argv) { @@ -417,16 +416,22 @@ main (int argc, char **argv) struct nfnl_handle *nh; int fd; int rv; - unsigned int queue = 1280; // default value + unsigned int queue = 1280; // -q + unsigned int do_fork = 0; // -d char *interface; char buf[4096] __attribute__ ((aligned)); // Getopt int c; int opterr = 0; - while ((c = getopt (argc, argv, "q:")) != -1) + while ((c = getopt (argc, argv, "dq:")) != -1) switch (c) { + case 'd': + fprintf (stderr, "setting\n"); + do_fork = 1; + fprintf (stderr, "set!\n"); + break; case 'q': queue = strtol (optarg, NULL, 10); break; @@ -479,6 +484,7 @@ main (int argc, char **argv) exit (1); } + printf ("setting copy_packet mode\n"); if (nfq_set_mode (qh, NFQNL_COPY_PACKET, 0xffff) < 0) { @@ -486,6 +492,14 @@ main (int argc, char **argv) exit (1); } + + if (do_fork) + { + fprintf (stdout, "forking to background\n"); + daemon (0, 0); + } + + fd = nfq_fd (h); while ((rv = recv (fd, buf, sizeof (buf), 0)) && rv >= 0) |