benjarobbi/get-a-robot-vpnc

Patch for vpnc PID detection

Opened this issue · 11 comments

On my Froyo (visible with many custom roms) I saw the issue that the detection 
of the running vpnc PID did not work.
Attached mini patch seems to solve it for me.

Thanks for your good work.

Original issue reported on code.google.com by nikolas....@gmail.com on 11 Sep 2010 at 11:21

Attachments:

I can confirm this Issue on "Leedroid 2.1" (FroYo Rom). I get "Failed to 
connect" though it connects just fine to the vpn (with "ip rul del table wifi").

If i go to console i get no output on "ps | grep 'vpnc$'" but i get output for 
"ps | grep '[v]pnc --script'".

How can i use this patch? I have no idea how to compile it. 

Original comment by melethro...@googlemail.com on 23 Sep 2010 at 7:04

Managed to change apk in the meantime. I know now where the Issues lies. It 
depends on the BusyBox Version. They changed "ps" in 1.17

For Busybox version < 1.17 "ps | grep 'vpnc$'" works
For Busybox Version >= 1.17 "ps | grep '[v]pnc --script"

A Busybox Version check should be integrated in "get-a-robot-vpnc". But it 
looks like the devs aren't really active atm. I managed to apply the above 
patch but i can't code and have no idea how to rewrite the code to check 
busybox version. 

An alternative to a busybox check would be to use both commands to check if the 
vpnc process is running. This shouldn't be hard to code. Something like that:

if "ps | grep 'vpnc$'" has no output
 then 
   if "ps | grep '[v]pnc --script'" no output
    then not connected
   else -> connected
else -> connected 

This should really be implemented since there are ROMs out there that don't use 
the outdated busybox 1.16....

Original comment by melethro...@googlemail.com on 30 Oct 2010 at 9:46

Can somebody compile v0.99 with this patch applied, please ?
I'm using Leedroid 2.2 f and didn't manage to do so.
The Target-Network is an open Wifi, but one has to connect to the VPN to have 
Internet-access.

The default v0.99 says it can't connect. The following Version connects, but I 
can't surf the internet. 
http://code.google.com/p/get-a-robot-vpnc/issues/detail?id=38&sort=-id#c8

please help

thanks

Original comment by nrwv...@googlemail.com on 25 Nov 2010 at 8:39

As per request a working .apk with my little patches. Tested with LeeDroid 2.2f:
- needs busybox 1.17.x
- tun.ko loaded or available in /lib/modules/tun.ko or 
/system/lib/modules/tun.ko

Original comment by nikolas....@gmail.com on 27 Nov 2010 at 10:48

Attachments:

I'm using get-a-robot-vpn-frontend.apk from nikolas.pooch, Nov 27, 2010 and 
connection to Cisco is OK, but I cannot disconnect using the frontend. 
Disconect can be done only by disable Wifi/GPRS. I have HTC Desire with 
Leedroid 2.3d (i've tested 2.3a,b,c with same trouble). Blue LED is still 
ligh-on }can be switche off by command in terminal). Busybox in Leedroid is 
1.18.1. 

Original comment by ing.daniel.jan@gmail.com on 10 Jan 2011 at 9:26

Lee made a custom busybox when 2.3 came out (i told him on xda thats not a nice 
idea because it may cause issues with apps that use it). Since the apk uses 
busybox to "kill" vpnc im pretty sure the issue lies there. 

You can try to install busybox 1.72.2. It should work with that version.

Original comment by melethro...@googlemail.com on 10 Jan 2011 at 10:58

Thank's for your advice. Do I have to do S-OFF on my phone to get another 
version of busybox then installed in Leedroid 2.3d? I have only rooted phone. 
Thanks for answer.

Original comment by ing.daniel.jan@gmail.com on 11 Jan 2011 at 7:02

[deleted comment]
Using the patched version linked above removes the PID failure of the 'stock' 
.99, but I'm getting a different error below and it fails to work.  Any help 
appreciated.

