bind ip config option, use different type for deniable block, mostly finished friends UI
This commit is contained in:
parent
c61c833658
commit
31039861c2
@ -40,22 +40,22 @@ class FDSafeHandler(WSGIHandler):
|
|||||||
|
|
||||||
def setBindIP(filePath):
|
def setBindIP(filePath):
|
||||||
'''Set a random localhost IP to a specified file (intended for private or public API localhost IPs)'''
|
'''Set a random localhost IP to a specified file (intended for private or public API localhost IPs)'''
|
||||||
hostOctets = [str(127), str(random.randint(0x02, 0xFF)), str(random.randint(0x02, 0xFF)), str(random.randint(0x02, 0xFF))]
|
if config.get('general.random_bind_ip', True):
|
||||||
data = '.'.join(hostOctets)
|
hostOctets = [str(127), str(random.randint(0x02, 0xFF)), str(random.randint(0x02, 0xFF)), str(random.randint(0x02, 0xFF))]
|
||||||
|
data = '.'.join(hostOctets)
|
||||||
# Try to bind IP. Some platforms like Mac block non normal 127.x.x.x
|
# Try to bind IP. Some platforms like Mac block non normal 127.x.x.x
|
||||||
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
try:
|
try:
|
||||||
s.bind((data, 0))
|
s.bind((data, 0))
|
||||||
except OSError:
|
except OSError:
|
||||||
# if mac/non-bindable, show warning and default to 127.0.0.1
|
# if mac/non-bindable, show warning and default to 127.0.0.1
|
||||||
logger.warn('Your platform appears to not support random local host addresses 127.x.x.x. Falling back to 127.0.0.1.')
|
logger.warn('Your platform appears to not support random local host addresses 127.x.x.x. Falling back to 127.0.0.1.')
|
||||||
|
data = '127.0.0.1'
|
||||||
|
s.close()
|
||||||
|
else:
|
||||||
data = '127.0.0.1'
|
data = '127.0.0.1'
|
||||||
s.close()
|
|
||||||
|
|
||||||
with open(filePath, 'w') as bindFile:
|
with open(filePath, 'w') as bindFile:
|
||||||
bindFile.write(data)
|
bindFile.write(data)
|
||||||
|
|
||||||
return data
|
return data
|
||||||
|
|
||||||
class PublicAPI:
|
class PublicAPI:
|
||||||
|
@ -34,12 +34,12 @@ def list_friends():
|
|||||||
@friends.route('/friends/add/<pubkey>', methods=['POST'])
|
@friends.route('/friends/add/<pubkey>', methods=['POST'])
|
||||||
def add_friend(pubkey):
|
def add_friend(pubkey):
|
||||||
contactmanager.ContactManager(core.Core(), pubkey, saveUser=True).setTrust(1)
|
contactmanager.ContactManager(core.Core(), pubkey, saveUser=True).setTrust(1)
|
||||||
return 'success'
|
return redirect(request.referrer + '#' + request.form['token'])
|
||||||
|
|
||||||
@friends.route('/friends/remove/<pubkey>', methods=['POST'])
|
@friends.route('/friends/remove/<pubkey>', methods=['POST'])
|
||||||
def remove_friend(pubkey):
|
def remove_friend(pubkey):
|
||||||
contactmanager.ContactManager(core.Core(), pubkey).setTrust(0)
|
contactmanager.ContactManager(core.Core(), pubkey).setTrust(0)
|
||||||
return 'success'
|
return redirect(request.referrer + '#' + request.form['token'])
|
||||||
|
|
||||||
@friends.route('/friends/setinfo/<pubkey>/<key>', methods=['POST'])
|
@friends.route('/friends/setinfo/<pubkey>/<key>', methods=['POST'])
|
||||||
def set_info(pubkey, key):
|
def set_info(pubkey, key):
|
||||||
|
@ -308,7 +308,9 @@ class Onionr:
|
|||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
logger.error('Onionr seems to not be running (could not get api host)')
|
logger.error('Onionr seems to not be running (could not get api host)')
|
||||||
else:
|
else:
|
||||||
webbrowser.open_new_tab('http://%s/#%s' % (url, config.get('client.webpassword')))
|
url = 'http://%s/#%s' % (url, config.get('client.webpassword'))
|
||||||
|
print('If Onionr does not open automatically, use this URL:', url)
|
||||||
|
webbrowser.open_new_tab(url)
|
||||||
|
|
||||||
def addID(self):
|
def addID(self):
|
||||||
try:
|
try:
|
||||||
|
@ -200,6 +200,6 @@ class DaemonTools:
|
|||||||
if secrets.randbelow(chance) == (chance - 1):
|
if secrets.randbelow(chance) == (chance - 1):
|
||||||
fakePeer = self.daemon._core._crypto.generatePubKey()[0]
|
fakePeer = self.daemon._core._crypto.generatePubKey()[0]
|
||||||
data = secrets.token_hex(secrets.randbelow(500) + 1)
|
data = secrets.token_hex(secrets.randbelow(500) + 1)
|
||||||
self.daemon._core.insertBlock(data, header='pm', encryptType='asym', asymPeer=fakePeer, meta={'subject': 'foo'})
|
self.daemon._core.insertBlock(data, header='db', encryptType='asym', asymPeer=fakePeer, meta={'subject': 'foo'})
|
||||||
self.daemon.decrementThreadCount('insertDeniableBlock')
|
self.daemon.decrementThreadCount('insertDeniableBlock')
|
||||||
return
|
return
|
@ -8,7 +8,8 @@
|
|||||||
"security_level": 0,
|
"security_level": 0,
|
||||||
"max_block_age": 2678400,
|
"max_block_age": 2678400,
|
||||||
"bypass_tor_check": false,
|
"bypass_tor_check": false,
|
||||||
"public_key": ""
|
"public_key": "",
|
||||||
|
"random_bind_ip": true
|
||||||
},
|
},
|
||||||
|
|
||||||
"www" : {
|
"www" : {
|
||||||
@ -48,7 +49,7 @@
|
|||||||
"verbosity" : "default",
|
"verbosity" : "default",
|
||||||
|
|
||||||
"file": {
|
"file": {
|
||||||
"output": true,
|
"output": false,
|
||||||
"path": "output.log"
|
"path": "output.log"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -20,6 +20,10 @@
|
|||||||
friendListDisplay = document.getElementById('friendList')
|
friendListDisplay = document.getElementById('friendList')
|
||||||
addForm = document.getElementById('addFriend')
|
addForm = document.getElementById('addFriend')
|
||||||
|
|
||||||
|
function removeFriend(pubkey){
|
||||||
|
post_to_url('/friends/remove/' + pubkey, {'token': webpass})
|
||||||
|
}
|
||||||
|
|
||||||
addForm.onsubmit = function(){
|
addForm.onsubmit = function(){
|
||||||
var friend = document.getElementsByName('addKey')[0]
|
var friend = document.getElementsByName('addKey')[0]
|
||||||
var alias = document.getElementsByName('data')[0]
|
var alias = document.getElementsByName('data')[0]
|
||||||
@ -68,4 +72,14 @@ fetch('/friends/list', {
|
|||||||
entry.appendChild(nameText)
|
entry.appendChild(nameText)
|
||||||
friendListDisplay.appendChild(entry)
|
friendListDisplay.appendChild(entry)
|
||||||
}
|
}
|
||||||
|
// If friend delete buttons are pressed
|
||||||
|
|
||||||
|
var friendRemoveBtns = document.getElementsByClassName('friendRemove')
|
||||||
|
|
||||||
|
for (var x = 0; x < friendRemoveBtns.length; x++){
|
||||||
|
var friendKey = friendRemoveBtns[x].parentElement.getAttribute('data-pubkey')
|
||||||
|
friendRemoveBtns[x].onclick = function(){
|
||||||
|
removeFriend(friendKey)
|
||||||
|
}
|
||||||
|
}
|
||||||
})
|
})
|
File diff suppressed because one or more lines are too long
@ -16,7 +16,10 @@
|
|||||||
<div class='content'>
|
<div class='content'>
|
||||||
<img class='logo' src='/shared/onionr-icon.png' alt='onionr logo'>
|
<img class='logo' src='/shared/onionr-icon.png' alt='onionr logo'>
|
||||||
<span class='logoText'>Onionr Mail ✉️</span>
|
<span class='logoText'>Onionr Mail ✉️</span>
|
||||||
<div>Current Used Identity: <input class='myPub' type='text' readonly> <button class='refresh'>Refresh Page</button></div>
|
<br><br>
|
||||||
|
<div><a href='/' class='idLink'>Home</a> <button class='refresh'>Refresh Page</button></div>
|
||||||
|
<br>
|
||||||
|
<div>Current Used Identity: <input class='myPub' type='text' readonly></div>
|
||||||
<br><br>
|
<br><br>
|
||||||
<div class="btn-group" id='tabBtns'>
|
<div class="btn-group" id='tabBtns'>
|
||||||
<button class='activeTab'>Inbox</button><button>Sentbox</button><button>Send Message</button>
|
<button class='activeTab'>Inbox</button><button>Sentbox</button><button>Send Message</button>
|
||||||
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user