aboutsummaryrefslogtreecommitdiff
path: root/test/ejabberd_SUITE_data/extauth.py
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2013-06-26 12:29:50 +1000
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2013-06-26 12:30:32 +1000
commitaab70fc0666f62cd23828232806a344af352be03 (patch)
tree30310352bf076e9e2dfad4bee9c8d542aaeac2e2 /test/ejabberd_SUITE_data/extauth.py
parentDo not fetch disco#info multiple times (diff)
Fix external authentication
Diffstat (limited to 'test/ejabberd_SUITE_data/extauth.py')
-rwxr-xr-xtest/ejabberd_SUITE_data/extauth.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/ejabberd_SUITE_data/extauth.py b/test/ejabberd_SUITE_data/extauth.py
new file mode 100755
index 000000000..7f32eb8be
--- /dev/null
+++ b/test/ejabberd_SUITE_data/extauth.py
@@ -0,0 +1,36 @@
+import sys
+import struct
+
+def read():
+ (pkt_size,) = struct.unpack('>H', sys.stdin.read(2))
+ pkt = sys.stdin.read(pkt_size).split(':')
+ cmd = pkt[0]
+ args_num = len(pkt) - 1
+ if cmd == 'auth' and args_num == 3:
+ write(True)
+ elif cmd == 'isuser' and args_num == 2:
+ write(True)
+ elif cmd == 'setpass' and args_num == 3:
+ write(True)
+ elif cmd == 'tryregister' and args_num == 3:
+ write(True)
+ elif cmd == 'removeuser' and args_num == 2:
+ write(True)
+ elif cmd == 'removeuser3' and args_num == 3:
+ write(True)
+ else:
+ write(False)
+ read()
+
+def write(result):
+ if result:
+ sys.stdout.write('\x00\x02\x00\x01')
+ else:
+ sys.stdout.write('\x00\x02\x00\x00')
+ sys.stdout.flush()
+
+if __name__ == "__main__":
+ try:
+ read()
+ except struct.error:
+ pass