Hide this bar

OpenVPN GUI

A simple GUI for starting and stopping a OpenVPN daemon. Also displays VPN IP.

 

 

Version 0.1.3 Status Testing
Developer Source Category Settings
Instructions No Information Homepage http://marco.cakebox.net/?topic=dls&pkid=32

 

 

« Go back

 

   

 

 

 

Rating: 0

Rate:

 

 

 

 

 

 

 

Comments

» Write your own comment

 
gonzo wrote: (2009-03-10 14:17:16)
NameError: global name 'ovpnStart' is not defined

--- /usr/local/bin/ovpngui.py Tue Mar 10 14:11:19 2009
+++ /usr/local/bin/ovpngui.py.orig Tue Mar 10 14:09:03 2009
@@ -52,14 +52,14 @@

""" You clicked 'Start' button, let's start the openvpn daemon """
def btnStartClicked( self, widget, data = None ):
- output = os.popen ( self.ovpnStart, "r")
+ output = os.popen ( ovpnStart, "r")
text = output.read ()
print text
return True

""" You clicked 'Stop' button, let's stop the daemon """
def btnStopClicked( self, widget, data = None ):
- output = os.popen ( self.ovpnStop, "r")
+ output = os.popen ( ovpnStop, "r")
text = output.read ()
print text
return True
 
gonzo wrote: (2009-03-10 14:19:33)
What's about passphrase-handling ?
More than one config ?
 
Source wrote: (2009-03-11 17:47:17)
THose changes are in 0.1.3 when I put it up.
Passphrase-hanling ?
Sorry, but I don't what that's about..
post a url to some info about it and I can see what I can do about it.
 
gonzo wrote: (2009-03-15 23:33:40)
the following quick-hack
+enables passphrase-handling
+allows tun0 or tap0 devices

opkg install http://www.angstrom-distribution.org/unstable/armv4t/python/python-pexpect_2.1-r0_armv4t.ipk
ln -s /usr/lib/python2.5/site-packages/pxssh.pyo /usr/lib/python2.6/
ln -s /usr/lib/python2.5/site-packages/pxssh.py /usr/lib/python2.6/
ln -s /usr/lib/python2.5/site-packages/fdpexpect.py /usr/lib/python2.6/
ln -s /usr/lib/python2.5/site-packages/fdpexpect.pyo /usr/lib/python2.6/
ln -s /usr/lib/python2.5/site-packages/pexpect.py /usr/lib/python2.6/
ln -s /usr/lib/python2.5/site-packages/pexpect.pyo /usr/lib/python2.6/

diff -Nru /tmp/ovpngui.py{.orig-0.1.3,}
--- /tmp/ovpngui.py.orig 2009-03-15 23:23:42.000000000 +0100
+++ /tmp/ovpngui.py 2009-03-15 23:28:57.000000000 +0100
@@ -29,13 +29,47 @@
import struct
import array
import gobject
+import pexpect
+import sys

class ovpngui:
+ ovpn = "/etc/init.d/openvpn"
ovpnStart = "/etc/init.d/openvpn start"
ovpnStop = "/etc/init.d/openvpn stop"
ovpnLogFile = "/path/to/logfile.log"
ovpnAbout = "<b>About:</b>\nOpenVPN GUI\n\nBuilt by:\n|Marco| on FreeNode\n(IRC)"

+ def responseToDialog(self, entry, dialog, response):
+ dialog.response(response)
+ def getText(self):
+ #base this on a message dialog
+ dialog = gtk.MessageDialog(
+ None,
+ gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
+ gtk.MESSAGE_QUESTION,
+ gtk.BUTTONS_OK,
+ None)
+ dialog.set_markup('Please enter your <b>Passphrase</b>:')
+ #create the text input field
+ entry = gtk.Entry()
+ entry.set_visibility(False)
+ #allow the user to press enter to do ok
+ entry.connect("activate", self.responseToDialog, dialog, gtk.RESPONSE_OK)
+ #create a horizontal box to pack the entry and a label
+ hbox = gtk.HBox()
+ hbox.pack_start(gtk.Label("Passphrase:"), False, 5, 5)
+ hbox.pack_end(entry)
+ #some secondary text
+ dialog.format_secondary_markup("This will be used for <i>identification</i> purposes")
+ #add it and show it
+ dialog.vbox.pack_end(hbox, True, True, 0)
+ dialog.show_all()
+ #go go go
+ dialog.run()
+ text = entry.get_text()
+ dialog.destroy()
+ return text
+
""" log reader """
def readLogFile( self, logfile ):
print "Read logfile"
@@ -48,14 +82,15 @@

""" You clicked 'Start' button, let's start the openvpn daemon """
def btnStartClicked( self, widget, data = None ):
- output = os.popen ( ovpnStart, "r")
- text = output.read ()
- print text
+ child = pexpect.spawn(self.ovpn, ['start'])
+ child.logfile_read = sys.stdout
+ child.expect('Enter Private Key Password:')
+ child.sendline(self.getText())
return True

""" You clicked 'Stop' button, let's stop the daemon """
def btnStopClicked( self, widget, data = None ):
- output = os.popen ( ovpnStop, "r")
+ output = os.popen ( self.ovpnStop, "r")
text = output.read ()
print text
return True
@@ -78,7 +113,7 @@

def interfaceStatus ( self, data = None ):
""" VPN Check """
- if self.ifaceUpDown('tun0') == 1:
+ if (self.ifaceUpDown('tun0') == 1) or (self.ifaceUpDown('tap0') == 1):
self.btnStart.set_sensitive( False )
self.btnStop.set_sensitive( True )
self.lblStat.set_markup( '<b><span color="green">VPN Tunnel is UP</span></b>' )
@@ -86,7 +121,7 @@
vpnTunIp = "<b>VPN:</b> %s" % ( tip )
self.lblVpn.set_markup( vpnTunIp )

- elif self.ifaceUpDown('tun0') == 0:
+ elif (self.ifaceUpDown('tun0') == 0) or (self.ifaceUpDown('tap0') == 0):
self.btnStart.set_sensitive( True )
self.btnStop.set_sensitive( False )
self.lblStat.set_markup( '<b><span color="red">VPN Tunnel is DOWN</span></b>' )
 
Source wrote: (2009-03-17 00:18:07)
It didn't work on my vpn connection, no dialog. got some consol output, but nothing more :/
 
source wrote: (2009-03-17 15:11:32)
gonzo: spot me a email so I can dump some outputs to you.
You'll find my email on my site.
 
gonzo wrote: (2009-03-17 15:49:29)
You must generate a key with a passphrase.
Only on expected output 'Enter Private Key Password:' the dialog pop up.

 

 

     

    Your Name
    Comment
     
      Notify me about new comments

     

     
    Home

    Package Browser

    • Audio
    • Games
    • GPS
    • Graphics
    • Internet
    • PIM/Office
    • Settings
    • System
    • Utility
    • Video

    News

    • Notification system up and running
    • www.opkg.org - Relaunch!
    • Source code field added!
    • Second site update!
    • First big site update
    Help Developer Contact

     

    Pulster Online-Shop