diff --git a/build/compiletest.py b/build/compiletest.py
index fdbf7db1..c9e85160 100755
--- a/build/compiletest.py
+++ b/build/compiletest.py
@@ -7,7 +7,7 @@ import sys
import traceback
matches = []
-for root, dirnames, filenames in os.walk('src'):
+for root, _, filenames in os.walk('src'):
for filename in fnmatch.filter(filenames, '*.py'):
matches.append(os.path.join(root, filename))
diff --git a/checkdeps.py b/checkdeps.py
index 05f00944..546184bc 100644
--- a/checkdeps.py
+++ b/checkdeps.py
@@ -169,11 +169,9 @@ def testCompiler():
)
dist = Distribution()
- dist.ext_modules = [bitmsghash]
cmd = build_ext(dist)
cmd.initialize_options()
cmd.finalize_options()
- cmd.force = True
try:
cmd.run()
except CompileError:
diff --git a/dev/bloomfiltertest.py b/dev/bloomfiltertest.py
index 539d00f3..0e66dccd 100644
--- a/dev/bloomfiltertest.py
+++ b/dev/bloomfiltertest.py
@@ -1,5 +1,5 @@
from math import ceil
-from os import stat, getenv, path
+from os import getenv, path
from pybloom import BloomFilter as BloomFilter1
from pybloomfilter import BloomFilter as BloomFilter2
import sqlite3
@@ -9,7 +9,6 @@ from time import time
conn = sqlite3.connect(path.join(getenv("HOME"), '.config/PyBitmessage/messages.dat'))
-conn.text_factory = str
cur = conn.cursor()
rawlen = 0
itemcount = 0
diff --git a/dev/msgtest.py b/dev/msgtest.py
index d5a8be8e..8418610a 100644
--- a/dev/msgtest.py
+++ b/dev/msgtest.py
@@ -1,4 +1,3 @@
-import importlib
from os import listdir, path
from pprint import pprint
import sys
diff --git a/dev/powinterrupttest.py b/dev/powinterrupttest.py
index cc4c2197..ea059707 100644
--- a/dev/powinterrupttest.py
+++ b/dev/powinterrupttest.py
@@ -44,6 +44,5 @@ signal.signal(signal.SIGTERM, signal_handler)
bso = ctypes.CDLL(os.path.join("bitmsghash", "bitmsghash.so"))
bmpow = bso.BitmessagePOW
-bmpow.restype = ctypes.c_ulonglong
_doCPoW(2**44, "")
diff --git a/dev/ssltest.py b/dev/ssltest.py
index 4ddca8ca..c66dfe16 100644
--- a/dev/ssltest.py
+++ b/dev/ssltest.py
@@ -45,8 +45,6 @@ def sslHandshake(sock, server=False):
context = ssl.SSLContext(sslProtocolVersion())
context.set_ciphers(sslProtocolCiphers())
context.set_ecdh_curve("secp256k1")
- context.check_hostname = False
- context.verify_mode = ssl.CERT_NONE
context.options = ssl.OP_ALL | ssl.OP_NO_SSLv2 | ssl.OP_NO_SSLv3 | ssl.OP_SINGLE_ECDH_USE | ssl.OP_CIPHER_SERVER_PREFERENCE
sslSock = context.wrap_socket(sock, server_side = server, do_handshake_on_connect=False)
else:
diff --git a/packages/collectd/pybitmessagestatus.py b/packages/collectd/pybitmessagestatus.py
old mode 100644
new mode 100755
index 1db9f5b1..522dcf70
--- a/packages/collectd/pybitmessagestatus.py
+++ b/packages/collectd/pybitmessagestatus.py
@@ -40,12 +40,10 @@ def read_callback():
for i in ["networkConnections", "numberOfPubkeysProcessed", "numberOfMessagesProcessed", "numberOfBroadcastsProcessed"]:
metric = collectd.Values()
- metric.plugin = "pybitmessagestatus"
if i[0:6] == "number":
metric.type = 'counter'
else:
metric.type = 'gauge'
- metric.type_instance = i.lower()
try:
metric.values = [clientStatus[i]]
except:
diff --git a/src/addresses.py b/src/addresses.py
index c8caaf82..91936214 100644
--- a/src/addresses.py
+++ b/src/addresses.py
@@ -5,16 +5,6 @@ from binascii import hexlify, unhexlify
#from debug import logger
-#There is another copy of this function in Bitmessagemain.py
-def convertIntToString(n):
- a = __builtins__.hex(n)
- if a[-1:] == 'L':
- a = a[:-1]
- if (len(a) % 2) == 0:
- return unhexlify(a[2:])
- else:
- return unhexlify('0'+a[2:])
-
ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
def encodeBase58(num, alphabet=ALPHABET):
diff --git a/src/api.py b/src/api.py
index edb9e23d..3b850346 100644
--- a/src/api.py
+++ b/src/api.py
@@ -56,7 +56,6 @@ class APIError(Exception):
class StoppableXMLRPCServer(SimpleXMLRPCServer):
- allow_reuse_address = True
def serve_forever(self):
while state.shutdown == 0:
@@ -68,79 +67,79 @@ class StoppableXMLRPCServer(SimpleXMLRPCServer):
# http://code.activestate.com/recipes/501148-xmlrpc-serverclient-which-does-cookie-handling-and/
class MySimpleXMLRPCRequestHandler(SimpleXMLRPCRequestHandler):
- def do_POST(self):
- # Handles the HTTP POST request.
- # Attempts to interpret all HTTP POST requests as XML-RPC calls,
- # which are forwarded to the server's _dispatch method for handling.
+ # def do_POST(self):
+ # # Handles the HTTP POST request.
+ # # Attempts to interpret all HTTP POST requests as XML-RPC calls,
+ # # which are forwarded to the server's _dispatch method for handling.
- # Note: this method is the same as in SimpleXMLRPCRequestHandler,
- # just hacked to handle cookies
+ # # Note: this method is the same as in SimpleXMLRPCRequestHandler,
+ # # just hacked to handle cookies
- # Check that the path is legal
- if not self.is_rpc_path_valid():
- self.report_404()
- return
+ # # Check that the path is legal
+ # if not self.is_rpc_path_valid():
+ # self.report_404()
+ # return
- try:
- # Get arguments by reading body of request.
- # We read this in chunks to avoid straining
- # socket.read(); around the 10 or 15Mb mark, some platforms
- # begin to have problems (bug #792570).
- max_chunk_size = 10 * 1024 * 1024
- size_remaining = int(self.headers["content-length"])
- L = []
- while size_remaining:
- chunk_size = min(size_remaining, max_chunk_size)
- L.append(self.rfile.read(chunk_size))
- size_remaining -= len(L[-1])
- data = ''.join(L)
+ # try:
+ # # Get arguments by reading body of request.
+ # # We read this in chunks to avoid straining
+ # # socket.read(); around the 10 or 15Mb mark, some platforms
+ # # begin to have problems (bug #792570).
+ # max_chunk_size = 10 * 1024 * 1024
+ # size_remaining = int(self.headers["content-length"])
+ # L = []
+ # while size_remaining:
+ # chunk_size = min(size_remaining, max_chunk_size)
+ # L.append(self.rfile.read(chunk_size))
+ # size_remaining -= len(L[-1])
+ # data = ''.join(L)
- # In previous versions of SimpleXMLRPCServer, _dispatch
- # could be overridden in this class, instead of in
- # SimpleXMLRPCDispatcher. To maintain backwards compatibility,
- # check to see if a subclass implements _dispatch and dispatch
- # using that method if present.
- response = self.server._marshaled_dispatch(
- data, getattr(self, '_dispatch', None)
- )
- except: # This should only happen if the module is buggy
- # internal error, report as HTTP server error
- self.send_response(500)
- self.end_headers()
- else:
- # got a valid XML RPC response
- self.send_response(200)
- self.send_header("Content-type", "text/xml")
- self.send_header("Content-length", str(len(response)))
+ # # In previous versions of SimpleXMLRPCServer, _dispatch
+ # # could be overridden in this class, instead of in
+ # # SimpleXMLRPCDispatcher. To maintain backwards compatibility,
+ # # check to see if a subclass implements _dispatch and dispatch
+ # # using that method if present.
+ # response = self.server._marshaled_dispatch(
+ # data, getattr(self, '_dispatch', None)
+ # )
+ # except: # This should only happen if the module is buggy
+ # # internal error, report as HTTP server error
+ # self.send_response(500)
+ # self.end_headers()
+ # else:
+ # # got a valid XML RPC response
+ # self.send_response(200)
+ # self.send_header("Content-type", "text/xml")
+ # self.send_header("Content-length", str(len(response)))
- # HACK :start -> sends cookies here
- if self.cookies:
- for cookie in self.cookies:
- self.send_header('Set-Cookie', cookie.output(header=''))
- # HACK :end
+ # # HACK :start -> sends cookies here
+ # if self.cookies:
+ # for cookie in self.cookies:
+ # self.send_header('Set-Cookie', cookie.output(header=''))
+ # # HACK :end
- self.end_headers()
- self.wfile.write(response)
+ # self.end_headers()
+ # self.wfile.write(response)
- # shut down the connection
- self.wfile.flush()
- self.connection.shutdown(1)
+ # # shut down the connection
+ # self.wfile.flush()
+ # self.connection.shutdown(1)
- def APIAuthenticateClient(self):
- if 'Authorization' in self.headers:
- # handle Basic authentication
- (enctype, encstr) = self.headers.get('Authorization').split()
- (emailid, password) = encstr.decode('base64').split(':')
- if emailid == BMConfigParser().get('bitmessagesettings', 'apiusername') and password == BMConfigParser().get('bitmessagesettings', 'apipassword'):
- return True
- else:
- return False
- else:
- logger.warn('Authentication failed because header lacks Authentication field')
- time.sleep(2)
- return False
+ # def APIAuthenticateClient(self):
+ # if 'Authorization' in self.headers:
+ # # handle Basic authentication
+ # (_, encstr) = self.headers.get('Authorization').split()
+ # (emailid, password) = encstr.decode('base64').split(':')
+ # if emailid == BMConfigParser().get('bitmessagesettings', 'apiusername') and password == BMConfigParser().get('bitmessagesettings', 'apipassword'):
+ # return True
+ # else:
+ # return False
+ # else:
+ # logger.warn('Authentication failed because header lacks Authentication field')
+ # time.sleep(2)
+ # return False
- return False
+ # return False
def _decode(self, text, decode_type):
try:
@@ -445,7 +444,7 @@ class MySimpleXMLRPCRequestHandler(SimpleXMLRPCRequestHandler):
if len(addressGeneratorReturnValue) == 0:
raise APIError(24, 'Chan address is already present.')
#TODO: this variable is not used to anything
- createdAddress = addressGeneratorReturnValue[0] # in case we ever want it for anything.
+ #createdAddress = addressGeneratorReturnValue[0] # in case we ever want it for anything, uncomment
return "success"
def HandleLeaveChan(self, params):
@@ -1042,29 +1041,29 @@ class MySimpleXMLRPCRequestHandler(SimpleXMLRPCRequestHandler):
handlers['deleteAndVacuum'] = HandleDeleteAndVacuum
handlers['shutdown'] = HandleShutdown
- def _handle_request(self, method, params):
- if (self.handlers.has_key(method)):
- return self.handlers[method](self, params)
- else:
- raise APIError(20, 'Invalid method: %s' % method)
+ # def _handle_request(self, method, params):
+ # if (self.handlers.has_key(method)):
+ # return self.handlers[method](self, params)
+ # else:
+ # raise APIError(20, 'Invalid method: %s' % method)
- def _dispatch(self, method, params):
- self.cookies = []
+ # def _dispatch(self, method, params):
+ # self.cookies = []
- validuser = self.APIAuthenticateClient()
- if not validuser:
- time.sleep(2)
- return "RPC Username or password incorrect or HTTP header lacks authentication at all."
+ # validuser = self.APIAuthenticateClient()
+ # if not validuser:
+ # time.sleep(2)
+ # return "RPC Username or password incorrect or HTTP header lacks authentication at all."
- try:
- return self._handle_request(method, params)
- except APIError as e:
- return str(e)
- except varintDecodeError as e:
- logger.error(e)
- return "API Error 0026: Data contains a malformed varint. Some details: %s" % e
- except Exception as e:
- logger.exception(e)
- return "API Error 0021: Unexpected API Failure - %s" % str(e)
+ # try:
+ # return self._handle_request(method, params)
+ # except APIError as e:
+ # return str(e)
+ # except varintDecodeError as e:
+ # logger.error(e)
+ # return "API Error 0026: Data contains a malformed varint. Some details: %s" % e
+ # except Exception as e:
+ # logger.exception(e)
+ # return "API Error 0021: Unexpected API Failure - %s" % str(e)
diff --git a/src/bitmessagecurses/__init__.py b/src/bitmessagecurses/__init__.py
index fc1d74b2..c359265f 100644
--- a/src/bitmessagecurses/__init__.py
+++ b/src/bitmessagecurses/__init__.py
@@ -9,7 +9,6 @@
import os
import sys
-import StringIO
from textwrap import *
import time
@@ -35,7 +34,6 @@ import shutdown
quit = False
menutab = 1
menu = ["Inbox", "Send", "Sent", "Your Identities", "Subscriptions", "Address Book", "Blacklist", "Network Status"]
-naptime = 100
log = ""
logpad = None
inventorydata = 0
@@ -47,7 +45,6 @@ sentbox = []
sentcur = 0
addresses = []
addrcur = 0
-addrcopy = 0
subscriptions = []
subcur = 0
addrbook = []
@@ -71,7 +68,6 @@ class errLog:
def flush(self):
pass
printlog = printLog()
-errlog = errLog()
def cpair(a):
diff --git a/src/bitmessagemain.py b/src/bitmessagemain.py
index accd5740..0b446033 100755
--- a/src/bitmessagemain.py
+++ b/src/bitmessagemain.py
@@ -418,12 +418,12 @@ All parameters are optional.
#TODO: nice function but no one is using this
- def getApiAddress(self):
- if not BMConfigParser().safeGetBoolean('bitmessagesettings', 'apienabled'):
- return None
- address = BMConfigParser().get('bitmessagesettings', 'apiinterface')
- port = BMConfigParser().getint('bitmessagesettings', 'apiport')
- return {'address':address,'port':port}
+ # def getApiAddress(self):
+ # if not BMConfigParser().safeGetBoolean('bitmessagesettings', 'apienabled'):
+ # return None
+ # address = BMConfigParser().get('bitmessagesettings', 'apiinterface')
+ # port = BMConfigParser().getint('bitmessagesettings', 'apiport')
+ # return {'address':address,'port':port}
def main():
diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py
index 7bbd7dd9..e902858b 100644
--- a/src/bitmessageqt/__init__.py
+++ b/src/bitmessageqt/__init__.py
@@ -17,7 +17,7 @@ from bmconfigparser import BMConfigParser
import defaults
from namecoin import namecoinConnection
from messageview import MessageView
-from migrationwizard import Ui_MigrationWizard
+# from migrationwizard import Ui_MigrationWizard
from foldertree import (
AccountMixin, Ui_FolderWidget, Ui_AddressWidget, Ui_SubscriptionWidget,
MessageList_AddressWidget, MessageList_SubjectWidget,
@@ -280,10 +280,10 @@ class MyForm(settingsmixin.SMainWindow):
_translate(
"MainWindow", "Copy address to clipboard"),
self.on_action_Clipboard)
- self.actionSpecialAddressBehavior = self.ui.addressContextMenuToolbar.addAction(
- _translate(
- "MainWindow", "Special address behavior..."),
- self.on_action_SpecialAddressBehaviorDialog)
+ # self.actionSpecialAddressBehavior = self.ui.addressContextMenuToolbar.addAction(
+ # _translate(
+ # "MainWindow", "Special address behavior..."),
+ # self.on_action_SpecialAddressBehaviorDialog)
self.ui.treeWidgetChans.setContextMenuPolicy(
QtCore.Qt.CustomContextMenu)
@@ -851,12 +851,12 @@ class MyForm(settingsmixin.SMainWindow):
self.appIndicatorShowOrHideWindow()
# unchecks the show item on the application indicator
- def appIndicatorHide(self):
- if self.actionShow is None:
- return
- if self.actionShow.isChecked():
- self.actionShow.setChecked(False)
- self.appIndicatorShowOrHideWindow()
+ # def appIndicatorHide(self):
+ # if self.actionShow is None:
+ # return
+ # if self.actionShow.isChecked():
+ # self.actionShow.setChecked(False)
+ # self.appIndicatorShowOrHideWindow()
def appIndicatorSwitchQuietMode(self):
BMConfigParser().set(
@@ -1546,32 +1546,32 @@ class MyForm(settingsmixin.SMainWindow):
elif dialog.radioButtonConfigureNetwork.isChecked():
self.click_actionSettings()
- def showMigrationWizard(self, level):
- self.migrationWizardInstance = Ui_MigrationWizard(["a"])
- if self.migrationWizardInstance.exec_():
- pass
- else:
- pass
+ # def showMigrationWizard(self, level):
+ # self.migrationWizardInstance = Ui_MigrationWizard(["a"])
+ # if self.migrationWizardInstance.exec_():
+ # pass
+ # else:
+ # pass
- def changeEvent(self, event):
- if event.type() == QtCore.QEvent.LanguageChange:
- self.ui.retranslateUi(self)
- self.init_inbox_popup_menu(False)
- self.init_identities_popup_menu(False)
- self.init_chan_popup_menu(False)
- self.init_addressbook_popup_menu(False)
- self.init_subscriptions_popup_menu(False)
- self.init_sent_popup_menu(False)
- self.ui.blackwhitelist.init_blacklist_popup_menu(False)
- if event.type() == QtCore.QEvent.WindowStateChange:
- if self.windowState() & QtCore.Qt.WindowMinimized:
- if BMConfigParser().getboolean('bitmessagesettings', 'minimizetotray') and not 'darwin' in sys.platform:
- QtCore.QTimer.singleShot(0, self.appIndicatorHide)
- elif event.oldState() & QtCore.Qt.WindowMinimized:
- # The window state has just been changed to
- # Normal/Maximised/FullScreen
- pass
- # QtGui.QWidget.changeEvent(self, event)
+ # def changeEvent(self, event):
+ # if event.type() == QtCore.QEvent.LanguageChange:
+ # self.ui.retranslateUi(self)
+ # self.init_inbox_popup_menu(False)
+ # self.init_identities_popup_menu(False)
+ # self.init_chan_popup_menu(False)
+ # self.init_addressbook_popup_menu(False)
+ # self.init_subscriptions_popup_menu(False)
+ # self.init_sent_popup_menu(False)
+ # self.ui.blackwhitelist.init_blacklist_popup_menu(False)
+ # if event.type() == QtCore.QEvent.WindowStateChange:
+ # if self.windowState() & QtCore.Qt.WindowMinimized:
+ # if BMConfigParser().getboolean('bitmessagesettings', 'minimizetotray') and not 'darwin' in sys.platform:
+ # QtCore.QTimer.singleShot(0, self.appIndicatorHide)
+ # elif event.oldState() & QtCore.Qt.WindowMinimized:
+ # # The window state has just been changed to
+ # # Normal/Maximised/FullScreen
+ # pass
+ # # QtGui.QWidget.changeEvent(self, event)
def __icon_activated(self, reason):
if reason == QtGui.QSystemTrayIcon.Trigger:
@@ -2135,17 +2135,17 @@ class MyForm(settingsmixin.SMainWindow):
self.updateStatusBar(_translate(
"MainWindow", "Broadcast queued."))
- def click_pushButtonLoadFromAddressBook(self):
- self.ui.tabWidget.setCurrentIndex(5)
- for i in range(4):
- time.sleep(0.1)
- self.statusbar.clearMessage()
- time.sleep(0.1)
- self.updateStatusBar(_translate(
- "MainWindow",
- "Right click one or more entries in your address book and"
- " select \'Send message to this address\'."
- ))
+ # def click_pushButtonLoadFromAddressBook(self):
+ # self.ui.tabWidget.setCurrentIndex(5)
+ # for i in range(4):
+ # time.sleep(0.1)
+ # self.statusbar.clearMessage()
+ # time.sleep(0.1)
+ # self.updateStatusBar(_translate(
+ # "MainWindow",
+ # "Right click one or more entries in your address book and"
+ # " select \'Send message to this address\'."
+ # ))
def click_pushButtonFetchNamecoinID(self):
nc = namecoinConnection()
@@ -2846,25 +2846,25 @@ class MyForm(settingsmixin.SMainWindow):
os._exit(0)
# window close event
- def closeEvent(self, event):
- self.appIndicatorHide()
- trayonclose = False
+ # def closeEvent(self, event):
+ # self.appIndicatorHide()
+ # trayonclose = False
- try:
- trayonclose = BMConfigParser().getboolean(
- 'bitmessagesettings', 'trayonclose')
- except Exception:
- pass
+ # try:
+ # trayonclose = BMConfigParser().getboolean(
+ # 'bitmessagesettings', 'trayonclose')
+ # except Exception:
+ # pass
- # always ignore, it shuts down by itself
- if self.quitAccepted:
- event.accept()
- return
+ # # always ignore, it shuts down by itself
+ # if self.quitAccepted:
+ # event.accept()
+ # return
- event.ignore()
- if not trayonclose:
- # quit the application
- self.quit()
+ # event.ignore()
+ # if not trayonclose:
+ # # quit the application
+ # self.quit()
def on_action_InboxMessageForceHtml(self):
msgid = self.getCurrentMessageId()
@@ -3092,24 +3092,24 @@ class MyForm(settingsmixin.SMainWindow):
"Error: You cannot add the same address to your blacklist"
" twice. Try renaming the existing one if you want."))
- def deleteRowFromMessagelist(self, row = None, inventoryHash = None, ackData = None, messageLists = None):
- if messageLists is None:
- messageLists = (self.ui.tableWidgetInbox, self.ui.tableWidgetInboxChans, self.ui.tableWidgetInboxSubscriptions)
- elif type(messageLists) not in (list, tuple):
- messageLists = (messageLists)
- for messageList in messageLists:
- if row is not None:
- inventoryHash = str(messageList.item(row, 3).data(
- QtCore.Qt.UserRole).toPyObject())
- messageList.removeRow(row)
- elif inventoryHash is not None:
- for i in range(messageList.rowCount() - 1, -1, -1):
- if messageList.item(i, 3).data(QtCore.Qt.UserRole).toPyObject() == inventoryHash:
- messageList.removeRow(i)
- elif ackData is not None:
- for i in range(messageList.rowCount() - 1, -1, -1):
- if messageList.item(i, 3).data(QtCore.Qt.UserRole).toPyObject() == ackData:
- messageList.removeRow(i)
+ # def deleteRowFromMessagelist(self, row = None, inventoryHash = None, ackData = None, messageLists = None):
+ # if messageLists is None:
+ # messageLists = (self.ui.tableWidgetInbox, self.ui.tableWidgetInboxChans, self.ui.tableWidgetInboxSubscriptions)
+ # elif type(messageLists) not in (list, tuple):
+ # messageLists = (messageLists)
+ # for messageList in messageLists:
+ # if row is not None:
+ # inventoryHash = str(messageList.item(row, 3).data(
+ # QtCore.Qt.UserRole).toPyObject())
+ # messageList.removeRow(row)
+ # elif inventoryHash is not None:
+ # for i in range(messageList.rowCount() - 1, -1, -1):
+ # if messageList.item(i, 3).data(QtCore.Qt.UserRole).toPyObject() == inventoryHash:
+ # messageList.removeRow(i)
+ # elif ackData is not None:
+ # for i in range(messageList.rowCount() - 1, -1, -1):
+ # if messageList.item(i, 3).data(QtCore.Qt.UserRole).toPyObject() == ackData:
+ # messageList.removeRow(i)
# Send item on the Inbox tab to trash
def on_action_InboxTrash(self):
@@ -3457,16 +3457,16 @@ class MyForm(settingsmixin.SMainWindow):
else:
return False
- def getAccountTreeWidget(self, account):
- try:
- if account.type == AccountMixin.CHAN:
- return self.ui.treeWidgetChans
- elif account.type == AccountMixin.SUBSCRIPTION:
- return self.ui.treeWidgetSubscriptions
- else:
- return self.ui.treeWidgetYourIdentities
- except:
- return self.ui.treeWidgetYourIdentities
+ # def getAccountTreeWidget(self, account):
+ # try:
+ # if account.type == AccountMixin.CHAN:
+ # return self.ui.treeWidgetChans
+ # elif account.type == AccountMixin.SUBSCRIPTION:
+ # return self.ui.treeWidgetSubscriptions
+ # else:
+ # return self.ui.treeWidgetYourIdentities
+ # except:
+ # return self.ui.treeWidgetYourIdentities
def getCurrentMessagelist(self):
currentIndex = self.ui.tabWidget.currentIndex();
diff --git a/src/bitmessageqt/addressvalidator.py b/src/bitmessageqt/addressvalidator.py
index f9de70a2..28173c12 100644
--- a/src/bitmessageqt/addressvalidator.py
+++ b/src/bitmessageqt/addressvalidator.py
@@ -129,8 +129,8 @@ class AddressPassPhraseValidatorMixin():
else:
return (QtGui.QValidator.Intermediate, pos)
- def checkData(self):
- return self.validate("", 0)
+ # def checkData(self):
+ # return self.validate("", 0)
class AddressValidator(QtGui.QValidator, AddressPassPhraseValidatorMixin):
def __init__(self, parent=None, passPhraseObject=None, feedBackObject=None, buttonBox=None, addressMandatory=True):
diff --git a/src/bitmessageqt/bitmessage_icons_rc.py b/src/bitmessageqt/bitmessage_icons_rc.py
index bb0a02c0..f6a21883 100644
--- a/src/bitmessageqt/bitmessage_icons_rc.py
+++ b/src/bitmessageqt/bitmessage_icons_rc.py
@@ -1669,7 +1669,7 @@ qt_resource_struct = "\
def qInitResources():
QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data)
-def qCleanupResources():
- QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data)
+# def qCleanupResources():
+# QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data)
qInitResources()
diff --git a/src/bitmessageqt/bitmessageui.py b/src/bitmessageqt/bitmessageui.py
index cb3578c0..611ab340 100644
--- a/src/bitmessageqt/bitmessageui.py
+++ b/src/bitmessageqt/bitmessageui.py
@@ -763,7 +763,7 @@ class Ui_MainWindow(object):
self.actionDeleteAllTrashedMessages.setText(_translate("MainWindow", "Delete all trashed messages", None))
self.actionJoinChan.setText(_translate("MainWindow", "Join / Create chan", None))
-import bitmessage_icons_rc
+# import bitmessage_icons_rc
if __name__ == "__main__":
import sys
diff --git a/src/bitmessageqt/blacklist.py b/src/bitmessageqt/blacklist.py
index e07f9469..308e940f 100644
--- a/src/bitmessageqt/blacklist.py
+++ b/src/bitmessageqt/blacklist.py
@@ -108,9 +108,9 @@ class Blacklist(QtGui.QWidget, RetranslateMixin):
# Popup menu for the Blacklist page
self.blacklistContextMenuToolbar = QtGui.QToolBar()
# Actions
- self.actionBlacklistNew = self.blacklistContextMenuToolbar.addAction(
- _translate(
- "MainWindow", "Add new entry"), self.on_action_BlacklistNew)
+ # self.actionBlacklistNew = self.blacklistContextMenuToolbar.addAction(
+ # _translate(
+ # "MainWindow", "Add new entry"), self.on_action_BlacklistNew)
self.actionBlacklistDelete = self.blacklistContextMenuToolbar.addAction(
_translate(
"MainWindow", "Delete"), self.on_action_BlacklistDelete)
@@ -174,8 +174,8 @@ class Blacklist(QtGui.QWidget, RetranslateMixin):
self.tableWidgetBlacklist.setSortingEnabled(True)
# Group of functions for the Blacklist dialog box
- def on_action_BlacklistNew(self):
- self.click_pushButtonAddBlacklist()
+ # def on_action_BlacklistNew(self):
+ # self.click_pushButtonAddBlacklist()
def on_action_BlacklistDelete(self):
currentRow = self.tableWidgetBlacklist.currentRow()
diff --git a/src/bitmessageqt/foldertree.py b/src/bitmessageqt/foldertree.py
index 11227fca..2dafdec2 100644
--- a/src/bitmessageqt/foldertree.py
+++ b/src/bitmessageqt/foldertree.py
@@ -1,5 +1,5 @@
from PyQt4 import QtCore, QtGui
-from string import find, rfind, rstrip, lstrip
+from string import find, rstrip, lstrip# , rfind
from tr import _translate
from bmconfigparser import BMConfigParser
@@ -501,46 +501,46 @@ class AddressBookCompleter(QtGui.QCompleter):
if oldPos != self.cursorPos:
self.cursorPos = -1
- def splitPath(self, path):
- stringList = []
- text = unicode(path.toUtf8(), encoding="UTF-8")
- splitIndex = rfind(text[0:self.widget().cursorPosition()], ";") + 1
- str = text[splitIndex:self.widget().cursorPosition()]
- str = rstrip(lstrip(str))
- stringList.append(str)
- return stringList
+ # def splitPath(self, path):
+ # stringList = []
+ # text = unicode(path.toUtf8(), encoding="UTF-8")
+ # splitIndex = rfind(text[0:self.widget().cursorPosition()], ";") + 1
+ # str = text[splitIndex:self.widget().cursorPosition()]
+ # str = rstrip(lstrip(str))
+ # stringList.append(str)
+ # return stringList
- def pathFromIndex(self, index):
- autoString = unicode(index.data(QtCore.Qt.EditRole).toString().toUtf8(), encoding="UTF-8")
- text = unicode(self.widget().text().toUtf8(), encoding="UTF-8")
+ # def pathFromIndex(self, index):
+ # autoString = unicode(index.data(QtCore.Qt.EditRole).toString().toUtf8(), encoding="UTF-8")
+ # text = unicode(self.widget().text().toUtf8(), encoding="UTF-8")
- # If cursor position was saved, restore it, else save it
- if self.cursorPos != -1:
- self.widget().setCursorPosition(self.cursorPos)
- else:
- self.cursorPos = self.widget().cursorPosition()
+ # # If cursor position was saved, restore it, else save it
+ # if self.cursorPos != -1:
+ # self.widget().setCursorPosition(self.cursorPos)
+ # else:
+ # self.cursorPos = self.widget().cursorPosition()
- # Get current prosition
- curIndex = self.widget().cursorPosition()
+ # # Get current prosition
+ # curIndex = self.widget().cursorPosition()
- # prev_delimiter_index should actually point at final white space AFTER the delimiter
- # Get index of last delimiter before current position
- prevDelimiterIndex = rfind(text[0:curIndex], ";")
- while text[prevDelimiterIndex + 1] == " ":
- prevDelimiterIndex += 1
+ # # prev_delimiter_index should actually point at final white space AFTER the delimiter
+ # # Get index of last delimiter before current position
+ # prevDelimiterIndex = rfind(text[0:curIndex], ";")
+ # while text[prevDelimiterIndex + 1] == " ":
+ # prevDelimiterIndex += 1
- # Get index of first delimiter after current position (or EOL if no delimiter after cursor)
- nextDelimiterIndex = find(text, ";", curIndex)
- if nextDelimiterIndex == -1:
- nextDelimiterIndex = len(text)
+ # # Get index of first delimiter after current position (or EOL if no delimiter after cursor)
+ # nextDelimiterIndex = find(text, ";", curIndex)
+ # if nextDelimiterIndex == -1:
+ # nextDelimiterIndex = len(text)
- # Get part of string that occurs before cursor
- part1 = text[0:prevDelimiterIndex + 1]
+ # # Get part of string that occurs before cursor
+ # part1 = text[0:prevDelimiterIndex + 1]
- # Get string value from before auto finished string is selected
- pre = text[prevDelimiterIndex + 1:curIndex - 1];
+ # # Get string value from before auto finished string is selected
+ # pre = text[prevDelimiterIndex + 1:curIndex - 1];
- # Get part of string that occurs AFTER cursor
- part2 = text[nextDelimiterIndex:]
+ # # Get part of string that occurs AFTER cursor
+ # part2 = text[nextDelimiterIndex:]
- return part1 + autoString + part2;
+ # return part1 + autoString + part2;
diff --git a/src/bitmessageqt/languagebox.py b/src/bitmessageqt/languagebox.py
index 552e0350..aec2aaa7 100644
--- a/src/bitmessageqt/languagebox.py
+++ b/src/bitmessageqt/languagebox.py
@@ -12,7 +12,7 @@ class LanguageBox(QtGui.QComboBox):
self.populate()
def populate(self):
- self.languages = []
+ # self.languages = []
self.clear()
localesPath = os.path.join (paths.codePath(), 'translations')
configuredLocale = "system"
diff --git a/src/bitmessageqt/messageview.py b/src/bitmessageqt/messageview.py
index 4d2e768d..f1825ee3 100644
--- a/src/bitmessageqt/messageview.py
+++ b/src/bitmessageqt/messageview.py
@@ -1,6 +1,6 @@
from PyQt4 import QtCore, QtGui
-import multiprocessing
+# import multiprocessing
import Queue
from urlparse import urlparse
from safehtmlparser import *
@@ -75,9 +75,9 @@ class MessageView(QtGui.QTextBrowser):
if reply == QtGui.QMessageBox.Yes:
QtGui.QDesktopServices.openUrl(link)
- def loadResource (self, restype, name):
- if restype == QtGui.QTextDocument.ImageResource and name.scheme() == "bmmsg":
- pass
+ # def loadResource (self, restype, name):
+ # if restype == QtGui.QTextDocument.ImageResource and name.scheme() == "bmmsg":
+ # pass
# QImage correctImage;
# lookup the correct QImage from a cache
# return QVariant::fromValue(correctImage);
@@ -85,8 +85,8 @@ class MessageView(QtGui.QTextBrowser):
# elif restype == QtGui.QTextDocument.ImageResource:
# elif restype == QtGui.QTextDocument.StyleSheetResource:
# elif restype == QtGui.QTextDocument.UserResource:
- else:
- pass
+ # else:
+ # pass
# by default, this will interpret it as a local file
# QtGui.QTextBrowser.loadResource(restype, name)
@@ -132,7 +132,7 @@ class MessageView(QtGui.QTextBrowser):
self.html = SafeHTMLParser()
self.html.reset()
self.html.reset_safe()
- self.html.allow_picture = True
+ # self.html.allow_picture = True
self.html.feed(data)
self.html.close()
self.showPlain()
diff --git a/src/bitmessageqt/migrationwizard.py b/src/bitmessageqt/migrationwizard.py
old mode 100644
new mode 100755
index 6e80f1dc..cafc65db
--- a/src/bitmessageqt/migrationwizard.py
+++ b/src/bitmessageqt/migrationwizard.py
@@ -14,8 +14,8 @@ class MigrationWizardIntroPage(QtGui.QWizardPage):
layout.addWidget(label)
self.setLayout(layout)
- def nextId(self):
- return 1
+ # def nextId(self):
+ # return 1
class MigrationWizardAddressesPage(QtGui.QWizardPage):
@@ -30,8 +30,8 @@ class MigrationWizardAddressesPage(QtGui.QWizardPage):
layout.addWidget(label)
self.setLayout(layout)
- def nextId(self):
- return 10
+ # def nextId(self):
+ # return 10
class MigrationWizardGPUPage(QtGui.QWizardPage):
@@ -46,8 +46,8 @@ class MigrationWizardGPUPage(QtGui.QWizardPage):
layout.addWidget(label)
self.setLayout(layout)
- def nextId(self):
- return 10
+ # def nextId(self):
+ # return 10
class MigrationWizardConclusionPage(QtGui.QWizardPage):
@@ -67,7 +67,7 @@ class Ui_MigrationWizard(QtGui.QWizard):
def __init__(self, addresses):
super(QtGui.QWizard, self).__init__()
- self.pages = {}
+ # self.pages = {}
page = MigrationWizardIntroPage()
self.setPage(0, page)
@@ -81,4 +81,4 @@ class Ui_MigrationWizard(QtGui.QWizard):
self.setWindowTitle("Migration from PyBitMessage wizard")
self.adjustSize()
- self.show()
\ No newline at end of file
+ self.show()
diff --git a/src/bitmessageqt/newaddresswizard.py b/src/bitmessageqt/newaddresswizard.py
old mode 100644
new mode 100755
index 2311239c..089910dc
--- a/src/bitmessageqt/newaddresswizard.py
+++ b/src/bitmessageqt/newaddresswizard.py
@@ -23,11 +23,11 @@ class NewAddressWizardIntroPage(QtGui.QWizardPage):
layout.addWidget(self.onlyBM)
self.setLayout(layout)
- def nextId(self):
- if self.emailAsWell.isChecked():
- return 4
- else:
- return 1
+ # def nextId(self):
+ # if self.emailAsWell.isChecked():
+ # return 4
+ # else:
+ # return 1
class NewAddressWizardRngPassphrasePage(QtGui.QWizardPage):
@@ -58,11 +58,11 @@ class NewAddressWizardRngPassphrasePage(QtGui.QWizardPage):
layout.addWidget(self.deterministicAddress)
self.setLayout(layout)
- def nextId(self):
- if self.randomAddress.isChecked():
- return 2
- else:
- return 3
+ # def nextId(self):
+ # if self.randomAddress.isChecked():
+ # return 2
+ # else:
+ # return 3
class NewAddressWizardRandomPage(QtGui.QWizardPage):
def __init__(self, addresses):
@@ -111,8 +111,8 @@ class NewAddressWizardRandomPage(QtGui.QWizardPage):
# self.onlyBM = QtGui.QRadioButton("Bitmessage-only account (no email)")
# self.emailAsWell.setChecked(True)
- def nextId(self):
- return 6
+ # def nextId(self):
+ # return 6
class NewAddressWizardPassphrasePage(QtGui.QWizardPage):
@@ -154,8 +154,8 @@ class NewAddressWizardPassphrasePage(QtGui.QWizardPage):
layout.addWidget(label4, 7, 2, 1, 2)
self.setLayout(layout)
- def nextId(self):
- return 6
+ # def nextId(self):
+ # return 6
class NewAddressWizardEmailProviderPage(QtGui.QWizardPage):
@@ -176,8 +176,8 @@ class NewAddressWizardEmailProviderPage(QtGui.QWizardPage):
# layout.addWidget(self.mailchuck)
self.setLayout(layout)
- def nextId(self):
- return 5
+ # def nextId(self):
+ # return 5
class NewAddressWizardEmailAddressPage(QtGui.QWizardPage):
@@ -202,8 +202,8 @@ class NewAddressWizardEmailAddressPage(QtGui.QWizardPage):
layout.addWidget(self.randomEmail)
self.setLayout(layout)
- def nextId(self):
- return 6
+ # def nextId(self):
+ # return 6
class NewAddressWizardWaitPage(QtGui.QWizardPage):
@@ -240,32 +240,32 @@ class NewAddressWizardWaitPage(QtGui.QWizardPage):
if i == 50:
self.emit(QtCore.SIGNAL('completeChanged()'))
- def isComplete(self):
+ # def isComplete(self):
# print "val = " + str(self.progressBar.value())
- if self.progressBar.value() >= 50:
- return True
- else:
- return False
+ # if self.progressBar.value() >= 50:
+ # return True
+ # else:
+ # return False
- def initializePage(self):
- if self.field("emailAsWell").toBool():
- val = "yes/"
- else:
- val = "no/"
- if self.field("onlyBM").toBool():
- val += "yes"
- else:
- val += "no"
+ # def initializePage(self):
+ # if self.field("emailAsWell").toBool():
+ # val = "yes/"
+ # else:
+ # val = "no/"
+ # if self.field("onlyBM").toBool():
+ # val += "yes"
+ # else:
+ # val += "no"
- self.label.setText("Wait! " + val)
+ # self.label.setText("Wait! " + val)
# self.wizard().button(QtGui.QWizard.NextButton).setEnabled(False)
- self.progressBar.setValue(0)
- self.thread = NewAddressThread()
- self.connect(self.thread, self.thread.signal, self.update)
- self.thread.start()
+ # self.progressBar.setValue(0)
+ # self.thread = NewAddressThread()
+ # self.connect(self.thread, self.thread.signal, self.update)
+ # self.thread.start()
- def nextId(self):
- return 10
+ # def nextId(self):
+ # return 10
class NewAddressWizardConclusionPage(QtGui.QWizardPage):
@@ -284,7 +284,7 @@ class Ui_NewAddressWizard(QtGui.QWizard):
def __init__(self, addresses):
super(QtGui.QWizard, self).__init__()
- self.pages = {}
+ # self.pages = {}
page = NewAddressWizardIntroPage()
self.setPage(0, page)
@@ -316,20 +316,20 @@ class NewAddressThread(QtCore.QThread):
def __del__(self):
self.wait()
- def createDeterministic(self):
- pass
+ # def createDeterministic(self):
+ # pass
- def createPassphrase(self):
- pass
+ # def createPassphrase(self):
+ # pass
- def broadcastAddress(self):
- pass
+ # def broadcastAddress(self):
+ # pass
- def registerMailchuck(self):
- pass
+ # def registerMailchuck(self):
+ # pass
- def waitRegistration(self):
- pass
+ # def waitRegistration(self):
+ # pass
def run(self):
import time
diff --git a/src/bitmessageqt/safehtmlparser.py b/src/bitmessageqt/safehtmlparser.py
index d1d7910c..3c9135d8 100644
--- a/src/bitmessageqt/safehtmlparser.py
+++ b/src/bitmessageqt/safehtmlparser.py
@@ -1,27 +1,27 @@
from HTMLParser import HTMLParser
import inspect
import re
-from urllib import quote, quote_plus
+# from urllib import quote_plus# , quote
from urlparse import urlparse
class SafeHTMLParser(HTMLParser):
# from html5lib.sanitiser
- acceptable_elements = ['a', 'abbr', 'acronym', 'address', 'area',
- 'article', 'aside', 'audio', 'b', 'big', 'blockquote', 'br', 'button',
- 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup',
- 'command', 'datagrid', 'datalist', 'dd', 'del', 'details', 'dfn',
- 'dialog', 'dir', 'div', 'dl', 'dt', 'em', 'event-source', 'fieldset',
- 'figcaption', 'figure', 'footer', 'font', 'header', 'h1',
- 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'ins',
- 'keygen', 'kbd', 'label', 'legend', 'li', 'm', 'map', 'menu', 'meter',
- 'multicol', 'nav', 'nextid', 'ol', 'output', 'optgroup', 'option',
- 'p', 'pre', 'progress', 'q', 's', 'samp', 'section', 'select',
- 'small', 'sound', 'source', 'spacer', 'span', 'strike', 'strong',
- 'sub', 'sup', 'table', 'tbody', 'td', 'textarea', 'time', 'tfoot',
- 'th', 'thead', 'tr', 'tt', 'u', 'ul', 'var', 'video']
+ # acceptable_elements = ['a', 'abbr', 'acronym', 'address', 'area',
+ # 'article', 'aside', 'audio', 'b', 'big', 'blockquote', 'br', 'button',
+ # 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup',
+ # 'command', 'datagrid', 'datalist', 'dd', 'del', 'details', 'dfn',
+ # 'dialog', 'dir', 'div', 'dl', 'dt', 'em', 'event-source', 'fieldset',
+ # 'figcaption', 'figure', 'footer', 'font', 'header', 'h1',
+ # 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'ins',
+ # 'keygen', 'kbd', 'label', 'legend', 'li', 'm', 'map', 'menu', 'meter',
+ # 'multicol', 'nav', 'nextid', 'ol', 'output', 'optgroup', 'option',
+ # 'p', 'pre', 'progress', 'q', 's', 'samp', 'section', 'select',
+ # 'small', 'sound', 'source', 'spacer', 'span', 'strike', 'strong',
+ # 'sub', 'sup', 'table', 'tbody', 'td', 'textarea', 'time', 'tfoot',
+ # 'th', 'thead', 'tr', 'tt', 'u', 'ul', 'var', 'video']
replaces_pre = [["&", "&"], ["\"", """], ["<", "<"], [">", ">"]]
replaces_post = [["\n", "
"], ["\t", " "], [" ", " "], [" ", " "], ["
", "
"]]
- src_schemes = [ "data" ]
+ # src_schemes = [ "data" ]
#uriregex1 = re.compile(r'(?i)\b((?:(https?|ftp|bitcoin):(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?]))')
uriregex1 = re.compile(r'((https?|ftp|bitcoin):(?:/{1,3}|[a-z0-9%])(?:[a-zA-Z]|[0-9]|[$-_@.&+#]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+)')
uriregex2 = re.compile(r'"
+ # def add_if_acceptable(self, tag, attrs = None):
+ # if tag not in SafeHTMLParser.acceptable_elements:
+ # return
+ # self.sanitised += "<"
+ # if inspect.stack()[1][3] == "handle_endtag":
+ # self.sanitised += "/"
+ # self.sanitised += tag
+ # if attrs is not None:
+ # for attr, val in attrs:
+ # if tag == "img" and attr == "src" and not self.allow_picture:
+ # val = ""
+ # elif attr == "src" and not self.allow_external_src:
+ # url = urlparse(val)
+ # if url.scheme not in SafeHTMLParser.src_schemes:
+ # val = ""
+ # self.sanitised += " " + quote_plus(attr)
+ # if not (val is None):
+ # self.sanitised += "=\"" + val + "\""
+ # if inspect.stack()[1][3] == "handle_startendtag":
+ # self.sanitised += "/"
+ # self.sanitised += ">"
- def handle_starttag(self, tag, attrs):
- if tag in SafeHTMLParser.acceptable_elements:
- self.has_html = True
- self.add_if_acceptable(tag, attrs)
+ # def handle_starttag(self, tag, attrs):
+ # if tag in SafeHTMLParser.acceptable_elements:
+ # self.has_html = True
+ # self.add_if_acceptable(tag, attrs)
- def handle_endtag(self, tag):
- self.add_if_acceptable(tag)
+ # def handle_endtag(self, tag):
+ # self.add_if_acceptable(tag)
- def handle_startendtag(self, tag, attrs):
- if tag in SafeHTMLParser.acceptable_elements:
- self.has_html = True
- self.add_if_acceptable(tag, attrs)
+ # def handle_startendtag(self, tag, attrs):
+ # if tag in SafeHTMLParser.acceptable_elements:
+ # self.has_html = True
+ # self.add_if_acceptable(tag, attrs)
- def handle_data(self, data):
- self.sanitised += data
+ # def handle_data(self, data):
+ # self.sanitised += data
- def handle_charref(self, name):
- self.sanitised += "" + name + ";"
+ # def handle_charref(self, name):
+ # self.sanitised += "" + name + ";"
- def handle_entityref(self, name):
- self.sanitised += "&" + name + ";"
+ # def handle_entityref(self, name):
+ # self.sanitised += "&" + name + ";"
def feed(self, data):
try:
@@ -112,11 +112,11 @@ class SafeHTMLParser(HTMLParser):
tmp = SafeHTMLParser.replace_post(tmp)
self.raw += tmp
- def is_html(self, text = None, allow_picture = False):
- if text:
- self.reset()
- self.reset_safe()
- self.allow_picture = allow_picture
- self.feed(text)
- self.close()
- return self.has_html
+ # def is_html(self, text = None, allow_picture = False):
+ # if text:
+ # self.reset()
+ # self.reset_safe()
+ # self.allow_picture = allow_picture
+ # self.feed(text)
+ # self.close()
+ # return self.has_html
diff --git a/src/bitmessageqt/settings.py b/src/bitmessageqt/settings.py
index 4342fd09..2f9341c4 100644
--- a/src/bitmessageqt/settings.py
+++ b/src/bitmessageqt/settings.py
@@ -513,4 +513,4 @@ class Ui_settingsDialog(object):
self.label_23.setText(_translate("settingsDialog", "months.", None))
self.tabWidgetSettings.setTabText(self.tabWidgetSettings.indexOf(self.tabResendsExpire), _translate("settingsDialog", "Resends Expire", None))
-import bitmessage_icons_rc
+# import bitmessage_icons_rc
diff --git a/src/bitmessageqt/sound.py b/src/bitmessageqt/sound.py
index 9c86a9a4..369ad01a 100644
--- a/src/bitmessageqt/sound.py
+++ b/src/bitmessageqt/sound.py
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
# sound type constants
-SOUND_NONE = 0
+# SOUND_NONE = 0
SOUND_KNOWN = 1
SOUND_UNKNOWN = 2
SOUND_CONNECTED = 3
diff --git a/src/bmconfigparser.py b/src/bmconfigparser.py
index 6a598955..dd52d185 100644
--- a/src/bmconfigparser.py
+++ b/src/bmconfigparser.py
@@ -119,11 +119,11 @@ class BMConfigParser(ConfigParser.SafeConfigParser):
except AttributeError:
return True
- def validate_bitmessagesettings_maxoutboundconnections(self, value):
- try:
- value = int(value)
- except ValueError:
- return False
- if value < 0 or value > 8:
- return False
- return True
+ # def validate_bitmessagesettings_maxoutboundconnections(self, value):
+ # try:
+ # value = int(value)
+ # except ValueError:
+ # return False
+ # if value < 0 or value > 8:
+ # return False
+ # return True
diff --git a/src/class_objectHashHolder.py b/src/class_objectHashHolder.py
index 2e456d8c..97eb6ba2 100644
--- a/src/class_objectHashHolder.py
+++ b/src/class_objectHashHolder.py
@@ -47,8 +47,8 @@ class objectHashHolder(threading.Thread):
def holdPeer(self,peerDetails):
self.collectionOfPeerLists[random.randrange(0, objectHashHolder.size)].append(peerDetails)
- def hashCount(self):
- return sum([len(x) for x in self.collectionOfHashLists if type(x) is list])
+ # def hashCount(self):
+ # return sum([len(x) for x in self.collectionOfHashLists if type(x) is list])
def close(self):
self.shutdown = True
diff --git a/src/class_objectProcessor.py b/src/class_objectProcessor.py
index 181ce30e..8ef389b9 100644
--- a/src/class_objectProcessor.py
+++ b/src/class_objectProcessor.py
@@ -15,7 +15,7 @@ import highlevelcrypto
from addresses import *
from bmconfigparser import BMConfigParser
import helper_generic
-from helper_generic import addDataPadding
+# from helper_generic import addDataPadding
import helper_bitcoin
import helper_inbox
import helper_msgcoding
@@ -209,7 +209,7 @@ class objectProcessor(threading.Thread):
if len(data) < 146: # sanity check. This is the minimum possible length.
logger.debug('(within processpubkey) payloadLength less than 146. Sanity check failed.')
return
- bitfieldBehaviors = data[readPosition:readPosition + 4]
+ # bitfieldBehaviors = data[readPosition:readPosition + 4]
readPosition += 4
publicSigningKey = data[readPosition:readPosition + 64]
# Is it possible for a public key to be invalid such that trying to
@@ -258,16 +258,16 @@ class objectProcessor(threading.Thread):
if len(data) < 170: # sanity check.
logger.warning('(within processpubkey) payloadLength less than 170. Sanity check failed.')
return
- bitfieldBehaviors = data[readPosition:readPosition + 4]
+ # bitfieldBehaviors = data[readPosition:readPosition + 4]
readPosition += 4
publicSigningKey = '\x04' + data[readPosition:readPosition + 64]
readPosition += 64
publicEncryptionKey = '\x04' + data[readPosition:readPosition + 64]
readPosition += 64
- specifiedNonceTrialsPerByte, specifiedNonceTrialsPerByteLength = decodeVarint(
+ _, specifiedNonceTrialsPerByteLength = decodeVarint(
data[readPosition:readPosition + 10])
readPosition += specifiedNonceTrialsPerByteLength
- specifiedPayloadLengthExtraBytes, specifiedPayloadLengthExtraBytesLength = decodeVarint(
+ _, specifiedPayloadLengthExtraBytesLength = decodeVarint(
data[readPosition:readPosition + 10])
readPosition += specifiedPayloadLengthExtraBytesLength
endOfSignedDataPosition = readPosition
@@ -874,18 +874,18 @@ class objectProcessor(threading.Thread):
else:
return '[' + mailingListName + '] ' + subject
- def decodeType2Message(self, message):
- bodyPositionIndex = string.find(message, '\nBody:')
- if bodyPositionIndex > 1:
- subject = message[8:bodyPositionIndex]
- # Only save and show the first 500 characters of the subject.
- # Any more is probably an attack.
- subject = subject[:500]
- body = message[bodyPositionIndex + 6:]
- else:
- subject = ''
- body = message
- # Throw away any extra lines (headers) after the subject.
- if subject:
- subject = subject.splitlines()[0]
- return subject, body
+ # def decodeType2Message(self, message):
+ # bodyPositionIndex = string.find(message, '\nBody:')
+ # if bodyPositionIndex > 1:
+ # subject = message[8:bodyPositionIndex]
+ # # Only save and show the first 500 characters of the subject.
+ # # Any more is probably an attack.
+ # subject = subject[:500]
+ # body = message[bodyPositionIndex + 6:]
+ # else:
+ # subject = ''
+ # body = message
+ # # Throw away any extra lines (headers) after the subject.
+ # if subject:
+ # subject = subject.splitlines()[0]
+ # return subject, body
diff --git a/src/class_receiveDataThread.py b/src/class_receiveDataThread.py
index 4e86196c..5e05b6bd 100644
--- a/src/class_receiveDataThread.py
+++ b/src/class_receiveDataThread.py
@@ -26,7 +26,7 @@ from binascii import hexlify
from addresses import *
from bmconfigparser import BMConfigParser
from class_objectHashHolder import objectHashHolder
-from helper_generic import addDataPadding, isHostInPrivateIPRange
+from helper_generic import isHostInPrivateIPRange# , addDataPadding
from helper_sql import sqlQuery
import knownnodes
from debug import logger
@@ -278,8 +278,8 @@ class receiveDataThread(threading.Thread):
context = ssl.SSLContext(protocol.sslProtocolVersion)
context.set_ciphers(protocol.sslProtocolCiphers)
context.set_ecdh_curve("secp256k1")
- context.check_hostname = False
- context.verify_mode = ssl.CERT_NONE
+ # context.check_hostname = False
+ # context.verify_mode = ssl.CERT_NONE
# also exclude TLSv1 and TLSv1.1 in the future
context.options = ssl.OP_ALL | ssl.OP_NO_SSLv2 | ssl.OP_NO_SSLv3 | ssl.OP_SINGLE_ECDH_USE | ssl.OP_CIPHER_SERVER_PREFERENCE
self.sslSock = context.wrap_socket(self.sock, server_side = not self.initiatedConnection, do_handshake_on_connect=False)
@@ -791,7 +791,7 @@ class receiveDataThread(threading.Thread):
timestamp, = unpack('>Q', data[12:20])
self.timeOffset = timestamp - int(time.time())
- self.myExternalIP = socket.inet_ntoa(data[40:44])
+ # self.myExternalIP = socket.inet_ntoa(data[40:44])
# print 'myExternalIP', self.myExternalIP
self.remoteNodeIncomingPort, = unpack('>H', data[70:72])
# print 'remoteNodeIncomingPort', self.remoteNodeIncomingPort
diff --git a/src/class_sendDataThread.py b/src/class_sendDataThread.py
index 792fedd0..fb34973d 100644
--- a/src/class_sendDataThread.py
+++ b/src/class_sendDataThread.py
@@ -10,7 +10,7 @@ import socket
from ssl import SSLError, SSL_ERROR_WANT_WRITE
import sys
-from helper_generic import addDataPadding
+# from helper_generic import addDataPadding
from class_objectHashHolder import *
from addresses import *
from debug import logger
@@ -71,7 +71,7 @@ class sendDataThread(threading.Thread):
# if not 'Bad file descriptor' in err:
logger.error('sock.sendall error: %s\n' % err)
- self.versionSent = 1
+ # self.versionSent = 1
def sendBytes(self, data = ""):
self.buffer += data
diff --git a/src/class_singleWorker.py b/src/class_singleWorker.py
index 322bb20e..62640e16 100644
--- a/src/class_singleWorker.py
+++ b/src/class_singleWorker.py
@@ -16,7 +16,7 @@ from debug import logger
import defaults
from helper_sql import *
import helper_inbox
-from helper_generic import addDataPadding
+# from helper_generic import addDataPadding
import helper_msgcoding
from helper_threading import *
from inventory import Inventory, PendingUpload
@@ -232,7 +232,7 @@ class singleWorker(threading.Thread, StoppableThread):
TTL = int(28 * 24 * 60 * 60 + random.randrange(-300, 300))# 28 days from now plus or minus five minutes
embeddedTime = int(time.time() + TTL)
- signedTimeForProtocolV2 = embeddedTime - TTL
+ # signedTimeForProtocolV2 = embeddedTime - TTL
"""
According to the protocol specification, the expiresTime along with the pubkey information is
signed. But to be backwards compatible during the upgrade period, we shall sign not the
@@ -536,7 +536,7 @@ class singleWorker(threading.Thread, StoppableThread):
toaddress, fromaddress, subject, message, ackdata, status, TTL, retryNumber, encoding = row
toStatus, toAddressVersionNumber, toStreamNumber, toRipe = decodeAddress(
toaddress)
- fromStatus, fromAddressVersionNumber, fromStreamNumber, fromRipe = decodeAddress(
+ _, fromAddressVersionNumber, fromStreamNumber, _ = decodeAddress(
fromaddress)
# We may or may not already have the pubkey for this toAddress. Let's check.
diff --git a/src/class_smtpServer.py b/src/class_smtpServer.py
index b62a7130..7f7400c1 100644
--- a/src/class_smtpServer.py
+++ b/src/class_smtpServer.py
@@ -1,7 +1,7 @@
import asyncore
import base64
import email
-from email.parser import Parser
+# from email.parser import Parser
from email.header import decode_header
import re
import signal
@@ -24,30 +24,30 @@ SMTPDOMAIN = "bmaddr.lan"
LISTENPORT = 8425
class smtpServerChannel(smtpd.SMTPChannel):
- def smtp_EHLO(self, arg):
- if not arg:
- self.push('501 Syntax: HELO hostname')
- return
- self.push('250-PyBitmessage %s' % softwareVersion)
- self.push('250 AUTH PLAIN')
+ # def smtp_EHLO(self, arg):
+ # if not arg:
+ # self.push('501 Syntax: HELO hostname')
+ # return
+ # self.push('250-PyBitmessage %s' % softwareVersion)
+ # self.push('250 AUTH PLAIN')
- def smtp_AUTH(self, arg):
- if not arg or arg[0:5] not in ["PLAIN"]:
- self.push('501 Syntax: AUTH PLAIN')
- return
- authstring = arg[6:]
- try:
- decoded = base64.b64decode(authstring)
- correctauth = "\x00" + BMConfigParser().safeGet("bitmessagesettings", "smtpdusername", "") + \
- "\x00" + BMConfigParser().safeGet("bitmessagesettings", "smtpdpassword", "")
- logger.debug("authstring: %s / %s", correctauth, decoded)
- if correctauth == decoded:
- self.auth = True
- self.push('235 2.7.0 Authentication successful')
- else:
- raise Exception("Auth fail")
- except:
- self.push('501 Authentication fail')
+ # def smtp_AUTH(self, arg):
+ # if not arg or arg[0:5] not in ["PLAIN"]:
+ # self.push('501 Syntax: AUTH PLAIN')
+ # return
+ # authstring = arg[6:]
+ # try:
+ # decoded = base64.b64decode(authstring)
+ # correctauth = "\x00" + BMConfigParser().safeGet("bitmessagesettings", "smtpdusername", "") + \
+ # "\x00" + BMConfigParser().safeGet("bitmessagesettings", "smtpdpassword", "")
+ # logger.debug("authstring: %s / %s", correctauth, decoded)
+ # if correctauth == decoded:
+ # self.auth = True
+ # self.push('235 2.7.0 Authentication successful')
+ # else:
+ # raise Exception("Auth fail")
+ # except:
+ # self.push('501 Authentication fail')
def smtp_DATA(self, arg):
if not hasattr(self, "auth") or not self.auth:
@@ -62,7 +62,7 @@ class smtpServerPyBitmessage(smtpd.SMTPServer):
if pair is not None:
conn, addr = pair
# print >> DEBUGSTREAM, 'Incoming connection from %s' % repr(addr)
- self.channel = smtpServerChannel(self, conn, addr)
+ # self.channel = smtpServerChannel(self, conn, addr)
def send(self, fromAddress, toAddress, subject, message):
status, addressVersionNumber, streamNumber, ripe = decodeAddress(toAddress)
@@ -101,61 +101,61 @@ class smtpServerPyBitmessage(smtpd.SMTPServer):
return ret
- def process_message(self, peer, mailfrom, rcpttos, data):
+ # def process_message(self, peer, mailfrom, rcpttos, data):
# print 'Receiving message from:', peer
- p = re.compile(".*<([^>]+)>")
- if not hasattr(self.channel, "auth") or not self.channel.auth:
- logger.error("Missing or invalid auth")
- return
- try:
- self.msg_headers = Parser().parsestr(data)
- except:
- logger.error("Invalid headers")
- return
+ # p = re.compile(".*<([^>]+)>")
+ # if not hasattr(self.channel, "auth") or not self.channel.auth:
+ # logger.error("Missing or invalid auth")
+ # return
+ # try:
+ # self.msg_headers = Parser().parsestr(data)
+ # except:
+ # logger.error("Invalid headers")
+ # return
- try:
- sender, domain = p.sub(r'\1', mailfrom).split("@")
- if domain != SMTPDOMAIN:
- raise Exception("Bad domain %s", domain)
- if sender not in BMConfigParser().addresses():
- raise Exception("Nonexisting user %s", sender)
- except Exception as err:
- logger.debug("Bad envelope from %s: %s", mailfrom, repr(err))
- msg_from = self.decode_header("from")
- try:
- msg_from = p.sub(r'\1', self.decode_header("from")[0])
- sender, domain = msg_from.split("@")
- if domain != SMTPDOMAIN:
- raise Exception("Bad domain %s", domain)
- if sender not in BMConfigParser().addresses():
- raise Exception("Nonexisting user %s", sender)
- except Exception as err:
- logger.error("Bad headers from %s: %s", msg_from, repr(err))
- return
+ # try:
+ # sender, domain = p.sub(r'\1', mailfrom).split("@")
+ # if domain != SMTPDOMAIN:
+ # raise Exception("Bad domain %s", domain)
+ # if sender not in BMConfigParser().addresses():
+ # raise Exception("Nonexisting user %s", sender)
+ # except Exception as err:
+ # logger.debug("Bad envelope from %s: %s", mailfrom, repr(err))
+ # msg_from = self.decode_header("from")
+ # try:
+ # msg_from = p.sub(r'\1', self.decode_header("from")[0])
+ # sender, domain = msg_from.split("@")
+ # if domain != SMTPDOMAIN:
+ # raise Exception("Bad domain %s", domain)
+ # if sender not in BMConfigParser().addresses():
+ # raise Exception("Nonexisting user %s", sender)
+ # except Exception as err:
+ # logger.error("Bad headers from %s: %s", msg_from, repr(err))
+ # return
- try:
- msg_subject = self.decode_header('subject')[0]
- except:
- msg_subject = "Subject missing..."
+ # try:
+ # msg_subject = self.decode_header('subject')[0]
+ # except:
+ # msg_subject = "Subject missing..."
- msg_tmp = email.message_from_string(data)
- body = u''
- for part in msg_tmp.walk():
- if part and part.get_content_type() == "text/plain":
- body += part.get_payload(decode=1).decode(part.get_content_charset('utf-8'), errors='replace')
+ # msg_tmp = email.message_from_string(data)
+ # body = u''
+ # for part in msg_tmp.walk():
+ # if part and part.get_content_type() == "text/plain":
+ # body += part.get_payload(decode=1).decode(part.get_content_charset('utf-8'), errors='replace')
- for to in rcpttos:
- try:
- rcpt, domain = p.sub(r'\1', to).split("@")
- if domain != SMTPDOMAIN:
- raise Exception("Bad domain %s", domain)
- logger.debug("Sending %s to %s about %s", sender, rcpt, msg_subject)
- self.send(sender, rcpt, msg_subject, body)
- logger.info("Relayed %s to %s", sender, rcpt)
- except Exception as err:
- logger.error( "Bad to %s: %s", to, repr(err))
- continue
- return
+ # for to in rcpttos:
+ # try:
+ # rcpt, domain = p.sub(r'\1', to).split("@")
+ # if domain != SMTPDOMAIN:
+ # raise Exception("Bad domain %s", domain)
+ # logger.debug("Sending %s to %s about %s", sender, rcpt, msg_subject)
+ # self.send(sender, rcpt, msg_subject, body)
+ # logger.info("Relayed %s to %s", sender, rcpt)
+ # except Exception as err:
+ # logger.error( "Bad to %s: %s", to, repr(err))
+ # continue
+ # return
class smtpServer(threading.Thread, StoppableThread):
def __init__(self, parent=None):
@@ -167,16 +167,16 @@ class smtpServer(threading.Thread, StoppableThread):
super(smtpServer, self).stopThread()
self.server.close()
return
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ # s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# for ip in ('127.0.0.1', BMConfigParser().get('bitmessagesettings', 'onionbindip')):
- for ip in ('127.0.0.1'):
- try:
- s.connect((ip, LISTENPORT))
- s.shutdown(socket.SHUT_RDWR)
- s.close()
- break
- except:
- pass
+ # for ip in ('127.0.0.1'):
+ # try:
+ # s.connect((ip, LISTENPORT))
+ # s.shutdown(socket.SHUT_RDWR)
+ # s.close()
+ # break
+ # except:
+ # pass
def run(self):
asyncore.loop(1)
diff --git a/src/class_sqlThread.py b/src/class_sqlThread.py
index 18606e74..54ae3067 100644
--- a/src/class_sqlThread.py
+++ b/src/class_sqlThread.py
@@ -28,7 +28,7 @@ class sqlThread(threading.Thread):
def run(self):
self.conn = sqlite3.connect(state.appdata + 'messages.dat')
- self.conn.text_factory = str
+ # self.conn.text_factory = str
self.cur = self.conn.cursor()
self.cur.execute('PRAGMA secure_delete = true')
@@ -525,7 +525,7 @@ class sqlThread(threading.Thread):
shutil.move(
paths.lookupAppdataFolder() + 'messages.dat', paths.lookupExeFolder() + 'messages.dat')
self.conn = sqlite3.connect(paths.lookupExeFolder() + 'messages.dat')
- self.conn.text_factory = str
+ # self.conn.text_factory = str
self.cur = self.conn.cursor()
elif item == 'movemessagstoappdata':
logger.debug('the sqlThread is moving the messages.dat file to the Appdata folder.')
@@ -541,7 +541,7 @@ class sqlThread(threading.Thread):
shutil.move(
paths.lookupExeFolder() + 'messages.dat', paths.lookupAppdataFolder() + 'messages.dat')
self.conn = sqlite3.connect(paths.lookupAppdataFolder() + 'messages.dat')
- self.conn.text_factory = str
+ # self.conn.text_factory = str
self.cur = self.conn.cursor()
elif item == 'deleteandvacuume':
self.cur.execute('''delete from inbox where folder='trash' ''')
diff --git a/src/debug.py b/src/debug.py
index 79c6e64e..ef4456b2 100644
--- a/src/debug.py
+++ b/src/debug.py
@@ -28,8 +28,8 @@ helper_startup.loadConfig()
# examples are here: https://bitmessage.org/forum/index.php/topic,4820.msg11163.html#msg11163
log_level = 'WARNING'
-def log_uncaught_exceptions(ex_cls, ex, tb):
- logging.critical('Unhandled exception', exc_info=(ex_cls, ex, tb))
+# def log_uncaught_exceptions(ex_cls, ex, tb):
+# logging.critical('Unhandled exception', exc_info=(ex_cls, ex, tb))
def configureLogging():
have_logging = False
@@ -45,7 +45,7 @@ def configureLogging():
# no need to confuse the user if the logger config is missing entirely
print "Using default logger configuration"
- sys.excepthook = log_uncaught_exceptions
+ # sys.excepthook = log_uncaught_exceptions
if have_logging:
return False
diff --git a/src/fallback/umsgpack/umsgpack.py b/src/fallback/umsgpack/umsgpack.py
index cd7a2037..88a065ee 100644
--- a/src/fallback/umsgpack/umsgpack.py
+++ b/src/fallback/umsgpack/umsgpack.py
@@ -187,8 +187,8 @@ class DuplicateKeyException(UnpackException):
# Backwards compatibility
-KeyNotPrimitiveException = UnhashableKeyException
-KeyDuplicateException = DuplicateKeyException
+# KeyNotPrimitiveException = UnhashableKeyException
+# KeyDuplicateException = DuplicateKeyException
#############################################################################
# Exported Functions and Glob
@@ -196,9 +196,9 @@ KeyDuplicateException = DuplicateKeyException
# Exported functions and variables, set up in __init()
pack = None
-packb = None
+# packb = None
unpack = None
-unpackb = None
+# unpackb = None
dump = None
dumps = None
load = None
@@ -982,21 +982,21 @@ def __init():
# Map packb and unpackb to the appropriate version
if sys.version_info[0] == 3:
pack = _pack3
- packb = _packb3
+ # packb = _packb3
dump = _pack3
dumps = _packb3
unpack = _unpack3
- unpackb = _unpackb3
+ # unpackb = _unpackb3
load = _unpack3
loads = _unpackb3
xrange = range
else:
pack = _pack2
- packb = _packb2
+ # packb = _packb2
dump = _pack2
dumps = _packb2
unpack = _unpack2
- unpackb = _unpackb2
+ # unpackb = _unpackb2
load = _unpack2
loads = _unpackb2
diff --git a/src/helper_generic.py b/src/helper_generic.py
index 588ae8f1..3967019d 100644
--- a/src/helper_generic.py
+++ b/src/helper_generic.py
@@ -21,17 +21,17 @@ def powQueueSize():
pass
return curWorkerQueue
-def convertIntToString(n):
- a = __builtins__.hex(n)
- if a[-1:] == 'L':
- a = a[:-1]
- if (len(a) % 2) == 0:
- return unhexlify(a[2:])
- else:
- return unhexlify('0' + a[2:])
+# def convertIntToString(n):
+# a = __builtins__.hex(n)
+# if a[-1:] == 'L':
+# a = a[:-1]
+# if (len(a) % 2) == 0:
+# return unhexlify(a[2:])
+# else:
+# return unhexlify('0' + a[2:])
-def convertStringToInt(s):
- return int(hexlify(s), 16)
+# def convertStringToInt(s):
+# return int(hexlify(s), 16)
def allThreadTraceback(frame):
id2name = dict([(th.ident, th.name) for th in enumerate()])
@@ -84,5 +84,5 @@ def isHostInPrivateIPRange(host):
return True
return False
-def addDataPadding(data, desiredMsgLength = 12, paddingChar = '\x00'):
- return data + paddingChar * (desiredMsgLength - len(data))
+# def addDataPadding(data, desiredMsgLength = 12, paddingChar = '\x00'):
+# return data + paddingChar * (desiredMsgLength - len(data))
diff --git a/src/helper_msgcoding.py b/src/helper_msgcoding.py
old mode 100644
new mode 100755
index f8bc95a6..c9b07481
--- a/src/helper_msgcoding.py
+++ b/src/helper_msgcoding.py
@@ -15,7 +15,7 @@ from debug import logger
import messagetypes
from tr import _translate
-BITMESSAGE_ENCODING_IGNORE = 0
+# BITMESSAGE_ENCODING_IGNORE = 0
BITMESSAGE_ENCODING_TRIVIAL = 1
BITMESSAGE_ENCODING_SIMPLE = 2
BITMESSAGE_ENCODING_EXTENDED = 3
diff --git a/src/highlevelcrypto.py b/src/highlevelcrypto.py
index 8729ec5c..aecb4054 100644
--- a/src/highlevelcrypto.py
+++ b/src/highlevelcrypto.py
@@ -28,8 +28,8 @@ def encrypt(msg,hexPubkey):
def decrypt(msg,hexPrivkey):
return makeCryptor(hexPrivkey).decrypt(msg)
# Decrypts message with an existing pyelliptic.ECC.ECC object
-def decryptFast(msg,cryptor):
- return cryptor.decrypt(msg)
+# def decryptFast(msg,cryptor):
+# return cryptor.decrypt(msg)
# Signs with hex private key
def sign(msg,hexPrivkey):
# pyelliptic is upgrading from SHA1 to SHA256 for signing. We must
diff --git a/src/inventory.py b/src/inventory.py
index 598021fb..04026f63 100644
--- a/src/inventory.py
+++ b/src/inventory.py
@@ -10,8 +10,8 @@ from helper_sql import *
from singleton import Singleton
# TODO make this dynamic, and watch out for frozen, like with messagetypes
-import storage.sqlite
-import storage.filesystem
+# import storage.sqlite
+# import storage.filesystem
@Singleton
class Inventory():
@@ -103,7 +103,7 @@ class PendingUpload(object):
self.deadline = 0
self.maxLen = 0
# during shutdown, wait up to 20 seconds to finish uploading
- self.shutdownWait = 20
+ # self.shutdownWait = 20
# forget tracking objects after 60 seconds
self.objectWait = 60
# wait 10 seconds between clears
diff --git a/src/knownnodes.py b/src/knownnodes.py
index aa080128..0d9a5f72 100644
--- a/src/knownnodes.py
+++ b/src/knownnodes.py
@@ -20,15 +20,15 @@ def saveKnownNodes(dirName = None):
with open(os.path.join(dirName, 'knownnodes.dat'), 'wb') as output:
pickle.dump(knownNodes, output)
-def increaseRating(peer):
- increaseAmount = 0.1
- maxRating = 1
- with knownNodesLock:
- for stream in knownNodes.keys():
- try:
- knownNodes[stream][peer]["rating"] = min(knownNodes[stream][peer]["rating"] + increaseAmount, maxRating)
- except KeyError:
- pass
+# def increaseRating(peer):
+# increaseAmount = 0.1
+# maxRating = 1
+# with knownNodesLock:
+# for stream in knownNodes.keys():
+# try:
+# knownNodes[stream][peer]["rating"] = min(knownNodes[stream][peer]["rating"] + increaseAmount, maxRating)
+# except KeyError:
+# pass
def decreaseRating(peer):
decreaseAmount = 0.1
diff --git a/src/message_data_reader.py b/src/message_data_reader.py
index a0659807..be6229e8 100644
--- a/src/message_data_reader.py
+++ b/src/message_data_reader.py
@@ -13,7 +13,7 @@ from binascii import hexlify
appdata = paths.lookupAppdataFolder()
conn = sqlite3.connect( appdata + 'messages.dat' )
-conn.text_factory = str
+# conn.text_factory = str
cur = conn.cursor()
def readInbox():
@@ -25,78 +25,78 @@ def readInbox():
for row in output:
print row
-def readSent():
- print 'Printing everything in Sent table:'
- item = '''select * from sent where folder !='trash' '''
- parameters = ''
- cur.execute(item, parameters)
- output = cur.fetchall()
- for row in output:
- msgid, toaddress, toripe, fromaddress, subject, message, ackdata, lastactiontime, sleeptill, status, retrynumber, folder, encodingtype, ttl = row
- print hexlify(msgid), toaddress, 'toripe:', hexlify(toripe), 'fromaddress:', fromaddress, 'ENCODING TYPE:', encodingtype, 'SUBJECT:', repr(subject), 'MESSAGE:', repr(message), 'ACKDATA:', hexlify(ackdata), lastactiontime, status, retrynumber, folder
+# def readSent():
+# print 'Printing everything in Sent table:'
+# item = '''select * from sent where folder !='trash' '''
+# parameters = ''
+# cur.execute(item, parameters)
+# output = cur.fetchall()
+# for row in output:
+# msgid, toaddress, toripe, fromaddress, subject, message, ackdata, lastactiontime, sleeptill, status, retrynumber, folder, encodingtype, ttl = row
+# print hexlify(msgid), toaddress, 'toripe:', hexlify(toripe), 'fromaddress:', fromaddress, 'ENCODING TYPE:', encodingtype, 'SUBJECT:', repr(subject), 'MESSAGE:', repr(message), 'ACKDATA:', hexlify(ackdata), lastactiontime, status, retrynumber, folder
-def readSubscriptions():
- print 'Printing everything in subscriptions table:'
- item = '''select * from subscriptions'''
- parameters = ''
- cur.execute(item, parameters)
- output = cur.fetchall()
- for row in output:
- print row
+# def readSubscriptions():
+# print 'Printing everything in subscriptions table:'
+# item = '''select * from subscriptions'''
+# parameters = ''
+# cur.execute(item, parameters)
+# output = cur.fetchall()
+# for row in output:
+# print row
-def readPubkeys():
- print 'Printing everything in pubkeys table:'
- item = '''select address, transmitdata, time, usedpersonally from pubkeys'''
- parameters = ''
- cur.execute(item, parameters)
- output = cur.fetchall()
- for row in output:
- address, transmitdata, time, usedpersonally = row
- print 'Address:', address, '\tTime first broadcast:', unicode(strftime('%a, %d %b %Y %I:%M %p',localtime(time)),'utf-8'), '\tUsed by me personally:', usedpersonally, '\tFull pubkey message:', hexlify(transmitdata)
+# def readPubkeys():
+# print 'Printing everything in pubkeys table:'
+# item = '''select address, transmitdata, time, usedpersonally from pubkeys'''
+# parameters = ''
+# cur.execute(item, parameters)
+# output = cur.fetchall()
+# for row in output:
+# address, transmitdata, time, usedpersonally = row
+# print 'Address:', address, '\tTime first broadcast:', unicode(strftime('%a, %d %b %Y %I:%M %p',localtime(time)),'utf-8'), '\tUsed by me personally:', usedpersonally, '\tFull pubkey message:', hexlify(transmitdata)
-def readInventory():
- print 'Printing everything in inventory table:'
- item = '''select hash, objecttype, streamnumber, payload, expirestime from inventory'''
- parameters = ''
- cur.execute(item, parameters)
- output = cur.fetchall()
- for row in output:
- hash, objecttype, streamnumber, payload, expirestime = row
- print 'Hash:', hexlify(hash), objecttype, streamnumber, '\t', hexlify(payload), '\t', unicode(strftime('%a, %d %b %Y %I:%M %p',localtime(expirestime)),'utf-8')
+# def readInventory():
+# print 'Printing everything in inventory table:'
+# item = '''select hash, objecttype, streamnumber, payload, expirestime from inventory'''
+# parameters = ''
+# cur.execute(item, parameters)
+# output = cur.fetchall()
+# for row in output:
+# hash, objecttype, streamnumber, payload, expirestime = row
+# print 'Hash:', hexlify(hash), objecttype, streamnumber, '\t', hexlify(payload), '\t', unicode(strftime('%a, %d %b %Y %I:%M %p',localtime(expirestime)),'utf-8')
-def takeInboxMessagesOutOfTrash():
- item = '''update inbox set folder='inbox' where folder='trash' '''
- parameters = ''
- cur.execute(item, parameters)
- output = cur.fetchall()
- conn.commit()
- print 'done'
+# def takeInboxMessagesOutOfTrash():
+# item = '''update inbox set folder='inbox' where folder='trash' '''
+# parameters = ''
+# cur.execute(item, parameters)
+# output = cur.fetchall()
+# conn.commit()
+# print 'done'
-def takeSentMessagesOutOfTrash():
- item = '''update sent set folder='sent' where folder='trash' '''
- parameters = ''
- cur.execute(item, parameters)
- output = cur.fetchall()
- conn.commit()
- print 'done'
+# def takeSentMessagesOutOfTrash():
+# item = '''update sent set folder='sent' where folder='trash' '''
+# parameters = ''
+# cur.execute(item, parameters)
+# output = cur.fetchall()
+# conn.commit()
+# print 'done'
-def markAllInboxMessagesAsUnread():
- item = '''update inbox set read='0' '''
- parameters = ''
- cur.execute(item, parameters)
- output = cur.fetchall()
- conn.commit()
- queues.UISignalQueue.put(('changedInboxUnread', None))
- print 'done'
+# def markAllInboxMessagesAsUnread():
+# item = '''update inbox set read='0' '''
+# parameters = ''
+# cur.execute(item, parameters)
+# output = cur.fetchall()
+# conn.commit()
+# queues.UISignalQueue.put(('changedInboxUnread', None))
+# print 'done'
-def vacuum():
- item = '''VACUUM'''
- parameters = ''
- cur.execute(item, parameters)
- output = cur.fetchall()
- conn.commit()
- print 'done'
+# def vacuum():
+# item = '''VACUUM'''
+# parameters = ''
+# cur.execute(item, parameters)
+# output = cur.fetchall()
+# conn.commit()
+# print 'done'
#takeInboxMessagesOutOfTrash()
#takeSentMessagesOutOfTrash()
diff --git a/src/multiqueue.py b/src/multiqueue.py
index 62b0fa87..b32ef881 100644
--- a/src/multiqueue.py
+++ b/src/multiqueue.py
@@ -1,4 +1,4 @@
-from collections import deque
+# from collections import deque
import Queue
import random
@@ -12,23 +12,23 @@ class MultiQueue(Queue.Queue):
Queue.Queue.__init__(self, maxsize)
# Initialize the queue representation
- def _init(self, maxsize):
- self.iter = 0
- self.queues = []
- for i in range(self.queueCount):
- self.queues.append(deque())
+ # def _init(self, maxsize):
+ # self.iter = 0
+ # self.queues = []
+ # for i in range(self.queueCount):
+ # self.queues.append(deque())
- def _qsize(self, len=len):
- return len(self.queues[self.iter])
+ # def _qsize(self, len=len):
+ # return len(self.queues[self.iter])
# Put a new item in the queue
- def _put(self, item):
- #self.queue.append(item)
- self.queues[random.randrange(self.queueCount)].append((item))
+ # def _put(self, item):
+ # #self.queue.append(item)
+ # self.queues[random.randrange(self.queueCount)].append((item))
# Get an item from the queue
- def _get(self):
- return self.queues[self.iter].popleft()
+ # def _get(self):
+ # return self.queues[self.iter].popleft()
def iterate(self):
self.iter = (self.iter + 1) % self.queueCount
diff --git a/src/network/advanceddispatcher.py b/src/network/advanceddispatcher.py
index 6f857398..d760ee6d 100644
--- a/src/network/advanceddispatcher.py
+++ b/src/network/advanceddispatcher.py
@@ -119,8 +119,8 @@ class AdvancedDispatcher(asyncore.dispatcher):
def handle_connect(self):
self.lastTx = time.time()
- def state_close(self):
- return False
+ # def state_close(self):
+ # return False
def handle_close(self):
with self.readLock:
diff --git a/src/network/asyncore_pollchoose.py b/src/network/asyncore_pollchoose.py
index cd19063a..bb37fc83 100644
--- a/src/network/asyncore_pollchoose.py
+++ b/src/network/asyncore_pollchoose.py
@@ -302,7 +302,7 @@ def poll_poller(timeout=0.0, map=None):
# Aliases for backward compatibility
poll = select_poller
-poll2 = poll3 = poll_poller
+# poll2 = poll3 = poll_poller
def epoll_poller(timeout=0.0, map=None):
"""A poller which uses epoll(), supported on Linux 2.5.44 and newer."""
@@ -468,7 +468,7 @@ class dispatcher:
connected = False
accepting = False
connecting = False
- closing = False
+ # closing = False
addr = None
ignore_log_types = frozenset(['warning'])
poller_registered = False
@@ -563,7 +563,7 @@ class dispatcher:
self.poller_registered = False
def create_socket(self, family=socket.AF_INET, socket_type=socket.SOCK_STREAM):
- self.family_and_type = family, socket_type
+ # self.family_and_type = family, socket_type
sock = socket.socket(family, socket_type)
sock.setblocking(0)
self.set_socket(sock)
@@ -762,7 +762,7 @@ class dispatcher:
self.handle_expt()
def handle_error(self):
- nil, t, v, tbinfo = compact_traceback()
+ _, t, v, tbinfo = compact_traceback()
# sometimes a user repr method will crash.
try:
@@ -811,28 +811,28 @@ class dispatcher:
# [for more sophisticated usage use asynchat.async_chat]
# ---------------------------------------------------------------------------
-class dispatcher_with_send(dispatcher):
+# class dispatcher_with_send(dispatcher):
- def __init__(self, sock=None, map=None):
- dispatcher.__init__(self, sock, map)
- self.out_buffer = b''
+# def __init__(self, sock=None, map=None):
+# dispatcher.__init__(self, sock, map)
+# self.out_buffer = b''
- def initiate_send(self):
- num_sent = 0
- num_sent = dispatcher.send(self, self.out_buffer[:512])
- self.out_buffer = self.out_buffer[num_sent:]
+# def initiate_send(self):
+# num_sent = 0
+# num_sent = dispatcher.send(self, self.out_buffer[:512])
+# self.out_buffer = self.out_buffer[num_sent:]
- def handle_write(self):
- self.initiate_send()
+# def handle_write(self):
+# self.initiate_send()
- def writable(self):
- return (not self.connected) or len(self.out_buffer)
+# def writable(self):
+# return (not self.connected) or len(self.out_buffer)
- def send(self, data):
- if self.debug:
- self.log_info('sending %s' % repr(data))
- self.out_buffer = self.out_buffer + data
- self.initiate_send()
+# def send(self, data):
+# if self.debug:
+# self.log_info('sending %s' % repr(data))
+# self.out_buffer = self.out_buffer + data
+# self.initiate_send()
# ---------------------------------------------------------------------------
# used for debugging.
@@ -892,53 +892,53 @@ def close_all(map=None, ignore_all=False):
if os.name == 'posix':
import fcntl
- class file_wrapper:
- # Here we override just enough to make a file
- # look like a socket for the purposes of asyncore.
- # The passed fd is automatically os.dup()'d
+ # class file_wrapper:
+ # # Here we override just enough to make a file
+ # # look like a socket for the purposes of asyncore.
+ # # The passed fd is automatically os.dup()'d
- def __init__(self, fd):
- self.fd = os.dup(fd)
+ # def __init__(self, fd):
+ # self.fd = os.dup(fd)
- def recv(self, *args):
- return os.read(self.fd, *args)
+ # def recv(self, *args):
+ # return os.read(self.fd, *args)
- def send(self, *args):
- return os.write(self.fd, *args)
+ # def send(self, *args):
+ # return os.write(self.fd, *args)
- def getsockopt(self, level, optname, buflen=None):
- if (level == socket.SOL_SOCKET and
- optname == socket.SO_ERROR and
- not buflen):
- return 0
- raise NotImplementedError("Only asyncore specific behaviour "
- "implemented.")
+ # def getsockopt(self, level, optname, buflen=None):
+ # if (level == socket.SOL_SOCKET and
+ # optname == socket.SO_ERROR and
+ # not buflen):
+ # return 0
+ # raise NotImplementedError("Only asyncore specific behaviour "
+ # "implemented.")
- read = recv
- write = send
+ # read = recv
+ # write = send
- def close(self):
- os.close(self.fd)
+ # def close(self):
+ # os.close(self.fd)
- def fileno(self):
- return self.fd
+ # def fileno(self):
+ # return self.fd
- class file_dispatcher(dispatcher):
+ # class file_dispatcher(dispatcher):
- def __init__(self, fd, map=None):
- dispatcher.__init__(self, None, map)
- self.connected = True
- try:
- fd = fd.fileno()
- except AttributeError:
- pass
- self.set_file(fd)
- # set it to non-blocking mode
- flags = fcntl.fcntl(fd, fcntl.F_GETFL, 0)
- flags = flags | os.O_NONBLOCK
- fcntl.fcntl(fd, fcntl.F_SETFL, flags)
+ # def __init__(self, fd, map=None):
+ # dispatcher.__init__(self, None, map)
+ # self.connected = True
+ # try:
+ # fd = fd.fileno()
+ # except AttributeError:
+ # pass
+ # self.set_file(fd)
+ # # set it to non-blocking mode
+ # flags = fcntl.fcntl(fd, fcntl.F_GETFL, 0)
+ # flags = flags | os.O_NONBLOCK
+ # fcntl.fcntl(fd, fcntl.F_SETFL, flags)
- def set_file(self, fd):
- self.socket = file_wrapper(fd)
- self._fileno = self.socket.fileno()
- self.add_channel()
+ # def set_file(self, fd):
+ # self.socket = file_wrapper(fd)
+ # self._fileno = self.socket.fileno()
+ # self.add_channel()
diff --git a/src/network/bmproto.py b/src/network/bmproto.py
index 28277f52..2f2816b0 100644
--- a/src/network/bmproto.py
+++ b/src/network/bmproto.py
@@ -38,7 +38,7 @@ class BMProtoExcessiveDataError(BMProtoError):
class BMProto(AdvancedDispatcher, ObjectTracker):
# ~1.6 MB which is the maximum possible size of an inv message.
- maxMessageSize = 1600100
+ # maxMessageSize = 1600100
# 2**18 = 256kB is the maximum size of an object payload
maxObjectPayloadSize = 2**18
# protocol specification says max 1000 addresses in one addr command
@@ -46,7 +46,7 @@ class BMProto(AdvancedDispatcher, ObjectTracker):
# protocol specification says max 50000 objects in one inv command
maxObjectCount = 50000
# address is online if online less than this many seconds ago
- addressAlive = 10800
+ # addressAlive = 10800
# maximum time offset
maxTimeOffset = 3600
@@ -54,10 +54,10 @@ class BMProto(AdvancedDispatcher, ObjectTracker):
AdvancedDispatcher.__init__(self, sock)
self.isOutbound = False
# packet/connection from a local IP
- self.local = False
+ # self.local = False
def bm_proto_reset(self):
- self.magic = None
+ # self.magic = None
self.command = None
self.payloadLength = 0
self.checksum = None
@@ -67,22 +67,22 @@ class BMProto(AdvancedDispatcher, ObjectTracker):
self.expectBytes = protocol.Header.size
self.object = None
- def state_bm_header(self):
- self.magic, self.command, self.payloadLength, self.checksum = protocol.Header.unpack(self.read_buf[:protocol.Header.size])
- self.command = self.command.rstrip('\x00')
- if self.magic != 0xE9BEB4D9:
- # skip 1 byte in order to sync
- self.set_state("bm_header", length=1)
- self.bm_proto_reset()
- logger.debug("Bad magic")
- if self.socket.type == socket.SOCK_STREAM:
- self.close_reason = "Bad magic"
- self.set_state("close")
- return False
- if self.payloadLength > BMProto.maxMessageSize:
- self.invalid = True
- self.set_state("bm_command", length=protocol.Header.size, expectBytes=self.payloadLength)
- return True
+ # def state_bm_header(self):
+ # self.magic, self.command, self.payloadLength, self.checksum = protocol.Header.unpack(self.read_buf[:protocol.Header.size])
+ # self.command = self.command.rstrip('\x00')
+ # if self.magic != 0xE9BEB4D9:
+ # # skip 1 byte in order to sync
+ # self.set_state("bm_header", length=1)
+ # self.bm_proto_reset()
+ # logger.debug("Bad magic")
+ # if self.socket.type == socket.SOCK_STREAM:
+ # self.close_reason = "Bad magic"
+ # self.set_state("close")
+ # return False
+ # if self.payloadLength > BMProto.maxMessageSize:
+ # self.invalid = True
+ # self.set_state("bm_command", length=protocol.Header.size, expectBytes=self.payloadLength)
+ # return True
def state_bm_command(self):
self.payload = self.read_buf[:self.payloadLength]
@@ -132,10 +132,10 @@ class BMProto(AdvancedDispatcher, ObjectTracker):
# else assume the command requires a different state to follow
return True
- def decode_payload_string(self, length):
- value = self.payload[self.payloadOffset:self.payloadOffset+length]
- self.payloadOffset += length
- return value
+ # def decode_payload_string(self, length):
+ # value = self.payload[self.payloadOffset:self.payloadOffset+length]
+ # self.payloadOffset += length
+ # return value
def decode_payload_varint(self):
value, offset = addresses.decodeVarint(self.payload[self.payloadOffset:])
@@ -272,60 +272,60 @@ class BMProto(AdvancedDispatcher, ObjectTracker):
logger.error("%s:%i error: %i, %s", self.destination.host, self.destination.port, fatalStatus, errorText)
return True
- def bm_command_getdata(self):
- items = self.decode_payload_content("l32s")
- # skip?
- if time.time() < self.skipUntil:
- return True
- #TODO make this more asynchronous
- random.shuffle(items)
- for i in map(str, items):
- if Dandelion().hasHash(i) and \
- self != Dandelion().objectChildStem(i):
- self.antiIntersectionDelay()
- logger.info('%s asked for a stem object we didn\'t offer to it.', self.destination)
- break
- else:
- try:
- self.append_write_buf(protocol.CreatePacket('object', Inventory()[i].payload))
- except KeyError:
- self.antiIntersectionDelay()
- logger.info('%s asked for an object we don\'t have.', self.destination)
- break
- # I think that aborting after the first missing/stem object is more secure
- # when using random reordering, as the recipient won't know exactly which objects we refuse to deliver
- return True
+ # def bm_command_getdata(self):
+ # items = self.decode_payload_content("l32s")
+ # # skip?
+ # if time.time() < self.skipUntil:
+ # return True
+ # #TODO make this more asynchronous
+ # random.shuffle(items)
+ # for i in map(str, items):
+ # if Dandelion().hasHash(i) and \
+ # self != Dandelion().objectChildStem(i):
+ # self.antiIntersectionDelay()
+ # logger.info('%s asked for a stem object we didn\'t offer to it.', self.destination)
+ # break
+ # else:
+ # try:
+ # self.append_write_buf(protocol.CreatePacket('object', Inventory()[i].payload))
+ # except KeyError:
+ # self.antiIntersectionDelay()
+ # logger.info('%s asked for an object we don\'t have.', self.destination)
+ # break
+ # # I think that aborting after the first missing/stem object is more secure
+ # # when using random reordering, as the recipient won't know exactly which objects we refuse to deliver
+ # return True
- def _command_inv(self, dandelion=False):
- items = self.decode_payload_content("l32s")
+ # def _command_inv(self, dandelion=False):
+ # items = self.decode_payload_content("l32s")
- if len(items) >= BMProto.maxObjectCount:
- logger.error("Too many items in %sinv message!", "d" if dandelion else "")
- raise BMProtoExcessiveDataError()
- else:
- pass
+ # if len(items) >= BMProto.maxObjectCount:
+ # logger.error("Too many items in %sinv message!", "d" if dandelion else "")
+ # raise BMProtoExcessiveDataError()
+ # else:
+ # pass
- # ignore dinv if dandelion turned off
- if dandelion and not state.dandelion:
- return True
+ # # ignore dinv if dandelion turned off
+ # if dandelion and not state.dandelion:
+ # return True
- for i in map(str, items):
- if i in Inventory() and not Dandelion().hasHash(i):
- continue
- if dandelion and not Dandelion().hasHash(i):
- Dandelion().addHash(i, self)
- self.handleReceivedInventory(i)
+ # for i in map(str, items):
+ # if i in Inventory() and not Dandelion().hasHash(i):
+ # continue
+ # if dandelion and not Dandelion().hasHash(i):
+ # Dandelion().addHash(i, self)
+ # self.handleReceivedInventory(i)
- return True
+ # return True
- def bm_command_inv(self):
- return self._command_inv(False)
+ # def bm_command_inv(self):
+ # return self._command_inv(False)
- def bm_command_dinv(self):
- """
- Dandelion stem announce
- """
- return self._command_inv(True)
+ # def bm_command_dinv(self):
+ # """
+ # Dandelion stem announce
+ # """
+ # return self._command_inv(True)
def bm_command_object(self):
objectOffset = self.payloadOffset
@@ -370,90 +370,90 @@ class BMProto(AdvancedDispatcher, ObjectTracker):
invQueue.put((self.object.streamNumber, self.object.inventoryHash, self.destination))
return True
- def _decode_addr(self):
- return self.decode_payload_content("LQIQ16sH")
+ # def _decode_addr(self):
+ # return self.decode_payload_content("LQIQ16sH")
- def bm_command_addr(self):
- addresses = self._decode_addr()
- for i in addresses:
- seenTime, stream, services, ip, port = i
- decodedIP = protocol.checkIPAddress(str(ip))
- if stream not in state.streamsInWhichIAmParticipating:
- continue
- if decodedIP is not False and seenTime > time.time() - BMProto.addressAlive:
- peer = state.Peer(decodedIP, port)
- try:
- if knownnodes.knownNodes[stream][peer]["lastseen"] > seenTime:
- continue
- except KeyError:
- pass
- if len(knownnodes.knownNodes[stream]) < int(BMConfigParser().get("knownnodes", "maxnodes")):
- with knownnodes.knownNodesLock:
- try:
- knownnodes.knownNodes[stream][peer]["lastseen"] = seenTime
- except (TypeError, KeyError):
- knownnodes.knownNodes[stream][peer] = {
- "lastseen": seenTime,
- "rating": 0,
- "self": False,
- }
- addrQueue.put((stream, peer, self.destination))
- return True
+ # def bm_command_addr(self):
+ # addresses = self._decode_addr()
+ # for i in addresses:
+ # seenTime, stream, services, ip, port = i
+ # decodedIP = protocol.checkIPAddress(str(ip))
+ # if stream not in state.streamsInWhichIAmParticipating:
+ # continue
+ # if decodedIP is not False and seenTime > time.time() - BMProto.addressAlive:
+ # peer = state.Peer(decodedIP, port)
+ # try:
+ # if knownnodes.knownNodes[stream][peer]["lastseen"] > seenTime:
+ # continue
+ # except KeyError:
+ # pass
+ # if len(knownnodes.knownNodes[stream]) < int(BMConfigParser().get("knownnodes", "maxnodes")):
+ # with knownnodes.knownNodesLock:
+ # try:
+ # knownnodes.knownNodes[stream][peer]["lastseen"] = seenTime
+ # except (TypeError, KeyError):
+ # knownnodes.knownNodes[stream][peer] = {
+ # "lastseen": seenTime,
+ # "rating": 0,
+ # "self": False,
+ # }
+ # addrQueue.put((stream, peer, self.destination))
+ # return True
- def bm_command_portcheck(self):
- portCheckerQueue.put(state.Peer(self.destination, self.peerNode.port))
- return True
+ # def bm_command_portcheck(self):
+ # portCheckerQueue.put(state.Peer(self.destination, self.peerNode.port))
+ # return True
- def bm_command_ping(self):
- self.append_write_buf(protocol.CreatePacket('pong'))
- return True
+ # def bm_command_ping(self):
+ # self.append_write_buf(protocol.CreatePacket('pong'))
+ # return True
- def bm_command_pong(self):
- # nothing really
- return True
+ # def bm_command_pong(self):
+ # # nothing really
+ # return True
- def bm_command_verack(self):
- self.verackReceived = True
- if self.verackSent:
- if self.isSSL:
- self.set_state("tls_init", length=self.payloadLength, expectBytes=0)
- return False
- self.set_state("connection_fully_established", length=self.payloadLength, expectBytes=0)
- return False
- return True
+ # def bm_command_verack(self):
+ # self.verackReceived = True
+ # if self.verackSent:
+ # if self.isSSL:
+ # self.set_state("tls_init", length=self.payloadLength, expectBytes=0)
+ # return False
+ # self.set_state("connection_fully_established", length=self.payloadLength, expectBytes=0)
+ # return False
+ # return True
- def bm_command_version(self):
- self.remoteProtocolVersion, self.services, self.timestamp, self.sockNode, self.peerNode, self.nonce, \
- self.userAgent, self.streams = self.decode_payload_content("IQQiiQlsLv")
- self.nonce = struct.pack('>Q', self.nonce)
- self.timeOffset = self.timestamp - int(time.time())
- logger.debug("remoteProtocolVersion: %i", self.remoteProtocolVersion)
- logger.debug("services: 0x%08X", self.services)
- logger.debug("time offset: %i", self.timestamp - int(time.time()))
- logger.debug("my external IP: %s", self.sockNode.host)
- logger.debug("remote node incoming address: %s:%i", self.destination.host, self.peerNode.port)
- logger.debug("user agent: %s", self.userAgent)
- logger.debug("streams: [%s]", ",".join(map(str,self.streams)))
- if not self.peerValidityChecks():
- # TODO ABORT
- return True
- #shared.connectedHostsList[self.destination] = self.streams[0]
- self.append_write_buf(protocol.CreatePacket('verack'))
- self.verackSent = True
- if not self.isOutbound:
- self.append_write_buf(protocol.assembleVersionMessage(self.destination.host, self.destination.port, \
- network.connectionpool.BMConnectionPool().streams, True, nodeid=self.nodeid))
- #print "%s:%i: Sending version" % (self.destination.host, self.destination.port)
- if ((self.services & protocol.NODE_SSL == protocol.NODE_SSL) and
- protocol.haveSSL(not self.isOutbound)):
- self.isSSL = True
- if self.verackReceived:
- if self.isSSL:
- self.set_state("tls_init", length=self.payloadLength, expectBytes=0)
- return False
- self.set_state("connection_fully_established", length=self.payloadLength, expectBytes=0)
- return False
- return True
+ # def bm_command_version(self):
+ # self.remoteProtocolVersion, self.services, self.timestamp, self.sockNode, self.peerNode, self.nonce, \
+ # self.userAgent, self.streams = self.decode_payload_content("IQQiiQlsLv")
+ # self.nonce = struct.pack('>Q', self.nonce)
+ # self.timeOffset = self.timestamp - int(time.time())
+ # logger.debug("remoteProtocolVersion: %i", self.remoteProtocolVersion)
+ # logger.debug("services: 0x%08X", self.services)
+ # logger.debug("time offset: %i", self.timestamp - int(time.time()))
+ # logger.debug("my external IP: %s", self.sockNode.host)
+ # logger.debug("remote node incoming address: %s:%i", self.destination.host, self.peerNode.port)
+ # logger.debug("user agent: %s", self.userAgent)
+ # logger.debug("streams: [%s]", ",".join(map(str,self.streams)))
+ # if not self.peerValidityChecks():
+ # # TODO ABORT
+ # return True
+ # #shared.connectedHostsList[self.destination] = self.streams[0]
+ # self.append_write_buf(protocol.CreatePacket('verack'))
+ # self.verackSent = True
+ # if not self.isOutbound:
+ # self.append_write_buf(protocol.assembleVersionMessage(self.destination.host, self.destination.port, \
+ # network.connectionpool.BMConnectionPool().streams, True, nodeid=self.nodeid))
+ # #print "%s:%i: Sending version" % (self.destination.host, self.destination.port)
+ # if ((self.services & protocol.NODE_SSL == protocol.NODE_SSL) and
+ # protocol.haveSSL(not self.isOutbound)):
+ # self.isSSL = True
+ # if self.verackReceived:
+ # if self.isSSL:
+ # self.set_state("tls_init", length=self.payloadLength, expectBytes=0)
+ # return False
+ # self.set_state("connection_fully_established", length=self.payloadLength, expectBytes=0)
+ # return False
+ # return True
def peerValidityChecks(self):
if self.remoteProtocolVersion < 3:
diff --git a/src/network/dandelion.py b/src/network/dandelion.py
index 06ecca24..be72508d 100644
--- a/src/network/dandelion.py
+++ b/src/network/dandelion.py
@@ -50,13 +50,13 @@ class Dandelion():
stream,
self.poissonTimeout())
- def setHashStream(self, hashId, stream=1):
- with self.lock:
- if hashId in self.hashMap:
- self.hashMap[hashId] = Stem(
- self.hashMap[hashId].child,
- stream,
- self.poissonTimeout())
+ # def setHashStream(self, hashId, stream=1):
+ # with self.lock:
+ # if hashId in self.hashMap:
+ # self.hashMap[hashId] = Stem(
+ # self.hashMap[hashId].child,
+ # stream,
+ # self.poissonTimeout())
def removeHash(self, hashId, reason="no reason specified"):
logging.debug("%s entering fluff mode due to %s.", ''.join('%02x'%ord(i) for i in hashId), reason)
@@ -72,16 +72,16 @@ class Dandelion():
def objectChildStem(self, hashId):
return self.hashMap[hashId].child
- def maybeAddStem(self, connection):
- # fewer than MAX_STEMS outbound connections at last reshuffle?
- with self.lock:
- if len(self.stem) < MAX_STEMS:
- self.stem.append(connection)
- for k in (k for k, v in self.nodeMap.iteritems() if v is None):
- self.nodeMap[k] = connection
- for k, v in {k: v for k, v in self.hashMap.iteritems() if v.child is None}.iteritems():
- self.hashMap[k] = Stem(connection, v.stream, self.poissonTimeout())
- invQueue.put((v.stream, k, v.child))
+ # def maybeAddStem(self, connection):
+ # # fewer than MAX_STEMS outbound connections at last reshuffle?
+ # with self.lock:
+ # if len(self.stem) < MAX_STEMS:
+ # self.stem.append(connection)
+ # for k in (k for k, v in self.nodeMap.iteritems() if v is None):
+ # self.nodeMap[k] = connection
+ # for k, v in {k: v for k, v in self.hashMap.iteritems() if v.child is None}.iteritems():
+ # self.hashMap[k] = Stem(connection, v.stream, self.poissonTimeout())
+ # invQueue.put((v.stream, k, v.child))
def maybeRemoveStem(self, connection):
diff --git a/src/network/downloadthread.py b/src/network/downloadthread.py
index 7eee2761..4bb78512 100644
--- a/src/network/downloadthread.py
+++ b/src/network/downloadthread.py
@@ -12,9 +12,9 @@ import protocol
from state import missingObjects
class DownloadThread(threading.Thread, StoppableThread):
- minPending = 200
+ # minPending = 200
maxRequestChunk = 1000
- requestTimeout = 60
+ # requestTimeout = 60
cleanInterval = 60
requestExpires = 3600
diff --git a/src/network/http.py b/src/network/http.py
index 55cb81a1..b7c41c49 100644
--- a/src/network/http.py
+++ b/src/network/http.py
@@ -6,7 +6,7 @@ from proxy import Proxy, ProxyError, GeneralProxyError
from socks5 import Socks5Connection, Socks5Resolver, Socks5AuthError, Socks5Error
from socks4a import Socks4aConnection, Socks4aResolver, Socks4aError
-class HttpError(ProxyError): pass
+# class HttpError(ProxyError): pass
class HttpConnection(AdvancedDispatcher):
@@ -24,13 +24,13 @@ class HttpConnection(AdvancedDispatcher):
self.set_state("http_request_sent", 0)
return False
- def state_http_request_sent(self):
- if len(self.read_buf) > 0:
- print "Received %ib" % (len(self.read_buf))
- self.read_buf = b""
- if not self.connected:
- self.set_state("close", 0)
- return False
+ # def state_http_request_sent(self):
+ # if len(self.read_buf) > 0:
+ # print "Received %ib" % (len(self.read_buf))
+ # self.read_buf = b""
+ # if not self.connected:
+ # self.set_state("close", 0)
+ # return False
class Socks5HttpConnection(Socks5Connection, HttpConnection):
@@ -38,9 +38,9 @@ class Socks5HttpConnection(Socks5Connection, HttpConnection):
self.path = path
Socks5Connection.__init__(self, address=(host, 80))
- def state_socks_handshake_done(self):
- HttpConnection.state_init(self)
- return False
+ # def state_socks_handshake_done(self):
+ # HttpConnection.state_init(self)
+ # return False
class Socks4aHttpConnection(Socks4aConnection, HttpConnection):
@@ -48,9 +48,9 @@ class Socks4aHttpConnection(Socks4aConnection, HttpConnection):
Socks4aConnection.__init__(self, address=(host, 80))
self.path = path
- def state_socks_handshake_done(self):
- HttpConnection.state_init(self)
- return False
+ # def state_socks_handshake_done(self):
+ # HttpConnection.state_init(self)
+ # return False
if __name__ == "__main__":
diff --git a/src/network/httpd.py b/src/network/httpd.py
index b8b6ba21..debd8155 100644
--- a/src/network/httpd.py
+++ b/src/network/httpd.py
@@ -112,7 +112,7 @@ class HTTPServer(asyncore.dispatcher):
self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
self.set_reuse_addr()
self.bind(('127.0.0.1', HTTPServer.port))
- self.connections = 0
+ # self.connections = 0
self.listen(5)
def handle_accept(self):
@@ -120,7 +120,7 @@ class HTTPServer(asyncore.dispatcher):
if pair is not None:
sock, addr = pair
# print 'Incoming connection from %s' % repr(addr)
- self.connections += 1
+ # self.connections += 1
# if self.connections % 1000 == 0:
# print "Processed %i connections, active %i" % (self.connections, len(asyncore.socket_map))
HTTPRequestHandler(sock)
@@ -138,7 +138,7 @@ class HTTPSServer(HTTPServer):
if pair is not None:
sock, addr = pair
# print 'Incoming connection from %s' % repr(addr)
- self.connections += 1
+ # self.connections += 1
# if self.connections % 1000 == 0:
# print "Processed %i connections, active %i" % (self.connections, len(asyncore.socket_map))
HTTPSRequestHandler(sock)
diff --git a/src/network/objectracker.py b/src/network/objectracker.py
index 66b0685b..e71125bf 100644
--- a/src/network/objectracker.py
+++ b/src/network/objectracker.py
@@ -26,10 +26,10 @@ haveBloom = False
class ObjectTracker(object):
invCleanPeriod = 300
- invInitialCapacity = 50000
- invErrorRate = 0.03
+ # invInitialCapacity = 50000
+ # invErrorRate = 0.03
trackingExpires = 3600
- initialTimeOffset = 60
+ # initialTimeOffset = 60
def __init__(self):
self.objectsNewToMe = RandomTrackingDict()
@@ -39,17 +39,17 @@ class ObjectTracker(object):
self.initAddrBloom()
self.lastCleaned = time.time()
- def initInvBloom(self):
- if haveBloom:
+ # def initInvBloom(self):
+ # if haveBloom:
# lock?
- self.invBloom = BloomFilter(capacity=ObjectTracker.invInitialCapacity,
- error_rate=ObjectTracker.invErrorRate)
+ # self.invBloom = BloomFilter(capacity=ObjectTracker.invInitialCapacity,
+ # error_rate=ObjectTracker.invErrorRate)
- def initAddrBloom(self):
- if haveBloom:
+ # def initAddrBloom(self):
+ # if haveBloom:
# lock?
- self.addrBloom = BloomFilter(capacity=ObjectTracker.invInitialCapacity,
- error_rate=ObjectTracker.invErrorRate)
+ # self.addrBloom = BloomFilter(capacity=ObjectTracker.invInitialCapacity,
+ # error_rate=ObjectTracker.invErrorRate)
def clean(self):
if self.lastCleaned < time.time() - ObjectTracker.invCleanPeriod:
@@ -65,23 +65,23 @@ class ObjectTracker(object):
self.objectsNewToThem = {k: v for k, v in self.objectsNewToThem.iteritems() if v >= deadline}
self.lastCleaned = time.time()
- def hasObj(self, hashid):
- if haveBloom:
- return hashid in self.invBloom
- else:
- return hashid in self.objectsNewToMe
+ # def hasObj(self, hashid):
+ # if haveBloom:
+ # return hashid in self.invBloom
+ # else:
+ # return hashid in self.objectsNewToMe
- def handleReceivedInventory(self, hashId):
- if haveBloom:
- self.invBloom.add(hashId)
- try:
- with self.objectsNewToThemLock:
- del self.objectsNewToThem[hashId]
- except KeyError:
- pass
- if hashId not in missingObjects:
- missingObjects[hashId] = time.time()
- self.objectsNewToMe[hashId] = True
+ # def handleReceivedInventory(self, hashId):
+ # if haveBloom:
+ # self.invBloom.add(hashId)
+ # try:
+ # with self.objectsNewToThemLock:
+ # del self.objectsNewToThem[hashId]
+ # except KeyError:
+ # pass
+ # if hashId not in missingObjects:
+ # missingObjects[hashId] = time.time()
+ # self.objectsNewToMe[hashId] = True
def handleReceivedObject(self, streamNumber, hashid):
for i in network.connectionpool.BMConnectionPool().inboundConnections.values() + network.connectionpool.BMConnectionPool().outboundConnections.values():
@@ -106,13 +106,13 @@ class ObjectTracker(object):
except KeyError:
pass
- def hasAddr(self, addr):
- if haveBloom:
- return addr in self.invBloom
+ # def hasAddr(self, addr):
+ # if haveBloom:
+ # return addr in self.invBloom
- def addAddr(self, hashid):
- if haveBloom:
- self.addrBloom.add(hashid)
+ # def addAddr(self, hashid):
+ # if haveBloom:
+ # self.addrBloom.add(hashid)
# addr sending -> per node upload queue, and flush every minute or so
# inv sending -> if not in bloom, inv immediately, otherwise put into a per node upload queue and flush every minute or so
diff --git a/src/network/proxy.py b/src/network/proxy.py
index 43298f63..d91c0fa2 100644
--- a/src/network/proxy.py
+++ b/src/network/proxy.py
@@ -71,13 +71,13 @@ class Proxy(AdvancedDispatcher):
raise ValueError
self.__class__._onion_proxy = address
- @property
- def onion_auth(self):
- return self.__class__._onion_auth
+ # @property
+ # def onion_auth(self):
+ # return self.__class__._onion_auth
- @onion_auth.setter
- def onion_auth(self, authTuple):
- self.__class__._onion_auth = authTuple
+ # @onion_auth.setter
+ # def onion_auth(self, authTuple):
+ # self.__class__._onion_auth = authTuple
def __init__(self, address):
if not isinstance(address, state.Peer):
diff --git a/src/network/socks4a.py b/src/network/socks4a.py
index 978ede04..378db13e 100644
--- a/src/network/socks4a.py
+++ b/src/network/socks4a.py
@@ -54,33 +54,33 @@ class Socks4aConnection(Socks4a):
def __init__(self, address):
Socks4a.__init__(self, address=address)
- def state_auth_done(self):
- # Now we can request the actual connection
- rmtrslv = False
- self.append_write_buf(struct.pack('>BBH', 0x04, 0x01, self.destination[1]))
- # If the given destination address is an IP address, we'll
- # use the IPv4 address request even if remote resolving was specified.
- try:
- self.ipaddr = socket.inet_aton(self.destination[0])
- self.append_write_buf(self.ipaddr)
- except socket.error:
- # Well it's not an IP number, so it's probably a DNS name.
- if Proxy._remote_dns:
- # Resolve remotely
- rmtrslv = True
- self.ipaddr = None
- self.append_write_buf(struct.pack("BBBB", 0x00, 0x00, 0x00, 0x01))
- else:
- # Resolve locally
- self.ipaddr = socket.inet_aton(socket.gethostbyname(self.destination[0]))
- self.append_write_buf(self.ipaddr)
- if self._auth:
- self.append_write_buf(self._auth[0])
- self.append_write_buf(chr(0x00).encode())
- if rmtrslv:
- self.append_write_buf(self.destination[0] + chr(0x00).encode())
- self.set_state("pre_connect", length=0, expectBytes=8)
- return True
+ # def state_auth_done(self):
+ # # Now we can request the actual connection
+ # rmtrslv = False
+ # self.append_write_buf(struct.pack('>BBH', 0x04, 0x01, self.destination[1]))
+ # # If the given destination address is an IP address, we'll
+ # # use the IPv4 address request even if remote resolving was specified.
+ # try:
+ # self.ipaddr = socket.inet_aton(self.destination[0])
+ # self.append_write_buf(self.ipaddr)
+ # except socket.error:
+ # # Well it's not an IP number, so it's probably a DNS name.
+ # if Proxy._remote_dns:
+ # # Resolve remotely
+ # rmtrslv = True
+ # self.ipaddr = None
+ # self.append_write_buf(struct.pack("BBBB", 0x00, 0x00, 0x00, 0x01))
+ # else:
+ # # Resolve locally
+ # self.ipaddr = socket.inet_aton(socket.gethostbyname(self.destination[0]))
+ # self.append_write_buf(self.ipaddr)
+ # if self._auth:
+ # self.append_write_buf(self._auth[0])
+ # self.append_write_buf(chr(0x00).encode())
+ # if rmtrslv:
+ # self.append_write_buf(self.destination[0] + chr(0x00).encode())
+ # self.set_state("pre_connect", length=0, expectBytes=8)
+ # return True
def state_pre_connect(self):
try:
@@ -96,16 +96,16 @@ class Socks4aResolver(Socks4a):
self.port = 8444
Socks4a.__init__(self, address=(self.host, self.port))
- def state_auth_done(self):
- # Now we can request the actual connection
- self.append_write_buf(struct.pack('>BBH', 0x04, 0xF0, self.destination[1]))
- self.append_write_buf(struct.pack("BBBB", 0x00, 0x00, 0x00, 0x01))
- if self._auth:
- self.append_write_buf(self._auth[0])
- self.append_write_buf(chr(0x00).encode())
- self.append_write_buf(self.host + chr(0x00).encode())
- self.set_state("pre_connect", length=0, expectBytes=8)
- return True
+ # def state_auth_done(self):
+ # # Now we can request the actual connection
+ # self.append_write_buf(struct.pack('>BBH', 0x04, 0xF0, self.destination[1]))
+ # self.append_write_buf(struct.pack("BBBB", 0x00, 0x00, 0x00, 0x01))
+ # if self._auth:
+ # self.append_write_buf(self._auth[0])
+ # self.append_write_buf(chr(0x00).encode())
+ # self.append_write_buf(self.host + chr(0x00).encode())
+ # self.set_state("pre_connect", length=0, expectBytes=8)
+ # return True
def resolved(self):
print "Resolved %s as %s" % (self.host, self.proxy_sock_name())
diff --git a/src/network/socks5.py b/src/network/socks5.py
index 52050ec9..8fc654a4 100644
--- a/src/network/socks5.py
+++ b/src/network/socks5.py
@@ -38,40 +38,40 @@ class Socks5(Proxy):
self.set_state("auth_1", length=0, expectBytes=2)
return True
- def state_auth_1(self):
- ret = struct.unpack('BB', self.read_buf)
- if ret[0] != 5:
- # general error
- raise GeneralProxyError(1)
- elif ret[1] == 0:
- # no auth required
- self.set_state("auth_done", length=2)
- elif ret[1] == 2:
- # username/password
- self.append_write_buf(struct.pack('BB', 1, len(self._auth[0])) + \
- self._auth[0] + struct.pack('B', len(self._auth[1])) + \
- self._auth[1])
- self.set_state("auth_needed", length=2, expectBytes=2)
- else:
- if ret[1] == 0xff:
- # auth error
- raise Socks5AuthError(2)
- else:
- # other error
- raise GeneralProxyError(1)
- return True
+ # def state_auth_1(self):
+ # ret = struct.unpack('BB', self.read_buf)
+ # if ret[0] != 5:
+ # # general error
+ # raise GeneralProxyError(1)
+ # elif ret[1] == 0:
+ # # no auth required
+ # self.set_state("auth_done", length=2)
+ # elif ret[1] == 2:
+ # # username/password
+ # self.append_write_buf(struct.pack('BB', 1, len(self._auth[0])) + \
+ # self._auth[0] + struct.pack('B', len(self._auth[1])) + \
+ # self._auth[1])
+ # self.set_state("auth_needed", length=2, expectBytes=2)
+ # else:
+ # if ret[1] == 0xff:
+ # # auth error
+ # raise Socks5AuthError(2)
+ # else:
+ # # other error
+ # raise GeneralProxyError(1)
+ # return True
- def state_auth_needed(self):
- ret = struct.unpack('BB', self.read_buf[0:2])
- if ret[0] != 1:
- # general error
- raise GeneralProxyError(1)
- if ret[1] != 0:
- # auth error
- raise Socks5AuthError(3)
- # all ok
- self.set_state("auth_done", length=2)
- return True
+ # def state_auth_needed(self):
+ # ret = struct.unpack('BB', self.read_buf[0:2])
+ # if ret[0] != 1:
+ # # general error
+ # raise GeneralProxyError(1)
+ # if ret[1] != 0:
+ # # auth error
+ # raise Socks5AuthError(3)
+ # # all ok
+ # self.set_state("auth_done", length=2)
+ # return True
def state_pre_connect(self):
# Get the response
@@ -95,30 +95,30 @@ class Socks5(Proxy):
raise GeneralProxyError(1)
return True
- def state_proxy_addr_1(self):
- self.boundaddr = self.read_buf[0:4]
- self.set_state("proxy_port", length=4, expectBytes=2)
- return True
+ # def state_proxy_addr_1(self):
+ # self.boundaddr = self.read_buf[0:4]
+ # self.set_state("proxy_port", length=4, expectBytes=2)
+ # return True
- def state_proxy_addr_2_1(self):
- self.address_length = ord(self.read_buf[0:1])
- self.set_state("proxy_addr_2_2", length=1, expectBytes=self.address_length)
- return True
+ # def state_proxy_addr_2_1(self):
+ # self.address_length = ord(self.read_buf[0:1])
+ # self.set_state("proxy_addr_2_2", length=1, expectBytes=self.address_length)
+ # return True
- def state_proxy_addr_2_2(self):
- self.boundaddr = self.read_buf[0:self.address_length]
- self.set_state("proxy_port", length=self.address_length, expectBytes=2)
- return True
+ # def state_proxy_addr_2_2(self):
+ # self.boundaddr = self.read_buf[0:self.address_length]
+ # self.set_state("proxy_port", length=self.address_length, expectBytes=2)
+ # return True
- def state_proxy_port(self):
- self.boundport = struct.unpack(">H", self.read_buf[0:2])[0]
- self.__proxysockname = (self.boundaddr, self.boundport)
- if self.ipaddr is not None:
- self.__proxypeername = (socket.inet_ntoa(self.ipaddr), self.destination[1])
- else:
- self.__proxypeername = (self.destination[0], self.destport)
- self.set_state("proxy_handshake_done", length=2)
- return True
+ # def state_proxy_port(self):
+ # self.boundport = struct.unpack(">H", self.read_buf[0:2])[0]
+ # self.__proxysockname = (self.boundaddr, self.boundport)
+ # if self.ipaddr is not None:
+ # self.__proxypeername = (socket.inet_ntoa(self.ipaddr), self.destination[1])
+ # else:
+ # self.__proxypeername = (self.destination[0], self.destport)
+ # self.set_state("proxy_handshake_done", length=2)
+ # return True
def proxy_sock_name(self):
return socket.inet_ntoa(self.__proxysockname[0])
@@ -128,27 +128,27 @@ class Socks5Connection(Socks5):
def __init__(self, address):
Socks5.__init__(self, address=address)
- def state_auth_done(self):
- # Now we can request the actual connection
- self.append_write_buf(struct.pack('BBB', 0x05, 0x01, 0x00))
- # If the given destination address is an IP address, we'll
- # use the IPv4 address request even if remote resolving was specified.
- try:
- self.ipaddr = socket.inet_aton(self.destination[0])
- self.append_write_buf(chr(0x01).encode() + self.ipaddr)
- except socket.error:
- # Well it's not an IP number, so it's probably a DNS name.
- if Proxy._remote_dns:
- # Resolve remotely
- self.ipaddr = None
- self.append_write_buf(chr(0x03).encode() + chr(len(self.destination[0])).encode() + self.destination[0])
- else:
- # Resolve locally
- self.ipaddr = socket.inet_aton(socket.gethostbyname(self.destination[0]))
- self.append_write_buf(chr(0x01).encode() + self.ipaddr)
- self.append_write_buf(struct.pack(">H", self.destination[1]))
- self.set_state("pre_connect", length=0, expectBytes=4)
- return True
+ # def state_auth_done(self):
+ # # Now we can request the actual connection
+ # self.append_write_buf(struct.pack('BBB', 0x05, 0x01, 0x00))
+ # # If the given destination address is an IP address, we'll
+ # # use the IPv4 address request even if remote resolving was specified.
+ # try:
+ # self.ipaddr = socket.inet_aton(self.destination[0])
+ # self.append_write_buf(chr(0x01).encode() + self.ipaddr)
+ # except socket.error:
+ # # Well it's not an IP number, so it's probably a DNS name.
+ # if Proxy._remote_dns:
+ # # Resolve remotely
+ # self.ipaddr = None
+ # self.append_write_buf(chr(0x03).encode() + chr(len(self.destination[0])).encode() + self.destination[0])
+ # else:
+ # # Resolve locally
+ # self.ipaddr = socket.inet_aton(socket.gethostbyname(self.destination[0]))
+ # self.append_write_buf(chr(0x01).encode() + self.ipaddr)
+ # self.append_write_buf(struct.pack(">H", self.destination[1]))
+ # self.set_state("pre_connect", length=0, expectBytes=4)
+ # return True
def state_pre_connect(self):
try:
@@ -164,13 +164,13 @@ class Socks5Resolver(Socks5):
self.port = 8444
Socks5.__init__(self, address=(self.host, self.port))
- def state_auth_done(self):
- # Now we can request the actual connection
- self.append_write_buf(struct.pack('BBB', 0x05, 0xF0, 0x00))
- self.append_write_buf(chr(0x03).encode() + chr(len(self.host)).encode() + str(self.host))
- self.append_write_buf(struct.pack(">H", self.port))
- self.set_state("pre_connect", length=0, expectBytes=4)
- return True
+ # def state_auth_done(self):
+ # # Now we can request the actual connection
+ # self.append_write_buf(struct.pack('BBB', 0x05, 0xF0, 0x00))
+ # self.append_write_buf(chr(0x03).encode() + chr(len(self.host)).encode() + str(self.host))
+ # self.append_write_buf(struct.pack(">H", self.port))
+ # self.set_state("pre_connect", length=0, expectBytes=4)
+ # return True
def resolved(self):
print "Resolved %s as %s" % (self.host, self.proxy_sock_name())
diff --git a/src/network/tcp.py b/src/network/tcp.py
index 33c4b6ca..31848aea 100644
--- a/src/network/tcp.py
+++ b/src/network/tcp.py
@@ -66,10 +66,10 @@ class TCPConnection(BMProto, TLSDispatcher):
self.connect(self.destination)
logger.debug("Connecting to %s:%i", self.destination.host, self.destination.port)
encodedAddr = protocol.encodeHost(self.destination.host)
- if protocol.checkIPAddress(encodedAddr, True) and not protocol.checkSocksIP(self.destination.host):
- self.local = True
- else:
- self.local = False
+ # if protocol.checkIPAddress(encodedAddr, True) and not protocol.checkSocksIP(self.destination.host):
+ # self.local = True
+ # else:
+ # self.local = False
#shared.connectedHostsList[self.destination] = 0
ObjectTracker.__init__(self)
self.bm_proto_reset()
@@ -91,68 +91,68 @@ class TCPConnection(BMProto, TLSDispatcher):
logger.debug("Skipping processing getdata due to missing object for %.2fs", delay)
self.skipUntil = time.time() + delay
- def state_connection_fully_established(self):
- self.set_connection_fully_established()
- self.set_state("bm_header")
- self.bm_proto_reset()
- return True
+ # def state_connection_fully_established(self):
+ # self.set_connection_fully_established()
+ # self.set_state("bm_header")
+ # self.bm_proto_reset()
+ # return True
- def set_connection_fully_established(self):
- if not self.isOutbound and not self.local:
- shared.clientHasReceivedIncomingConnections = True
- UISignalQueue.put(('setStatusIcon', 'green'))
- UISignalQueue.put(('updateNetworkStatusTab', (self.isOutbound, True, self.destination)))
- self.antiIntersectionDelay(True)
- self.fullyEstablished = True
- if self.isOutbound:
- knownnodes.increaseRating(self.destination)
- if self.isOutbound:
- Dandelion().maybeAddStem(self)
- self.sendAddr()
- self.sendBigInv()
+ # def set_connection_fully_established(self):
+ # if not self.isOutbound and not self.local:
+ # shared.clientHasReceivedIncomingConnections = True
+ # UISignalQueue.put(('setStatusIcon', 'green'))
+ # UISignalQueue.put(('updateNetworkStatusTab', (self.isOutbound, True, self.destination)))
+ # self.antiIntersectionDelay(True)
+ # self.fullyEstablished = True
+ # if self.isOutbound:
+ # knownnodes.increaseRating(self.destination)
+ # if self.isOutbound:
+ # Dandelion().maybeAddStem(self)
+ # self.sendAddr()
+ # self.sendBigInv()
- def sendAddr(self):
- # We are going to share a maximum number of 1000 addrs (per overlapping
- # stream) with our peer. 500 from overlapping streams, 250 from the
- # left child stream, and 250 from the right child stream.
- maxAddrCount = BMConfigParser().safeGetInt("bitmessagesettings", "maxaddrperstreamsend", 500)
+ # def sendAddr(self):
+ # # We are going to share a maximum number of 1000 addrs (per overlapping
+ # # stream) with our peer. 500 from overlapping streams, 250 from the
+ # # left child stream, and 250 from the right child stream.
+ # maxAddrCount = BMConfigParser().safeGetInt("bitmessagesettings", "maxaddrperstreamsend", 500)
- # init
- addressCount = 0
- payload = b''
+ # # init
+ # # addressCount = 0
+ # payload = b''
- templist = []
- addrs = {}
- for stream in self.streams:
- with knownnodes.knownNodesLock:
- if len(knownnodes.knownNodes[stream]) > 0:
- filtered = {k: v for k, v in knownnodes.knownNodes[stream].items()
- if v["lastseen"] > (int(time.time()) - shared.maximumAgeOfNodesThatIAdvertiseToOthers)}
- elemCount = len(filtered)
- if elemCount > maxAddrCount:
- elemCount = maxAddrCount
- # only if more recent than 3 hours
- addrs[stream] = random.sample(filtered.items(), elemCount)
- # sent 250 only if the remote isn't interested in it
- if len(knownnodes.knownNodes[stream * 2]) > 0 and stream not in self.streams:
- filtered = {k: v for k, v in knownnodes.knownNodes[stream*2].items()
- if v["lastseen"] > (int(time.time()) - shared.maximumAgeOfNodesThatIAdvertiseToOthers)}
- elemCount = len(filtered)
- if elemCount > maxAddrCount / 2:
- elemCount = int(maxAddrCount / 2)
- addrs[stream * 2] = random.sample(filtered.items(), elemCount)
- if len(knownnodes.knownNodes[(stream * 2) + 1]) > 0 and stream not in self.streams:
- filtered = {k: v for k, v in knownnodes.knownNodes[stream*2+1].items()
- if v["lastseen"] > (int(time.time()) - shared.maximumAgeOfNodesThatIAdvertiseToOthers)}
- elemCount = len(filtered)
- if elemCount > maxAddrCount / 2:
- elemCount = int(maxAddrCount / 2)
- addrs[stream * 2 + 1] = random.sample(filtered.items(), elemCount)
- for substream in addrs.keys():
- for peer, params in addrs[substream]:
- templist.append((substream, peer, params["lastseen"]))
- if len(templist) > 0:
- self.append_write_buf(BMProto.assembleAddr(templist))
+ # templist = []
+ # addrs = {}
+ # for stream in self.streams:
+ # with knownnodes.knownNodesLock:
+ # if len(knownnodes.knownNodes[stream]) > 0:
+ # filtered = {k: v for k, v in knownnodes.knownNodes[stream].items()
+ # if v["lastseen"] > (int(time.time()) - shared.maximumAgeOfNodesThatIAdvertiseToOthers)}
+ # elemCount = len(filtered)
+ # if elemCount > maxAddrCount:
+ # elemCount = maxAddrCount
+ # # only if more recent than 3 hours
+ # addrs[stream] = random.sample(filtered.items(), elemCount)
+ # # sent 250 only if the remote isn't interested in it
+ # if len(knownnodes.knownNodes[stream * 2]) > 0 and stream not in self.streams:
+ # filtered = {k: v for k, v in knownnodes.knownNodes[stream*2].items()
+ # if v["lastseen"] > (int(time.time()) - shared.maximumAgeOfNodesThatIAdvertiseToOthers)}
+ # elemCount = len(filtered)
+ # if elemCount > maxAddrCount / 2:
+ # elemCount = int(maxAddrCount / 2)
+ # addrs[stream * 2] = random.sample(filtered.items(), elemCount)
+ # if len(knownnodes.knownNodes[(stream * 2) + 1]) > 0 and stream not in self.streams:
+ # filtered = {k: v for k, v in knownnodes.knownNodes[stream*2+1].items()
+ # if v["lastseen"] > (int(time.time()) - shared.maximumAgeOfNodesThatIAdvertiseToOthers)}
+ # elemCount = len(filtered)
+ # if elemCount > maxAddrCount / 2:
+ # elemCount = int(maxAddrCount / 2)
+ # addrs[stream * 2 + 1] = random.sample(filtered.items(), elemCount)
+ # for substream in addrs.keys():
+ # for peer, params in addrs[substream]:
+ # templist.append((substream, peer, params["lastseen"]))
+ # if len(templist) > 0:
+ # self.append_write_buf(BMProto.assembleAddr(templist))
def sendBigInv(self):
def sendChunk():
@@ -275,14 +275,14 @@ class TCPServer(AdvancedDispatcher):
BMConfigParser().save()
break
self.destination = state.Peer(host, port)
- self.bound = True
+ # self.bound = True
self.listen(5)
- def is_bound(self):
- try:
- return self.bound
- except AttributeError:
- return False
+ # def is_bound(self):
+ # try:
+ # return self.bound
+ # except AttributeError:
+ # return False
def handle_accept(self):
pair = self.accept()
@@ -314,12 +314,12 @@ if __name__ == "__main__":
asyncore.loop(timeout=10, count=1)
continue
- proxy = Socks5BMConnection(host)
- while len(asyncore.socket_map) > 0:
+ # proxy = Socks5BMConnection(host)
+ # while len(asyncore.socket_map) > 0:
# print "loop, state = %s" % (proxy.state)
- asyncore.loop(timeout=10, count=1)
+ # asyncore.loop(timeout=10, count=1)
- proxy = Socks4aBMConnection(host)
- while len(asyncore.socket_map) > 0:
+ # proxy = Socks4aBMConnection(host)
+ # while len(asyncore.socket_map) > 0:
# print "loop, state = %s" % (proxy.state)
- asyncore.loop(timeout=10, count=1)
+ # asyncore.loop(timeout=10, count=1)
diff --git a/src/network/tls.py b/src/network/tls.py
index 379dae99..47cb7ca8 100644
--- a/src/network/tls.py
+++ b/src/network/tls.py
@@ -20,52 +20,52 @@ class TLSDispatcher(AdvancedDispatcher):
def __init__(self, address=None, sock=None,
certfile=None, keyfile=None, server_side=False, ciphers=protocol.sslProtocolCiphers):
self.want_read = self.want_write = True
- if certfile is None:
- self.certfile = os.path.join(paths.codePath(), 'sslkeys', 'cert.pem')
- else:
- self.certfile = certfile
- if keyfile is None:
- self.keyfile = os.path.join(paths.codePath(), 'sslkeys', 'key.pem')
- else:
- self.keyfile = keyfile
- self.server_side = server_side
- self.ciphers = ciphers
+ # if certfile is None:
+ # self.certfile = os.path.join(paths.codePath(), 'sslkeys', 'cert.pem')
+ # else:
+ # self.certfile = certfile
+ # if keyfile is None:
+ # self.keyfile = os.path.join(paths.codePath(), 'sslkeys', 'key.pem')
+ # else:
+ # self.keyfile = keyfile
+ # self.server_side = server_side
+ # self.ciphers = ciphers
self.tlsStarted = False
self.tlsDone = False
self.tlsVersion = "N/A"
- self.isSSL = False
+ # self.isSSL = False
- def state_tls_init(self):
- self.isSSL = True
- self.tlsStarted = True
- # Once the connection has been established, it's safe to wrap the
- # socket.
- if sys.version_info >= (2,7,9):
- context = ssl.create_default_context(purpose = ssl.Purpose.SERVER_AUTH if self.server_side else ssl.Purpose.CLIENT_AUTH)
- context.set_ciphers(self.ciphers)
- context.set_ecdh_curve("secp256k1")
- context.check_hostname = False
- context.verify_mode = ssl.CERT_NONE
- # also exclude TLSv1 and TLSv1.1 in the future
- context.options = ssl.OP_ALL | ssl.OP_NO_SSLv2 | ssl.OP_NO_SSLv3 | ssl.OP_SINGLE_ECDH_USE | ssl.OP_CIPHER_SERVER_PREFERENCE
- self.sslSocket = context.wrap_socket(self.socket, server_side = self.server_side, do_handshake_on_connect=False)
- else:
- self.sslSocket = ssl.wrap_socket(self.socket,
- server_side=self.server_side,
- ssl_version=protocol.sslProtocolVersion,
- certfile=self.certfile,
- keyfile=self.keyfile,
- ciphers=self.ciphers,
- do_handshake_on_connect=False)
- self.sslSocket.setblocking(0)
- self.want_read = self.want_write = True
- self.set_state("tls_handshake")
- return False
-# if hasattr(self.socket, "context"):
-# self.socket.context.set_ecdh_curve("secp256k1")
+# def state_tls_init(self):
+# self.isSSL = True
+# self.tlsStarted = True
+# # Once the connection has been established, it's safe to wrap the
+# # socket.
+# if sys.version_info >= (2,7,9):
+# context = ssl.create_default_context(purpose = ssl.Purpose.SERVER_AUTH if self.server_side else ssl.Purpose.CLIENT_AUTH)
+# context.set_ciphers(self.ciphers)
+# context.set_ecdh_curve("secp256k1")
+# context.check_hostname = False
+# context.verify_mode = ssl.CERT_NONE
+# # also exclude TLSv1 and TLSv1.1 in the future
+# context.options = ssl.OP_ALL | ssl.OP_NO_SSLv2 | ssl.OP_NO_SSLv3 | ssl.OP_SINGLE_ECDH_USE | ssl.OP_CIPHER_SERVER_PREFERENCE
+# self.sslSocket = context.wrap_socket(self.socket, server_side = self.server_side, do_handshake_on_connect=False)
+# else:
+# self.sslSocket = ssl.wrap_socket(self.socket,
+# server_side=self.server_side,
+# ssl_version=protocol.sslProtocolVersion,
+# certfile=self.certfile,
+# keyfile=self.keyfile,
+# ciphers=self.ciphers,
+# do_handshake_on_connect=False)
+# self.sslSocket.setblocking(0)
+# self.want_read = self.want_write = True
+# self.set_state("tls_handshake")
+# return False
+# # if hasattr(self.socket, "context"):
+# # self.socket.context.set_ecdh_curve("secp256k1")
- def state_tls_handshake(self):
- return False
+# def state_tls_handshake(self):
+# return False
def writable(self):
try:
diff --git a/src/network/udp.py b/src/network/udp.py
index 0dba5a3f..dc6f6456 100644
--- a/src/network/udp.py
+++ b/src/network/udp.py
@@ -69,55 +69,55 @@ class UDPSocket(BMProto):
def bm_command_error(self):
return BMProto.bm_command_error(self)
- def bm_command_getdata(self):
- return True
+ # def bm_command_getdata(self):
+ # return True
# return BMProto.bm_command_getdata(self)
- def bm_command_inv(self):
- return True
+ # def bm_command_inv(self):
+ # return True
# return BMProto.bm_command_inv(self)
def bm_command_object(self):
return BMProto.bm_command_object(self)
- def bm_command_addr(self):
+ # def bm_command_addr(self):
# BMProto.bm_command_object(self)
- addresses = self._decode_addr()
+ # addresses = self._decode_addr()
# only allow peer discovery from private IPs in order to avoid attacks from random IPs on the internet
- if not self.local:
- return True
- remoteport = False
- for i in addresses:
- seenTime, stream, services, ip, port = i
- decodedIP = protocol.checkIPAddress(str(ip))
- if stream not in state.streamsInWhichIAmParticipating:
- continue
- if seenTime < time.time() - BMProto.maxTimeOffset or seenTime > time.time() + BMProto.maxTimeOffset:
- continue
- if decodedIP is False:
- # if the address isn't local, interpret it as the hosts' own announcement
- remoteport = port
- if remoteport is False:
- return True
- logger.debug("received peer discovery from %s:%i (port %i):", self.destination.host, self.destination.port, remoteport)
- if self.local:
- state.discoveredPeers[state.Peer(self.destination.host, remoteport)] = time.time()
- return True
+ # if not self.local:
+ # return True
+ # remoteport = False
+ # for i in addresses:
+ # seenTime, stream, services, ip, port = i
+ # decodedIP = protocol.checkIPAddress(str(ip))
+ # if stream not in state.streamsInWhichIAmParticipating:
+ # continue
+ # if seenTime < time.time() - BMProto.maxTimeOffset or seenTime > time.time() + BMProto.maxTimeOffset:
+ # continue
+ # if decodedIP is False:
+ # # if the address isn't local, interpret it as the hosts' own announcement
+ # remoteport = port
+ # if remoteport is False:
+ # return True
+ # logger.debug("received peer discovery from %s:%i (port %i):", self.destination.host, self.destination.port, remoteport)
+ # if self.local:
+ # state.discoveredPeers[state.Peer(self.destination.host, remoteport)] = time.time()
+ # return True
- def bm_command_portcheck(self):
- return True
+ # def bm_command_portcheck(self):
+ # return True
- def bm_command_ping(self):
- return True
+ # def bm_command_ping(self):
+ # return True
- def bm_command_pong(self):
- return True
+ # def bm_command_pong(self):
+ # return True
- def bm_command_verack(self):
- return True
+ # def bm_command_verack(self):
+ # return True
- def bm_command_version(self):
- return True
+ # def bm_command_version(self):
+ # return True
def handle_connect(self):
return
@@ -137,10 +137,10 @@ class UDPSocket(BMProto):
self.destination = state.Peer(addr[0], addr[1])
encodedAddr = protocol.encodeHost(addr[0])
- if protocol.checkIPAddress(encodedAddr, True):
- self.local = True
- else:
- self.local = False
+ # if protocol.checkIPAddress(encodedAddr, True):
+ # self.local = True
+ # else:
+ # self.local = False
# overwrite the old buffer to avoid mixing data and so that self.local works correctly
self.read_buf[0:] = recdata
self.bm_proto_reset()
@@ -165,12 +165,12 @@ if __name__ == "__main__":
asyncore.loop(timeout=10, count=1)
continue
- proxy = Socks5BMConnection(host)
- while len(asyncore.socket_map) > 0:
+ # proxy = Socks5BMConnection(host)
+ # while len(asyncore.socket_map) > 0:
# print "loop, state = %s" % (proxy.state)
- asyncore.loop(timeout=10, count=1)
+ # asyncore.loop(timeout=10, count=1)
- proxy = Socks4aBMConnection(host)
- while len(asyncore.socket_map) > 0:
+ # proxy = Socks4aBMConnection(host)
+ # while len(asyncore.socket_map) > 0:
# print "loop, state = %s" % (proxy.state)
- asyncore.loop(timeout=10, count=1)
+ # asyncore.loop(timeout=10, count=1)
diff --git a/src/openclpow.py b/src/openclpow.py
old mode 100644
new mode 100755
index 894a5b77..41be6ec4
--- a/src/openclpow.py
+++ b/src/openclpow.py
@@ -92,11 +92,11 @@ def do_opencl_pow(hash, target):
cl.enqueue_read_buffer(queue, dest_buf, output)
queue.finish()
progress += globamt
- sofar = time.time() - start
+ # sofar = time.time() - start
# logger.debug("Working for %.3fs, %.2f Mh/s", sofar, (progress / sofar) / 1000000)
if shutdown != 0:
raise Exception ("Interrupted")
- taken = time.time() - start
+ # taken = time.time() - start
# logger.debug("Took %d tries.", progress)
return output[0][0]
diff --git a/src/plugins/qrcodeui.py b/src/plugins/qrcodeui.py
index 25b1e0b1..80c91866 100644
--- a/src/plugins/qrcodeui.py
+++ b/src/plugins/qrcodeui.py
@@ -16,7 +16,7 @@ class Image(qrcode.image.base.BaseImage):
def __init__(self, border, width, box_size):
self.border = border
self.width = width
- self.box_size = box_size
+ # self.box_size = box_size
size = (width + border * 2) * box_size
self._image = QtGui.QImage(
size, size, QtGui.QImage.Format_RGB16)
@@ -25,16 +25,16 @@ class Image(qrcode.image.base.BaseImage):
def pixmap(self):
return QtGui.QPixmap.fromImage(self._image)
- def drawrect(self, row, col):
- painter = QtGui.QPainter(self._image)
- painter.fillRect(
- (col + self.border) * self.box_size,
- (row + self.border) * self.box_size,
- self.box_size, self.box_size,
- QtCore.Qt.black)
+ # def drawrect(self, row, col):
+ # painter = QtGui.QPainter(self._image)
+ # painter.fillRect(
+ # (col + self.border) * self.box_size,
+ # (row + self.border) * self.box_size,
+ # self.box_size, self.box_size,
+ # QtCore.Qt.black)
- def save(self, stream, kind=None):
- pass
+ # def save(self, stream, kind=None):
+ # pass
class Ui_qrcodeDialog(object):
diff --git a/src/proofofwork.py b/src/proofofwork.py
index df6ed295..cba7af32 100644
--- a/src/proofofwork.py
+++ b/src/proofofwork.py
@@ -126,30 +126,30 @@ def _doGPUPoW(target, initialHash):
logger.debug("GPU PoW done")
return [trialValue, nonce]
-def estimate(difficulty, format = False):
- ret = difficulty / 10
- if ret < 1:
- ret = 1
- if format:
- out = str(int(ret)) + " seconds"
- if ret > 60:
- ret /= 60
- out = str(int(ret)) + " minutes"
- if ret > 60:
- ret /= 60
- out = str(int(ret)) + " hours"
- if ret > 24:
- ret /= 24
- out = str(int(ret)) + " days"
- if ret > 7:
- out = str(int(ret)) + " weeks"
- if ret > 31:
- out = str(int(ret)) + " months"
- if ret > 366:
- ret /= 366
- out = str(int(ret)) + " years"
- else:
- return ret
+# def estimate(difficulty, format = False):
+# ret = difficulty / 10
+# if ret < 1:
+# ret = 1
+# if format:
+# out = str(int(ret)) + " seconds"
+# if ret > 60:
+# ret /= 60
+# out = str(int(ret)) + " minutes"
+# if ret > 60:
+# ret /= 60
+# out = str(int(ret)) + " hours"
+# if ret > 24:
+# ret /= 24
+# out = str(int(ret)) + " days"
+# if ret > 7:
+# out = str(int(ret)) + " weeks"
+# if ret > 31:
+# out = str(int(ret)) + " months"
+# if ret > 366:
+# ret /= 366
+# out = str(int(ret)) + " years"
+# else:
+# return ret
def getPowType():
if openclpow.openclEnabled():
@@ -252,7 +252,7 @@ def init():
bso = ctypes.WinDLL(os.path.join(paths.codePath(), "bitmsghash", bitmsglib))
logger.info("Loaded C PoW DLL (stdcall) %s", bitmsglib)
bmpow = bso.BitmessagePOW
- bmpow.restype = ctypes.c_ulonglong
+ # bmpow.restype = ctypes.c_ulonglong
_doCPoW(2**63, "")
logger.info("Successfully tested C PoW DLL (stdcall) %s", bitmsglib)
except:
@@ -262,7 +262,7 @@ def init():
bso = ctypes.CDLL(os.path.join(paths.codePath(), "bitmsghash", bitmsglib))
logger.info("Loaded C PoW DLL (cdecl) %s", bitmsglib)
bmpow = bso.BitmessagePOW
- bmpow.restype = ctypes.c_ulonglong
+ # bmpow.restype = ctypes.c_ulonglong
_doCPoW(2**63, "")
logger.info("Successfully tested C PoW DLL (cdecl) %s", bitmsglib)
except:
@@ -286,7 +286,7 @@ def init():
if bso:
try:
bmpow = bso.BitmessagePOW
- bmpow.restype = ctypes.c_ulonglong
+ # bmpow.restype = ctypes.c_ulonglong
except:
bmpow = None
else:
diff --git a/src/protocol.py b/src/protocol.py
index e5b2c5c2..1aa749a4 100644
--- a/src/protocol.py
+++ b/src/protocol.py
@@ -29,17 +29,17 @@ NODE_DANDELION = 8
BITFIELD_DOESACK = 1
#Error types
-STATUS_WARNING = 0
-STATUS_ERROR = 1
-STATUS_FATAL = 2
+# STATUS_WARNING = 0
+# STATUS_ERROR = 1
+# STATUS_FATAL = 2
#Object types
OBJECT_GETPUBKEY = 0
OBJECT_PUBKEY = 1
OBJECT_MSG = 2
OBJECT_BROADCAST = 3
-OBJECT_I2P = 0x493250
-OBJECT_ADDR = 0x61646472
+# OBJECT_I2P = 0x493250
+# OBJECT_ADDR = 0x61646472
eightBytesOfRandomDataUsedToDetectConnectionsToSelf = pack(
'>Q', random.randrange(1, 18446744073709551615))
@@ -48,7 +48,7 @@ eightBytesOfRandomDataUsedToDetectConnectionsToSelf = pack(
#New code should use CreatePacket instead of Header.pack
Header = Struct('!L12sL4s')
-VersionPacket = Struct('>LqQ20s4s36sH')
+# VersionPacket = Struct('>LqQ20s4s36sH')
# Bitfield
@@ -306,17 +306,17 @@ def decryptAndCheckPubkeyPayload(data, address):
return 'failed'
readPosition = 0
- bitfieldBehaviors = decryptedData[readPosition:readPosition + 4]
+ # bitfieldBehaviors = decryptedData[readPosition:readPosition + 4]
readPosition += 4
publicSigningKey = '\x04' + decryptedData[readPosition:readPosition + 64]
readPosition += 64
publicEncryptionKey = '\x04' + decryptedData[readPosition:readPosition + 64]
readPosition += 64
- specifiedNonceTrialsPerByte, specifiedNonceTrialsPerByteLength = decodeVarint(
- decryptedData[readPosition:readPosition + 10])
+ # specifiedNonceTrialsPerByte, specifiedNonceTrialsPerByteLength = decodeVarint(
+ # decryptedData[readPosition:readPosition + 10])
readPosition += specifiedNonceTrialsPerByteLength
- specifiedPayloadLengthExtraBytes, specifiedPayloadLengthExtraBytesLength = decodeVarint(
- decryptedData[readPosition:readPosition + 10])
+ # specifiedPayloadLengthExtraBytes, specifiedPayloadLengthExtraBytesLength = decodeVarint(
+ # decryptedData[readPosition:readPosition + 10])
readPosition += specifiedPayloadLengthExtraBytesLength
storedData += decryptedData[:readPosition]
signedData += decryptedData[:readPosition]
@@ -415,8 +415,8 @@ def checkAndShareObjectWithPeers(data):
def _checkAndShareUndefinedObjectWithPeers(data):
embeddedTime, = unpack('>Q', data[8:16])
readPosition = 20 # bypass nonce, time, and object type
- objectVersion, objectVersionLength = decodeVarint(
- data[readPosition:readPosition + 9])
+ # objectVersion, objectVersionLength = decodeVarint(
+ # data[readPosition:readPosition + 9])
readPosition += objectVersionLength
streamNumber, streamNumberLength = decodeVarint(
data[readPosition:readPosition + 9])
@@ -438,8 +438,8 @@ def _checkAndShareUndefinedObjectWithPeers(data):
def _checkAndShareMsgWithPeers(data):
embeddedTime, = unpack('>Q', data[8:16])
readPosition = 20 # bypass nonce, time, and object type
- objectVersion, objectVersionLength = decodeVarint(
- data[readPosition:readPosition + 9])
+ # objectVersion, objectVersionLength = decodeVarint(
+ # data[readPosition:readPosition + 9])
readPosition += objectVersionLength
streamNumber, streamNumberLength = decodeVarint(
data[readPosition:readPosition + 9])
diff --git a/src/pyelliptic/__init__.py b/src/pyelliptic/__init__.py
index 761d08af..c314a9a7 100644
--- a/src/pyelliptic/__init__.py
+++ b/src/pyelliptic/__init__.py
@@ -16,4 +16,4 @@ __all__ = [
from .openssl import OpenSSL
from .ecc import ECC
from .cipher import Cipher
-from .hash import hmac_sha256, hmac_sha512, pbkdf2
+from .hash import hmac_sha256# , hmac_sha512, pbkdf2
diff --git a/src/pyelliptic/arithmetic.py b/src/pyelliptic/arithmetic.py
index 1eec381a..ef2274d7 100644
--- a/src/pyelliptic/arithmetic.py
+++ b/src/pyelliptic/arithmetic.py
@@ -74,8 +74,8 @@ def hex_to_point(h): return (decode(h[2:66],16),decode(h[66:],16))
def point_to_hex(p): return '04'+encode(p[0],16,64)+encode(p[1],16,64)
-def multiply(privkey,pubkey):
- return point_to_hex(base10_multiply(hex_to_point(pubkey),decode(privkey,16)))
+# def multiply(privkey,pubkey):
+# return point_to_hex(base10_multiply(hex_to_point(pubkey),decode(privkey,16)))
def privtopub(privkey):
return point_to_hex(base10_multiply(G,decode(privkey,16)))
@@ -86,21 +86,21 @@ def add(p1,p2):
else:
return point_to_hex(base10_add(hex_to_point(p1),hex_to_point(p2)))
-def hash_160(string):
- intermed = hashlib.sha256(string).digest()
- ripemd160 = hashlib.new('ripemd160')
- ripemd160.update(intermed)
- return ripemd160.digest()
+# def hash_160(string):
+# intermed = hashlib.sha256(string).digest()
+# ripemd160 = hashlib.new('ripemd160')
+# ripemd160.update(intermed)
+# return ripemd160.digest()
-def dbl_sha256(string):
- return hashlib.sha256(hashlib.sha256(string).digest()).digest()
+# def dbl_sha256(string):
+# return hashlib.sha256(hashlib.sha256(string).digest()).digest()
-def bin_to_b58check(inp):
- inp_fmtd = '\x00' + inp
- leadingzbytes = len(re.match('^\x00*',inp_fmtd).group(0))
- checksum = dbl_sha256(inp_fmtd)[:4]
- return '1' * leadingzbytes + changebase(inp_fmtd+checksum,256,58)
+# def bin_to_b58check(inp):
+# inp_fmtd = '\x00' + inp
+# leadingzbytes = len(re.match('^\x00*',inp_fmtd).group(0))
+# checksum = dbl_sha256(inp_fmtd)[:4]
+# return '1' * leadingzbytes + changebase(inp_fmtd+checksum,256,58)
#Convert a public key (in hex) to a Bitcoin address
-def pubkey_to_address(pubkey):
- return bin_to_b58check(hash_160(changebase(pubkey,16,256)))
+# def pubkey_to_address(pubkey):
+# return bin_to_b58check(hash_160(changebase(pubkey,16,256)))
diff --git a/src/pyelliptic/cipher.py b/src/pyelliptic/cipher.py
old mode 100644
new mode 100755
index b597cafa..d9fb8932
--- a/src/pyelliptic/cipher.py
+++ b/src/pyelliptic/cipher.py
@@ -35,22 +35,22 @@ class Cipher:
else:
raise Exception("RTFM ...")
- @staticmethod
- def get_all_cipher():
- """
- static method, returns all ciphers available
- """
- return OpenSSL.cipher_algo.keys()
+ # @staticmethod
+ # def get_all_cipher():
+ # """
+ # static method, returns all ciphers available
+ # """
+ # return OpenSSL.cipher_algo.keys()
@staticmethod
def get_blocksize(ciphername):
cipher = OpenSSL.get_cipher(ciphername)
return cipher.get_blocksize()
- @staticmethod
- def gen_IV(ciphername):
- cipher = OpenSSL.get_cipher(ciphername)
- return OpenSSL.rand(cipher.get_blocksize())
+ # @staticmethod
+ # def gen_IV(ciphername):
+ # cipher = OpenSSL.get_cipher(ciphername)
+ # return OpenSSL.rand(cipher.get_blocksize())
def update(self, input):
i = OpenSSL.c_int(0)
diff --git a/src/pyelliptic/ecc.py b/src/pyelliptic/ecc.py
old mode 100644
new mode 100755
index bea645db..ff4ce63c
--- a/src/pyelliptic/ecc.py
+++ b/src/pyelliptic/ecc.py
@@ -75,18 +75,18 @@ class ECC:
self.pubkey_y = pubkey_y
self.privkey = privkey
- @staticmethod
- def get_curves():
- """
- static method, returns the list of all the curves available
- """
- return OpenSSL.curves.keys()
+ # @staticmethod
+ # def get_curves():
+ # """
+ # static method, returns the list of all the curves available
+ # """
+ # return OpenSSL.curves.keys()
def get_curve(self):
return OpenSSL.get_curve_by_id(self.curve)
- def get_curve_id(self):
- return self.curve
+ # def get_curve_id(self):
+ # return self.curve
def get_pubkey(self):
"""
@@ -100,15 +100,15 @@ class ECC:
self.pubkey_y
))
- def get_privkey(self):
- """
- High level function which returns
- curve(2) + len_of_privkey(2) + privkey
- """
- return b''.join((pack('!H', self.curve),
- pack('!H', len(self.privkey)),
- self.privkey
- ))
+ # def get_privkey(self):
+ # """
+ # High level function which returns
+ # curve(2) + len_of_privkey(2) + privkey
+ # """
+ # return b''.join((pack('!H', self.curve),
+ # pack('!H', len(self.privkey)),
+ # self.privkey
+ # ))
@staticmethod
def _decode_pubkey(pubkey):
@@ -178,15 +178,15 @@ class ECC:
OpenSSL.BN_free(pub_key_x)
OpenSSL.BN_free(pub_key_y)
- def get_ecdh_key(self, pubkey):
- """
- High level function. Compute public key with the local private key
- and returns a 512bits shared key
- """
- curve, pubkey_x, pubkey_y, i = ECC._decode_pubkey(pubkey)
- if curve != self.curve:
- raise Exception("ECC keys must be from the same curve !")
- return sha512(self.raw_get_ecdh_key(pubkey_x, pubkey_y)).digest()
+ # def get_ecdh_key(self, pubkey):
+ # """
+ # High level function. Compute public key with the local private key
+ # and returns a 512bits shared key
+ # """
+ # curve, pubkey_x, pubkey_y, i = ECC._decode_pubkey(pubkey)
+ # if curve != self.curve:
+ # raise Exception("ECC keys must be from the same curve !")
+ # return sha512(self.raw_get_ecdh_key(pubkey_x, pubkey_y)).digest()
def raw_get_ecdh_key(self, pubkey_x, pubkey_y):
try:
@@ -243,20 +243,20 @@ class ECC:
OpenSSL.EC_KEY_free(own_key)
OpenSSL.BN_free(own_priv_key)
- def check_key(self, privkey, pubkey):
- """
- Check the public key and the private key.
- The private key is optional (replace by None)
- """
- curve, pubkey_x, pubkey_y, i = ECC._decode_pubkey(pubkey)
- if privkey is None:
- raw_privkey = None
- curve2 = curve
- else:
- curve2, raw_privkey, i = ECC._decode_privkey(privkey)
- if curve != curve2:
- raise Exception("Bad public and private key")
- return self.raw_check_key(raw_privkey, pubkey_x, pubkey_y, curve)
+ # def check_key(self, privkey, pubkey):
+ # """
+ # Check the public key and the private key.
+ # The private key is optional (replace by None)
+ # """
+ # curve, pubkey_x, pubkey_y, i = ECC._decode_pubkey(pubkey)
+ # if privkey is None:
+ # raw_privkey = None
+ # curve2 = curve
+ # else:
+ # curve2, raw_privkey, i = ECC._decode_privkey(privkey)
+ # if curve != curve2:
+ # raise Exception("Bad public and private key")
+ # return self.raw_check_key(raw_privkey, pubkey_x, pubkey_y, curve)
def raw_check_key(self, privkey, pubkey_x, pubkey_y, curve=None):
if curve is None:
diff --git a/src/pyelliptic/hash.py b/src/pyelliptic/hash.py
old mode 100644
new mode 100755
index fb910dd4..fb9ed499
--- a/src/pyelliptic/hash.py
+++ b/src/pyelliptic/hash.py
@@ -45,25 +45,25 @@ def hmac_sha256(k, m):
return md.raw
-def hmac_sha512(k, m):
- """
- Compute the key and the message with HMAC SHA512
- """
- key = OpenSSL.malloc(k, len(k))
- d = OpenSSL.malloc(m, len(m))
- md = OpenSSL.malloc(0, 64)
- i = OpenSSL.pointer(OpenSSL.c_int(0))
- OpenSSL.HMAC(OpenSSL.EVP_sha512(), key, len(k), d, len(m), md, i)
- return md.raw
+# def hmac_sha512(k, m):
+# """
+# Compute the key and the message with HMAC SHA512
+# """
+# key = OpenSSL.malloc(k, len(k))
+# d = OpenSSL.malloc(m, len(m))
+# md = OpenSSL.malloc(0, 64)
+# i = OpenSSL.pointer(OpenSSL.c_int(0))
+# OpenSSL.HMAC(OpenSSL.EVP_sha512(), key, len(k), d, len(m), md, i)
+# return md.raw
-def pbkdf2(password, salt=None, i=10000, keylen=64):
- if salt is None:
- salt = OpenSSL.rand(8)
- p_password = OpenSSL.malloc(password, len(password))
- p_salt = OpenSSL.malloc(salt, len(salt))
- output = OpenSSL.malloc(0, keylen)
- OpenSSL.PKCS5_PBKDF2_HMAC(p_password, len(password), p_salt,
- len(p_salt), i, OpenSSL.EVP_sha256(),
- keylen, output)
- return salt, output.raw
+# def pbkdf2(password, salt=None, i=10000, keylen=64):
+# if salt is None:
+# salt = OpenSSL.rand(8)
+# p_password = OpenSSL.malloc(password, len(password))
+# p_salt = OpenSSL.malloc(salt, len(salt))
+# output = OpenSSL.malloc(0, keylen)
+# OpenSSL.PKCS5_PBKDF2_HMAC(p_password, len(password), p_salt,
+# len(p_salt), i, OpenSSL.EVP_sha256(),
+# keylen, output)
+# return salt, output.raw
diff --git a/src/pyelliptic/openssl.py b/src/pyelliptic/openssl.py
old mode 100644
new mode 100755
index 7af4fd18..93a6304b
--- a/src/pyelliptic/openssl.py
+++ b/src/pyelliptic/openssl.py
@@ -24,8 +24,8 @@ class CipherName:
def get_pointer(self):
return self._pointer()
- def get_name(self):
- return self._name
+ # def get_name(self):
+ # return self._name
def get_blocksize(self):
return self._blocksize
@@ -39,20 +39,20 @@ def get_version(library):
#OpenSSL 1.1
OPENSSL_VERSION = 0
OPENSSL_CFLAGS = 1
- library.OpenSSL_version.argtypes = [ctypes.c_int]
- library.OpenSSL_version.restype = ctypes.c_char_p
- version = library.OpenSSL_version(OPENSSL_VERSION)
+ # library.OpenSSL_version.argtypes = [ctypes.c_int]
+ # library.OpenSSL_version.restype = ctypes.c_char_p
+ # version = library.OpenSSL_version(OPENSSL_VERSION)
cflags = library.OpenSSL_version(OPENSSL_CFLAGS)
- library.OpenSSL_version_num.restype = ctypes.c_long
+ # library.OpenSSL_version_num.restype = ctypes.c_long
hexversion = library.OpenSSL_version_num()
except AttributeError:
try:
#OpenSSL 1.0
SSLEAY_VERSION = 0
SSLEAY_CFLAGS = 2
- library.SSLeay.restype = ctypes.c_long
- library.SSLeay_version.restype = ctypes.c_char_p
- library.SSLeay_version.argtypes = [ctypes.c_int]
+ # library.SSLeay.restype = ctypes.c_long
+ # library.SSLeay_version.restype = ctypes.c_char_p
+ # library.SSLeay_version.argtypes = [ctypes.c_int]
version = library.SSLeay_version(SSLEAY_VERSION)
cflags = library.SSLeay_version(SSLEAY_CFLAGS)
hexversion = library.SSLeay()
@@ -71,8 +71,8 @@ class _OpenSSL:
Build the wrapper
"""
self._lib = ctypes.CDLL(library)
- self._version, self._hexversion, self._cflags = get_version(self._lib)
- self._libreSSL = self._version.startswith("LibreSSL")
+ # self._version, self._hexversion, self._cflags = get_version(self._lib)
+ # self._libreSSL = self._version.startswith("LibreSSL")
self.pointer = ctypes.pointer
self.c_int = ctypes.c_int
@@ -80,148 +80,148 @@ class _OpenSSL:
self.create_string_buffer = ctypes.create_string_buffer
self.BN_new = self._lib.BN_new
- self.BN_new.restype = ctypes.c_void_p
- self.BN_new.argtypes = []
+ # self.BN_new.restype = ctypes.c_void_p
+ # self.BN_new.argtypes = []
self.BN_free = self._lib.BN_free
- self.BN_free.restype = None
- self.BN_free.argtypes = [ctypes.c_void_p]
+ # self.BN_free.restype = None
+ # self.BN_free.argtypes = [ctypes.c_void_p]
self.BN_num_bits = self._lib.BN_num_bits
- self.BN_num_bits.restype = ctypes.c_int
- self.BN_num_bits.argtypes = [ctypes.c_void_p]
+ # self.BN_num_bits.restype = ctypes.c_int
+ # self.BN_num_bits.argtypes = [ctypes.c_void_p]
self.BN_bn2bin = self._lib.BN_bn2bin
- self.BN_bn2bin.restype = ctypes.c_int
- self.BN_bn2bin.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
+ # self.BN_bn2bin.restype = ctypes.c_int
+ # self.BN_bn2bin.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
self.BN_bin2bn = self._lib.BN_bin2bn
- self.BN_bin2bn.restype = ctypes.c_void_p
- self.BN_bin2bn.argtypes = [ctypes.c_void_p, ctypes.c_int,
- ctypes.c_void_p]
+ # self.BN_bin2bn.restype = ctypes.c_void_p
+ # self.BN_bin2bn.argtypes = [ctypes.c_void_p, ctypes.c_int,
+ # ctypes.c_void_p]
self.EC_KEY_free = self._lib.EC_KEY_free
- self.EC_KEY_free.restype = None
- self.EC_KEY_free.argtypes = [ctypes.c_void_p]
+ # self.EC_KEY_free.restype = None
+ # self.EC_KEY_free.argtypes = [ctypes.c_void_p]
self.EC_KEY_new_by_curve_name = self._lib.EC_KEY_new_by_curve_name
- self.EC_KEY_new_by_curve_name.restype = ctypes.c_void_p
- self.EC_KEY_new_by_curve_name.argtypes = [ctypes.c_int]
+ # self.EC_KEY_new_by_curve_name.restype = ctypes.c_void_p
+ # self.EC_KEY_new_by_curve_name.argtypes = [ctypes.c_int]
self.EC_KEY_generate_key = self._lib.EC_KEY_generate_key
- self.EC_KEY_generate_key.restype = ctypes.c_int
- self.EC_KEY_generate_key.argtypes = [ctypes.c_void_p]
+ # self.EC_KEY_generate_key.restype = ctypes.c_int
+ # self.EC_KEY_generate_key.argtypes = [ctypes.c_void_p]
self.EC_KEY_check_key = self._lib.EC_KEY_check_key
- self.EC_KEY_check_key.restype = ctypes.c_int
- self.EC_KEY_check_key.argtypes = [ctypes.c_void_p]
+ # self.EC_KEY_check_key.restype = ctypes.c_int
+ # self.EC_KEY_check_key.argtypes = [ctypes.c_void_p]
self.EC_KEY_get0_private_key = self._lib.EC_KEY_get0_private_key
- self.EC_KEY_get0_private_key.restype = ctypes.c_void_p
- self.EC_KEY_get0_private_key.argtypes = [ctypes.c_void_p]
+ # self.EC_KEY_get0_private_key.restype = ctypes.c_void_p
+ # self.EC_KEY_get0_private_key.argtypes = [ctypes.c_void_p]
self.EC_KEY_get0_public_key = self._lib.EC_KEY_get0_public_key
- self.EC_KEY_get0_public_key.restype = ctypes.c_void_p
- self.EC_KEY_get0_public_key.argtypes = [ctypes.c_void_p]
+ # self.EC_KEY_get0_public_key.restype = ctypes.c_void_p
+ # self.EC_KEY_get0_public_key.argtypes = [ctypes.c_void_p]
self.EC_KEY_get0_group = self._lib.EC_KEY_get0_group
- self.EC_KEY_get0_group.restype = ctypes.c_void_p
- self.EC_KEY_get0_group.argtypes = [ctypes.c_void_p]
+ # self.EC_KEY_get0_group.restype = ctypes.c_void_p
+ # self.EC_KEY_get0_group.argtypes = [ctypes.c_void_p]
self.EC_POINT_get_affine_coordinates_GFp = self._lib.EC_POINT_get_affine_coordinates_GFp
- self.EC_POINT_get_affine_coordinates_GFp.restype = ctypes.c_int
- self.EC_POINT_get_affine_coordinates_GFp.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]
+ # self.EC_POINT_get_affine_coordinates_GFp.restype = ctypes.c_int
+ # self.EC_POINT_get_affine_coordinates_GFp.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]
self.EC_KEY_set_private_key = self._lib.EC_KEY_set_private_key
- self.EC_KEY_set_private_key.restype = ctypes.c_int
- self.EC_KEY_set_private_key.argtypes = [ctypes.c_void_p,
- ctypes.c_void_p]
+ # self.EC_KEY_set_private_key.restype = ctypes.c_int
+ # self.EC_KEY_set_private_key.argtypes = [ctypes.c_void_p,
+ # ctypes.c_void_p]
self.EC_KEY_set_public_key = self._lib.EC_KEY_set_public_key
- self.EC_KEY_set_public_key.restype = ctypes.c_int
- self.EC_KEY_set_public_key.argtypes = [ctypes.c_void_p,
- ctypes.c_void_p]
+ # self.EC_KEY_set_public_key.restype = ctypes.c_int
+ # self.EC_KEY_set_public_key.argtypes = [ctypes.c_void_p,
+ # ctypes.c_void_p]
self.EC_KEY_set_group = self._lib.EC_KEY_set_group
- self.EC_KEY_set_group.restype = ctypes.c_int
- self.EC_KEY_set_group.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
+ # self.EC_KEY_set_group.restype = ctypes.c_int
+ # self.EC_KEY_set_group.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
self.EC_POINT_set_affine_coordinates_GFp = self._lib.EC_POINT_set_affine_coordinates_GFp
- self.EC_POINT_set_affine_coordinates_GFp.restype = ctypes.c_int
- self.EC_POINT_set_affine_coordinates_GFp.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]
+ # self.EC_POINT_set_affine_coordinates_GFp.restype = ctypes.c_int
+ # self.EC_POINT_set_affine_coordinates_GFp.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]
self.EC_POINT_new = self._lib.EC_POINT_new
- self.EC_POINT_new.restype = ctypes.c_void_p
- self.EC_POINT_new.argtypes = [ctypes.c_void_p]
+ # self.EC_POINT_new.restype = ctypes.c_void_p
+ # self.EC_POINT_new.argtypes = [ctypes.c_void_p]
self.EC_POINT_free = self._lib.EC_POINT_free
- self.EC_POINT_free.restype = None
- self.EC_POINT_free.argtypes = [ctypes.c_void_p]
+ # self.EC_POINT_free.restype = None
+ # self.EC_POINT_free.argtypes = [ctypes.c_void_p]
self.BN_CTX_free = self._lib.BN_CTX_free
- self.BN_CTX_free.restype = None
- self.BN_CTX_free.argtypes = [ctypes.c_void_p]
+ # self.BN_CTX_free.restype = None
+ # self.BN_CTX_free.argtypes = [ctypes.c_void_p]
self.EC_POINT_mul = self._lib.EC_POINT_mul
- self.EC_POINT_mul.restype = None
- self.EC_POINT_mul.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]
+ # self.EC_POINT_mul.restype = None
+ # self.EC_POINT_mul.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]
self.EC_KEY_set_private_key = self._lib.EC_KEY_set_private_key
- self.EC_KEY_set_private_key.restype = ctypes.c_int
- self.EC_KEY_set_private_key.argtypes = [ctypes.c_void_p,
- ctypes.c_void_p]
+ # self.EC_KEY_set_private_key.restype = ctypes.c_int
+ # self.EC_KEY_set_private_key.argtypes = [ctypes.c_void_p,
+ # ctypes.c_void_p]
if self._hexversion >= 0x10100000 and not self._libreSSL:
self.EC_KEY_OpenSSL = self._lib.EC_KEY_OpenSSL
- self._lib.EC_KEY_OpenSSL.restype = ctypes.c_void_p
- self._lib.EC_KEY_OpenSSL.argtypes = []
+ # self._lib.EC_KEY_OpenSSL.restype = ctypes.c_void_p
+ # self._lib.EC_KEY_OpenSSL.argtypes = []
self.EC_KEY_set_method = self._lib.EC_KEY_set_method
- self._lib.EC_KEY_set_method.restype = ctypes.c_int
- self._lib.EC_KEY_set_method.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
+ # self._lib.EC_KEY_set_method.restype = ctypes.c_int
+ # self._lib.EC_KEY_set_method.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
else:
self.ECDH_OpenSSL = self._lib.ECDH_OpenSSL
- self._lib.ECDH_OpenSSL.restype = ctypes.c_void_p
- self._lib.ECDH_OpenSSL.argtypes = []
+ # self._lib.ECDH_OpenSSL.restype = ctypes.c_void_p
+ # self._lib.ECDH_OpenSSL.argtypes = []
self.ECDH_set_method = self._lib.ECDH_set_method
- self._lib.ECDH_set_method.restype = ctypes.c_int
- self._lib.ECDH_set_method.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
+ # self._lib.ECDH_set_method.restype = ctypes.c_int
+ # self._lib.ECDH_set_method.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
self.BN_CTX_new = self._lib.BN_CTX_new
- self._lib.BN_CTX_new.restype = ctypes.c_void_p
- self._lib.BN_CTX_new.argtypes = []
+ # self._lib.BN_CTX_new.restype = ctypes.c_void_p
+ # self._lib.BN_CTX_new.argtypes = []
self.ECDH_compute_key = self._lib.ECDH_compute_key
- self.ECDH_compute_key.restype = ctypes.c_int
- self.ECDH_compute_key.argtypes = [ctypes.c_void_p,
- ctypes.c_int, ctypes.c_void_p, ctypes.c_void_p]
+ # self.ECDH_compute_key.restype = ctypes.c_int
+ # self.ECDH_compute_key.argtypes = [ctypes.c_void_p,
+ # ctypes.c_int, ctypes.c_void_p, ctypes.c_void_p]
self.EVP_CipherInit_ex = self._lib.EVP_CipherInit_ex
- self.EVP_CipherInit_ex.restype = ctypes.c_int
- self.EVP_CipherInit_ex.argtypes = [ctypes.c_void_p,
- ctypes.c_void_p, ctypes.c_void_p]
+ # self.EVP_CipherInit_ex.restype = ctypes.c_int
+ # self.EVP_CipherInit_ex.argtypes = [ctypes.c_void_p,
+ # ctypes.c_void_p, ctypes.c_void_p]
self.EVP_CIPHER_CTX_new = self._lib.EVP_CIPHER_CTX_new
- self.EVP_CIPHER_CTX_new.restype = ctypes.c_void_p
- self.EVP_CIPHER_CTX_new.argtypes = []
+ # self.EVP_CIPHER_CTX_new.restype = ctypes.c_void_p
+ # self.EVP_CIPHER_CTX_new.argtypes = []
# Cipher
self.EVP_aes_128_cfb128 = self._lib.EVP_aes_128_cfb128
- self.EVP_aes_128_cfb128.restype = ctypes.c_void_p
- self.EVP_aes_128_cfb128.argtypes = []
+ # self.EVP_aes_128_cfb128.restype = ctypes.c_void_p
+ # self.EVP_aes_128_cfb128.argtypes = []
self.EVP_aes_256_cfb128 = self._lib.EVP_aes_256_cfb128
- self.EVP_aes_256_cfb128.restype = ctypes.c_void_p
- self.EVP_aes_256_cfb128.argtypes = []
+ # self.EVP_aes_256_cfb128.restype = ctypes.c_void_p
+ # self.EVP_aes_256_cfb128.argtypes = []
self.EVP_aes_128_cbc = self._lib.EVP_aes_128_cbc
- self.EVP_aes_128_cbc.restype = ctypes.c_void_p
- self.EVP_aes_128_cbc.argtypes = []
+ # self.EVP_aes_128_cbc.restype = ctypes.c_void_p
+ # self.EVP_aes_128_cbc.argtypes = []
self.EVP_aes_256_cbc = self._lib.EVP_aes_256_cbc
- self.EVP_aes_256_cbc.restype = ctypes.c_void_p
- self.EVP_aes_256_cbc.argtypes = []
+ # self.EVP_aes_256_cbc.restype = ctypes.c_void_p
+ # self.EVP_aes_256_cbc.argtypes = []
#self.EVP_aes_128_ctr = self._lib.EVP_aes_128_ctr
#self.EVP_aes_128_ctr.restype = ctypes.c_void_p
@@ -232,138 +232,138 @@ class _OpenSSL:
#self.EVP_aes_256_ctr.argtypes = []
self.EVP_aes_128_ofb = self._lib.EVP_aes_128_ofb
- self.EVP_aes_128_ofb.restype = ctypes.c_void_p
- self.EVP_aes_128_ofb.argtypes = []
+ # self.EVP_aes_128_ofb.restype = ctypes.c_void_p
+ # self.EVP_aes_128_ofb.argtypes = []
self.EVP_aes_256_ofb = self._lib.EVP_aes_256_ofb
- self.EVP_aes_256_ofb.restype = ctypes.c_void_p
- self.EVP_aes_256_ofb.argtypes = []
+ # self.EVP_aes_256_ofb.restype = ctypes.c_void_p
+ # self.EVP_aes_256_ofb.argtypes = []
self.EVP_bf_cbc = self._lib.EVP_bf_cbc
- self.EVP_bf_cbc.restype = ctypes.c_void_p
- self.EVP_bf_cbc.argtypes = []
+ # self.EVP_bf_cbc.restype = ctypes.c_void_p
+ # self.EVP_bf_cbc.argtypes = []
self.EVP_bf_cfb64 = self._lib.EVP_bf_cfb64
- self.EVP_bf_cfb64.restype = ctypes.c_void_p
- self.EVP_bf_cfb64.argtypes = []
+ # self.EVP_bf_cfb64.restype = ctypes.c_void_p
+ # self.EVP_bf_cfb64.argtypes = []
self.EVP_rc4 = self._lib.EVP_rc4
- self.EVP_rc4.restype = ctypes.c_void_p
- self.EVP_rc4.argtypes = []
+ # self.EVP_rc4.restype = ctypes.c_void_p
+ # self.EVP_rc4.argtypes = []
if self._hexversion >= 0x10100000 and not self._libreSSL:
self.EVP_CIPHER_CTX_reset = self._lib.EVP_CIPHER_CTX_reset
- self.EVP_CIPHER_CTX_reset.restype = ctypes.c_int
- self.EVP_CIPHER_CTX_reset.argtypes = [ctypes.c_void_p]
+ # self.EVP_CIPHER_CTX_reset.restype = ctypes.c_int
+ # self.EVP_CIPHER_CTX_reset.argtypes = [ctypes.c_void_p]
else:
self.EVP_CIPHER_CTX_cleanup = self._lib.EVP_CIPHER_CTX_cleanup
- self.EVP_CIPHER_CTX_cleanup.restype = ctypes.c_int
- self.EVP_CIPHER_CTX_cleanup.argtypes = [ctypes.c_void_p]
+ # self.EVP_CIPHER_CTX_cleanup.restype = ctypes.c_int
+ # self.EVP_CIPHER_CTX_cleanup.argtypes = [ctypes.c_void_p]
self.EVP_CIPHER_CTX_free = self._lib.EVP_CIPHER_CTX_free
- self.EVP_CIPHER_CTX_free.restype = None
- self.EVP_CIPHER_CTX_free.argtypes = [ctypes.c_void_p]
+ # self.EVP_CIPHER_CTX_free.restype = None
+ # self.EVP_CIPHER_CTX_free.argtypes = [ctypes.c_void_p]
self.EVP_CipherUpdate = self._lib.EVP_CipherUpdate
- self.EVP_CipherUpdate.restype = ctypes.c_int
- self.EVP_CipherUpdate.argtypes = [ctypes.c_void_p,
- ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_int]
+ # self.EVP_CipherUpdate.restype = ctypes.c_int
+ # self.EVP_CipherUpdate.argtypes = [ctypes.c_void_p,
+ # ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_int]
self.EVP_CipherFinal_ex = self._lib.EVP_CipherFinal_ex
- self.EVP_CipherFinal_ex.restype = ctypes.c_int
- self.EVP_CipherFinal_ex.argtypes = [ctypes.c_void_p,
- ctypes.c_void_p, ctypes.c_void_p]
+ # self.EVP_CipherFinal_ex.restype = ctypes.c_int
+ # self.EVP_CipherFinal_ex.argtypes = [ctypes.c_void_p,
+ # ctypes.c_void_p, ctypes.c_void_p]
self.EVP_DigestInit = self._lib.EVP_DigestInit
- self.EVP_DigestInit.restype = ctypes.c_int
- self._lib.EVP_DigestInit.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
+ # self.EVP_DigestInit.restype = ctypes.c_int
+ # self._lib.EVP_DigestInit.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
self.EVP_DigestInit_ex = self._lib.EVP_DigestInit_ex
- self.EVP_DigestInit_ex.restype = ctypes.c_int
- self._lib.EVP_DigestInit_ex.argtypes = 3 * [ctypes.c_void_p]
+ # self.EVP_DigestInit_ex.restype = ctypes.c_int
+ # self._lib.EVP_DigestInit_ex.argtypes = 3 * [ctypes.c_void_p]
self.EVP_DigestUpdate = self._lib.EVP_DigestUpdate
- self.EVP_DigestUpdate.restype = ctypes.c_int
- self.EVP_DigestUpdate.argtypes = [ctypes.c_void_p,
- ctypes.c_void_p, ctypes.c_int]
+ # self.EVP_DigestUpdate.restype = ctypes.c_int
+ # self.EVP_DigestUpdate.argtypes = [ctypes.c_void_p,
+ # ctypes.c_void_p, ctypes.c_int]
self.EVP_DigestFinal = self._lib.EVP_DigestFinal
- self.EVP_DigestFinal.restype = ctypes.c_int
- self.EVP_DigestFinal.argtypes = [ctypes.c_void_p,
- ctypes.c_void_p, ctypes.c_void_p]
+ # self.EVP_DigestFinal.restype = ctypes.c_int
+ # self.EVP_DigestFinal.argtypes = [ctypes.c_void_p,
+ # ctypes.c_void_p, ctypes.c_void_p]
self.EVP_DigestFinal_ex = self._lib.EVP_DigestFinal_ex
- self.EVP_DigestFinal_ex.restype = ctypes.c_int
- self.EVP_DigestFinal_ex.argtypes = [ctypes.c_void_p,
- ctypes.c_void_p, ctypes.c_void_p]
+ # self.EVP_DigestFinal_ex.restype = ctypes.c_int
+ # self.EVP_DigestFinal_ex.argtypes = [ctypes.c_void_p,
+ # ctypes.c_void_p, ctypes.c_void_p]
self.ECDSA_sign = self._lib.ECDSA_sign
- self.ECDSA_sign.restype = ctypes.c_int
- self.ECDSA_sign.argtypes = [ctypes.c_int, ctypes.c_void_p,
- ctypes.c_int, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]
+ # self.ECDSA_sign.restype = ctypes.c_int
+ # self.ECDSA_sign.argtypes = [ctypes.c_int, ctypes.c_void_p,
+ # ctypes.c_int, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]
self.ECDSA_verify = self._lib.ECDSA_verify
- self.ECDSA_verify.restype = ctypes.c_int
- self.ECDSA_verify.argtypes = [ctypes.c_int, ctypes.c_void_p,
- ctypes.c_int, ctypes.c_void_p, ctypes.c_int, ctypes.c_void_p]
+ # self.ECDSA_verify.restype = ctypes.c_int
+ # self.ECDSA_verify.argtypes = [ctypes.c_int, ctypes.c_void_p,
+ # ctypes.c_int, ctypes.c_void_p, ctypes.c_int, ctypes.c_void_p]
if self._hexversion >= 0x10100000 and not self._libreSSL:
self.EVP_MD_CTX_new = self._lib.EVP_MD_CTX_new
- self.EVP_MD_CTX_new.restype = ctypes.c_void_p
- self.EVP_MD_CTX_new.argtypes = []
+ # self.EVP_MD_CTX_new.restype = ctypes.c_void_p
+ # self.EVP_MD_CTX_new.argtypes = []
self.EVP_MD_CTX_reset = self._lib.EVP_MD_CTX_reset
- self.EVP_MD_CTX_reset.restype = None
- self.EVP_MD_CTX_reset.argtypes = [ctypes.c_void_p]
+ # self.EVP_MD_CTX_reset.restype = None
+ # self.EVP_MD_CTX_reset.argtypes = [ctypes.c_void_p]
self.EVP_MD_CTX_free = self._lib.EVP_MD_CTX_free
- self.EVP_MD_CTX_free.restype = None
- self.EVP_MD_CTX_free.argtypes = [ctypes.c_void_p]
+ # self.EVP_MD_CTX_free.restype = None
+ # self.EVP_MD_CTX_free.argtypes = [ctypes.c_void_p]
self.EVP_sha1 = self._lib.EVP_sha1
- self.EVP_sha1.restype = ctypes.c_void_p
- self.EVP_sha1.argtypes = []
+ # self.EVP_sha1.restype = ctypes.c_void_p
+ # self.EVP_sha1.argtypes = []
self.digest_ecdsa_sha1 = self.EVP_sha1
else:
self.EVP_MD_CTX_create = self._lib.EVP_MD_CTX_create
- self.EVP_MD_CTX_create.restype = ctypes.c_void_p
- self.EVP_MD_CTX_create.argtypes = []
+ # self.EVP_MD_CTX_create.restype = ctypes.c_void_p
+ # self.EVP_MD_CTX_create.argtypes = []
self.EVP_MD_CTX_init = self._lib.EVP_MD_CTX_init
- self.EVP_MD_CTX_init.restype = None
- self.EVP_MD_CTX_init.argtypes = [ctypes.c_void_p]
+ # self.EVP_MD_CTX_init.restype = None
+ # self.EVP_MD_CTX_init.argtypes = [ctypes.c_void_p]
self.EVP_MD_CTX_destroy = self._lib.EVP_MD_CTX_destroy
- self.EVP_MD_CTX_destroy.restype = None
- self.EVP_MD_CTX_destroy.argtypes = [ctypes.c_void_p]
+ # self.EVP_MD_CTX_destroy.restype = None
+ # self.EVP_MD_CTX_destroy.argtypes = [ctypes.c_void_p]
self.EVP_ecdsa = self._lib.EVP_ecdsa
- self._lib.EVP_ecdsa.restype = ctypes.c_void_p
- self._lib.EVP_ecdsa.argtypes = []
+ # self._lib.EVP_ecdsa.restype = ctypes.c_void_p
+ # self._lib.EVP_ecdsa.argtypes = []
self.digest_ecdsa_sha1 = self.EVP_ecdsa
self.RAND_bytes = self._lib.RAND_bytes
- self.RAND_bytes.restype = ctypes.c_int
- self.RAND_bytes.argtypes = [ctypes.c_void_p, ctypes.c_int]
+ # self.RAND_bytes.restype = ctypes.c_int
+ # self.RAND_bytes.argtypes = [ctypes.c_void_p, ctypes.c_int]
self.EVP_sha256 = self._lib.EVP_sha256
- self.EVP_sha256.restype = ctypes.c_void_p
- self.EVP_sha256.argtypes = []
+ # self.EVP_sha256.restype = ctypes.c_void_p
+ # self.EVP_sha256.argtypes = []
self.i2o_ECPublicKey = self._lib.i2o_ECPublicKey
- self.i2o_ECPublicKey.restype = ctypes.c_void_p
- self.i2o_ECPublicKey.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
+ # self.i2o_ECPublicKey.restype = ctypes.c_void_p
+ # self.i2o_ECPublicKey.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
self.EVP_sha512 = self._lib.EVP_sha512
- self.EVP_sha512.restype = ctypes.c_void_p
- self.EVP_sha512.argtypes = []
+ # self.EVP_sha512.restype = ctypes.c_void_p
+ # self.EVP_sha512.argtypes = []
self.HMAC = self._lib.HMAC
- self.HMAC.restype = ctypes.c_void_p
- self.HMAC.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_int,
- ctypes.c_void_p, ctypes.c_int, ctypes.c_void_p, ctypes.c_void_p]
+ # self.HMAC.restype = ctypes.c_void_p
+ # self.HMAC.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_int,
+ # ctypes.c_void_p, ctypes.c_int, ctypes.c_void_p, ctypes.c_void_p]
try:
self.PKCS5_PBKDF2_HMAC = self._lib.PKCS5_PBKDF2_HMAC
@@ -371,11 +371,11 @@ class _OpenSSL:
# The above is not compatible with all versions of OSX.
self.PKCS5_PBKDF2_HMAC = self._lib.PKCS5_PBKDF2_HMAC_SHA1
- self.PKCS5_PBKDF2_HMAC.restype = ctypes.c_int
- self.PKCS5_PBKDF2_HMAC.argtypes = [ctypes.c_void_p, ctypes.c_int,
- ctypes.c_void_p, ctypes.c_int,
- ctypes.c_int, ctypes.c_void_p,
- ctypes.c_int, ctypes.c_void_p]
+ # self.PKCS5_PBKDF2_HMAC.restype = ctypes.c_int
+ # self.PKCS5_PBKDF2_HMAC.argtypes = [ctypes.c_void_p, ctypes.c_int,
+ # ctypes.c_void_p, ctypes.c_int,
+ # ctypes.c_int, ctypes.c_void_p,
+ # ctypes.c_int, ctypes.c_void_p]
self._set_ciphers()
self._set_curves()
diff --git a/src/randomtrackingdict.py b/src/randomtrackingdict.py
index 83d35cdf..3f80359d 100644
--- a/src/randomtrackingdict.py
+++ b/src/randomtrackingdict.py
@@ -64,11 +64,11 @@ class RandomTrackingDict(object):
del self.dictionary[key]
self.len -= 1
- def setMaxPending(self, maxPending):
- self.maxPending = maxPending
+ # def setMaxPending(self, maxPending):
+ # self.maxPending = maxPending
- def setPendingTimeout(self, pendingTimeout):
- self.pendingTimeout = pendingTimeout
+ # def setPendingTimeout(self, pendingTimeout):
+ # self.pendingTimeout = pendingTimeout
def randomKeys(self, count=1):
if self.len == 0 or ((self.pendingLen >= self.maxPending or
diff --git a/src/singleinstance.py b/src/singleinstance.py
old mode 100644
new mode 100755
index ed1048ba..1e429d38
--- a/src/singleinstance.py
+++ b/src/singleinstance.py
@@ -2,7 +2,7 @@
import atexit
import errno
-from multiprocessing import Process
+# from multiprocessing import Process
import os
import sys
import state
@@ -21,7 +21,7 @@ class singleinstance:
"""
def __init__(self, flavor_id="", daemon=False):
self.initialized = False
- self.counter = 0
+ # self.counter = 0
self.daemon = daemon
self.lockPid = None
self.lockfile = os.path.normpath(os.path.join(state.appdata, 'singleton%s.lock' % flavor_id))
diff --git a/src/socks/__init__.py b/src/socks/__init__.py
index 0bfa18f5..cf12e5c0 100644
--- a/src/socks/__init__.py
+++ b/src/socks/__init__.py
@@ -92,25 +92,25 @@ _socks4errors = ("request granted",
"request rejected because the client program and identd report different user-ids",
"unknown error")
-def setdefaultproxy(proxytype=None, addr=None, port=None, rdns=True, username=None, password=None):
- """setdefaultproxy(proxytype, addr[, port[, rdns[, username[, password]]]])
- Sets a default proxy which all further socksocket objects will use,
- unless explicitly changed.
- """
- global _defaultproxy
- _defaultproxy = (proxytype, addr, port, rdns, username, password)
+# def setdefaultproxy(proxytype=None, addr=None, port=None, rdns=True, username=None, password=None):
+# """setdefaultproxy(proxytype, addr[, port[, rdns[, username[, password]]]])
+# Sets a default proxy which all further socksocket objects will use,
+# unless explicitly changed.
+# """
+# global _defaultproxy
+# _defaultproxy = (proxytype, addr, port, rdns, username, password)
-def wrapmodule(module):
- """wrapmodule(module)
- Attempts to replace a module's socket library with a SOCKS socket. Must set
- a default proxy using setdefaultproxy(...) first.
- This will only work on modules that import socket directly into the namespace;
- most of the Python Standard Library falls into this category.
- """
- if _defaultproxy != None:
- module.socket.socket = socksocket
- else:
- raise GeneralProxyError((4, "no proxy specified"))
+# def wrapmodule(module):
+# """wrapmodule(module)
+# Attempts to replace a module's socket library with a SOCKS socket. Must set
+# a default proxy using setdefaultproxy(...) first.
+# This will only work on modules that import socket directly into the namespace;
+# most of the Python Standard Library falls into this category.
+# """
+# if _defaultproxy != None:
+# module.socket.socket = socksocket
+# else:
+# raise GeneralProxyError((4, "no proxy specified"))
class socksocket(socket.socket):
"""socksocket([family[, type[, proto]]]) -> socket object
@@ -287,17 +287,17 @@ class socksocket(socket.socket):
boundport = struct.unpack(">H", self.__recvall(2))[0]
return ip
- def getproxysockname(self):
- """getsockname() -> address info
- Returns the bound IP address and port number at the proxy.
- """
- return self.__proxysockname
+ # def getproxysockname(self):
+ # """getsockname() -> address info
+ # Returns the bound IP address and port number at the proxy.
+ # """
+ # return self.__proxysockname
- def getproxypeername(self):
- """getproxypeername() -> address info
- Returns the IP and port number of the proxy.
- """
- return _orgsocket.getpeername(self)
+ # def getproxypeername(self):
+ # """getproxypeername() -> address info
+ # Returns the IP and port number of the proxy.
+ # """
+ # return _orgsocket.getpeername(self)
def getpeername(self):
"""getpeername() -> address info
@@ -306,8 +306,8 @@ class socksocket(socket.socket):
"""
return self.__proxypeername
- def getproxytype(self):
- return self.__proxy[0]
+ # def getproxytype(self):
+ # return self.__proxy[0]
def __negotiatesocks4(self,destaddr,destport):
"""__negotiatesocks4(self,destaddr,destport)
diff --git a/src/storage/filesystem.py b/src/storage/filesystem.py
index d64894a9..4732d6cd 100644
--- a/src/storage/filesystem.py
+++ b/src/storage/filesystem.py
@@ -114,8 +114,8 @@ class FilesystemInventory(InventoryStorage):
# for i, v in self._inventory.items():
# print "loaded stream: %s, %i items" % (i, len(v))
- def stream_list(self):
- return self._inventory.keys()
+ # def stream_list(self):
+ # return self._inventory.keys()
def object_list(self):
return [unhexlify(x) for x in listdir(path.join(self.baseDir, FilesystemInventory.objectDir))]
@@ -130,7 +130,7 @@ class FilesystemInventory(InventoryStorage):
def getMetadata(self, hashId):
try:
with open(path.join(self.baseDir, FilesystemInventory.objectDir, hexlify(hashId), FilesystemInventory.metadataFilename), 'r') as f:
- objectType, streamNumber, expiresTime, tag, undef = string.split(f.read(), ",", 4)
+ objectType, streamNumber, expiresTime, tag, _ = string.split(f.read(), ",", 4)
return [int(objectType), int(streamNumber), int(expiresTime), unhexlify(tag)]
except IOError:
raise KeyError
diff --git a/src/storage/storage.py b/src/storage/storage.py
index 08c85708..0338719a 100644
--- a/src/storage/storage.py
+++ b/src/storage/storage.py
@@ -42,7 +42,7 @@ class InventoryStorage(Storage, collections.MutableMapping):
def clean(self):
raise NotImplementedError
-class MailboxStorage(Storage, collections.MutableMapping):
- def __init__(self):
+# class MailboxStorage(Storage, collections.MutableMapping):
+# def __init__(self):
# super(self.__class__, self).__init__()
- pass
+# pass
diff --git a/src/throttle.py b/src/throttle.py
index 6e53f217..473de567 100644
--- a/src/throttle.py
+++ b/src/throttle.py
@@ -12,11 +12,10 @@ class Throttle(object):
def __init__(self, limit=0):
self.limit = limit
- self.speed = 0
+ # self.speed = 0
self.chunkSize = Throttle.maxChunkSize
self.txTime = int(time.time())
self.txLen = 0
- self.total = 0
self.timer = threading.Event()
self.lock = threading.RLock()
self.resetChunkSize()
@@ -25,7 +24,7 @@ class Throttle(object):
with self.lock:
now = int(time.time())
if now > self.txTime:
- self.speed = self.txLen / (now - self.txTime)
+ # self.speed = self.txLen / (now - self.txTime)
self.txLen -= self.limit * (now - self.txTime)
self.txTime = now
if self.txLen < 0 or self.limit == 0:
@@ -34,7 +33,6 @@ class Throttle(object):
def wait(self, dataLen):
with self.lock:
self.txLen += dataLen
- self.total += dataLen
while state.shutdown == 0:
self.recalculate()
if self.limit == 0:
@@ -43,9 +41,9 @@ class Throttle(object):
break
self.timer.wait(0.2)
- def getSpeed(self):
- self.recalculate()
- return self.speed
+ # def getSpeed(self):
+ # self.recalculate()
+ # return self.speed
def resetChunkSize(self):
with self.lock:
@@ -65,17 +63,17 @@ class SendThrottle(Throttle):
def __init__(self):
Throttle.__init__(self, BMConfigParser().safeGetInt('bitmessagesettings', 'maxuploadrate')*1024)
- def resetLimit(self):
- with self.lock:
- self.limit = BMConfigParser().safeGetInt('bitmessagesettings', 'maxuploadrate')*1024
- Throttle.resetChunkSize(self)
+ # def resetLimit(self):
+ # with self.lock:
+ # self.limit = BMConfigParser().safeGetInt('bitmessagesettings', 'maxuploadrate')*1024
+ # Throttle.resetChunkSize(self)
@Singleton
class ReceiveThrottle(Throttle):
def __init__(self):
Throttle.__init__(self, BMConfigParser().safeGetInt('bitmessagesettings', 'maxdownloadrate')*1024)
- def resetLimit(self):
- with self.lock:
- self.limit = BMConfigParser().safeGetInt('bitmessagesettings', 'maxdownloadrate')*1024
- Throttle.resetChunkSize(self)
+ # def resetLimit(self):
+ # with self.lock:
+ # self.limit = BMConfigParser().safeGetInt('bitmessagesettings', 'maxdownloadrate')*1024
+ # Throttle.resetChunkSize(self)
diff --git a/src/version.py b/src/version.py
index 076b8c56..81e8f319 100644
--- a/src/version.py
+++ b/src/version.py
@@ -1,2 +1 @@
-softwareName = 'PyBitmessage'
softwareVersion = '0.6.3.2'