Some BINKP optimisation, implemented crypt, implemented receiving compressed transfers

This commit is contained in:
2023-07-02 23:40:08 +10:00
parent f9f9fb5345
commit 6f298d778f
28 changed files with 1614 additions and 904 deletions

View File

@@ -1,6 +1,7 @@
<!-- $o = Setup::class -->
@php
use App\Models\Setup;
use App\Classes\Protocol\Binkp;
@endphp
@extends('layouts.app')
@@ -100,62 +101,94 @@ use App\Models\Setup;
<div class="row">
<!-- Binkp Settings -->
<div class="col-6">
<h3>BINKP Settings</h3>
<p>BINKD has been configured to listen on <strong>{{ Setup::BINKP_BIND }}</strong>:<strong>{{ Setup::BINKP_PORT }}</strong></p>
<div class="row">
<div class="col-12">
<h3>BINKP Settings</h3>
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" id="startbinkd" name="options[binkd]" value="{{ Setup::O_BINKP }}" @if(old('options.binkd',$o->optionGet(Setup::O_BINKP))) checked @endif>
<label class="form-check-label" for="startbinkd">Listen for BINKP connections</label>
<div class="form-group row pt-0">
<div class="col-9">
<label class="col-form-label pt-2" for="binkp_bind">Listing Interface</label>
</div>
<div class="col-3">
<input class="form-control text-end @error('binkp_bind')is-invalid @enderror" type="text" id="binkp_bind" name="binkp_bind" value="{{ old('binkp_bind',$o->binkp_bind) }}">
</div>
</div>
<div class="form-group row pt-0">
<div class="col-9">
<label class="col-form-label pt-2" for="binkp_port">Listing Port</label>
</div>
<div class="col-3">
<input class="form-control text-end @error('binkp_port')is-invalid @enderror" type="text" id="binkp_port" name="binkp_port" value="{{ old('binkp_port',$o->binkp_port) }}">
</div>
</div>
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" id="startbinkd" name="options[binkd]" value="{{ Setup::O_BINKP }}" @if(old('options.binkd',$o->optionGet(Setup::O_BINKP))) checked @endif>
<label class="form-check-label" for="startbinkd">Listen for BINKP connections</label>
</div>
<div class="mt-1 form-check form-switch">
<input class="form-check-input" type="checkbox" id="opt_cht" name="binkp[cht]" value="{{ Binkp::F_CHAT }}" @if(old('binkp.cht',$o->optionGet(Binkp::F_CHAT,'binkp_options'))) checked @endif disabled>
<label class="form-check-label" for="opt_cht">Chat Mode <sup>not implemented</sup></label>
</div>
<div class="mt-1 form-check form-switch">
<input class="form-check-input" type="checkbox" id="opt_comp" name="binkp[comp]" value="{{ Binkp::F_COMP }}" @if(old('binkp.comp',$o->optionGet(Binkp::F_COMP,'binkp_options'))) checked @endif>
<label class="form-check-label" for="opt_comp">Compression Enabled <sup>*</sup></label>
</div>
<div class="mt-1 form-check form-switch">
<input class="form-check-input" type="checkbox" id="opt_md" name="binkp[md]" value="{{ Binkp::F_MD }}" @if(old('binkp.md',$o->optionGet(Binkp::F_MD,'binkp_options'))) checked @endif>
<label class="form-check-label" for="opt_md">CRAM-MD5 Mode <sup>*</sup></label>
</div>
<!-- @todo Force turning off this toggle, if md5 is not selected -->
<div class="mt-1 form-check form-switch">
<input class="form-check-input" type="checkbox" id="opt_mdforce" name="binkp[mdforce]" value="{{ Binkp::F_MDFORCE }}" @if(old('binkp.mdforce',$o->optionGet(Binkp::F_MDFORCE,'binkp_options'))) checked @endif>
<label class="form-check-label" for="opt_mdforce">No Plaintext Passwords</label>
</div>
<div class="mt-1 form-check form-switch">
<input class="form-check-input" type="checkbox" id="opt_cr" name="binkp[cr]" value="{{ Binkp::F_CRYPT }}" @if(old('binkp.cr',$o->optionGet(Binkp::F_CRYPT,'binkp_options'))) checked @endif>
<label class="form-check-label" for="opt_cr">Crypt mode <sup>*</sup></label>
</div>
<div class="mt-1 form-check form-switch">
<input class="form-check-input" type="checkbox" id="opt_mb" name="binkp[mb]" value="{{ Binkp::F_MULTIBATCH }}" @if(old('binkp.mb',$o->optionGet(Binkp::F_MULTIBATCH,'binkp_options'))) checked @endif>
<label class="form-check-label" for="opt_mb">Multi-Batch mode <sup>*</sup></label>
</div>
<div class="mt-1 form-check form-switch">
<input class="form-check-input" type="checkbox" id="opt_mpwd" name="binkp[mpwd]" value="{{ Binkp::F_MULTIPASS }}" @if(old('binkp.mpwd',$o->optionGet(Binkp::F_MULTIPASS,'binkp_options'))) checked @endif disabled>
<label class="form-check-label" for="opt_mpwd">Multi-Password Mode <sup>not implemented</sup></label>
</div>
<div class="mt-1 form-check form-switch">
<input class="form-check-input" type="checkbox" id="opt_nd" name="binkp[nd]" value="{{ Binkp::F_NODUPE }}" @if(old('binkp.nd',$o->optionGet(Binkp::F_NODUPE,'binkp_options'))) checked @endif>
<label class="form-check-label" for="opt_nd">No Dupes Mode</label>
</div>
<div class="mt-1 form-check form-switch">
<input class="form-check-input" type="checkbox" id="opt_nda" name="binkp[nda]" value="{{ Binkp::F_NODUPEA }}" @if(old('binkp.nda',$o->optionGet(Binkp::F_NODUPEA,'binkp_options'))) checked @endif>
<label class="form-check-label" for="opt_nda">No Dupes Mode - Asymmetric</label>
</div>
<div class="mt-1 form-check form-switch">
<input class="form-check-input" type="checkbox" id="opt_nr" name="binkp[nr]" value="{{ Binkp::F_NOREL }}" @if(old('binkp.nr',$o->optionGet(Binkp::F_NOREL,'binkp_options'))) checked @endif>
<label class="form-check-label" for="opt_nr">Non-Reliable Mode <sup>*</sup></label>
</div>
<p class="pt-3"><sup>*</sup> Recommended Defaults</p>
<!-- @todo What's this for again? -->
<table class="table monotable">
{{--
$this->binkp_options = ['m','d','r','b'];
--}}
</table>
</div>
</div>
<div class="mt-1 form-check form-switch">
<input class="form-check-input" type="checkbox" id="opt_cht" name="binkp[cht]" value="{{ Setup::BINKP_OPT_CHT }}" @if(old('binkp.cht',$o->binkpOptionGet(Setup::BINKP_OPT_CHT))) checked @endif disabled>
<label class="form-check-label" for="opt_cht">Chat Mode <sup>not implemented</sup></label>
</div>
<div class="mt-1 form-check form-switch">
<input class="form-check-input" type="checkbox" id="opt_md" name="binkp[md]" value="{{ Setup::BINKP_OPT_MD }}" @if(old('binkp.md',$o->binkpOptionGet(Setup::BINKP_OPT_MD))) checked @endif>
<label class="form-check-label" for="opt_md">CRAM-MD5 Mode</label>
</div>
<div class="mt-1 form-check form-switch">
<input class="form-check-input" type="checkbox" id="opt_cr" name="binkp[cr]" value="{{ Setup::BINKP_OPT_CR }}" @if(old('binkp.cr',$o->binkpOptionGet(Setup::BINKP_OPT_CR))) checked @endif disabled>
<label class="form-check-label" for="opt_cr">Crypt mode <sup>not implemented</sup></label>
</div>
<div class="mt-1 form-check form-switch">
<input class="form-check-input" type="checkbox" id="opt_mb" name="binkp[mb]" value="{{ Setup::BINKP_OPT_MB }}" @if(old('binkp.mb',$o->binkpOptionGet(Setup::BINKP_OPT_MB))) checked @endif>
<label class="form-check-label" for="opt_mb">Multi-Batch mode<sup>*</sup></label>
</div>
<div class="mt-1 form-check form-switch">
<input class="form-check-input" type="checkbox" id="opt_mpwd" name="binkp[mpwd]" value="{{ Setup::BINKP_OPT_MPWD }}" @if(old('binkp.mpwd',$o->binkpOptionGet(Setup::BINKP_OPT_MPWD))) checked @endif disabled>
<label class="form-check-label" for="opt_mpwd">Multi-Password Mode <sup>not implemented</sup></label>
</div>
<div class="mt-1 form-check form-switch">
<input class="form-check-input" type="checkbox" id="opt_nd" name="binkp[nd]" value="{{ Setup::BINKP_OPT_ND }}" @if(old('binkp.nd',$o->binkpOptionGet(Setup::BINKP_OPT_ND))) checked @endif>
<label class="form-check-label" for="opt_nd">No Dupes Mode</label>
</div>
<div class="mt-1 form-check form-switch">
<input class="form-check-input" type="checkbox" id="opt_nda" name="binkp[nda]" value="{{ Setup::BINKP_OPT_NDA }}" @if(old('binkp.nda',$o->binkpOptionGet(Setup::BINKP_OPT_NDA))) checked @endif>
<label class="form-check-label" for="opt_nda">No Dupes Mode - Asymmetric<sup>*</sup></label>
</div>
<div class="mt-1 form-check form-switch">
<input class="form-check-input" type="checkbox" id="opt_nr" name="binkp[nr]" value="{{ Setup::BINKP_OPT_NR }}" @if(old('binkp.nr',$o->binkpOptionGet(Setup::BINKP_OPT_NR))) checked @endif>
<label class="form-check-label" for="opt_nr">Non-Reliable Mode<sup>*</sup></label>
</div>
<p class="pt-3"><sup>*</sup> Recommended Defaults</p>
<!-- @todo What's this for again? -->
<table class="table monotable">
{{--
$this->binkp_options = ['m','d','r','b'];
--}}
</table>
</div>
<!-- EMSI Settings -->
@@ -163,7 +196,24 @@ use App\Models\Setup;
<div class="row">
<div class="col-12">
<h3>EMSI Settings</h3>
<p>EMSI has been configured to listen on <strong>{{ Setup::EMSI_BIND }}</strong>:<strong>{{ Setup::EMSI_PORT }}</strong></p>
<div class="form-group row pt-0">
<div class="col-9">
<label class="col-form-label pt-2" for="emsi_bind">Listing Interface</label>
</div>
<div class="col-3">
<input class="form-control text-end @error('emsi_bind')is-invalid @enderror" type="text" id="emsi_bind" name="emsi_bind" value="{{ old('emsi_bind',$o->emsi_bind) }}">
</div>
</div>
<div class="form-group row pt-0">
<div class="col-9">
<label class="col-form-label pt-2" for="emsi_port">Listing Port</label>
</div>
<div class="col-3">
<input class="form-control text-end @error('emsi_port')is-invalid @enderror" type="text" id="emsi_port" name="emsi_port" value="{{ old('emsi_port',$o->emsi_port) }}">
</div>
</div>
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" id="startemsi" name="options[emsi]" value="{{ Setup::O_EMSI }}" @if(old('options.emsi',$o->optionGet(Setup::O_EMSI))) checked @endif>
@@ -175,7 +225,24 @@ use App\Models\Setup;
<div class="row pt-5">
<div class="col-12">
<h3>DNS Settings</h3>
<p>DNS has been configured to listen on <strong>{{ Setup::DNS_BIND }}</strong>:<strong>{{ Setup::DNS_PORT }}</strong></p>
<div class="form-group row pt-0">
<div class="col-9">
<label class="col-form-label pt-2" for="dns_bind">Listing Interface</label>
</div>
<div class="col-3">
<input class="form-control text-end @error('dns_bind')is-invalid @enderror" type="text" id="dns_bind" name="dns_bind" value="{{ old('dns_bind',$o->dns_bind) }}">
</div>
</div>
<div class="form-group row pt-0">
<div class="col-9">
<label class="col-form-label pt-2" for="dns_port">Listing Port</label>
</div>
<div class="col-3">
<input class="form-control text-end @error('dns_port')is-invalid @enderror" type="text" id="dns_port" name="dns_port" value="{{ old('dns_port',$o->dns_port) }}">
</div>
</div>
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" id="startdns" name="options[dns]" value="{{ Setup::O_DNS }}" @if(old('options.dns',$o->optionGet(Setup::O_DNS))) checked @endif>
@@ -210,8 +277,13 @@ use App\Models\Setup;
<span class="col-6 mt-auto mx-auto text-center align-bottom">
@if($errors->count())
<span class="btn btn-sm btn-danger" role="alert">
There were errors with the submission.
@dump($errors)
<h3 class="text-white">There were errors with the submission.</h3>
<ul>
@foreach ($errors->all() as $message)
<li>{{ $message }}</li>
@endforeach
</ul>
</span>
@endif
</span>
@@ -230,6 +302,15 @@ use App\Models\Setup;
@section('page-css')
@css('select2')
<style>
#content h3 {
margin-bottom: 5px;
}
#content ul li:last-child {
margin-bottom: inherit;
}
</style>
@append
@section('page-scripts')
@js('select2')