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
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:
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 )
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)
def __init__(self, use_logger=True): if use_logger: from services.logger_service import get_logger self.logger = get_logger('OsInteraction')
#!/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']