root / util / vapclient.py @ 13b954b0
History | View | Annotate | Download (1.5 kB)
1 | 09471611 | Vangelis Koukis | #!/usr/bin/env python
|
---|---|---|---|
2 | 09471611 | Vangelis Koukis | #
|
3 | 09471611 | Vangelis Koukis | |
4 | 09471611 | Vangelis Koukis | # Copyright (c) 2010 GRNET SA
|
5 | 09471611 | Vangelis Koukis | #
|
6 | 09471611 | Vangelis Koukis | # This program is free software; you can redistribute it and/or modify
|
7 | 09471611 | Vangelis Koukis | # it under the terms of the GNU General Public License as published by
|
8 | 09471611 | Vangelis Koukis | # the Free Software Foundation; either version 2 of the License, or
|
9 | 09471611 | Vangelis Koukis | # (at your option) any later version.
|
10 | 09471611 | Vangelis Koukis | #
|
11 | 09471611 | Vangelis Koukis | # This program is distributed in the hope that it will be useful, but
|
12 | 09471611 | Vangelis Koukis | # WITHOUT ANY WARRANTY; without even the implied warranty of
|
13 | 09471611 | Vangelis Koukis | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14 | 09471611 | Vangelis Koukis | # General Public License for more details.
|
15 | 09471611 | Vangelis Koukis | #
|
16 | 09471611 | Vangelis Koukis | # You should have received a copy of the GNU General Public License
|
17 | 09471611 | Vangelis Koukis | # along with this program; if not, write to the Free Software
|
18 | 09471611 | Vangelis Koukis | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
19 | 09471611 | Vangelis Koukis | # 02110-1301, USA.
|
20 | 09471611 | Vangelis Koukis | |
21 | 09471611 | Vangelis Koukis | import sys |
22 | 09471611 | Vangelis Koukis | import socket |
23 | 09471611 | Vangelis Koukis | |
24 | 1be508e9 | Vangelis Koukis | try:
|
25 | 1be508e9 | Vangelis Koukis | import simplejson as json |
26 | 1be508e9 | Vangelis Koukis | except ImportError: |
27 | 1be508e9 | Vangelis Koukis | import json |
28 | 1be508e9 | Vangelis Koukis | |
29 | 09471611 | Vangelis Koukis | CTRL_SOCKET = "/tmp/vncproxy.sock"
|
30 | 09471611 | Vangelis Koukis | |
31 | 09471611 | Vangelis Koukis | def request_forwarding(sport, daddr, dport, password): |
32 | 09471611 | Vangelis Koukis | assert(len(password) > 0) |
33 | 1be508e9 | Vangelis Koukis | req = { |
34 | 1be508e9 | Vangelis Koukis | "source_port": int(sport), |
35 | 1be508e9 | Vangelis Koukis | "destination_address": daddr,
|
36 | 1be508e9 | Vangelis Koukis | "destination_port": int(dport), |
37 | 1be508e9 | Vangelis Koukis | "password": password
|
38 | 1be508e9 | Vangelis Koukis | } |
39 | 09471611 | Vangelis Koukis | |
40 | 09471611 | Vangelis Koukis | ctrl = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) |
41 | 09471611 | Vangelis Koukis | ctrl.connect(CTRL_SOCKET) |
42 | 1be508e9 | Vangelis Koukis | ctrl.send(json.dumps(req)) |
43 | 1be508e9 | Vangelis Koukis | |
44 | 09471611 | Vangelis Koukis | response = ctrl.recv(1024)
|
45 | 1be508e9 | Vangelis Koukis | res = json.loads(response) |
46 | 1be508e9 | Vangelis Koukis | return res
|
47 | 09471611 | Vangelis Koukis | |
48 | 09471611 | Vangelis Koukis | if __name__ == '__main__': |
49 | 1be508e9 | Vangelis Koukis | res = request_forwarding(*sys.argv[1:])
|
50 | 1be508e9 | Vangelis Koukis | if res['status'] == "OK": |
51 | 1be508e9 | Vangelis Koukis | sys.exit(0)
|
52 | 1be508e9 | Vangelis Koukis | else:
|
53 | 1be508e9 | Vangelis Koukis | sys.exit(1) |