Parent Directory | Revision Log
simpliest possible data-dumping only LDAP server
1 | dpavlin | 222 | #!/usr/bin/perl |
2 | |||
3 | use strict; | ||
4 | use warnings; | ||
5 | |||
6 | use IO::Select; | ||
7 | use IO::Socket; | ||
8 | |||
9 | use lib 'lib'; | ||
10 | use A3C::LDAP::Server; | ||
11 | |||
12 | my $port = 1389; | ||
13 | |||
14 | my $sock = IO::Socket::INET->new( | ||
15 | Listen => 5, | ||
16 | Proto => 'tcp', | ||
17 | Reuse => 1, | ||
18 | LocalPort => $port, | ||
19 | ); | ||
20 | |||
21 | warn "listen on port $port\n"; | ||
22 | |||
23 | my $sel = IO::Select->new($sock); | ||
24 | my %Handlers; | ||
25 | while (my @ready = $sel->can_read) { | ||
26 | foreach my $fh (@ready) { | ||
27 | if ($fh == $sock) { | ||
28 | # let's create a new socket | ||
29 | my $psock = $sock->accept; | ||
30 | $sel->add($psock); | ||
31 | $Handlers{*$psock} = A3C::LDAP::Server->new($psock); | ||
32 | } else { | ||
33 | my $result = $Handlers{*$fh}->handle; | ||
34 | if ($result) { | ||
35 | # we have finished with the socket | ||
36 | $sel->remove($fh); | ||
37 | $fh->close; | ||
38 | delete $Handlers{*$fh}; | ||
39 | } | ||
40 | } | ||
41 | } | ||
42 | } | ||
43 | |||
44 | 1; |
Name | Value |
---|---|
svn:executable | * |
ViewVC Help | |
Powered by ViewVC 1.1.26 |