added compatibilty x2x

This commit is contained in:
2021-09-21 22:43:48 +04:00
parent 78462a7ab1
commit 5b2a36693d
4 changed files with 64 additions and 16 deletions

View File

@@ -24,6 +24,7 @@ type Config struct {
Rooms string
IPAddress string
ScriptToExecute string
SSHPassword string
}
// Exists reports whether the named file or directory exists.
@@ -63,6 +64,7 @@ func SetDefaults() error {
defaults["Rooms"] = defaultPath + "room.json"
defaults["IPAddress"] = "0.0.0.0"
defaults["ScriptToExecute"] = ""
defaults["SSHPassword"] = ""
//Paths to search for config file
configPaths = append(configPaths, defaultPath)

View File

@@ -53,7 +53,20 @@ func GetHttp() *http.ServeMux {
return
}
fmt.Fprintf(w, configResp.BarrierHostName)
fmt.Fprintf(w, configResp.SystemUsername)
})
//Get SSH password of the current machine
server.HandleFunc("/SSHPassword", func(w http.ResponseWriter, r *http.Request) {
// Read hostname from config file
configResp, err := config.ConfigInit()
if err != nil {
print(err)
return
}
fmt.Fprintf(w, configResp.SSHPassword)
})
server.HandleFunc("/ws_serve", func(writer http.ResponseWriter, request *http.Request) {

View File

@@ -45,18 +45,18 @@
<div class="form-group">
<input id="inputRoomID" type="text" class="form-control form-control-lg text-center" placeholder="Enter room ID" required>
</div>
<h4>Connect to Barrier KVM (Beta)</h4>
<p class="help-text">
This is a feature is still on beta testing. This feature will ensure that you can share the keyboard
and mouse of the server machine.
<br>
<span class="text-success font-weight-bold"> Note: This only works if the laplace server has barrierc installed and the room name you are connecting
too belongs to the server.</span>
</p>
<h6>Host Name: <span id="hostname"> Not detected </span></h6>
<div class="form-group">
<input id="barrierIP" type="text" class="form-control form-control-lg text-center" placeholder="IPV6 or IPV4 address">
</div>
<!-- <h4>Connect to Barrier KVM (Beta)</h4>-->
<!-- <p class="help-text">-->
<!-- This is a feature is still on beta testing. This feature will ensure that you can share the keyboard-->
<!-- and mouse of the server machine.-->
<!-- <br>-->
<!-- <span class="text-success font-weight-bold"> Note: This only works if the laplace server has barrierc installed and the room name you are connecting-->
<!-- too belongs to the server.</span>-->
<!-- </p>-->
<!-- <h6>Host Name: <span id="hostname"> Not detected </span></h6>-->
<!-- <div class="form-group">-->
<!-- <input id="barrierIP" type="text" class="form-control form-control-lg text-center" placeholder="IPV6 or IPV4 address">-->
<!-- </div>-->
<button type="submit" class="btn btn-dark btn-block" value="submit">Join</button>
</form>
</div>
@@ -145,6 +145,18 @@
</div>
<hr>
<div>
<h4>Use keyboard and mouse</h4>
<p>
Ensure you have an SSH client installed on your machine
</p>
<h4>Run the following command on terminal:</h4>
<p>ssh -XC <span id="Username"></span>@<span id="IP"></span> x2x -west -to :0.0</p>
<p>Password: <span id="SSHPassword"></span></p>
<p class="help-text">
Move your mouse to the west, and you should have access to the other computer.
</p>
<h6>Status</h6>
<table class="table table-borderless table-sm table-meta">
<tr>

View File

@@ -144,6 +144,9 @@ function initUI() {
LaplaceVar.ui.videoContainer = document.getElementById('video-container');
LaplaceVar.ui.barrierIP = document.getElementById('barrierIP');
LaplaceVar.ui.barrierhostname = document.getElementById('hostname');
LaplaceVar.ui.serverUsername = document.getElementById('Username');
LaplaceVar.ui.serverIP = document.getElementById('IP');
LaplaceVar.ui.SSHPassword = document.getElementById('SSHPassword')
LaplaceVar.headless = { result :"0"};
LaplaceVar.ui.joinForm.onsubmit = async e => {
@@ -197,7 +200,10 @@ function initUI() {
}
//getting server hostname
getServerHostName()
getServerIPandHostname()
//getting SSHPassword
getSSHPassword()
// Getting query string from the URL
const queryString = window.location.search;
@@ -221,15 +227,29 @@ function initUI() {
// This is so that user can
// add the host name to connect
// to laplace
function getServerHostName() {
function getServerIPandHostname() {
// Source https://stackoverflow.com/questions/247483/http-get-request-in-javascript
var xmlHttp = new XMLHttpRequest()
xmlHttp.open( "GET", getHttpUrl() + "/hostname", false ); // false for synchronous request
xmlHttp.send(null);
LaplaceVar.ui.barrierhostname.innerHTML = xmlHttp.responseText
//LaplaceVar.ui.barrierhostname.innerHTML = xmlHttp.responseText
LaplaceVar.ui.serverUsername.innerHTML = xmlHttp.responseText
// Server IP address
LaplaceVar.ui.serverIP.innerHTML = window.location.hostname
//console.log(window.location.href.split('?')[0])
}
function getSSHPassword() {
// Source https://stackoverflow.com/questions/247483/http-get-request-in-javascript
var xmlHttp = new XMLHttpRequest()
xmlHttp.open( "GET", getHttpUrl() + "/SSHPassword", false ); // false for synchronous request
xmlHttp.send(null);
LaplaceVar.ui.SSHPassword.innerHTML = xmlHttp.responseText
}
function updateStatusUIStream() {
LaplaceVar.status.peers = Object.keys(LaplaceVar.pcs).map(s => s.split('$')[1]);
LaplaceVar.status.numConn = LaplaceVar.status.peers.length;
@@ -592,6 +612,7 @@ function routeByUrl() {
function AddRoomID(roomID) {
document.getElementById('inputRoomID').value = roomID
}
function leaveRoom() {
window.location.href = getBaseUrl();
}