diff --git a/ide/static/ide/js/libpebble/mixedsocket.js b/ide/static/ide/js/libpebble/mixedsocket.js index cc578bcd..534c248b 100644 --- a/ide/static/ide/js/libpebble/mixedsocket.js +++ b/ide/static/ide/js/libpebble/mixedsocket.js @@ -82,7 +82,8 @@ } else if(data.event == 'dns_survey') { CloudPebble.Analytics.addEvent('cloudpebble_dns_survey', { resolved: data.eventData.resolved, - target_ip: mIP + target_ip: mIP, + rev: 2 }); } self.trigger(data.event, data.eventData); @@ -96,6 +97,7 @@ var mTargetIP = null; var mTargetPort = null; var mTestingDNS = true; + var mDidConnect = false; // This should be a no-op but makes my editor stop whining about undefined variables. if(!window.gParentWindow) { @@ -126,6 +128,12 @@ mSocket = null; } + function doFallback() { + mTestingDNS = false; + destroyWebsocket(); + createWebSocket('ws://' + mTargetIP + ':' + mTargetPort + '/'); + } + function handleFrameMessage(e) { var data = e.data; if(data.action == 'connect') { @@ -151,25 +159,22 @@ } function handleOpen() { + mDidConnect = true; sendEvent('open'); sendEvent('dns_survey', {resolved: mTestingDNS}); } function handleClose(e) { - if(!e.wasClean && mTestingDNS) { - mTestingDNS = false; - destroyWebsocket(); - createWebSocket('ws://' + mTargetIP + ':' + mTargetPort + '/'); + if(!mDidConnect && !e.wasClean && mTestingDNS) { + doFallback(); return; } sendEvent('close', {wasClean: e.wasClean}); } function handleError(e) { - if(mTestingDNS) { - mTestingDNS = false; - destroyWebsocket(); - createWebSocket('ws://' + mTargetIP + ':' + mTargetPort + '/'); + if(!mDidConnect && mTestingDNS) { + doFallback(); return; } var object = {}; diff --git a/utils/keen_helper.py b/utils/keen_helper.py index 74c60c15..18e70371 100644 --- a/utils/keen_helper.py +++ b/utils/keen_helper.py @@ -59,7 +59,7 @@ def send_keen_event(collections, event, data=None, request=None, project=None, u 'referrer': request.META.get('HTTP_REFERER'), 'user_agent': request.META.get('HTTP_USER_AGENT'), 'path': request.path, - 'ip': request.META.get('HTTP_X_FORWARDED_FOR', request.META['REMOTE_ADDR']), + 'ip': request.META.get('HTTP_X_FORWARDED_FOR', request.META['REMOTE_ADDR']).split(',')[0], 'url': request.build_absolute_uri(), }