added basic ssl support to ircu
[ircu2.10.12-pk.git] / tools / iauth-test
index 0e8d104a8d0b8454dbada182ec238238b6284aff..c3dd1f25e15b7d3fd482c94dcf49b02889b2b2c2 100755 (executable)
@@ -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' },
@@ -162,17 +166,20 @@ my %handlers = (
                 '127.0.0.33' => { T_reply => 'R account-3' },
                 '127.0.0.34' => { T_reply => 'k' },
                 '127.0.0.35' => { T_reply => 'K' },
-                # 127.0.1.x: io/iU/iu functionality.
+                # 127.0.1.x: io/iU/iu/iM functionality.
                 '127.0.1.0'  => { C_reply => 'o forced',
                                   H_reply => 'D' },
                 '127.0.1.1'  => { C_reply => 'U trusted',
                                   H_reply => 'D' },
                 '127.0.1.2'  => { C_reply => 'u untrusted',
                                   H_reply => 'D' },
+                '127.0.1.3'  => { C_reply => 'M +i',
+                                  H_reply => 'D' },
                 # 127.0.2.x: iI/iN functionality.
                 '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 },
@@ -196,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') {