Statistics
| Branch: | Tag: | Revision:

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)