X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=tools%2Fiauth-test;h=c3dd1f25e15b7d3fd482c94dcf49b02889b2b2c2;hb=refs%2Fheads%2Fupstream;hp=7013d1650eedd2b101fdec4e565ba00fa7406529;hpb=787ba07385499acc43314957a0243c757f5c90b5;p=ircu2.10.12-pk.git diff --git a/tools/iauth-test b/tools/iauth-test index 7013d16..c3dd1f2 100755 --- a/tools/iauth-test +++ b/tools/iauth-test @@ -26,6 +26,8 @@ use FileHandle; # for autoflush method on file handles # SIGRTMIN + 2 -> Set policy options ('O'). # SIGRTMIN + 3 -> Simulate config change ('a', 'A'). # SIGRTMIN + 4 -> Simulate statistics change ('s', 'S'). +# Note that Perl's value for SIGRTMIN may be different than your OS's. +# The easiest check is by running "perl -V:sig_num -V:sig_name". # In the following discussion, sX means message X from the server, and # iX means message X from iauth. The hard part is the ordering of @@ -153,6 +155,8 @@ my %handlers = ( '127.0.0.2' => { C_reply => 'R account-1' }, '127.0.0.3' => { C_reply => 'k' }, '127.0.0.4' => { C_reply => 'K' }, + '127.0.0.5' => { C_reply => 'D Specials' }, + '127.0.0.6' => { C_reply => 'R account-1 Specials' }, '127.0.0.15' => { }, '127.0.0.16' => { H_reply => 'D' }, '127.0.0.17' => { H_reply => 'R account-2' }, @@ -175,6 +179,7 @@ my %handlers = ( '127.0.2.0' => { C_reply => 'N iauth.assigned.host', H_reply => 'D' }, '127.0.2.1' => { C_reply => \&ip_change }, + '127.0.2.2' => { H_reply => \&host_change_and_done }, # 127.0.3.x: iC/sP functionality. '127.0.3.0' => { C_reply => 'C :Please enter the password.', P_reply => \&passwd_check }, @@ -198,6 +203,16 @@ sub ip_change ($$) { reply 'D', $client; } +# Note to potential debuggers: You will have to change the iauth +# policy before this (or any other H_reply hooks) will have any +# effect. Do this by sending two signals of $SIG{RTMIN+2} to the +# iauth-test process, as noted near the beginning of this script. +sub host_change_and_done ($$) { + my ($client, $extra) = @_; + reply 'N iauth.assigned.host', $client; + reply 'D', $client; +} + sub passwd_check ($$) { my ($client, $extra) = @_; if ($extra eq 'secret') {