Minor issue in Status -> OpenVPN page
- 
 Using latest 2.1-BETA, when navigating to page Status -> OpenVPN, the buttons in the upper-right section reflect the running status / restart / stop of the wrong service, namely dnsmasq instead of openvpn. 
- 
 Might check again on the next snapshot after the one you're on. I'm synced to the latest code and it's not doing that for me. I was doing quite a lot of work on that shortcut bar this weekend and it's possible that certain snapshots didn't have a complete set of the code. 
- 
 Just upgraded to 2.1-BETA0 built on Sun Aug 12 15:48:03 EDT 2012 and the issue remains (I also checked the html source just in case) 
- 
 Could swear I replied to this but perhaps it was just as something was moved in the DC… What is the exact URL you're on when this happens? And do you have a screenshot or something similar showing how it's linking to the wrong place? I still can't reproduce it, and the code definitely isn't pointing the openvpn status page to dnsmasq... 
- 
 Me too: 
 2.1-BETA0 (i386)
 built on Sun Aug 12 15:48:49 EDT 2012
 FreeBSD 8.3-RELEASE-p4I started on a test system without any OpenVPN defined. At https://192.168.12.1/vpn_openvpn_server.php or status_openvpn.php I hover over the: 
 Green arrow button - "dnsmasq Service is Running"
 Restart button - "Restart dnsmasq Service"
 Stop button - "Stop dnsmasq Service"Then added an OpenVPN shared-key Server, the results are the same. I noticed that at one stage in the commits for this, the OpenVPN services bit was commented out in shortcuts.inc: //$shortcuts['openvpn']['service'] = "openvpn";But it is back in now (and in my snapshot). I am not really sure what the running/restart/stop buttons are supposed to do in this context - there could be lots of OpenVPN Servers and Clients defined/listed on the page, or none at all. Is the button supposed to restart/stop all of them? Should the button not be there if there are no OpenVPN instances defined? With the current code, in fbegin.inc: 
 a) $shortcut_section="openvpn" - good
 b) $vpnid = "" - not so good
 It calls find_service_by_openvpn_vpnid($vpnid) - the blank parameter makes this fall through to returning the first array (service) that get_services finds. That happens to be "dnsmasq" on many systems
 if(isset($config['dnsmasq']['enable'])) {…It needs $vpnid defined in fbegin.inc - but I can't see a sensible way to define it. Of course, if I edit a particular OpenVPN Server instance, then the buttons do the sensible things for that instance. 
- 
 Here is a screenshot of where the problem is - I didn't get it to capture the text when hovering. There are some bits of debugging echo stuff that I added to show the value of $shortcut_section, $vpnid and the array returned as $ssvc.  
 
- 
 Note that this issue happens on the following pages: 
 diag_logs_openvpn.php
 status_openvpn.php
 vpn_openvpn_server.php
 vpn_openvpn_client.php
 vpn_openvpn_csc.php
 diag_logs_auth.php
 status_captiveportal.php
 services_captiveportal_zones.phpThe opening page of each of these has a list of OpenVPN or CaptivePortal objects, or a status or log of zero to many of these objects. So the state/restart/stop buttons don't have a good unique meaning at these places. 
- 
 And on my setup, I don't get start/stop controls on any of those pages. They're only supposed to show up when it can determine a proper/unique service for that page. At first I left the service bit disabled for OpenVPN and captive portal because they needed extra code to determine the right process. Once I finished up that code, I enabled them again. There must be something about the config that's causing it, or perhaps something needs (re)initialized at the start of the code. 
- 
 Try syncing in the two commits I just made and see if it helps. I still can't replicate it here so I'm just guessing… https://github.com/bsdperimeter/pfsense/commit/9cb6bef1e3f71d4eba30118bb0409a39e589a22b 
 https://github.com/bsdperimeter/pfsense/commit/d583aa710a765748b46555a388b8cdd70f327b0b
- 
 The first commit $ssvc = array(): does not do anything to help - but it will do no harm. 
 The second commit does the trick - I was about to try something like this, and you have used the real belts and braces approach to make sure to only match the desired entry.
 I tested on another system that had cron, pfblocker and OpenVPN client export utility. On that system it would say "cron Service is Running" and so on - cron was the first service entry that it came across. The problem was the not set 'vpnid' array entry returns a NULL which was matching the NULL passed in as the $vpnid parameter.
 I have gone to the various OpenVPN and CaptivePortal settings, status and log pages and all seems well.
 I am surprised that you don't see this - I get it on 2 systems I have upgraded - 1 with a minimal config and one with a couple of packages installed and a bunch of OpenVPN links etc. Anyway - thems the breaks.
- 
 I'm surprised I didn't see it either, but no matter how much I clicked around on two separate VMs, it was always as it should have been. I didn't try a fresh VM though. Anyhow, when it does work, it's the best thing since sliced bread. :-) 
