From 3f028f8e0a48bb95bf05ce8502eb4ff6fcb74317 Mon Sep 17 00:00:00 2001 From: "Alan T. DeKok" Date: Tue, 31 Mar 2015 11:50:55 -0400 Subject: [PATCH] Unlock file while waiting for the DB Otherwise the server might block forever waiting for our lock to be released --- scripts/sql/radsqlrelay | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/scripts/sql/radsqlrelay b/scripts/sql/radsqlrelay index 3a1efa9971cd..48892e40c5ef 100755 --- a/scripts/sql/radsqlrelay +++ b/scripts/sql/radsqlrelay @@ -69,6 +69,18 @@ sub setlock($;$$) else { return 0 } } +sub unlock($;$$) +{ + my ($fh, $start, $len) = @_; + $start = 0 unless defined $start; + $len = 0 unless defined $len; + + #type whence start till pid + my $packed = pack($FLOCK_STRUCT, F_WRLCK, SEEK_SET, $start, $len, 0); + if (fcntl($fh, F_UNLCK, $packed)) { return 1 } + else { return 0 } +} + sub usage() { print STDERR <{handle}->disconnect; + unlock(\*FILE); connect_wait($dbinfo); + setlock(\*FILE); } } }