02-08 11:18:40.843  1249  1402 I ActivityManager: Starting activity: Intent { 
act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] 
flg=0x10200000 cmp=org.codeandroid.vpnc_frontend/.VPNC }
02-08 11:18:40.936  1249  1406 I ActivityManager: Start proc 
org.codeandroid.vpnc_frontend for activity org.codeandroid.vpnc_frontend/.VPNC: 
pid=2351 uid=10155 gids={1015}
02-08 11:18:46.999  2351  2351 D VPN_Connections: long press handler, handling 
the choice


02-08 11:19:15.194  2351  2351 D VPN_Connections: NetworkDatabase:singleNetwork 
- Start
02-08 11:19:15.952  2351  2510 D VPN_Connections: Enter IPSec gateway address:
02-08 11:19:15.952  2351  2510 D VPN_Connections: XXXX
02-08 11:19:15.952  2351  2510 D VPN_Connections: Enter IPSec ID for XXXX:
02-08 11:19:15.952  2351  2510 D VPN_Connections: group id: XXXX
02-08 11:19:15.960  2351  2510 D VPN_Connections: Enter IPSec secret for XXXX:
02-08 11:19:15.960  2351  2510 D VPN_Connections: group pwd XXX
02-08 11:19:15.960  2351  2510 D VPN_Connections: Enter username for 
yyy.yyy.yyy:
02-08 11:19:15.960  2351  2510 D VPN_Connections: user XXXX
02-08 11:19:15.960  2351  2510 D VPN_Connections: Enter password for XXXXX
02-08 11:19:15.968  2351  2510 D VPN_Connections: password ***********
02-08 11:19:15.975  2351  2510 D VPN_Connections: done interacting with vpnc
02-08 11:19:15.975  2351  2510 D VPN_Connections: process stderr:
02-08 11:19:15.975  2351  2510 D VPN_Connections:
02-08 11:19:16.038  2351  2510 D VPN_Connections: Read vpnc process line as null
02-08 11:19:16.038  2351  2510 D VPN_Connections: Attempt to read vpnc process 
id did not return anything
02-08 11:19:16.038  2351  2510 D VPN_Connections: process had died, return as 
failed connection

Original comment by bradford...@gmail.com on 8 Feb 2011 at 7:40

I got problems with this version too.

If anyone still have issues. here's what worked for me:
VPNC-debug.apk from this thread: 
http://code.google.com/p/get-a-robot-vpnc/issues/detail?id=38
and slightly modified vpnc-script

Original comment by antra...@gmail.com on 20 Feb 2011 at 4:37

Attachments:

I have problems running vpnc on SAMSUNG Galaxy tab. Here is how I fixed them.

By default busybox is installed in /system/xbin. More of the tools used in 
vpnc-script as awk, sed, ip, ifconfig, route... are suppose to use versions 
provided by busybox. In addition the stock android system provides a "toolbox" 
which is located in /system/bin. Some of the tools are available in both 
binaries and because the $PATH variable is "/system/bin/:/system/xbin" I 
changed the vpnc-script:

--- vpnc-script 2010-06-12 13:08:30.000000000 +0300
+++ vpnc-script_v099.vilkata    2011-03-22 10:01:29.000000000 +0200
@@ -44,7 +44,7 @@

 # =========== script (variable) setup ====================================

-PATH=/sbin:/usr/sbin:$PATH
+PATH=/system/xbin/:/sbin:/usr/sbin:$PATH

 OS="`uname -s`"
 FULL_SCRIPTNAME=/system/bin/vpnc




I managed to fix "no PID detection" issue with using stock "ps" command from 
/system/bin/toolsbox instead /system/xbin/busybox by just removing ps 
association to busybox:

adb shell
$ su
# busybox mount -o rw,remount /system
# rm /system/xbin/ps

Verify that there is /system/bin/ps tool available, and if not create the link

# cd /system/bin
# ln -s toolbox ps

Finally for the DNS issue I used this:  
http://code.google.com/p/get-a-robot-vpnc/issues/detail?id=139

Original comment by vge...@gmail.com on 22 Mar 2011 at 10:02