What's new

Wireguard Session Manager - Discussion thread (CLOSED/EXPIRED Oct 2021 use http://www.snbforums.com/threads/session-manager-discussion-2nd-thread.75129/)

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

Thanks a lot!
I deleted wg_manager and reinstalled fresh.
Now another problem appeared:
auto=n won't apply

Code:
+======================================================================+
|  Welcome to the WireGuard Manager/Installer script (Asuswrt-Merlin)  |
|                                                                      |
|                      Version v4.09 by Martineau                      |
|                                                                      |
+======================================================================+
        WireGuard ACTIVE Peer Status: Clients 0, Servers 0



1  = Update Wireguard modules                                           7  = Display QR code for a Peer {device} e.g. iPhone
2  = Remove WireGuard/wg_manager                                        8  = Peer management [ "list" | "category" | "new" ] | [ {Peer | category} [ del | show | add [{"auto="[y|n|p]}] ]
                                                                        9  = Create Key-pair for Peer {Device} e.g. Nokia6310i (creates Nokia6310i.conf etc.)
3  = List ACTIVE Peers Summary [Peer...] [full]                         10 = IPSet management [ "list" ] | [ "upd" { ipset [ "fwmark" {fwmark} ] | [ "enable" {"y"|"n"}] | [ "dstsrc"] ] } ]
4  = Start   [ [Peer [nopolicy]...] | category ] e.g. start clients
5  = Stop    [ [Peer... ] | category ] e.g. stop clients
6  = Restart [ [Peer... ] | category ] e.g. restart servers

?  = About Configuration
v  = View ('/jffs/addons/wireguard/WireguardVPN.conf')

e  = Exit Script [?]

E:Option ==> peer wg21 auto=n

        [✔] Updated 'wg21' AUTO=N


        WireGuard ACTIVE Peer Status: Clients 0, Servers 0



1  = Update Wireguard modules                                           7  = Display QR code for a Peer {device} e.g. iPhone
2  = Remove WireGuard/wg_manager                                        8  = Peer management [ "list" | "category" | "new" ] | [ {Peer | category} [ del | show | add [{"auto="[y|n|p]}] ]
                                                                        9  = Create Key-pair for Peer {Device} e.g. Nokia6310i (creates Nokia6310i.conf etc.)
3  = List ACTIVE Peers Summary [Peer...] [full]                         10 = IPSet management [ "list" ] | [ "upd" { ipset [ "fwmark" {fwmark} ] | [ "enable" {"y"|"n"}] | [ "dstsrc"] ] } ]
4  = Start   [ [Peer [nopolicy]...] | category ] e.g. start clients
5  = Stop    [ [Peer... ] | category ] e.g. stop clients
6  = Restart [ [Peer... ] | category ] e.g. restart servers

?  = About Configuration
v  = View ('/jffs/addons/wireguard/WireguardVPN.conf')

e  = Exit Script [?]

E:Option ==> 8

        Peers (Auto=P - Policy, Auto=X - External i.e. Cell/Mobile)
Server  Auto  Subnet        Port   Annotate
wg21    Y    10.50.1.1/24  51820  # RT-AC86U Server #1

Client  Auto  IP             Endpoint                          DNS      MTU   Annotate
warp    N     172.16.0.2/32  engage.cloudflareclient.com:2408  1.1.1.1  1280  # Cloudflare Warp


        WireGuard ACTIVE Peer Status: Clients 0, Servers 0

And btw, wg_manager says it's v4.09.
 
Last edited:
Thanks a lot!
I deleted wg_manager and reinstalled fresh.
Now another problem appeared:
auto=n won't apply

Code:
+======================================================================+
|  Welcome to the WireGuard Manager/Installer script (Asuswrt-Merlin)  |
|                                                                      |
|                      Version v4.09 by Martineau                      |
|                                                                      |
+======================================================================+
        WireGuard ACTIVE Peer Status: Clients 0, Servers 0



1  = Update Wireguard modules                                           7  = Display QR code for a Peer {device} e.g. iPhone
2  = Remove WireGuard/wg_manager                                        8  = Peer management [ "list" | "category" | "new" ] | [ {Peer | category} [ del | show | add [{"auto="[y|n|p]}] ]
                                                                        9  = Create Key-pair for Peer {Device} e.g. Nokia6310i (creates Nokia6310i.conf etc.)
3  = List ACTIVE Peers Summary [Peer...] [full]                         10 = IPSet management [ "list" ] | [ "upd" { ipset [ "fwmark" {fwmark} ] | [ "enable" {"y"|"n"}] | [ "dstsrc"] ] } ]
4  = Start   [ [Peer [nopolicy]...] | category ] e.g. start clients
5  = Stop    [ [Peer... ] | category ] e.g. stop clients
6  = Restart [ [Peer... ] | category ] e.g. restart servers

?  = About Configuration
v  = View ('/jffs/addons/wireguard/WireguardVPN.conf')

e  = Exit Script [?]

E:Option ==> peer wg21 auto=n

        [✔] Updated 'wg21' AUTO=N


        WireGuard ACTIVE Peer Status: Clients 0, Servers 0



1  = Update Wireguard modules                                           7  = Display QR code for a Peer {device} e.g. iPhone
2  = Remove WireGuard/wg_manager                                        8  = Peer management [ "list" | "category" | "new" ] | [ {Peer | category} [ del | show | add [{"auto="[y|n|p]}] ]
                                                                        9  = Create Key-pair for Peer {Device} e.g. Nokia6310i (creates Nokia6310i.conf etc.)
3  = List ACTIVE Peers Summary [Peer...] [full]                         10 = IPSet management [ "list" ] | [ "upd" { ipset [ "fwmark" {fwmark} ] | [ "enable" {"y"|"n"}] | [ "dstsrc"] ] } ]
4  = Start   [ [Peer [nopolicy]...] | category ] e.g. start clients
5  = Stop    [ [Peer... ] | category ] e.g. stop clients
6  = Restart [ [Peer... ] | category ] e.g. restart servers

?  = About Configuration
v  = View ('/jffs/addons/wireguard/WireguardVPN.conf')

e  = Exit Script [?]

E:Option ==> 8

        Peers (Auto=P - Policy, Auto=X - External i.e. Cell/Mobile)
Server  Auto  Subnet        Port   Annotate
wg21    Y    10.50.1.1/24  51820  # RT-AC86U Server #1

Client  Auto  IP             Endpoint                          DNS      MTU   Annotate
warp    N     172.16.0.2/32  engage.cloudflareclient.com:2408  1.1.1.1  1280  # Cloudflare Warp


        WireGuard ACTIVE Peer Status: Clients 0, Servers 0

And btw, wg_manager says it's v4.09.
Fixed
 
My interfaces were happily running for some 10 days. Now I saw an upgrade, I stopped everything and upgraded wg_manager to 4.10.

Now when I start the interfaces I get this (I understand the 'mtu' change, but that column is missing from the database.) When I manually start ac client peer, this is what I get:
Code:
E:Option ==> 4 wg12

        Requesting WireGuard VPN Peer start (wg12)

Error: no such column: mtu
        wireguard-clientwg12: Initialising Wireguard VPN 'client' Peer (wg12) in Policy Mode to xxxxxxxxxxx DNS=192.168.2.1
        wireguard-clientwg12: Initialisation complete.

Any suggestion?

EDIT: A new install took care of that issue.
 
Last edited:
I am wanting to manipulate the MTU values from the default 1420 to 1500. is this possible with wireguard manager?
according to post #220 from version 4.10 you should be able to change the mtu from its default value. Eiter by adding the mtu=xxxx in the conf file when the peer is imported or by changing the config manually after import. either way the change shall be a part of the new peer config so it shall remain even after reboot.

//Zeb
 
My interfaces were happily running for some 10 days. Now I saw an upgrade, I stopped everything and upgraded wg_manager to 4.10.

Now when I start the interfaces I get this (I understand the 'mtu' change, but that column is missing from the database.) When I manually start ac client peer, this is what I get:
Code:
E:Option ==> 4 wg12

        Requesting WireGuard VPN Peer start (wg12)

Error: no such column: mtu
        wireguard-clientwg12: Initialising Wireguard VPN 'client' Peer (wg12) in Policy Mode to xxxxxxxxxxx DNS=192.168.2.1
        wireguard-clientwg12: Initialisation complete.

Any suggestion?

EDIT: A new install took care of that issue.
Apologies.

For most, a fresh install is the easiest method to have the MTU column/value added, so I lazily did not post the commands to export the SQL table as '.csv', run awk to insert the default MTU, then import the modified '.csv' back into the SQL database.
 
Apologies.

For most, a fresh install is the easiest method to have the MTU column/value added, so I lazily did not post the commands to export the SQL table as '.csv', run awk to insert the default MTU, then import the modified '.csv' back into the SQL database.
would using an ALTER TABLE command not work to add the column? I believe you can specify a default value for existing rows as part of the command
 
would using an ALTER TABLE command not work to add the column? I believe you can specify a default value for existing rows as part of the command
When dumping the raw SQL data columns (SELECT *) , I prefer to have the static/fixed-format most important fields show before any 'free-format' columns such as the Annotate/Tag column etc, and the ALTER command does not allow specifying the physical position of the new column.
 
Is that normal, that diversion isn't working anymore, when I'm using a VPN?
How can I get diversion to work again?
 
Last edited:
I got an error installing manager:

Code:
        Downloading WireGuard Kernel module '' for RT-AC86U (v386.2)...

curl: (22) The requested URL returned error: 404 Not Found


        Downloading WireGuard User space Tool '' for RT-AC86U (v386.2)

curl: (22) The requested URL returned error: 404 Not Found

What I've done wrong?
 
I got an error installing manager:

Code:
        Downloading WireGuard Kernel module '' for RT-AC86U (v386.2)...

curl: (22) The requested URL returned error: 404 Not Found


        Downloading WireGuard User space Tool '' for RT-AC86U (v386.2)

curl: (22) The requested URL returned error: 404 Not Found

What I've done wrong?
Nothing I suspect.

Can you provide the complete sequence of console messages

e.g. a fresh installation request/attempt on my RT-AC86U produces
Code:
curl --retry 3 "https://raw.githubusercontent.com/MartineauUK/wireguard/main/wg_manager.sh" --create-dirs -o "/jffs/addons/wireguard/wg_manager.sh" && chmod 755 "/jffs/addons/wireguard/wg_manager.sh" && /jffs/addons/wireguard/wg_manager.sh install

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  185k  100  185k    0     0   589k      0 --:--:-- --:--:-- --:--:--  610k



+======================================================================+
|  Welcome to the WireGuard Manager/Installer script (Asuswrt-Merlin)  |
|                                                                      |
|                      Version v4.10 by Martineau                      |
|                                                                      |
| Requirements: USB drive with Entware installed                       |
|                                                                      |
|   1 = Install WireGuard                                              |
|       o1. Enable nat-start protection for Firewall rules             |
|       o2. Enable DNS                                                 |
|                                                                      |
|                                                                      |
+======================================================================+

     WireGuard ACTIVE Peer Status: Clients 0, Servers 0



1  = Begin WireGuard Installation Process                   

e  = Exit Script [?]

E:Option ==> 1

    Installing WireGuard Manager - Router RT-AC86U (v386.2) arch=aarch64

    Downloading scripts
    wg_client downloaded successfully
    wg_server downloaded successfully
    UDP_Updater.sh downloaded successfully

Package column (2.36.1-2) installed in root is up to date.
Package coreutils-mkfifo (8.32-6) installed in root is up to date.
    Downloading Wireguard Kernel module for RT-AC86U (v386.2)

    Downloading WireGuard Kernel module 'wireguard-kernel_1.0.20210219-k27_1_aarch64-3.10.ipk' for RT-AC86U (v386.2)...

##################################################################################################################################################################################### 100.0%

    Downloading WireGuard User space Tool 'wireguard-tools_1.0.20210315-1_aarch64-3.10.ipk' for RT-AC86U (v386.2)

##################################################################################################################################################################################### 100.0%

    Loading WireGuard Kernel module and Userspace Tool for RT-AC86U (v386.2)
Installing wireguard-kernel (1.0.20210219-k27_1) to root...
Configuring wireguard-kernel.
Installing wireguard-tools (1.0.20210315-1) to root...
Configuring wireguard-tools.
    wireguard: WireGuard 1.0.20210219 loaded. See www.wireguard.com for information.
    wireguard: Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.


    Creating WireGuard configuration file '/jffs/addons/wireguard/WireguardVPN.conf'

    No Peer entries to auto-migrate from '/jffs/addons/wireguard/WireguardVPN.conf', but you will need to manually import the 'device' Peer '*.conf' files:



    [✔] WireGuard Peer SQL Database initialised OK

    Creating WireGuard 'Server' Peer (wg21)'
    Creating WireGuard Private/Public key-pairs for RT-AC86U (v386.2)
    Initialising WireGuard VPN 'server' Peer

    Requesting WireGuard VPN Peer start (wg21)

    wireguard-server1: Initialising Wireguard VPN 'Server' Peer (wg21) on 10.88.8.1:51820 (# RT-AC86U Server #1)
    wireguard-server1: Initialisation complete.

    [✔] Statistics gathering is ENABLED

    nat-start updated to protect WireGuard firewall rules
    Restarting DNSmasq to add 'wg*' interfaces

Done.

    Creating 'wg_manager' alias for 'wg_manager.sh'

    Event scripts

    Adding Peer Auto-start @BOOT
    Installing QR rendering module
Package qrencode (4.1.1-1) installed in root is up to date.
    Do you want to create a 'device' Peer for 'server' Peer (wg21) ?
    Press y to create 'device' Peer or press [Enter] to skip
 
Last edited:
i need help:

@router:/tmp/home/root# wg
interface: wg21
public key: xxxxxxxxxxxxxxxxxxxxxxxxxxvSE=
private key: (hidden)
listening port: 51820

peer: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3HAU=
endpoint: 77.177.77.177:55310
allowed ips: 0.0.0.0/0
latest handshake: 1 hour, 41 minutes, 35 seconds ago
transfer: 80.95 KiB received, 91.20 KiB sent

peer: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAfFyo=
endpoint: 77.177.77.177:51265
allowed ips: (none)
latest handshake: 1 hour, 42 minutes, 40 seconds ago
transfer: 180 B received, 220 B sent

peer: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTgE=
endpoint: 77.177.77.177:50361
allowed ips: (none)
latest handshake: 1 hour, 43 minutes, 52 seconds ago
transfer: 180 B received, 220 B sent

peer: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+mA=
endpoint: 77.177.77.177:51478
allowed ips: (none)
latest handshake: 1 hour, 44 minutes ago
transfer: 180 B received, 92 B sent

only the last created client has "AllowedIPs=0.0.0.0/0"
wgm/ command "peer cl1 AllowedIPs=0.0.0.0/0" not work

furthermore i need some help for a setup site-to-site between two asus-routers.

1. i import "import 11_R1 type=client" (11_R1.conf: AllowedIPs = 192.168.77.0/24, 192.168.78.0/24)
2. diag sql clients outputs "Invalid SQL table 'clients'"
3. which policy rule is required and how is it created for auto=P?
 
only the last created client has "AllowedIPs=0.0.0.0/0"
I have uploaded Beta wireguard_manager v4.11 to the Github 'dev' branch for testing
to correct the error where Allowed IPs = '0.0.0.0/0' is incorrectly used for the remote 'device' peer in the 'server' Peer configuration e.g.'wg21.conf' file.
NOTE: You may only have one 'device' Peer containing '0.0.0.0/0'

To upgrade use
Code:
E:Option ==> uf dev

    v4.11 WireGuard Session Manager (Change Log: https://github.com/MartineauUK/wireguard/commits/main/wg_manager.sh)
    MD5=c54f076d5fffaa530ca8335138ac6797 /jffs/addons/wireguard/wg_manager.sh

    wireguard: WireGuard 1.0.20210219 loaded. See www.wireguard.com for information.
    wireguard: Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.

    [✔] WireGuard Module is LOADED

    MD5=b689b5ba0c60b12d92cdbf95b4b81017 wireguard-kernel_1.0.20210219-k27_1_aarch64-3.10.ipk
    MD5=09697c508bf4a54203efe11a26a15b46 wireguard-tools_1.0.20210315-1_aarch64-3.10.ipk
    Checking for WireGuard Kernel and Userspace Tool updates...

    WireGuard Kernel and Userspace Tool up to date.


    Forced Update

    Downloading scripts
    wg_manager.sh downloaded successfully Github 'dev/development' branch
    wg_client downloaded successfully Github 'dev/development' branch
    wg_server downloaded successfully Github 'dev/development' branch
    UDP_Updater.sh downloaded successfully Github 'dev/development' branch
To remove the erroneous message from the native 'wg' status report
Code:
allowed ips: (none)
you can either manually edit/replace the '0.0.0.0/0' text string with the actual VPN pool IP address for each of the 'device' Peers, in 'wg21.conf'
or
you will need to delete the 'device' Peers
Code:
peer xxxxxx del
and recreate them using option 7

e.g.
Code:
create xxxxxx
 
i need help:

2. diag sql clients outputs "Invalid SQL table 'clients'
The diag command is for debugging/diagnostics - so simply entering the peer command (without any args) already displays all three SQL tables 'servers'/'clients'/'devices' formatted by column.
 
@Martineau: thanks!

Thoughts for better understanding

********************************************************************************
wg21.conf:
********************************************************************************
# e.g. Accept a WireGuard connection from say YOUR mobile device to the router

# DeviceExample for client.conf, not place in wg21.conf
# AllowedIPs has different meaning
#
#[Peer]
#PublicKey = This_should_be_replaced_with_the_Public_Key_of_YOUR_mobile_device
#AllowedIPs = 0.0.0.0/0 # All Access or [192.168.1.0/24,10.8.0.21/32]
# i.e. List of IP/Subnet/networks YOUR mobile device may access.
# DeviceExample End

# Client1 Smartphone
[Peer]
AllowedIPs = 10.10.10.2/32 # is the allowed ip of the client,
# not the ip of the network to be/can be accessed
********************************************************************************

wish:
if you change the client ip, then the script should also update the ip in wg21.conf

command: peer client1 ip=10.10.10.100/32


********************************************************************************
client1.conf: (Example)
********************************************************************************
[Interface]
PrivateKey = <client1-private.key>
Address = 10.10.10.2
DNS = 192.168.150.1 # i.e. your Router-Lan-IP for use Router as DNS-Server
[Peer]
PublicKey = <server-public.key>
Endpoint = vpn.your-public-server.net:51820
AllowedIPs = 0.0.0.0/0 # All Access or [192.168.1.0/24,10.8.0.21/32]
# i.e. List of IP/Subnet/networks YOUR mobile device may access
PersistentKeepalive = 25
********************************************************************************
 
@Martineau
Can you please have a look at my syslog?
This is a part of my syslog after a router restart.
What are these errors?

Specifically:
May 3 20:02:21 (wg_manager.sh): 2326 ***ERROR WireGuard Manager/WireGuard Tool module 'wg' NOT installed
and
May 3 20:02:34 kernel: ^[[0;33;41mBLOG ERROR blog_request :blog_key corruption when adding flow net_p=ffffffc01293b268 dir=0 old_key=0x2000002c new_key=0x2000002d

I'm using v4.11

Edit:
This BLOG ERROR seems to be a known ASUS/Broadcom related issue. Closed source.
 
Last edited:
wish:
if you change the client ip, then the script should also update the ip in wg21.conf

command: peer client1 ip=10.10.10.100/32
I've uploaded Beta wg_manager v4.11b2 for your testing
Code:
e  = Exit Script [?]

E:Option ==> uf dev

    v4.10 WireGuard Session Manager (Change Log: https://github.com/MartineauUK/wireguard/commits/main/wg_manager.sh)
    MD5=c54f076d5fffaa530ca8335138ac6797 /jffs/addons/wireguard/wg_manager.sh

<snip>

+======================================================================+
|  Welcome to the WireGuard Manager/Installer script (Asuswrt-Merlin)  |
|                                                                      |
|                      Version v4.11b2 by Martineau                    |
|                                                                      |
+======================================================================+
     WireGuard ACTIVE Peer Status: Clients 1, Servers 1

e.g.
Code:
e  = Exit Script [?]

E:Option ==> peer Pixel8 ip=1.2.3.4/32

    [✔] Updated IP/Subnet

    Press y to Display QR Code for Scanning into WireGuard App on device 'Pixel8' or press [Enter] to SKIP.


    WireGuard 'server' Peer needs to be restarted to update 'client' Peer Pixel8 (# Pixel8 "Device")
    Press y to restart 'server' Peer (wg21) or press [Enter] to SKIP.
 
Specifically:
May 3 20:02:21 (wg_manager.sh): 2326 ***ERROR WireGuard Manager/WireGuard Tool module 'wg' NOT installed
I believe this is due to your use of the disk checker during the boot process, so I have suppressed the spurious error message.
I've uploaded Beta wg_manager v4.11b2 for your testing
Code:
e  = Exit Script [?]

E:Option ==> uf dev

    v4.10 WireGuard Session Manager (Change Log: https://github.com/MartineauUK/wireguard/commits/main/wg_manager.sh)
    MD5=c54f076d5fffaa530ca8335138ac6797 /jffs/addons/wireguard/wg_manager.sh

<snip>

+======================================================================+
|  Welcome to the WireGuard Manager/Installer script (Asuswrt-Merlin)  |
|                                                                      |
|                      Version v4.11b2 by Martineau                    |
|                                                                      |
+======================================================================+
     WireGuard ACTIVE Peer Status: Clients 1, Servers 1
 
Attempted install on a brand new router:
Code:
+======================================================================+
|  Welcome to the WireGuard Manager/Installer script (Asuswrt-Merlin)  |
|                                                                      |
|                      Version v4.11b2 by Martineau                    |
|                                                                      |
| Requirements: USB drive with Entware installed                       |
|                                                                      |
|   1 = Install WireGuard                                              |
|       o1. Enable nat-start protection for Firewall rules             |
|       o2. Enable DNS                                                 |
|                                                                      |
|                                                                      |
+======================================================================+

        WireGuard ACTIVE Peer Status: Clients 0, Servers 0

1  = Begin WireGuard Installation Process

e  = Exit Script [?]

E:Option ==> 1

        Installing WireGuard Manager - Router RT-AX86U (v386.2) arch=aarch64

        ERROR: Entware version not compatible with WireGuard!
...and this is the content of /opt/etc/entware_release
Code:
release=entware
arch=aarch64
cpu=cortex-a53
cpu_subtype=unknown
float=hard
gcc=8.4.0
gcc_flags=-O2 -pipe -mcpu=cortex-a53 -fno-caller-saves -fno-plt
libc=glibc
libc_version=2.27

There was no issue installing a previous version on another AX86U identically configured.
 
Attempted install on a brand new router:
Code:
+======================================================================+
|  Welcome to the WireGuard Manager/Installer script (Asuswrt-Merlin)  |
|                                                                      |
|                      Version v4.11b2 by Martineau                    |
|                                                                      |
| Requirements: USB drive with Entware installed                       |
|                                                                      |
|   1 = Install WireGuard                                              |
|       o1. Enable nat-start protection for Firewall rules             |
|       o2. Enable DNS                                                 |
|                                                                      |
|                                                                      |
+======================================================================+

        WireGuard ACTIVE Peer Status: Clients 0, Servers 0

1  = Begin WireGuard Installation Process

e  = Exit Script [?]

E:Option ==> 1

        Installing WireGuard Manager - Router RT-AX86U (v386.2) arch=aarch64

        ERROR: Entware version not compatible with WireGuard!
...and this is the content of /opt/etc/entware_release
Code:
release=entware
arch=aarch64
cpu=cortex-a53
cpu_subtype=unknown
float=hard
gcc=8.4.0
gcc_flags=-O2 -pipe -mcpu=cortex-a53 -fno-caller-saves -fno-plt
libc=glibc
libc_version=2.27

There was no issue installing a previous version on another AX86U identically configured.
Whoops :oops: - Fixed in Beta wg_manager v4.11b3
To apply patch use
Code:
e  = Exit Script [?]

E:Option ==> uf dev
 

Latest threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top