mirror of
https://github.com/chuot/rdio-scanner.git
synced 2026-08-13 08:33:00 -06:00
Version 6.1.10
This commit is contained in:
parent
d47169eaf4
commit
99b0696341
|
|
@ -66,6 +66,10 @@ _v6.1.9_
|
|||
- Fix talkgroup sorting issue when importing from a CSV file (issue #119).
|
||||
- Fix SIGSEGV (issue #120).
|
||||
|
||||
_v6.1.10_
|
||||
|
||||
- Backport dirwatch delay value from v5.1.
|
||||
|
||||
## Version 6.0
|
||||
|
||||
- Backend server rewritten in Go for better performance and ease of installation.
|
||||
|
|
|
|||
16
COMPILING.md
16
COMPILING.md
|
|
@ -24,13 +24,13 @@ Clone the official repository on your computer and start the build process.
|
|||
|
||||
When finished, you will find the precompiled versions for various platforms in the `dist` folder.
|
||||
|
||||
rdio-scanner-darwin-amd64-v6.1.9.zip
|
||||
rdio-scanner-darwin-arm64-v6.1.9.zip
|
||||
rdio-scanner-freebsd-amd64-v6.1.9.zip
|
||||
rdio-scanner-linux-386-v6.1.9.zip
|
||||
rdio-scanner-linux-amd64-v6.1.9.zip
|
||||
rdio-scanner-linux-arm64-v6.1.9.zip
|
||||
rdio-scanner-linux-arm-v6.1.9.zip
|
||||
rdio-scanner-windows-amd64-v6.1.9.zip
|
||||
rdio-scanner-darwin-amd64-v6.1.10.zip
|
||||
rdio-scanner-darwin-arm64-v6.1.10.zip
|
||||
rdio-scanner-freebsd-amd64-v6.1.10.zip
|
||||
rdio-scanner-linux-386-v6.1.10.zip
|
||||
rdio-scanner-linux-amd64-v6.1.10.zip
|
||||
rdio-scanner-linux-arm64-v6.1.10.zip
|
||||
rdio-scanner-linux-arm-v6.1.10.zip
|
||||
rdio-scanner-windows-amd64-v6.1.10.zip
|
||||
|
||||
**Happy Rdio scanning !**
|
||||
6
Makefile
6
Makefile
|
|
@ -16,8 +16,8 @@
|
|||
################################################################################
|
||||
|
||||
app := rdio-scanner
|
||||
date := 2022/02/01
|
||||
ver := 6.1.9
|
||||
date := 2022/02/02
|
||||
ver := 6.1.10
|
||||
|
||||
client := $(wildcard client/*.json client/*.ts)
|
||||
server := $(wildcard server/*.go)
|
||||
|
|
@ -47,7 +47,7 @@ dist: darwin freebsd linux windows
|
|||
sed:
|
||||
@sed -i -re "s|^(\s*\"version\":).*$$|\1 \"$(ver)\"|" client/package.json
|
||||
@sed -i -re "s|^(const\s+Version\s+=).*$$|\1 \"$(ver)\"|" server/version.go
|
||||
@sed -i -re "s|v[0-9]\.[0-9]\.[0-9]|v$(ver)|" COMPILING.md docs/platforms/*.md
|
||||
@sed -i -re "s|v[0-9]+\.[0-9]+\.[0-9]+|v$(ver)|" COMPILING.md docs/platforms/*.md
|
||||
@sed -i -re "s|[0-9]{4}/[0-9]{2}/[0-9]{2}|$(date)|" docs/platforms/*.md
|
||||
|
||||
webapp: server/webapp/index.html
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ Here is a list of recorders known to work with [Rdio Scanner](https://github.com
|
|||
| [RTLSDR-Airband](https://github.com/szpajder/RTLSDR-Airband) | | X |
|
||||
| [sdrtrunk](https://github.com/DSheirer/sdrtrunk) | | X |
|
||||
| [voxcall](https://github.com/aaknitt/voxcall) | X | |
|
||||
| [ProScan](https://www.proscan.org/) | | X |
|
||||
|
||||
# Quick start
|
||||
|
||||
|
|
|
|||
2825
client/package-lock.json
generated
2825
client/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
|
@ -1,30 +1,30 @@
|
|||
{
|
||||
"author": "Chrystian Huot <chrystian.huot@saubeo.solutions>",
|
||||
"dependencies": {
|
||||
"@angular/animations": "^13.1.3",
|
||||
"@angular/cdk": "^13.1.3",
|
||||
"@angular/common": "~13.1.3",
|
||||
"@angular/compiler": "~13.1.3",
|
||||
"@angular/core": "~13.1.3",
|
||||
"@angular/forms": "~13.1.3",
|
||||
"@angular/material": "^13.1.3",
|
||||
"@angular/platform-browser": "~13.1.3",
|
||||
"@angular/platform-browser-dynamic": "~13.1.3",
|
||||
"@angular/router": "^13.1.3",
|
||||
"@angular/service-worker": "^13.1.3",
|
||||
"@angular/animations": "^13.2.0",
|
||||
"@angular/cdk": "^13.2.0",
|
||||
"@angular/common": "~13.2.0",
|
||||
"@angular/compiler": "~13.2.0",
|
||||
"@angular/core": "~13.2.0",
|
||||
"@angular/forms": "~13.2.0",
|
||||
"@angular/material": "^13.2.0",
|
||||
"@angular/platform-browser": "~13.2.0",
|
||||
"@angular/platform-browser-dynamic": "~13.2.0",
|
||||
"@angular/router": "^13.2.0",
|
||||
"@angular/service-worker": "^13.2.0",
|
||||
"rxjs": "~7.4.0",
|
||||
"tslib": "^2.3.1",
|
||||
"zone.js": "~0.11.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@angular-devkit/build-angular": "^13.1.4",
|
||||
"@angular/cli": "^13.1.4",
|
||||
"@angular/compiler-cli": "~13.1.3",
|
||||
"@types/node": "^17.0.10",
|
||||
"@typescript-eslint/eslint-plugin": "^5.10.0",
|
||||
"@typescript-eslint/parser": "^5.10.0",
|
||||
"@angular-devkit/build-angular": "^13.2.1",
|
||||
"@angular/cli": "^13.2.1",
|
||||
"@angular/compiler-cli": "~13.2.0",
|
||||
"@types/node": "^17.0.14",
|
||||
"@typescript-eslint/eslint-plugin": "^5.10.2",
|
||||
"@typescript-eslint/parser": "^5.10.2",
|
||||
"ajv-keywords": "^5.1.0",
|
||||
"eslint": "^8.7.0",
|
||||
"eslint": "^8.8.0",
|
||||
"ts-node": "~10.4.0",
|
||||
"typescript": "~4.4.4"
|
||||
},
|
||||
|
|
@ -38,5 +38,5 @@
|
|||
"build": "ng build --base-href ./ --configuration production",
|
||||
"start": "ng serve"
|
||||
},
|
||||
"version": "6.1.9"
|
||||
"version": "6.1.10"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@ export interface Config {
|
|||
|
||||
export interface DirWatch {
|
||||
_id?: string;
|
||||
delay?: number;
|
||||
deleteAfter?: boolean;
|
||||
directory?: string;
|
||||
disabled?: boolean;
|
||||
|
|
@ -412,6 +413,7 @@ export class RdioScannerAdminService implements OnDestroy {
|
|||
newDirWatchForm(dirWatch?: DirWatch): FormGroup {
|
||||
return this.ngFormBuilder.group({
|
||||
_id: [dirWatch?._id],
|
||||
delay: [typeof dirWatch?.delay === 'number' ? dirWatch?.delay : 2000],
|
||||
deleteAfter: [dirWatch?.deleteAfter],
|
||||
directory: [dirWatch?.directory, [Validators.required, this.validateDirectory()]],
|
||||
disabled: [dirWatch?.disabled],
|
||||
|
|
|
|||
|
|
@ -155,6 +155,20 @@
|
|||
</mat-error>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div class="row">
|
||||
<p>
|
||||
<span class="mat-body">Delay</span><br>
|
||||
<span class="mat-caption">Depending on the recorder, audio files can be ingested too soon after the
|
||||
recorder has created the file. You can set a delay value in milliseconds for the audio file to
|
||||
settle before ingesting it.</span>
|
||||
</p>
|
||||
<mat-form-field floatLabel="never">
|
||||
<input type="number" matInput formControlName="delay" min="2000" placeholder="Delay">
|
||||
<mat-error *ngIf="dirWatch.get('delay')?.hasError('min')">
|
||||
Delay value cannot be less than 2000 milliseconds.
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div class="row bottom">
|
||||
<button type="button" mat-button color="warn" (click)="remove(i)">
|
||||
Delete dirwatch
|
||||
|
|
|
|||
|
|
@ -62,7 +62,10 @@ export class RdioScannerAdminDirWatchComponent implements OnChanges {
|
|||
}
|
||||
|
||||
add(): void {
|
||||
const dirWatch = this.adminService.newDirWatchForm({ deleteAfter: true });
|
||||
const dirWatch = this.adminService.newDirWatchForm({
|
||||
delay: 2000,
|
||||
deleteAfter: true,
|
||||
});
|
||||
|
||||
dirWatch.markAllAsTouched();
|
||||
|
||||
|
|
|
|||
|
|
@ -42,8 +42,8 @@ ALWAYS DOWNLOAD THE LATEST VERSION OF [RDIO SCANNER](https://github.com/chuot/rd
|
|||
rdio@macos ~ % mkdir rdio-scanner
|
||||
rdio@macos ~ % cd rdio-scanner
|
||||
rdio@macos rdio-scanner % unzip \
|
||||
> ~/Downloads/rdio-scanner-darwin-arm64-v6.1.9.zip
|
||||
Archive: /Users/rdio/Downloads/rdio-scanner-darwin-arm64-v6.1.9.zip
|
||||
> ~/Downloads/rdio-scanner-darwin-arm64-v6.1.10.zip
|
||||
Archive: /Users/rdio/Downloads/rdio-scanner-darwin-arm64-v6.1.10.zip
|
||||
inflating: rdio-scanner
|
||||
inflating: rdio-scanner.pdf
|
||||
|
||||
|
|
@ -51,11 +51,11 @@ ALWAYS DOWNLOAD THE LATEST VERSION OF [RDIO SCANNER](https://github.com/chuot/rd
|
|||
|
||||
rdio@macos rdio-scanner % ./rdio-scanner
|
||||
|
||||
Rdio Scanner v6.1.9
|
||||
Rdio Scanner v6.1.10
|
||||
----------------------------------
|
||||
2022/02/01 08:38:06 server started
|
||||
2022/02/01 08:38:06 main interface at http://macos.local:3000
|
||||
2022/02/01 08:38:06 admin interface at http://macos.local:3000/admin
|
||||
2022/02/02 08:38:06 server started
|
||||
2022/02/02 08:38:06 main interface at http://macos.local:3000
|
||||
2022/02/02 08:38:06 admin interface at http://macos.local:3000/admin
|
||||
|
||||
4. Access the administrative dashboard to finalize the configuration.
|
||||
|
||||
|
|
@ -77,11 +77,11 @@ Here we want our [Rdio Scanner](https://guthub.com/chuot/rdio-scanner) instance
|
|||
|
||||
rdio@macos rdio-scanner % ./rdio-scanner --listen :80
|
||||
|
||||
Rdio Scanner v6.1.9
|
||||
Rdio Scanner v6.1.10
|
||||
----------------------------------
|
||||
2022/02/01 08:48:03 server started
|
||||
2022/02/01 08:48:03 main interface at http://macos.local
|
||||
2022/02/01 08:48:03 admin interface at http://macos.local/admin
|
||||
2022/02/02 08:48:03 server started
|
||||
2022/02/02 08:48:03 main interface at http://macos.local
|
||||
2022/02/02 08:48:03 admin interface at http://macos.local/admin
|
||||
|
||||
## Listening with SSL with self-signed certificates
|
||||
|
||||
|
|
@ -90,8 +90,8 @@ It is advised to share your [Rdio Scanner](https://github.com/chuot/rdio-scanner
|
|||
We can create such self-signed certificates by running [Rdio Scanner](https://github.com/chuot/rdio-scanner) with the **-ssl_create** argument.
|
||||
|
||||
rdio@macos rdio-scanner % ./rdio-scanner -ssl_create
|
||||
2022/02/01 08:49:16 generating ssl certificate files
|
||||
2022/02/01 08:49:17 ssl files created
|
||||
2022/02/02 08:49:16 generating ssl certificate files
|
||||
2022/02/02 08:49:17 ssl files created
|
||||
|
||||
This has generated these files in the same folder as your [Rdio Scanner](https://github.com/chuot/rdio-scanner) executable.
|
||||
|
||||
|
|
@ -108,12 +108,12 @@ Now we use the self-signed server certificate to run our instance.
|
|||
> -ssl_key_file server.key \
|
||||
> -ssl_listen :443
|
||||
|
||||
Rdio Scanner v6.1.9
|
||||
Rdio Scanner v6.1.10
|
||||
----------------------------------
|
||||
2022/02/01 08:50:58 server started
|
||||
2022/02/01 08:50:58 main interface at http://macos.local
|
||||
2022/02/01 08:50:58 main interface at https://macos.local
|
||||
2022/02/01 08:50:58 admin interface at https://macos.local/admin
|
||||
2022/02/02 08:50:58 server started
|
||||
2022/02/02 08:50:58 main interface at http://macos.local
|
||||
2022/02/02 08:50:58 main interface at https://macos.local
|
||||
2022/02/02 08:50:58 admin interface at https://macos.local/admin
|
||||
|
||||
## Save your advanced configuration to a config file
|
||||
|
||||
|
|
@ -125,7 +125,7 @@ You don't want to have to type everytime a long list of arguments. No problem, y
|
|||
> -ssl_key_file server.key \
|
||||
> -ssl_listen :443 \
|
||||
> -config_save
|
||||
2022/02/01 08:52:24 rdio-scanner.ini file created
|
||||
2022/02/02 08:52:24 rdio-scanner.ini file created
|
||||
|
||||
All of your parameters passed as arguments to [Rdio Scanner](https://github.com/chuot/rdio-scanner) have been saved to an INI file which has the same arguments/values list.
|
||||
|
||||
|
|
@ -140,12 +140,12 @@ Then simply run [Rdio Scanner](https://github.com/chuot/rdio-scanner) without an
|
|||
|
||||
rdio@macos rdio-scanner % ./rdio-scanner
|
||||
|
||||
Rdio Scanner v6.1.9
|
||||
Rdio Scanner v6.1.10
|
||||
----------------------------------
|
||||
2022/02/01 08:54:08 server started
|
||||
2022/02/01 08:54:08 main interface at http://macos.local
|
||||
2022/02/01 08:54:08 main interface at https://macos.local
|
||||
2022/02/01 08:54:08 admin interface at https://macos.local/admin
|
||||
2022/02/02 08:54:08 server started
|
||||
2022/02/02 08:54:08 main interface at http://macos.local
|
||||
2022/02/02 08:54:08 main interface at https://macos.local
|
||||
2022/02/02 08:54:08 admin interface at https://macos.local/admin
|
||||
|
||||
## Install Rdio Scanner as a service
|
||||
|
||||
|
|
|
|||
|
|
@ -42,8 +42,8 @@ ALWAYS DOWNLOAD THE LATEST VERSION OF [RDIO SCANNER](https://github.com/chuot/rd
|
|||
rdio@pc-freebsd:~ $ mkdir rdio-scanner
|
||||
rdio@pc-freebsd:~ $ cd rdio-scanner
|
||||
rdio@pc-freebsd:~/rdio-scanner $ unzip \
|
||||
> ~/rdio-scanner-freebsd-amd64-v6.1.9.zip
|
||||
Archive: ../rdio-scanner-freebsd-amd64-v6.1.9.zip
|
||||
> ~/rdio-scanner-freebsd-amd64-v6.1.10.zip
|
||||
Archive: ../rdio-scanner-freebsd-amd64-v6.1.10.zip
|
||||
extracting: rdio-scanner
|
||||
extracting: rdio-scanner.pdf
|
||||
|
||||
|
|
@ -51,11 +51,11 @@ ALWAYS DOWNLOAD THE LATEST VERSION OF [RDIO SCANNER](https://github.com/chuot/rd
|
|||
|
||||
rdio@pc-freebsd:~/rdio-scanner $ ./rdio-scanner
|
||||
|
||||
Rdio Scanner v6.1.9
|
||||
Rdio Scanner v6.1.10
|
||||
----------------------------------
|
||||
2022/02/01 08:16:36 server started
|
||||
2022/02/01 08:16:36 main interface at http://pc-freebsd:3000
|
||||
2022/02/01 08:16:36 admin interface at http://pc-freebsd:3000/admin
|
||||
2022/02/02 08:16:36 server started
|
||||
2022/02/02 08:16:36 main interface at http://pc-freebsd:3000
|
||||
2022/02/02 08:16:36 admin interface at http://pc-freebsd:3000/admin
|
||||
|
||||
4. Access the administrative dashboard to finalize the configuration.
|
||||
|
||||
|
|
@ -81,11 +81,11 @@ Here we want our [Rdio Scanner](https://guthub.com/chuot/rdio-scanner) instance
|
|||
Password:
|
||||
root@pc-freebsd:/home/rdio/rdio-scanner # ./rdio-scanner -listen :80
|
||||
|
||||
Rdio Scanner v6.1.9
|
||||
Rdio Scanner v6.1.10
|
||||
----------------------------------
|
||||
2022/02/01 08:19:38 server started
|
||||
2022/02/01 08:19:38 main interface at http://pc-freebsd
|
||||
2022/02/01 08:19:38 admin interface at http://pc-freebsd/admin
|
||||
2022/02/02 08:19:38 server started
|
||||
2022/02/02 08:19:38 main interface at http://pc-freebsd
|
||||
2022/02/02 08:19:38 admin interface at http://pc-freebsd/admin
|
||||
|
||||
## Listening with SSL with self-signed certificates
|
||||
|
||||
|
|
@ -94,8 +94,8 @@ It is advised to share your [Rdio Scanner](https://github.com/chuot/rdio-scanner
|
|||
We can create such self-signed certificates by running [Rdio Scanner](https://github.com/chuot/rdio-scanner) with the **-ssl_create** argument.
|
||||
|
||||
rdio@pc-freebsd:~/rdio-scanner $ ./rdio-scanner -ssl_create
|
||||
2022/02/01 10:32:17 generating ssl certificate files
|
||||
2022/02/01 10:32:19 ssl files created
|
||||
2022/02/02 10:32:17 generating ssl certificate files
|
||||
2022/02/02 10:32:19 ssl files created
|
||||
|
||||
This has generated these files in the same folder as your [Rdio Scanner](https://github.com/chuot/rdio-scanner) executable.
|
||||
|
||||
|
|
@ -114,12 +114,12 @@ Now we use the self-signed server certificate to run our instance.
|
|||
> -ssl_key_file server.key \
|
||||
> -ssl_listen :443
|
||||
|
||||
Rdio Scanner v6.1.9
|
||||
Rdio Scanner v6.1.10
|
||||
----------------------------------
|
||||
2022/02/01 10:34:29 server started
|
||||
2022/02/01 10:34:29 main interface at http://pc-freebsd
|
||||
2022/02/01 10:34:29 main interface at https://pc-freebsd
|
||||
2022/02/01 10:34:29 admin interface at https://pc-freebsd/admin
|
||||
2022/02/02 10:34:29 server started
|
||||
2022/02/02 10:34:29 main interface at http://pc-freebsd
|
||||
2022/02/02 10:34:29 main interface at https://pc-freebsd
|
||||
2022/02/02 10:34:29 admin interface at https://pc-freebsd/admin
|
||||
|
||||
## Save your advanced configuration to a config file
|
||||
|
||||
|
|
@ -131,7 +131,7 @@ You don't want to have to type everytime a long list of arguments. No problem, y
|
|||
> -ssl_key_file server.key \
|
||||
> -ssl_listen :443 \
|
||||
> -config_save
|
||||
2022/02/01 10:37:00 rdio-scanner.ini file created
|
||||
2022/02/02 10:37:00 rdio-scanner.ini file created
|
||||
|
||||
All of your parameters passed as arguments to [Rdio Scanner](https://github.com/chuot/rdio-scanner) have been saved to an INI file which has the same arguments/values list.
|
||||
|
||||
|
|
@ -148,12 +148,12 @@ Then simply run [Rdio Scanner](https://github.com/chuot/rdio-scanner) without an
|
|||
Password:
|
||||
root@pc-freebsd:/home/rdio/rdio-scanner # ./rdio-scanner
|
||||
|
||||
Rdio Scanner v6.1.9
|
||||
Rdio Scanner v6.1.10
|
||||
----------------------------------
|
||||
2022/02/01 10:38:28 server started
|
||||
2022/02/01 10:38:29 main interface at http://pc-freebsd
|
||||
2022/02/01 10:38:29 main interface at https://pc-freebsd
|
||||
2022/02/01 10:38:29 admin interface at https://pc-freebsd/admin
|
||||
2022/02/02 10:38:28 server started
|
||||
2022/02/02 10:38:29 main interface at http://pc-freebsd
|
||||
2022/02/02 10:38:29 main interface at https://pc-freebsd
|
||||
2022/02/02 10:38:29 admin interface at https://pc-freebsd/admin
|
||||
|
||||
## Install Rdio Scanner as a service
|
||||
|
||||
|
|
|
|||
|
|
@ -42,8 +42,8 @@ ALWAYS DOWNLOAD THE LATEST VERSION OF [RDIO SCANNER](https://github.com/chuot/rd
|
|||
[rdio@pc-linux ~]$ mkdir rdio-scanner
|
||||
[rdio@pc-linux ~]$ cd rdio-scanner
|
||||
[rdio@pc-linux rdio-scanner]$ unzip \
|
||||
> ~/Downloads/rdio-scanner-linux-amd64-v6.1.9.zip
|
||||
Archive: /home/rdio/Downloads/rdio-scanner-linux-amd64-v6.1.9.zip
|
||||
> ~/Downloads/rdio-scanner-linux-amd64-v6.1.10.zip
|
||||
Archive: /home/rdio/Downloads/rdio-scanner-linux-amd64-v6.1.10.zip
|
||||
inflating: rdio-scanner
|
||||
inflating: rdio-scanner.pdf
|
||||
|
||||
|
|
@ -51,11 +51,11 @@ ALWAYS DOWNLOAD THE LATEST VERSION OF [RDIO SCANNER](https://github.com/chuot/rd
|
|||
|
||||
[rdio@pc-linux rdio-scanner]$ ./rdio-scanner
|
||||
|
||||
Rdio Scanner v6.1.9
|
||||
Rdio Scanner v6.1.10
|
||||
----------------------------------
|
||||
2022/02/01 09:11:48 server started
|
||||
2022/02/01 09:11:48 main interface at http://pc-linux:3000
|
||||
2022/02/01 09:11:48 admin interface at http://pc-linux:3000/admin
|
||||
2022/02/02 09:11:48 server started
|
||||
2022/02/02 09:11:48 main interface at http://pc-linux:3000
|
||||
2022/02/02 09:11:48 admin interface at http://pc-linux:3000/admin
|
||||
|
||||
4. Access the administrative dashboard to finalize the configuration.
|
||||
|
||||
|
|
@ -78,11 +78,11 @@ Here we want our [Rdio Scanner](https://guthub.com/chuot/rdio-scanner) instance
|
|||
[rdio@pc-linux rdio-scanner]$ sudo ./rdio-scanner -listen :80
|
||||
[sudo] password for rdio:
|
||||
|
||||
Rdio Scanner v6.1.9
|
||||
Rdio Scanner v6.1.10
|
||||
----------------------------------
|
||||
2022/02/01 09:14:00 server started
|
||||
2022/02/01 09:14:00 main interface at http://pc-linux
|
||||
2022/02/01 09:14:00 admin interface at http://pc-linux/admin
|
||||
2022/02/02 09:14:00 server started
|
||||
2022/02/02 09:14:00 main interface at http://pc-linux
|
||||
2022/02/02 09:14:00 admin interface at http://pc-linux/admin
|
||||
|
||||
## Listening with SSL with self-signed certificates
|
||||
|
||||
|
|
@ -91,8 +91,8 @@ It is advised to share your [Rdio Scanner](https://github.com/chuot/rdio-scanner
|
|||
We can create such self-signed certificates by running [Rdio Scanner](https://github.com/chuot/rdio-scanner) with the **-ssl_create** argument.
|
||||
|
||||
[rdio@pc-linux rdio-scanner]$ ./rdio-scanner -ssl_create
|
||||
2022/02/01 09:15:03 generating ssl certificate files
|
||||
2022/02/01 09:15:05 ssl files created
|
||||
2022/02/02 09:15:03 generating ssl certificate files
|
||||
2022/02/02 09:15:05 ssl files created
|
||||
|
||||
This has generated these files in the same folder as your [Rdio Scanner](https://github.com/chuot/rdio-scanner) executable.
|
||||
|
||||
|
|
@ -110,12 +110,12 @@ Now we use the self-signed server certificate to run our instance.
|
|||
> -ssl_listen :443
|
||||
[sudo] password for rdio:
|
||||
|
||||
Rdio Scanner v6.1.9
|
||||
Rdio Scanner v6.1.10
|
||||
----------------------------------
|
||||
2022/02/01 09:16:47 server started
|
||||
2022/02/01 09:16:47 main interface at http://pc-linux
|
||||
2022/02/01 09:16:47 main interface at https://pc-linux
|
||||
2022/02/01 09:16:47 admin interface at https://pc-linux/admin
|
||||
2022/02/02 09:16:47 server started
|
||||
2022/02/02 09:16:47 main interface at http://pc-linux
|
||||
2022/02/02 09:16:47 main interface at https://pc-linux
|
||||
2022/02/02 09:16:47 admin interface at https://pc-linux/admin
|
||||
|
||||
## Save your advanced configuration to a config file
|
||||
|
||||
|
|
@ -127,7 +127,7 @@ You don't want to have to type everytime a long list of arguments. No problem, y
|
|||
> -ssl_key_file server.key \
|
||||
> -ssl_listen :443 \
|
||||
> -config_save
|
||||
2022/02/01 09:19:29 rdio-scanner.ini file created
|
||||
2022/02/02 09:19:29 rdio-scanner.ini file created
|
||||
|
||||
All of your parameters passed as arguments to [Rdio Scanner](https://github.com/chuot/rdio-scanner) have been saved to an INI file which has the same arguments/values list.
|
||||
|
||||
|
|
@ -143,12 +143,12 @@ Then simply run [Rdio Scanner](https://github.com/chuot/rdio-scanner) without an
|
|||
[rdio@pc-linux rdio-scanner]$ sudo ./rdio-scanner
|
||||
[sudo] Mot de passe de rdio :
|
||||
|
||||
Rdio Scanner v6.1.9
|
||||
Rdio Scanner v6.1.10
|
||||
----------------------------------
|
||||
2022/02/01 09:20:40 server started
|
||||
2022/02/01 09:20:40 main interface at http://pc-linux
|
||||
2022/02/01 09:20:40 main interface at https://pc-linux
|
||||
2022/02/01 09:20:40 admin interface at https://pc-linux/admin
|
||||
2022/02/02 09:20:40 server started
|
||||
2022/02/02 09:20:40 main interface at http://pc-linux
|
||||
2022/02/02 09:20:40 main interface at https://pc-linux
|
||||
2022/02/02 09:20:40 admin interface at https://pc-linux/admin
|
||||
|
||||
## Install Rdio Scanner as a service
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ ALWAYS DOWNLOAD THE LATEST VERSION OF [RDIO SCANNER](https://github.com/chuot/rd
|
|||
C:\Users\rdio> cd rdio-scanner
|
||||
|
||||
C:\Users\rdio\rdio-scanner> tar -xvf ^
|
||||
..\downloads\rdio-scanner-windows-amd64-v6.1.9.zip
|
||||
..\downloads\rdio-scanner-windows-amd64-v6.1.10.zip
|
||||
x rdio-scanner.exe
|
||||
x rdio-scanner.pdf
|
||||
|
||||
|
|
@ -52,11 +52,11 @@ ALWAYS DOWNLOAD THE LATEST VERSION OF [RDIO SCANNER](https://github.com/chuot/rd
|
|||
|
||||
C:\Users\rdio\rdio-scanner>rdio-scanner
|
||||
|
||||
Rdio Scanner v6.1.9
|
||||
Rdio Scanner v6.1.10
|
||||
----------------------------------
|
||||
2022/02/01 13:48:48 server started
|
||||
2022/02/01 13:48:48 main interface at http://pc-windows:3000
|
||||
2022/02/01 13:48:48 admin interface at http://pc-windows:3000/admin
|
||||
2022/02/02 13:48:48 server started
|
||||
2022/02/02 13:48:48 main interface at http://pc-windows:3000
|
||||
2022/02/02 13:48:48 admin interface at http://pc-windows:3000/admin
|
||||
|
||||
4. Access the administrative dashboard to finalize the configuration.
|
||||
|
||||
|
|
@ -78,11 +78,11 @@ Here we want our [Rdio Scanner](https://guthub.com/chuot/rdio-scanner) instance
|
|||
|
||||
C:\Users\rdio\rdio-scanner>rdio-scanner -listen :80
|
||||
|
||||
Rdio Scanner v6.1.9
|
||||
Rdio Scanner v6.1.10
|
||||
----------------------------------
|
||||
2022/02/01 10:53:31 server started
|
||||
2022/02/01 10:53:31 main interface at http://pc-windows
|
||||
2022/02/01 10:53:31 admin interface at http://pc-windows/admin
|
||||
2022/02/02 10:53:31 server started
|
||||
2022/02/02 10:53:31 main interface at http://pc-windows
|
||||
2022/02/02 10:53:31 admin interface at http://pc-windows/admin
|
||||
|
||||
## Listening with SSL with self-signed certificates
|
||||
|
||||
|
|
@ -91,8 +91,8 @@ It is advised to share your [Rdio Scanner](https://github.com/chuot/rdio-scanner
|
|||
We can create such self-signed certificates by running [Rdio Scanner](https://github.com/chuot/rdio-scanner) with the **-ssl_create** argument.
|
||||
|
||||
C:\Users\rdio\rdio-scanner>rdio-scanner -ssl_create
|
||||
2022/02/01 10:58:51 generating ssl certificate files
|
||||
2022/02/01 10:58:54 ssl files created
|
||||
2022/02/02 10:58:51 generating ssl certificate files
|
||||
2022/02/02 10:58:54 ssl files created
|
||||
|
||||
This has generated these files in the same folder as your [Rdio Scanner](https://github.com/chuot/rdio-scanner) executable.
|
||||
|
||||
|
|
@ -109,12 +109,12 @@ Now we use the self-signed server certificate to run our instance.
|
|||
-ssl_key_file server.key ^
|
||||
-ssl_listen :443
|
||||
|
||||
Rdio Scanner v6.1.9
|
||||
Rdio Scanner v6.1.10
|
||||
----------------------------------
|
||||
2022/02/01 11:05:43 server started
|
||||
2022/02/01 11:05:43 main interface at http://pc-windows
|
||||
2022/02/01 11:05:43 main interface at https://pc-windows
|
||||
2022/02/01 11:05:43 admin interface at https://pc-windows/admin
|
||||
2022/02/02 11:05:43 server started
|
||||
2022/02/02 11:05:43 main interface at http://pc-windows
|
||||
2022/02/02 11:05:43 main interface at https://pc-windows
|
||||
2022/02/02 11:05:43 admin interface at https://pc-windows/admin
|
||||
|
||||
## Save your advanced configuration to a config file
|
||||
|
||||
|
|
@ -126,7 +126,7 @@ You don't want to have to type everytime a long list of arguments. No problem, y
|
|||
-ssl_key_file server.key ^
|
||||
-ssl_listen :443 ^
|
||||
-config_save
|
||||
2022/02/01 11:08:28 rdio-scanner.ini file created
|
||||
2022/02/02 11:08:28 rdio-scanner.ini file created
|
||||
|
||||
All of your parameters passed as arguments to [Rdio Scanner](https://github.com/chuot/rdio-scanner) have been saved to an INI file which has the same arguments/values list.
|
||||
|
||||
|
|
@ -141,12 +141,12 @@ Then simply run [Rdio Scanner](https://github.com/chuot/rdio-scanner) without an
|
|||
|
||||
C:\Users\rdio\rdio-scanner>rdio-scanner
|
||||
|
||||
Rdio Scanner v6.1.9
|
||||
Rdio Scanner v6.1.10
|
||||
----------------------------------
|
||||
2022/02/01 11:11:28 server started
|
||||
2022/02/01 11:11:28 main interface at http://pc-windows
|
||||
2022/02/01 11:11:28 main interface at https://pc-windows
|
||||
2022/02/01 11:11:28 admin interface at https://pc-windows/admin
|
||||
2022/02/02 11:11:28 server started
|
||||
2022/02/02 11:11:28 main interface at http://pc-windows
|
||||
2022/02/02 11:11:28 main interface at https://pc-windows
|
||||
2022/02/02 11:11:28 admin interface at https://pc-windows/admin
|
||||
|
||||
\pagebreak{}
|
||||
|
||||
|
|
|
|||
6
package-lock.json
generated
6
package-lock.json
generated
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"name": "rdio-scanner",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {}
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
{}
|
||||
|
|
@ -148,10 +148,10 @@ func (admin *Admin) ConfigHandler(w http.ResponseWriter, r *http.Request) {
|
|||
}()
|
||||
|
||||
} else {
|
||||
admin.Controller.Calls.mutex.Lock()
|
||||
admin.Controller.IngestLock()
|
||||
admin.mutex.Lock()
|
||||
defer admin.mutex.Unlock()
|
||||
defer admin.Controller.Calls.mutex.Unlock()
|
||||
defer admin.Controller.IngestUnlock()
|
||||
|
||||
logError := func(err error) {
|
||||
admin.Controller.Logs.LogEvent(admin.Controller.Database, LogLevelError, fmt.Sprintf("admin.confighandler.put: %s", err.Error()))
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ import (
|
|||
"path"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type Controller struct {
|
||||
|
|
@ -51,6 +52,7 @@ type Controller struct {
|
|||
Ingest chan *Call
|
||||
ffmpeg bool
|
||||
ffmpegWarned bool
|
||||
ingestMutex sync.Mutex
|
||||
running bool
|
||||
}
|
||||
|
||||
|
|
@ -71,6 +73,7 @@ func NewController(config *Config) *Controller {
|
|||
Register: make(chan *Client, 64),
|
||||
Unregister: make(chan *Client, 64),
|
||||
Ingest: make(chan *Call, 64),
|
||||
ingestMutex: sync.Mutex{},
|
||||
}
|
||||
|
||||
controller.Admin = NewAdmin(controller)
|
||||
|
|
@ -175,6 +178,9 @@ func (controller *Controller) IngestCall(call *Call) {
|
|||
talkgroup *Talkgroup
|
||||
)
|
||||
|
||||
controller.ingestMutex.Lock()
|
||||
defer controller.ingestMutex.Unlock()
|
||||
|
||||
logCall := func(call *Call, level string, message string) {
|
||||
controller.Logs.LogEvent(
|
||||
controller.Database,
|
||||
|
|
@ -385,6 +391,14 @@ func (controller *Controller) IngestCall(call *Call) {
|
|||
}
|
||||
}
|
||||
|
||||
func (controller *Controller) IngestLock() {
|
||||
controller.ingestMutex.Lock()
|
||||
}
|
||||
|
||||
func (controller *Controller) IngestUnlock() {
|
||||
controller.ingestMutex.Unlock()
|
||||
}
|
||||
|
||||
func (controller *Controller) LogClientsCount() {
|
||||
controller.Logs.LogEvent(
|
||||
controller.Database,
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ import (
|
|||
"fmt"
|
||||
"io/fs"
|
||||
"io/ioutil"
|
||||
"math"
|
||||
"mime"
|
||||
"os"
|
||||
"path"
|
||||
|
|
@ -475,7 +476,10 @@ func (dirwatch *Dirwatch) parseMask(call *Call) {
|
|||
}
|
||||
|
||||
func (dirwatch *Dirwatch) Start(controller *Controller) error {
|
||||
var err error
|
||||
var (
|
||||
delay time.Duration
|
||||
err error
|
||||
)
|
||||
|
||||
if dirwatch.Disabled {
|
||||
return nil
|
||||
|
|
@ -494,13 +498,20 @@ func (dirwatch *Dirwatch) Start(controller *Controller) error {
|
|||
|
||||
dirwatch.running = true
|
||||
|
||||
switch v := dirwatch.Delay.(type) {
|
||||
case uint:
|
||||
delay = time.Duration(math.Max(float64(v), 2000)) * time.Millisecond
|
||||
default:
|
||||
delay = time.Duration(2000) * time.Millisecond
|
||||
}
|
||||
|
||||
watcher := func() {
|
||||
logError := func(err error) {
|
||||
controller.Logs.LogEvent(controller.Database, LogLevelError, fmt.Sprintf("dirwatch.watcher: %v", err.Error()))
|
||||
}
|
||||
|
||||
newTimer := func(eventName string) *time.Timer {
|
||||
return time.AfterFunc(2*time.Second, func() {
|
||||
return time.AfterFunc(delay, func() {
|
||||
if dirwatch.running {
|
||||
if _, err := os.Stat(eventName); err == nil {
|
||||
dirwatch.Ingest(eventName)
|
||||
|
|
@ -519,11 +530,6 @@ func (dirwatch *Dirwatch) Start(controller *Controller) error {
|
|||
if event, ok := <-dirwatch.watcher.Events; ok {
|
||||
switch event.Op {
|
||||
case fsnotify.Create:
|
||||
switch v := dirwatch.Delay.(type) {
|
||||
case uint:
|
||||
time.Sleep(time.Duration(v) * time.Millisecond)
|
||||
}
|
||||
|
||||
if dirwatch.isDir(event.Name) {
|
||||
if err := dirwatch.walkDir(event.Name); err != nil {
|
||||
logError(err)
|
||||
|
|
@ -579,6 +585,8 @@ func (dirwatch *Dirwatch) Start(controller *Controller) error {
|
|||
go watcher()
|
||||
|
||||
go func() {
|
||||
time.Sleep(delay)
|
||||
|
||||
if err := fs.WalkDir(os.DirFS(dirwatch.Directory), ".", func(p string, d fs.DirEntry, err error) error {
|
||||
if !dirwatch.running {
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ require (
|
|||
github.com/google/uuid v1.3.0
|
||||
github.com/gorilla/websocket v1.4.2
|
||||
github.com/kardianos/service v1.2.1
|
||||
golang.org/x/crypto v0.0.0-20220112180741-5e0467b6c7ce
|
||||
golang.org/x/crypto v0.0.0-20220131195533-30dcbda58838
|
||||
gopkg.in/ini.v1 v1.66.3
|
||||
modernc.org/sqlite v1.14.5
|
||||
)
|
||||
|
|
@ -21,10 +21,10 @@ require (
|
|||
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 // indirect
|
||||
github.com/stretchr/testify v1.7.0 // indirect
|
||||
golang.org/x/mod v0.5.1 // indirect
|
||||
golang.org/x/net v0.0.0-20220121210141-e204ce36a2ba // indirect
|
||||
golang.org/x/sys v0.0.0-20220114195835-da31bd327af9 // indirect
|
||||
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd // indirect
|
||||
golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27 // indirect
|
||||
golang.org/x/text v0.3.7 // indirect
|
||||
golang.org/x/tools v0.1.8 // indirect
|
||||
golang.org/x/tools v0.1.9 // indirect
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
|
||||
lukechampine.com/uint128 v1.2.0 // indirect
|
||||
modernc.org/cc/v3 v3.35.22 // indirect
|
||||
|
|
|
|||
|
|
@ -37,8 +37,8 @@ github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1
|
|||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20220112180741-5e0467b6c7ce h1:Roh6XWxHFKrPgC/EQhVubSAGQ6Ozk6IdxHSzt1mR0EI=
|
||||
golang.org/x/crypto v0.0.0-20220112180741-5e0467b6c7ce/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/crypto v0.0.0-20220131195533-30dcbda58838 h1:71vQrMauZZhcTVK6KdYM+rklehEEwb3E+ZhaE5jrPrE=
|
||||
golang.org/x/crypto v0.0.0-20220131195533-30dcbda58838/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.5.1 h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38=
|
||||
golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
|
||||
|
|
@ -47,8 +47,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL
|
|||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20220121210141-e204ce36a2ba h1:6u6sik+bn/y7vILcYkK3iwTBWN7WtBvB0+SZswQnbf8=
|
||||
golang.org/x/net v0.0.0-20220121210141-e204ce36a2ba/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
||||
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd h1:O7DYs+zxREGLKzKoMQrtrEacpb0ZVXA5rIwylE2Xchk=
|
||||
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
|
|
@ -66,8 +66,8 @@ golang.org/x/sys v0.0.0-20210902050250-f475640dd07b/go.mod h1:oPkhp1MJrh7nUepCBc
|
|||
golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220114195835-da31bd327af9 h1:XfKQ4OlFl8okEOr5UvAqFRVj8pY/4yfcXrddB8qAbU0=
|
||||
golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27 h1:XDXtA5hveEEV8JB2l7nhMTp3t3cHp9ZpwcdjqyEWLlo=
|
||||
golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
|
|
@ -78,8 +78,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
|||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.1.8 h1:P1HhGGuLW4aAclzjtmJdf0mJOjVUZUzOTqkAkWL+l6w=
|
||||
golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU=
|
||||
golang.org/x/tools v0.1.9 h1:j9KsMiaP1c3B0OTQGth0/k+miLGTgLsAFUCrF2vLcF8=
|
||||
golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
|
|
|
|||
|
|
@ -15,4 +15,4 @@
|
|||
|
||||
package main
|
||||
|
||||
const Version = "6.1.9"
|
||||
const Version = "6.1.10"
|
||||
|
|
|
|||
Loading…
Reference in a new issue