Schrift
[thread]7068[/thread]

LWP, SSL und Proxy: Problem mit Proxy gelöst

Leser: 1


<< >> 4 Einträge, 1 Seite
GwenDragon
 2005-06-22 18:10
#55668 #55668
User since
2005-01-17
14761 Artikel
Admin1
[Homepage]
user image
Wenn ich LWP über https benutze, wird Net-SSL verwendet.

Das Modul Net-SSL (Version 2.77) hat nun das Problem, immer über Proxy zu konnektieren, wenn einer eingetragen ist. Auch wenn es sich um eine lokale Adresse handelt, die im eigenen Netz liegt.
Das Eintragen in die Umgebungsvariable NO_PROXY hat nichts gebracht.

Ich habe jetzt das Modul Net-SSL gepatcht, sodass es auch lokal klappt.

Wer es wissen will, kann mich ja per PN oder E-Mail anfragen.
ptk
 2005-06-22 22:18
#55669 #55669
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Oder du kannst deinen Bugreport auf rt.cpan.org ergaenzen...
GwenDragon
 2005-06-23 12:19
#55670 #55670
User since
2005-01-17
14761 Artikel
Admin1
[Homepage]
user image
[quote=ptk,22.06.2005, 20:18]Oder du kannst deinen Bugreport auf rt.cpan.org ergaenzen...[/quote]
Habe den Patch aber nicht durchgehend getestet. Deswegen traue ich mich nicht, ihn in den Bugtacker zustellen. *bibber*

Ich weiß, das hört sich ziemlich dumm an.

Die diff-Ausgabe bei Net-SSL.new und Net-SSL.pm:
Code: (dl )
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
36
37
38
39
40
41
42
328c328,339
<
---
>
> # +++ patched by GwenDragon 2005-06-14
> sub is_noproxy {
> my $dom = shift;
>
> my $np = $ENV{'NO_PROXY'} || '';
> my ( @nop ) = split /,/,$np;
>
> return grep(/$dom/, @nop);
> }
> # +++ patched by GwenDragon 2005-06-14
>
344,347c355
< $port || die("no port given for proxy server $proxy");
<
< $self->SUPER::connect($port, $iaddr)
< || die("proxy connect to $host:$port failed: $!");
---
> $port || die("no port given for proxy server $proxy");
351c359,375
< $peer_addr || die("no peer addr given");
---
> $peer_addr || die("no peer addr given");
>
> # +++ patched by GwenDragon 2005-06-14
> if (is_noproxy($peer_addr)) {
> $iaddr = gethostbyname($peer_addr);
> $iaddr || die("can't resolve $peer_addr, $!");
> $self->SUPER::connect($peer_port, $iaddr) #try connection
> || die("connect to $peer_addr:$peer_port failed: $!");
> return 1;
> }
> else {
> # +++ patched by GwenDragon 2005-06-14
> $self->SUPER::connect($port, $iaddr)
> || die("proxy connect to $host:$port failed: $!");
> # +++ patched by GwenDragon 2005-06-14
> }
> # +++ patched by GwenDragon 2005-06-14
ptk
 2005-06-23 20:20
#55671 #55671
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Egal, kannst ja in dicken Buchstaben dazuschreiben, dass es nicht getestet ist. Uebrigens moegen die meisten Entwickler diffs mit den Option -up (unified und Anzeige des aktuellen subs)
<< >> 4 Einträge, 1 Seite



View all threads created 2005-06-22 18:10.