5 BTR_DATE
=$
(date +%Y
%m
%d
%H
%M
%S
)
12 function btrd_cancel
{
13 if btrd_worker_started
32 local bytes
=$
(stat
-c %s
"$1")
36 function btrd_status
{
37 echo "BTR_BUILD='$BTR_BUILD'"
38 echo "BTR_SERVER='$BTR_SERVER'"
39 echo "BTR_PIDFILE='$BTR_PIDFILE'"
40 echo "BTR_LOGFILE='$BTR_LOGFILE'"
41 echo "BTR_COMFILE='$BTR_COMFILE'"
45 function btrd_logrotate
{
47 local f
="$BTR_LOGFILE"
59 export -f btrd_logrotate
61 function btrd_worker_started
{
62 test "$BTR_WORKER" -gt 1
64 export -f btrd_worker_started
66 function btrd_worker_running
{
69 export -f btrd_worker_running
71 function btrd_worker_reap
{
75 export -f btrd_worker_reap
77 function btrd_worker_kill
{
80 export -f btrd_worker_kill
85 BTR_PIDFILE
="$BTR_RUNDIR/$BTR_BUILD.pid"
86 BTR_LOGFILE
="$BTR_RUNDIR/$BTR_BUILD.log"
87 BTR_COMFILE
="$BTR_RUNDIR/$BTR_BUILD.socket"
89 export BTR_DAEMON BTR_WORKER BTR_SERVER BTR_PIDFILE BTR_LOGFILE BTR_COMFILE
93 exec >"$BTR_LOGFILE" 2>&1
94 echo $$
>"$BTR_PIDFILE"
96 # see https://github.com/nmap/nmap/issues/193
97 if test $
(uname
-s) = Darwin
; then
98 echo $
(($
(cksum <<<"$BTR_BUILD" | cut
-d" " -f 1) % 64511 + 1024)) > "$BTR_COMFILE"
99 ncat
-nlkc btrd_status
127.0.0.1 $
(cat "$BTR_COMFILE") &
101 ncat
-nlkc btrd_status
-U "$BTR_COMFILE" &
111 if btrd_worker_started
&& btrd_worker_running
121 if test "$BTR_SERVER" -gt 1
127 test -e "$BTR_PIDFILE" && rm "$BTR_PIDFILE"
128 test -e "$BTR_LOGFILE" && rm "$BTR_LOGFILE"
129 test -S "$BTR_COMFILE" && rm "$BTR_COMFILE"