summaryrefslogtreecommitdiffhomepage
path: root/NOTES
blob: dc92e61d2432cfeae6de3e1dd84eb0317168d816 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74

                         +-------------------+       +-----------------+
(Socket)InputStream ---> |  ssh2 transport   | <===> |  ssh2 channel   |
(Socket)OutputStream --> |  (auth, pipe)     |   N   |  (buffer)       |
                         +-------------------+       +-----------------+
                          @  feeder thread             | |
                             - read InputStream        | +-> InputStream
                             - feed into channel       +---> OutputStream
                               buffers

SIS <-- @ --> (parse, find chan) --> ssh2 chan: buffer <-- SSHInputStream
SSHOutputStream --> ssh2 chan --> ssh2 transport --> SOS   [no thread]



exported API...

from BaseTransport:
    start_client
    start_server
    add_server_key
    get_server_key
    close
    get_remote_server_key
    is_active
    is_authenticated
    open_session
    open_channel
    renegotiate_keys
    check_channel_request

from Transport:
    auth_key
    auth_password
    get_allowed_auths
    check_auth_none
    check_auth_password
    check_auth_publickey
    accept

from Channel:
    set_name
    get_name
    send_eof
    settimeout
    gettimeout
    setblocking
    close
    recv
    send
    sendall
    makefile
    fileno
    shutdown
  [client:]
    get_pty
    invoke_shell
    exec_command
    invoke_subsystem
    resize_pty
  [server:]
    check_pty_request
    check_shell_request

from ChannelFile:
    next
    write
    writelines
    flush
    read
    readline
    readlines
    xreadlines
    close