rhodes 3.2.2 → 3.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +6 -0
- data/lib/framework/rho/rhoapplication.rb +16 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesActivity.java +1 -1
- data/platform/bb/RubyVM/src/com/rho/RhodesApp.java +4 -0
- data/platform/bb/rhodes/src/com/rho/rubyext/System.java +2 -0
- data/platform/bb/rhodes/src/rhomobile/RhodesApplication.java +1 -2
- data/platform/iphone/Classes/Rhodes.m +1 -1
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Info.plist +1 -1
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/MacOS/RhoSimulator +0 -0
- data/platform/shared/common/RhodesApp.cpp +6 -1
- data/platform/shared/common/RhodesApp.h +3 -0
- data/platform/shared/db/DBAdapter.cpp +6 -5
- data/platform/shared/db/DBAdapter.h +1 -1
- data/platform/shared/net/CURLNetRequest.cpp +1 -1
- data/platform/shared/rubyext/System.cpp +8 -0
- data/platform/win32/RhoSimulator/RhoSimulator.exe +0 -0
- data/platform/wm/rhodes/Rhodes.cpp +1 -1
- data/platform/wp7/RhoRubyLib/net/NetRequest.cs +1 -0
- data/version +1 -1
- metadata +4 -4
data/CHANGELOG
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
## 3.2.3
|
2
|
+
* Fix Blob sync issue in Rhoconnect-client
|
3
|
+
* Fix logging issue on iPhone and Android
|
4
|
+
* Fix Cookie issue on Windows phone 7
|
5
|
+
* Implement Security token ruby callback
|
6
|
+
|
1
7
|
## 3.2.2
|
2
8
|
* Fix iPhone build for AppStore
|
3
9
|
* Fix Android infinite loop while using GPS
|
@@ -114,8 +114,23 @@ module Rho
|
|
114
114
|
start_url = Rho::RhoConfig.start_path
|
115
115
|
start_url = "" unless start_url
|
116
116
|
|
117
|
+
security_token_not_passed = System.get_property('security_token_not_passed')
|
118
|
+
security_token_not_passed = false if security_token_not_passed.nil?
|
119
|
+
invalid_security_token_start_path_exist = Rho::RhoConfig.exists? 'invalid_security_token_start_path'
|
120
|
+
invalid_security_token_start_path = Rho::RhoConfig.invalid_security_token_start_path
|
121
|
+
|
122
|
+
if security_token_not_passed
|
123
|
+
if invalid_security_token_start_path_exist
|
124
|
+
start_url = invalid_security_token_start_path
|
125
|
+
else
|
126
|
+
# exit from application - old way
|
127
|
+
puts 'security_token is not passed - application will closed'
|
128
|
+
System.exit
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
117
132
|
puts "on_ui_created.navigate to start url: '#{start_url}'"
|
118
|
-
|
133
|
+
WebView.navigate(start_url)
|
119
134
|
end
|
120
135
|
|
121
136
|
def on_ui_destroyed
|
@@ -518,7 +518,7 @@ public class RhodesActivity extends BaseActivity {
|
|
518
518
|
if(!RhodesApplication.canStart(paramString))
|
519
519
|
{
|
520
520
|
Logger.E(TAG, "This is hidden app and can be started only with security key.");
|
521
|
-
RhodesService.exit();
|
521
|
+
//RhodesService.exit();
|
522
522
|
return;
|
523
523
|
}
|
524
524
|
|
@@ -51,6 +51,7 @@ public class RhodesApp
|
|
51
51
|
Mutex m_mxScreenRotationCallback = new Mutex();
|
52
52
|
String m_strScreenRotationCallback = "", m_strScreenRotationCallbackParams = "";
|
53
53
|
static String m_strStartParameters = "";
|
54
|
+
static boolean m_bSecurityTokenNotPassed = false;
|
54
55
|
|
55
56
|
int m_currentTabIndex = 0;
|
56
57
|
String[] m_currentUrls = new String[5];
|
@@ -86,6 +87,9 @@ public class RhodesApp
|
|
86
87
|
public static void setStartParameters(String szParams ){ m_strStartParameters = (szParams != null? szParams : ""); }
|
87
88
|
public static String getStartParameters(){ return m_strStartParameters; }
|
88
89
|
|
90
|
+
public static void setSecurityTokenNotPassed(boolean is_not_passed) {m_bSecurityTokenNotPassed = is_not_passed;}
|
91
|
+
public static boolean isSecurityTokenNotPassed() {return m_bSecurityTokenNotPassed;}
|
92
|
+
|
89
93
|
RhodesApp(String strRootPath)
|
90
94
|
{
|
91
95
|
m_strRhoRootPath = strRootPath;
|
@@ -389,6 +389,8 @@ public class System {
|
|
389
389
|
Version.SoftVersion ver = Version.getSoftVersion();
|
390
390
|
return ObjectFactory.createString((ver.nMajor < 6 ? "BB" : "WEBKIT")+"/"+DeviceInfo.getSoftwareVersion() );
|
391
391
|
}
|
392
|
+
if (strPropName.equalsIgnoreCase("security_token_not_passed"))
|
393
|
+
return ObjectFactory.createBoolean(RHODESAPP().isSecurityTokenNotPassed());
|
392
394
|
|
393
395
|
return RubyConstant.QNIL;
|
394
396
|
}
|
@@ -1147,8 +1147,7 @@ final public class RhodesApplication extends RhodesApplicationPlatform implement
|
|
1147
1147
|
AppBuildConfig.getItem("security_token").compareTo(m_strSecurityToken) != 0)
|
1148
1148
|
{
|
1149
1149
|
LOG.INFO("This is hidden app and can be started only with security key.");
|
1150
|
-
|
1151
|
-
return;
|
1150
|
+
RhodesApp.setSecurityTokenNotPassed(true);
|
1152
1151
|
}
|
1153
1152
|
|
1154
1153
|
LOG.INFO(" STARTING RHODES: ***----------------------------------*** " );
|
@@ -807,7 +807,7 @@ static Rhodes *instance = NULL;
|
|
807
807
|
if ( !rho_rhodesapp_canstartapp([start_parameter UTF8String], ", ") )
|
808
808
|
{
|
809
809
|
NSLog(@"This is hidden app and can be started only with security key.");
|
810
|
-
exit(EXIT_SUCCESS);
|
810
|
+
//exit(EXIT_SUCCESS);
|
811
811
|
}
|
812
812
|
|
813
813
|
return NO;
|
@@ -7,7 +7,7 @@
|
|
7
7
|
<key>CFBundlePackageType</key>
|
8
8
|
<string>APPL</string>
|
9
9
|
<key>CFBundleGetInfoString</key>
|
10
|
-
<string>RhoSimulator 3.2.
|
10
|
+
<string>RhoSimulator 3.2.2, Copyright 2010-2011 Rhomobile, Inc.</string>
|
11
11
|
<key>CFBundleSignature</key>
|
12
12
|
<string>????</string>
|
13
13
|
<key>CFBundleExecutable</key>
|
Binary file
|
@@ -65,6 +65,7 @@ namespace common{
|
|
65
65
|
|
66
66
|
IMPLEMENT_LOGCLASS(CRhodesApp,"RhodesApp");
|
67
67
|
String CRhodesApp::m_strStartParameters;
|
68
|
+
boolean CRhodesApp::m_bSecurityTokenNotPassed = false;
|
68
69
|
|
69
70
|
class CAppCallbacksQueue : public CThreadQueue
|
70
71
|
{
|
@@ -1572,6 +1573,8 @@ int rho_rhodesapp_canstartapp(const char* szCmdLine, const char* szSeparators)
|
|
1572
1573
|
CRhodesApp::setStartParameters(szCmdLine);
|
1573
1574
|
RAWLOGC_INFO1("RhodesApp", "New start params: %s", strCmdLine.c_str());
|
1574
1575
|
|
1576
|
+
CRhodesApp::setSecurityTokenNotPassed(false);
|
1577
|
+
|
1575
1578
|
const char* szAppSecToken = get_app_build_config_item("security_token");
|
1576
1579
|
if ( !szAppSecToken || !*szAppSecToken)
|
1577
1580
|
return 1;
|
@@ -1587,8 +1590,10 @@ int rho_rhodesapp_canstartapp(const char* szCmdLine, const char* szSeparators)
|
|
1587
1590
|
else
|
1588
1591
|
strCmdLineSecToken = tmp;
|
1589
1592
|
}
|
1593
|
+
int result = strCmdLineSecToken.compare(szAppSecToken) != 0 ? 0 : 1;
|
1594
|
+
CRhodesApp::setSecurityTokenNotPassed(!result);
|
1590
1595
|
|
1591
|
-
return
|
1596
|
+
return result;
|
1592
1597
|
}
|
1593
1598
|
|
1594
1599
|
} //extern "C"
|
@@ -64,6 +64,7 @@ private:
|
|
64
64
|
String m_strLoadingPagePath, m_strLoadingPngPath;
|
65
65
|
String m_strStartUrl, m_strOptionsUrl, m_strRhobundleReloadUrl;//, m_strFirstStartUrl;
|
66
66
|
static String m_strStartParameters;
|
67
|
+
static boolean m_bSecurityTokenNotPassed;
|
67
68
|
String m_strRhoMessage;
|
68
69
|
String m_EmptyString;
|
69
70
|
|
@@ -111,6 +112,8 @@ public:
|
|
111
112
|
const String& getLoadingPagePath(){return m_strLoadingPagePath; }
|
112
113
|
|
113
114
|
static void setStartParameters(const char* szParams ){ m_strStartParameters = (szParams ? szParams : ""); }
|
115
|
+
static void setSecurityTokenNotPassed(boolean is_not_passed) {m_bSecurityTokenNotPassed = is_not_passed;}
|
116
|
+
static boolean isSecurityTokenNotPassed() {return m_bSecurityTokenNotPassed;}
|
114
117
|
static const String& getStartParameters(){ return m_strStartParameters; }
|
115
118
|
|
116
119
|
const String& getAppBackUrl();
|
@@ -137,7 +137,7 @@ void CDBAdapter::open (String strDbPath, String strVer, boolean bTemp)
|
|
137
137
|
return;
|
138
138
|
|
139
139
|
LOG(INFO) + "Open DB: " + strDbPath;
|
140
|
-
close();
|
140
|
+
//close();
|
141
141
|
|
142
142
|
m_mxRuby.create();
|
143
143
|
m_strDbPath = strDbPath;
|
@@ -660,7 +660,7 @@ void CDBAdapter::setBulkSyncDB(String fDataName, String strCryptKey)
|
|
660
660
|
db.close();
|
661
661
|
|
662
662
|
String dbOldName = m_strDbPath;
|
663
|
-
close();
|
663
|
+
close(false);
|
664
664
|
|
665
665
|
CRhoFile::deleteFilesInFolder(RHODESAPPBASE().getBlobsDirPath().c_str());
|
666
666
|
|
@@ -753,7 +753,7 @@ String strTrigger = String("CREATE TRIGGER rhodeleteSchemaTrigger BEFORE DELETE
|
|
753
753
|
*/
|
754
754
|
}
|
755
755
|
|
756
|
-
void CDBAdapter::close()
|
756
|
+
void CDBAdapter::close(boolean bCloseRubyMutex/* = true*/)
|
757
757
|
{
|
758
758
|
for (Hashtable<String,sqlite3_stmt*>::iterator it = m_mapStatements.begin(); it != m_mapStatements.end(); ++it )
|
759
759
|
sqlite3_finalize( it->second );
|
@@ -769,7 +769,8 @@ void CDBAdapter::close()
|
|
769
769
|
m_ptrCrypt = 0;
|
770
770
|
m_strCryptKey = "";
|
771
771
|
|
772
|
-
|
772
|
+
if ( bCloseRubyMutex )
|
773
|
+
m_mxRuby.close();
|
773
774
|
}
|
774
775
|
|
775
776
|
int CDBAdapter::prepareSqlStatement(const char* szSql, int nByte, sqlite3_stmt **ppStmt)
|
@@ -1162,7 +1163,7 @@ CRubyMutex::CRubyMutex(boolean bIgnore) : m_nLockCount(0), m_valThread(0), m_val
|
|
1162
1163
|
|
1163
1164
|
void CRubyMutex::create()
|
1164
1165
|
{
|
1165
|
-
if ( !m_bIgnore )
|
1166
|
+
if ( !m_bIgnore && !m_valMutex)
|
1166
1167
|
m_valMutex = rho_ruby_create_mutex();
|
1167
1168
|
}
|
1168
1169
|
|
@@ -109,7 +109,7 @@ public:
|
|
109
109
|
~CDBAdapter(void){}
|
110
110
|
|
111
111
|
void open (String strDbPath, String strVer, boolean bTemp);
|
112
|
-
void close();
|
112
|
+
void close(boolean bCloseRubyMutex = true);
|
113
113
|
sqlite3* getDbHandle(){ return m_dbHandle; }
|
114
114
|
CDBAttrManager& getAttrMgr(){ return m_attrMgr; }
|
115
115
|
|
@@ -417,7 +417,7 @@ int CURLNetRequest::getResponseCode(CURLcode err, char const *body, size_t bodys
|
|
417
417
|
RAWTRACE1("RESPONSE----- (%d bytes)", bodysize);
|
418
418
|
if ( !rho_conf_getBool("log_skip_post") )
|
419
419
|
{
|
420
|
-
|
420
|
+
RAWTRACE_DATA(body, bodysize);
|
421
421
|
}
|
422
422
|
RAWTRACE("END RESPONSE-----");
|
423
423
|
}
|
@@ -123,6 +123,14 @@ VALUE rho_sys_get_property(char* szPropName)
|
|
123
123
|
|
124
124
|
if (strcasecmp("has_sqlite",szPropName) == 0)
|
125
125
|
return rho_ruby_create_boolean(1);
|
126
|
+
|
127
|
+
if (strcasecmp("security_token_not_passed",szPropName) == 0) {
|
128
|
+
int passed = 0;
|
129
|
+
if ((RHODESAPP().isSecurityTokenNotPassed())) {
|
130
|
+
passed = 1;
|
131
|
+
}
|
132
|
+
return rho_ruby_create_boolean(passed);
|
133
|
+
}
|
126
134
|
|
127
135
|
RAWLOG_ERROR1("Unknown Rho::System property : %s", szPropName);
|
128
136
|
|
Binary file
|
@@ -293,7 +293,7 @@ HRESULT CRhodesModule::PreMessageLoop(int nShowCmd) throw()
|
|
293
293
|
if ( !rho_rhodesapp_canstartapp(g_strCmdLine.c_str(), " /-,") )
|
294
294
|
{
|
295
295
|
LOG(INFO) + "This is hidden app and can be started only with security key.";
|
296
|
-
return S_FALSE;
|
296
|
+
//return S_FALSE;
|
297
297
|
}
|
298
298
|
|
299
299
|
LOG(INFO) + "Rhodes started";
|
@@ -515,6 +515,7 @@ namespace rho.net
|
|
515
515
|
m_strRespBody = m_strRespBody.Replace('"', ' ');
|
516
516
|
string[] cookies = m_strRespBody.Split(':');
|
517
517
|
m_strCookies = cookies[1].Trim();
|
518
|
+
m_strCookies = Uri.UnescapeDataString(m_strCookies);
|
518
519
|
}
|
519
520
|
pResp.setCookies(m_strCookies);
|
520
521
|
}
|
data/version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.2.
|
1
|
+
3.2.3
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rhodes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 9
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 3
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 3.2.
|
9
|
+
- 3
|
10
|
+
version: 3.2.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Rhomobile
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-11-
|
18
|
+
date: 2011-11-23 00:00:00 -08:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|