IPSec - Destination/Peer down - sockets haengen
Andre Landwehr
andrel at cybernoia.de
Thu Jun 18 15:17:28 CEST 2009
On Thu, 18 Jun 2009 15:08:31 +0200
Florian Lohoff <flo at rfc822.org> wrote:
> (...)
> Das ganze scheint daran zu liegen das ein "connect" auf einem socket
> nicht zurueckkehrt weil eben der versucht die gegenstelle zu erreichen.
> Man kann das schoen mit "ping" nachstellen ...
>
> hydra:~# ping 4.4.4.4
> PING 4.4.4.4 (4.4.4.4) 56(84) bytes of data.
> ^C
> --- 4.4.4.4 ping statistics ---
> 2 packets transmitted, 0 received, 100% packet loss, time 1013ms
>
> Ist eine nicht erreichbare/nicht existente adresse - Die adresse zu hause:
>
> hydra:~# ping 193.189.251.193
> ^C
>
> D.h. nicht mal der header wird ausgegeben. Strace:
>
> socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 4
> connect(4, {sa_family=AF_INET, sin_port=htons(1025), sin_addr=inet_addr("193.189.251.193")}, 16^C <unfinished ...>
>
> Und es blockt bis in alle ewigkeiten - das scheint der bind gar nicht zu moegen.
>
> Hat jemand da eine loesung fuer?
Du könntest die Stelle im Source suchen und so modifizieren, daß der
Socket non-blocking ist. connect() sollte in dem Fall EINPROGRESS zurück
liefern wenn er nicht gleich eine Antwort bekommt. Laut man-page kannst
du dann mit select() auf den Socket losgehen, dem man ja bekanntlich
einen Timeout mitgeben kann. Wenn der Socket dann nach n Sekunden nicht
signalisiert wird, weg damit und Fehler zurückgeben, in der Hoffnung,
daß der named damit umgehen kann ;-)
Gruß, Andre
--
Andre Landwehr, Ricklinger Stadtweg 42, D-30459 Hannover
Phone: +49-(0)511-1054932, Mobile: +49-(0)175-4648375
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://lug-owl.de/pipermail/linux/attachments/20090618/0458032d/attachment.sig>
More information about the Linux
mailing list