Esempio n. 1
0
import os
import sys

from apps.openport_app import OpenportApp
from services import crypt_service
from common.share import Share
from services.logger_service import get_logger
from apps.servefile import serve_file_on_port
from apps.openport_api import open_port
from time import sleep

logger = get_logger("openportit")


def get_open_port():
    import socket

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind(("", 0))
    s.listen(1)
    port = s.getsockname()[1]
    s.close()
    return port


class OpenportItApp(OpenportApp):
    def __init__(self):
        super(OpenportItApp, self).__init__()

    def open_port_file(self, share, callback=None):
        import threading
Esempio n. 2
0
import urllib2
import traceback
from time import sleep
sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
from tray import dbhandler

from tray.server import start_server_thread, start_server
from tray.dbhandler import DBHandler
from services import osinteraction
from tray.globals import Globals
from services.logger_service import get_logger, set_log_level
from common.share import Share
from common.session import Session
from services.utils import nonBlockRead

logger = get_logger('OpenPortDispatcher')

class OpenPortDispatcher(object):

    def __init__(self):
        self.share_processes = {}
        self.dbhandler = dbhandler.getInstance()
        self.os_interaction = osinteraction.getInstance()
        self.globals = Globals()
        self.start_account_checking()
        if self.os_interaction.is_compiled():
            sys.stdout = open(self.os_interaction.get_app_data_path('application.out.log'), 'a')
            sys.stderr = open(self.os_interaction.get_app_data_path('application.error.log'), 'a')

    def exitApp(self,event):
        for pid in self.share_processes:
Esempio n. 3
0
import cgi
from urlparse import urlparse, parse_qs
import SocketServer
import os
import posixpath
import socket
import urllib
from OpenSSL import SSL
from services.logger_service import get_logger
from services import osinteraction
from ext_http_server import RangeHandler


_file_serve_path = None
_token = None
logger = get_logger(__name__)
os_interaction = osinteraction.getInstance()

class FileServeHandler(RangeHandler):
    def setup(self):
        self.connection = self.request
        self.rfile = socket._fileobject(self.request, "rb", self.rbufsize)
        self.wfile = socket._fileobject(self.request, "wb", self.wbufsize)

    def send_head(self):
        if not self.check_token(): return None
        return self.send_file(_file_serve_path)

    def send_file(self, path):
		f = None
		logger.debug( 'path = %s' % path )
Esempio n. 4
0
import cgi, urlparse
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
import signal
import os
import threading
import traceback
import sys
from common.session import Session
from dbhandler import DBHandler
from globals import Globals
from common.share import Share
from services.logger_service import get_logger
from tray import dbhandler

logger = get_logger('server')

onNewShare = None

shares = {}

class ShareRequestHandler(BaseHTTPRequestHandler):

    def do_POST(self):
        logger.debug('got post on path:%s'%self.path)
        try:
            ctype, pdict = cgi.parse_header(self.headers.getheader('content-type'))
            if ctype == 'multipart/form-data':
                postvars = cgi.parse_multipart(self.rfile, pdict)
            elif ctype == 'application/x-www-form-urlencoded':
                length = int(self.headers.getheader('content-length'))
                postvars = urlparse.parse_qs(self.rfile.read(length), keep_blank_values=1)
Esempio n. 5
0
 def __init__(self, use_logger=True):
     if use_logger:
         from services.logger_service import get_logger
         self.logger = get_logger('OsInteraction')
Esempio n. 6
0
#!/usr/bin/env python
import os

import sys
from apps.keyhandling import get_or_create_public_key, PUBLIC_KEY_FILE, PRIVATE_KEY_FILE
from apps.portforwarding import PortForwardingService
from common.session import Session
from services.logger_service import get_logger

from apps.openport import request_port

logger = get_logger('openport_api')

SERVER_SSH_PORT = 22
FALLBACK_SERVER_SSH_PORT = 443
SERVER_SSH_USER = '******'

class PortForwardResponse():
    def __init__(self, server='', remote_port=-1, message='', account_id=-1, key_id=-1, local_port=-1, session_token=''):
        self.server = server
        self.remote_port = remote_port
        self.message = message
        self.account_id = account_id
        self.key_id = key_id
        self.session_token = session_token

    def __init__(self,dict):
        self.from_dict(dict)

    def from_dict(self, dict):
        self.server = dict['server_ip']