The following is an example of an external application implemented in Python. You can find
it also in /etc/ssh2/samples/mapper_simple_example.py
on Unix and
<INSTALLDIR>\SSH Tectia AUX\samples\mapper_simple_example.py
on
Windows.
#!/usr/bin/env python import sys # First ssh-server-g3 expects a protocol version number. # Currently only version 1 is supported. sys.stdout.write("version:1\n") sys.stdout.flush() # Read the version string sent by the server. version = sys.stdin.readline() (ver, num) = version.split(':') if (ver == "version"): if (int(num) != 1): sys.exit(1) else: sys.exit(1) # Version is OK, let's wait for the request. request = sys.stdin.readline() (request_str, num) = request.split(':') if (request_str == "request") : request_no = int(num) else: sys.exit(2) # Request started, let's read the request's data. while 1: end_of_request = sys.stdin.readline() if not end_of_request: break if end_of_request.find("end-of-request:",0,15) == 0 : (end_of_request_str, num) = end_of_request.split(':') end_of_request_no = int(num) if (end_of_request_no == request_no) : break else: sys.exit(3) else: pass # handle the request data # Request finished, let's send the response. sys.stdout.write("%s" % request) sys.stdout.write("success: Well done!\n") sys.stdout.flush() sys.exit(0)