<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri","sans-serif";}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hello,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">When I install the Android VPN client from the Google Play Store on my Motorola DROID RAZR running Android 4.1.2, I’m able to successfully establish a VPN connection, but packets are not being received. When I ping the other endpoint from
the phone, no ping reply is received on the phone. Sniffing on the other endpoint (I can’t easily sniff on this phone), I see the ESP packet come in and an ESP packet go back out (presumably containing the ping request and ping reply). This problem doesn’t
seem to occur on my Galaxy Nexus running a recent AOSP version.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I compiled from source and had the same problem --- but I had been using a previous version of strongSwan with no issues.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">So I went through the git log trying different source code builds.<o:p></o:p></p>
<p class="MsoNormal">Eventually I traced the problem to commit 21dd4c4beab5b3e61dba28eedbc7aad375bdf0a3<o:p></o:p></p>
<p class="MsoNormal">i.e. if I checkout master and run “git revert 21dd4c4beab5b3e61dba28eedbc7aad375bdf0a3”, then build, the app works fine.<o:p></o:p></p>
<p class="MsoNormal">Any thoughts on the problem?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The log entry says:<o:p></o:p></p>
<p class="MsoNormal">commit 21dd4c4beab5b3e61dba28eedbc7aad375bdf0a3<o:p></o:p></p>
<p class="MsoNormal">Author: Martin Willi <martin@revosec.ch><o:p></o:p></p>
<p class="MsoNormal">Date: Fri Feb 22 14:55:03 2013 +0100<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> Without MOBIKE, update remote host only if it is behind NAT<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The source code diff:<o:p></o:p></p>
<p class="MsoNormal">diff --git a/src/libcharon/sa/ike_sa.c b/src/libcharon/sa/ike_sa.c<o:p></o:p></p>
<p class="MsoNormal">index ea15ff2..0157599 100644<o:p></o:p></p>
<p class="MsoNormal">--- a/src/libcharon/sa/ike_sa.c<o:p></o:p></p>
<p class="MsoNormal">+++ b/src/libcharon/sa/ike_sa.c<o:p></o:p></p>
<p class="MsoNormal">@@ -900,7 +900,7 @@ METHOD(ike_sa_t, update_hosts, void,<o:p></o:p></p>
<p class="MsoNormal"> else<o:p></o:p></p>
<p class="MsoNormal"> {<o:p></o:p></p>
<p class="MsoNormal"> /* update our address in any case */<o:p></o:p></p>
<p class="MsoNormal">- if (!me->equals(me, this->my_host))<o:p></o:p></p>
<p class="MsoNormal">+ if (force && !me->equals(me, this->my_host))<o:p></o:p></p>
<p class="MsoNormal"> {<o:p></o:p></p>
<p class="MsoNormal"> set_my_host(this, me->clone(me));<o:p></o:p></p>
<p class="MsoNormal"> update = TRUE;<o:p></o:p></p>
<p class="MsoNormal">@@ -909,7 +909,8 @@ METHOD(ike_sa_t, update_hosts, void,<o:p></o:p></p>
<p class="MsoNormal"> if (!other->equals(other, this->other_host))<o:p></o:p></p>
<p class="MsoNormal"> {<o:p></o:p></p>
<p class="MsoNormal"> /* update others address if we are NOT NATed */<o:p></o:p></p>
<p class="MsoNormal">- if (force || !has_condition(this, COND_NAT_HERE))<o:p></o:p></p>
<p class="MsoNormal">+ if ((has_condition(this, COND_NAT_THERE) &&<o:p></o:p></p>
<p class="MsoNormal">+ !has_condition(this, COND_NAT_HERE)) || force )<o:p></o:p></p>
<p class="MsoNormal"> {<o:p></o:p></p>
<p class="MsoNormal"> set_other_host(this, other->clone(other));<o:p></o:p></p>
<p class="MsoNormal"> update = TRUE;<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>