20 |
|
|
21 |
my $config = { |
my $config = { |
22 |
yaml_dir => './yaml/', |
yaml_dir => './yaml/', |
23 |
listen => 'localhost:2389', |
listen => shift @ARGV || 'localhost:1389', |
24 |
upstream_ldap => 'ldap.ffzg.hr', |
upstream_ldap => 'ldap.ffzg.hr', |
25 |
upstream_ssl => 1, |
upstream_ssl => 1, |
26 |
overlay_prefix => 'ffzg-', |
overlay_prefix => 'ffzg-', |
99 |
|
|
100 |
if ( defined $response->{protocolOp}->{searchResEntry} ) { |
if ( defined $response->{protocolOp}->{searchResEntry} ) { |
101 |
my $uid = $response->{protocolOp}->{searchResEntry}->{objectName}; |
my $uid = $response->{protocolOp}->{searchResEntry}->{objectName}; |
102 |
warn "## SEARCH $uid"; |
warn "## objectName $uid"; |
103 |
|
|
104 |
my @attrs; |
my @attrs; |
105 |
|
|
170 |
} |
} |
171 |
|
|
172 |
|
|
|
$ENV{LANG} = 'C'; # so we don't double-encode utf-8 if LANG is utf-8 |
|
|
|
|
173 |
my $listenersock = IO::Socket::INET->new( |
my $listenersock = IO::Socket::INET->new( |
174 |
Listen => 5, |
Listen => 5, |
175 |
Proto => 'tcp', |
Proto => 'tcp', |
176 |
Reuse => 1, |
Reuse => 1, |
177 |
LocalAddr => $config->{listen}, |
LocalAddr => $config->{listen}, |
178 |
); |
) || die "can't open listen socket: $!"; |
179 |
|
|
180 |
|
|
181 |
my $targetsock = $config->{upstream_ssl} |
my $targetsock = $config->{upstream_ssl} |
185 |
PeerPort => 389, |
PeerPort => 389, |
186 |
) |
) |
187 |
: IO::Socket::SSL->new( $config->{upstream_ldap} . ':ldaps') |
: IO::Socket::SSL->new( $config->{upstream_ldap} . ':ldaps') |
188 |
; |
|| die "can't open upstream socket: $!"; |
189 |
|
|
190 |
run_proxy($listenersock,$targetsock); |
run_proxy($listenersock,$targetsock); |
191 |
|
|