~mdw
/
with-authinfo-kludge
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
with-authinfo-kludge: Make $CLIENTKID be defined.
[with-authinfo-kludge]
/
with-authinfo-kludge
diff --git
a/with-authinfo-kludge
b/with-authinfo-kludge
index
2ba8969
..
651cd8c
100755
(executable)
--- a/
with-authinfo-kludge
+++ b/
with-authinfo-kludge
@@
-73,7
+73,7
@@
my $SESSDIR = undef;
my %SERVMAP = ();
my %CLIENT_NOIP = ();
my %KIDMAP = ();
my %SERVMAP = ();
my %CLIENT_NOIP = ();
my %KIDMAP = ();
-my $CLIENTKID =
undef
;
+my $CLIENTKID =
-1
;
###--------------------------------------------------------------------------
### Utilities.
###--------------------------------------------------------------------------
### Utilities.
@@
-153,6
+153,13
@@
sub set_cloexec ($) {
sysfail "failed to set close-on-exec: $!";
}
sysfail "failed to set close-on-exec: $!";
}
+sub set_nonblock ($) {
+ my ($fh) = @_;
+ my $f = fcntl $fh, F_GETFL, 0 or sysfail "failed to get file flags: $!";
+ fcntl $fh, F_SETFL, $f | O_NONBLOCK or
+ sysfail "failed to set non-blockingness: $!";
+}
+
sub lockedp ($) {
my ($f) = @_;
my $l = new File::FcntlLock;
sub lockedp ($) {
my ($f) = @_;
my $l = new File::FcntlLock;
@@
-628,7
+635,7
@@
sub server_listen ($) {
for my $a (@{$s->{"_laddrs"}}) {
socket my $sk, PF_UNIX, SOCK_STREAM, 0
or sysfail "failed to make Unix-domain socket: $!";
for my $a (@{$s->{"_laddrs"}}) {
socket my $sk, PF_UNIX, SOCK_STREAM, 0
or sysfail "failed to make Unix-domain socket: $!";
- set_cloexec $sk;
+ set_cloexec $sk;
set_nonblock $sk;
my $sa = "$SESSDIR/noip-client/$a";
bind $sk, sockaddr_un $sa
or sysfail "failed to bind Unix-domain socket to `$sa': $!";
my $sa = "$SESSDIR/noip-client/$a";
bind $sk, sockaddr_un $sa
or sysfail "failed to bind Unix-domain socket to `$sa': $!";
@@
-772,11
+779,12
@@
sub accept_loop () {
elsif ($! == EINTR) { next SELECT; }
else { sysfail "select failed: $!"; }
FD: for my $fd (keys %SERVMAP) {
elsif ($! == EINTR) { next SELECT; }
else { sysfail "select failed: $!"; }
FD: for my $fd (keys %SERVMAP) {
- next unless vec $rfd_out, $fd, 1;
+ next
FD
unless vec $rfd_out, $fd, 1;
my ($s, $a, $sk) = @{$SERVMAP{$fd}};
my $nsk;
unless (accept $nsk, $sk) {
my ($s, $a, $sk) = @{$SERVMAP{$fd}};
my $nsk;
unless (accept $nsk, $sk) {
- moan "failed to accept new connection: $!";
+ moan "failed to accept new connection: $!"
+ unless $! == EAGAIN || $! == EWOULDBLOCK;
next FD;
}
set_cloexec $nsk;
next FD;
}
set_cloexec $nsk;