1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
#include "conntrack.ih"
void Conntrack::run()
{
size_t max = d_options.conntrackRestart();
d_stdMsg << "starting `" << d_options.conntrackCommand() <<
"' (max " << max << " restarts)" << endl;
++max; // restarts, so add 1 for initial startup.
for (size_t idx = 0; idx != max; )
{
++idx;
try
{
d_pipe = Pipe();
fork();
return;
}
catch (Options::ExitStatus status)
{
d_stdMsg << "conntrack run " << idx << " ended" << endl;
}
}
d_stdMsg << "conntrack started " << max << " times, giving up" << endl;
}
|