A few good ideas?

Suggest improvements and new features for Gargoyle.

Moderator: Moderators

Post Reply
stuartbh
Posts: 76
Joined: Sun Oct 20, 2019 4:18 pm

A few good ideas?

Post by stuartbh »

Dear Gargoylers:

First let me say thank you to all the folks that have and continue to make Gargoyle a wonderful piece of software! It works very well and is easy to use. However, this does not mean that there is not room for improvement, there is, as follows hereupon some several of my suggestions.

1. Ping Watchdog

The Ping Watchdog works wonderfully, except it only accepts IP addresses. What if I wanted my WiFi WLAN to be reconnected upon the unavailability of say, the domain name of a major search engine starting with G or Y (I was prevented from entering an actual domain name, it was filtered, so pick your own pingable major search engine to consider as what I mean).

I'd like to be able to put a domain name in, so that if any of the current servers that the domain name uses are unreachable, my WiFi WLAN will be fired back up.

2. Time Format

When setting the date format in the time menu, I'd like to be able to enter a custom format, so I can have something like: "dd-mmm-yyyy" or what have you.

3. WWAN

It seems that within the Gargoyle menues one can only setup one potential WWAN. I'd like to be able to have multiple such entries, so that if the first WWAN entry is not up, it will simply move to the 2nd one and so forth. I'd say being able to setup at least 3 would be enough, but certainly a backup WWAN would definitely seem appropriate (granted, unlimited entries is the most sensible).

4. Local Network / LAN DNS

Why not have a combination of being able to pick a "non-custom" choice from the list and then have the ability to add 3 custom entries below. So first, it would try to get your ISP's DNS servers, but if they were all down, it would default to IP addresses you entered to go after that in /etc/resolv.conf file.

Stuart
Very Respectfully,

Stuart, N3GWG
Computer Scientist

Lantis
Moderator
Posts: 6753
Joined: Mon Jan 05, 2015 5:33 am
Location: Australia

Re: A few good ideas?

Post by Lantis »

1. Would you not just ping 8.8.8.8, the DNS of said well name search engine starting with G?

2. We can't accommodate absolutely every variant, but i'll look if this is doable.
Some variants make more sense in English than other languages, which makes implementing them particularly painful.

3. Sure, i've just written a plugin for this and it's awaiting feedback.
https://github.com/ericpaulbishop/gargoyle/pull/836

4. Again one of those "we can't support infinitely many variants" questions. The solution is to just use custom and add your ISP DNS servers first manually.
http://lantisproject.com/downloads/gargoyle_ispyisail.php for the latest releases
Please be respectful when posting. I do this in my free time on a volunteer basis.

stuartbh
Posts: 76
Joined: Sun Oct 20, 2019 4:18 pm

Re: A few good ideas?

Post by stuartbh »

Dear Sir,

Let me start out by saying I am not trying to be argumentative (as there is no reason to be, I can add whatever I want to the source code with or without your approval). I am merely trying to provide some context for why I think these features might be beneficial to the greater aggregate of Gargoyle users.
1. Would you not just ping 8.8.8.8, the DNS of said well name search engine starting with G?
I suppose I’d be curious why you would think it is best to be tied to a single IP address when a domain allows you to be fully unconcerned about if a domain changes its IPs or one goes down, or whatever. Most providers round robin their servers if you ping the domain, so surely you must see the superiority in such an approach. Granted, I am willing to try to work on making these code changes and doing the programming, if time or more pressing concerns in Gargoyle are why you reject this idea, but the prima facia basis for adding this feature would seem to inarguable.
2. We can't accommodate absolutely every variant, but i'll look if this is doable.

Some variants make more sense in English than other languages, which makes implementing them particularly painful.
I can surely realize your posture here with this, that is why I’d suggest allowing someone to just type in their own format string (not sure if it is Linux date command based, or python library based or what), but if Linux date, something like “+% blah blah”. Then you just display as they request it.
3. Sure, i've just written a plugin for this and it's awaiting feedback.
I presume it is rolled into the 1.11 experimental code base? If so, can you point me to where I can grab the official code base and generate a new binary for my WNDR3700v2, that’d be great.

It would seem it is on github under ericpaulbishop, is that correct? I know how to get the http address and do a git clone or git pull.

Speaking of the code base I have a few other questions…

Are there any instructions for generating a x86_64 VM to test the code base using a virtual machine (presume Fusion or ESXi as where it’d run)?

Let me preface this with: I am no git expert, nor do I play one on TV! However, I’d like to pull the code base (I can do a git clone) and then create a branch for my changes (I’ll submit them), but even if unaccepted, I’d like to be able to pull new code base updates on your branch and then test mine again (say when 1.12 comes out). Can you provide any guidance on how I’d do that? I have a mac and have installed git via brew.
4. Again one of those "we can't support infinitely many variants" questions. The solution is to just use custom and add your ISP DNS servers first manually.
I would suppose there is a good compromise here. If the code simply allowed on to pick multiple options (say using radio buttons instead of a drop down list), then each option could be placed into /etc/resolv.conf and very little additional code would need to be written and there’d be no “infinitely many variants” that would require changes in the future.

