Removed Windows specific code
parent
ce63c4cd3b
commit
272d7d7f74
|
@ -1,4 +1,3 @@
|
|||
onionr/data/**/*
|
||||
onionr/data
|
||||
RUN-WINDOWS.bat
|
||||
MY-RUN.sh
|
||||
|
|
|
@ -132,7 +132,7 @@ Everyone is welcome to contribute. Help is wanted for the following:
|
|||
* Development (Get in touch first)
|
||||
* Creation of a shared lib for use from other languages and faster proof-of-work
|
||||
* Android and IOS development
|
||||
* Windows and Mac support (already partially supported, testers needed)
|
||||
* Mac support (already partially supported, testers needed)
|
||||
* Bug fixes and development of new features
|
||||
* Testing
|
||||
* Translations/localizations
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Onionr Installation
|
||||
|
||||
The following steps work broadly speaking for Windows, Mac, and Linux.
|
||||
The following steps work broadly speaking for WSL, Mac, and Linux.
|
||||
|
||||
1. Verify python3.7+ is installed: if not, see https://www.python.org/downloads/
|
||||
|
||||
|
|
|
@ -26,19 +26,9 @@ from onionrexceptions import ArbitraryCodeExec
|
|||
|
||||
def block_system(cmd):
|
||||
"""Prevent os.system except for whitelisted commands+contexts."""
|
||||
allowed = 'taskkill /PID '
|
||||
is_ok = False
|
||||
if platform.system() == 'Windows':
|
||||
if cmd.startswith(allowed):
|
||||
for c in cmd.split(allowed)[1]:
|
||||
if not c.isalnum() or c not in ('/', 'F', ' '):
|
||||
break
|
||||
else:
|
||||
is_ok = True
|
||||
if not is_ok:
|
||||
logger.warn('POSSIBLE EXPLOIT DETECTED, SEE LOGS', terminal=True)
|
||||
logger.warn(f'POSSIBLE EXPLOIT: shell command not in whitelist: {cmd}')
|
||||
raise ArbitraryCodeExec('os.system command not in whitelist')
|
||||
logger.warn('POSSIBLE EXPLOIT DETECTED, SEE LOGS', terminal=True)
|
||||
logger.warn(f'POSSIBLE EXPLOIT: shell command not in whitelist: {cmd}')
|
||||
raise ArbitraryCodeExec('os.system command not in whitelist')
|
||||
|
||||
|
||||
def block_exec(event, info):
|
||||
|
|
|
@ -67,13 +67,10 @@ MOTD_SIGN_KEY = "TRH763JURNY47QPBTTQ4LLPYCYQK6Q5YA33R6GANKZK5C5DKCIGQ"
|
|||
"""Public key that signs update notifications."""
|
||||
UPDATE_SIGN_KEY = "TRH763JURNY47QPBTTQ4LLPYCYQK6Q5YA33R6GANKZK5C5DKCIGQ"
|
||||
|
||||
pf = platform.system()
|
||||
if pf == 'Windows':
|
||||
SCRIPT_NAME = 'run-windows.bat'
|
||||
|
||||
if os.path.exists(filepaths.daemon_mark_file):
|
||||
SCRIPT_NAME = 'start-daemon.sh'
|
||||
else:
|
||||
if os.path.exists(filepaths.daemon_mark_file):
|
||||
SCRIPT_NAME = 'start-daemon.sh'
|
||||
else:
|
||||
SCRIPT_NAME = 'onionr.sh'
|
||||
SCRIPT_NAME = 'onionr.sh'
|
||||
if 'qubes' in platform.release().lower():
|
||||
IS_QUBES = True
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
'''
|
||||
Onionr - Private P2P Communication
|
||||
"""Onionr - Private P2P Communication
|
||||
|
||||
Register static file routes
|
||||
'''
|
||||
'''
|
||||
Register static file routes
|
||||
"""
|
||||
import os
|
||||
import mimetypes
|
||||
from flask import Blueprint, send_from_directory
|
||||
"""
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
|
@ -16,10 +18,8 @@
|
|||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
'''
|
||||
import os
|
||||
import mimetypes
|
||||
from flask import Blueprint, send_from_directory
|
||||
"""
|
||||
|
||||
|
||||
# Was having some mime type issues on windows, this appeared to fix it.
|
||||
# we have no-sniff set, so if the mime types are invalid sripts can't load.
|
||||
|
@ -28,65 +28,82 @@ mimetypes.add_type('text/css', '.css')
|
|||
|
||||
static_files_bp = Blueprint('staticfiles', __name__)
|
||||
|
||||
root = os.path.dirname(os.path.realpath(__file__)) + '/../../../static-data/www/' # should be set to onionr install directory from onionr startup
|
||||
# should be set to onionr install directory from onionr startup
|
||||
root = os.path.dirname(os.path.realpath(__file__)) + \
|
||||
'/../../../static-data/www/'
|
||||
|
||||
|
||||
@static_files_bp.route('/onboarding/', endpoint='onboardingIndex')
|
||||
def onboard():
|
||||
return send_from_directory(f'{root}onboarding/', "index.html")
|
||||
|
||||
|
||||
@static_files_bp.route('/onboarding/<path:path>', endpoint='onboarding')
|
||||
def onboard_files(path):
|
||||
return send_from_directory(f'{root}onboarding/', path)
|
||||
|
||||
|
||||
@static_files_bp.route('/chat/', endpoint='chatIndex')
|
||||
def chat_index():
|
||||
return send_from_directory(root + 'chat/', "index.html")
|
||||
|
||||
|
||||
@static_files_bp.route('/chat/<path:path>', endpoint='chat')
|
||||
def load_chat(path):
|
||||
return send_from_directory(root + 'chat/', path)
|
||||
|
||||
|
||||
@static_files_bp.route('/board/', endpoint='board')
|
||||
def loadBoard():
|
||||
return send_from_directory(root + 'board/', "index.html")
|
||||
|
||||
|
||||
@static_files_bp.route('/mail/<path:path>', endpoint='mail')
|
||||
def loadMail(path):
|
||||
return send_from_directory(root + 'mail/', path)
|
||||
|
||||
|
||||
@static_files_bp.route('/mail/', endpoint='mailindex')
|
||||
def loadMailIndex():
|
||||
return send_from_directory(root + 'mail/', 'index.html')
|
||||
|
||||
|
||||
@static_files_bp.route('/friends/<path:path>', endpoint='friends')
|
||||
def loadContacts(path):
|
||||
return send_from_directory(root + 'friends/', path)
|
||||
|
||||
|
||||
@static_files_bp.route('/friends/', endpoint='friendsindex')
|
||||
def loadContacts():
|
||||
return send_from_directory(root + 'friends/', 'index.html')
|
||||
|
||||
|
||||
@static_files_bp.route('/profiles/<path:path>', endpoint='profiles')
|
||||
def loadContacts(path):
|
||||
return send_from_directory(root + 'profiles/', path)
|
||||
|
||||
|
||||
@static_files_bp.route('/profiles/', endpoint='profilesindex')
|
||||
def loadContacts():
|
||||
return send_from_directory(root + 'profiles/', 'index.html')
|
||||
|
||||
|
||||
@static_files_bp.route('/board/<path:path>', endpoint='boardContent')
|
||||
def boardContent(path):
|
||||
return send_from_directory(root + 'board/', path)
|
||||
|
||||
|
||||
@static_files_bp.route('/shared/<path:path>', endpoint='sharedContent')
|
||||
def sharedContent(path):
|
||||
return send_from_directory(root + 'shared/', path)
|
||||
|
||||
|
||||
@static_files_bp.route('/', endpoint='onionrhome')
|
||||
def hello():
|
||||
# ui home
|
||||
return send_from_directory(root + 'private/', 'index.html')
|
||||
|
||||
|
||||
@static_files_bp.route('/private/<path:path>', endpoint='homedata')
|
||||
def homedata(path):
|
||||
return send_from_directory(root + 'private/', path)
|
|
@ -5,7 +5,6 @@ Command to restart Onionr
|
|||
import time
|
||||
import os
|
||||
import subprocess # nosec
|
||||
import platform
|
||||
|
||||
from etc import onionrvalues
|
||||
from etc import cleanup
|
||||
|
@ -36,10 +35,6 @@ SCRIPT_NAME = os.path.dirname(os.path.realpath(
|
|||
|
||||
def restart():
|
||||
"""Tell the Onionr daemon to restart."""
|
||||
if platform.system() == 'Windows':
|
||||
logger.warn('Cannot restart Onionr on Windows. Run stop and manually restart.', terminal=True)
|
||||
return
|
||||
|
||||
logger.info('Restarting Onionr', terminal=True)
|
||||
|
||||
# On platforms where we can, fork out to prevent locking
|
||||
|
|
|
@ -6,7 +6,7 @@ from typing import TYPE_CHECKING
|
|||
|
||||
from gevent import sleep
|
||||
|
||||
from psutil import Process, WINDOWS
|
||||
from psutil import Process
|
||||
import ujson as json
|
||||
|
||||
from coredb import blockmetadb
|
||||
|
@ -49,8 +49,6 @@ class SerializedData:
|
|||
proc = Process()
|
||||
|
||||
def get_open_files():
|
||||
if WINDOWS:
|
||||
return proc.num_handles()
|
||||
return proc.num_fds()
|
||||
|
||||
try:
|
||||
|
|
|
@ -33,8 +33,6 @@ def identify_home() -> str:
|
|||
system = platform.system()
|
||||
if system == 'Linux':
|
||||
path = os.path.expanduser('~') + '/.local/share/onionr/'
|
||||
elif system == 'Windows':
|
||||
path = os.path.expanduser('~') + '\\AppData\\Local\\onionr\\'
|
||||
elif system == 'Darwin':
|
||||
path = os.path.expanduser('~' +
|
||||
'/Library/Application Support/onionr/')
|
||||
|
|
|
@ -32,7 +32,6 @@
|
|||
<script defer src="/private/js/console.js"></script>
|
||||
<script defer src="/private/js/motd.js"></script>
|
||||
<script defer src="/shared/navbar.js"></script>
|
||||
<script defer src="/private/js/windows.js"></script>
|
||||
<script defer src="/shared/sidebar/sidebar.js"></script>
|
||||
<script defer src="/shared/main/loadTransport.js"></script>
|
||||
<script>alert("Content security policy appears to not be working. Your browser security is weak!")</script>
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
/*
|
||||
Onionr - Private P2P Communication
|
||||
|
||||
Hide restart button if node OS is windows
|
||||
since restart is broken on windows
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
var hideRestartIfWindows = function(){
|
||||
if (onionrNodeOS === 'windows'){
|
||||
document.getElementById('restartNode').style.display = 'none'
|
||||
}
|
||||
}
|
||||
|
||||
setTimeout(function(){hideRestartIfWindows()}, 500)
|
Loading…
Reference in New Issue