Other features that interest me:

Is there a configuration option to forward all HTTP requests to the router’s configuration menus to HTTPS? Sometime I forget to type https in before the IP address.

I would like to add a list of wired hosts to the “Connected hosts” screen and as well somehow show if they are connecting using 10, 100, or Gig-E connections.

Further consideration is that maybe I am best to write some of these features as a plugin, that way people could choose to use them or not and it would not change the code base as you’d prefer it to be by default.

By the way, I know the password for my router and logged into it. Upon attempting to setup a USB Storage I was again prompted for the password (why that is requisite when I’ve already logged in is itself perplexing), however, upon proffering the password I am then informed it is invalid! HUH?

Stuart, N3GWG
Computer Scientist
Very Respectfully,

Stuart, N3GWG
Computer Scientist

ispyisail
Moderator
Posts: 5185
Joined: Mon Apr 06, 2009 3:15 am
Location: New Zealand

Re: A few good ideas?

Post by ispyisail »

@Stuart

We are all volunteers and as such we choose things that interest us. This is different to a commercial product where products are built around what the customer wants.

Your ideas are all good, if you have the skills you can add them.

If you want to go down this path just check with Eric or Lantis first. They don't accept all code for various reasons.

Having said that nothing stopping anybody creating there own branch.

My recommendation is start creating you own build (default) to see what involved.

viewtopic.php?f=14&t=11883

Lantis
Moderator
Posts: 6753
Joined: Mon Jan 05, 2015 5:33 am
Location: Australia

Re: A few good ideas?

Post by Lantis »

1.
I just don't really see any time i'd have an advantage in pinging an FQDN instead of an IP. The idea doesn't capture my imagination, so i'm not going to sink time into it.
I'm sure there are use cases, but it's small fish as far as i'm concerned.
If you or anyone else wants to send a PR with a change that enables this, and it's done properly, i'm happy to bring it in. On the surface, it's only a 5 line change.
https://github.com/ericpaulbishop/gargo ... js#L23-L26
and
https://github.com/ericpaulbishop/gargo ... dog.sh#L30
But the devil is in:
- Regression testing
- Cleaning up the interface
- Retranslating strings as required

2.
Gargoyle is designed to be a simple user friendly interface. I don't think this fits the bill.
It could be perhaps exposed as a custom option via:
https://github.com/ericpaulbishop/gargo ... nt_time.sh
using something like
uci set gargoyle.global.dateformat='custom'
uci set gargoyle.global.customdatestring='%d/%m/%y'
and appropriate shell checks. However there are a few different places time formats are implemented (unfortunately) and this is only one of them.
Again, i wouldn't expose this via the GUI, only an option in the script that an endeavouring using could add at the CLI.

3.
It will end up in master (1.11.x) soon-ish. I'm just waiting any last minute feedback.
You can grab it from here once it is merged:
https://github.com/ericpaulbishop/gargoyle
Build instructions are on the github site and in the wiki.
wndr3700v2 is under ar71xx.usb_large

You can generate an image for ESXi via the x86.x84 target/profile.
The image usually needs to be processed into a vmdk or similar depending on what your VM environment takes. Generic instructions for 'Openwrt on ESXi/Hyper-V/VirtualBox' etc are applicable to Gargoyle as well.

The use of git is probably a whole subject to it's own, which i'd encourage you to research outside of the forum first (for the basics of clone, pull, push, commit etc). For project specifics, again see the instructions on the github page.
If you're feeling like you're approaching actually submitting something, give this one a browse as well:
https://github.com/ericpaulbishop/gargo ... IBUTING.md

As for being able to keep your local repository in sync with upstream, the best methodology is to keep your changes in a separate branch, and keep master up to date via a fetch/pull. You can then keep your feature branch up to date with master via a local merge. Try making all of these merges "fast-forward" to avoid ugly merge commit messages where they aren't necessary.

4.
Maybe. Again, it seems a little complicated when it can already be achieved.
One of the things with checkboxes is if you add more than 1, and people don't understand them, they just tick everything.
"Well 2 must be better than 1 DNS server, because 2 is a bigger number than 1". A dropdown with 1 option is simple and clear, with custom allowing for flexibility if needed.
Again, if you feel strongly about it and want to put in the effort, and it's done right, i'm more likely to accept it.

Your other questions in quick fire succession:
uci set uhttpd.main.redirect_https='1'

Not very reliable. The concept of a "connected wired host" is loose at best, and can only be determined by arp/ping/known dhcp leases, and only if the client is cooperative.

Plugins are great if you have a niche or not often used feature. I'm not sure anything you've written so far warrants a plugin all to itself, but it's a good option.

Can you provide additional details in a separate thread RE: usb storage issues?
The only time you should be prompted for a password there is when formatting the disk, as a failsafe measure.
http://lantisproject.com/downloads/gargoyle_ispyisail.php for the latest releases
Please be respectful when posting. I do this in my free time on a volunteer basis.

Post Reply