summaryrefslogtreecommitdiff
path: root/src/mongo/shell
diff options
context:
space:
mode:
authorLaszlo Boszormenyi (GCS) <gcs@debian.org>2013-10-18 10:31:13 +0200
committerLaszlo Boszormenyi (GCS) <gcs@debian.org>2013-10-18 10:31:13 +0200
commit65585c90b12d6523bea75a2aebaae2a2fdf9e641 (patch)
treeccb3081edfe67f988844af661a2bf93aa95ae09f /src/mongo/shell
parente3904bf97e74cbbe5dde6b3abc3e797ad7d26b5d (diff)
Imported Upstream version 2.4.6upstream/2.4.6
Diffstat (limited to 'src/mongo/shell')
-rw-r--r--src/mongo/shell/dbshell.cpp6
-rw-r--r--src/mongo/shell/mongo.js64
-rwxr-xr-xsrc/mongo/shell/mongo.vcxproj18
-rw-r--r--src/mongo/shell/mongo.vcxproj.filters30
-rw-r--r--src/mongo/shell/mongo_sm.vcxproj18
-rw-r--r--src/mongo/shell/mongo_sm.vcxproj.filters30
6 files changed, 144 insertions, 22 deletions
diff --git a/src/mongo/shell/dbshell.cpp b/src/mongo/shell/dbshell.cpp
index 4d71d2b8d19..5934e862076 100644
--- a/src/mongo/shell/dbshell.cpp
+++ b/src/mongo/shell/dbshell.cpp
@@ -1043,10 +1043,6 @@ int _main( int argc, char* argv[], char **envp ) {
#ifdef _WIN32
int wmain( int argc, wchar_t* argvW[] ) {
static mongo::StaticObserver staticObserver;
- UINT initialConsoleInputCodePage = GetConsoleCP();
- UINT initialConsoleOutputCodePage = GetConsoleOutputCP();
- SetConsoleCP( CP_UTF8 );
- SetConsoleOutputCP( CP_UTF8 );
int returnCode;
try {
WindowsCommandLine wcl( argc, argvW );
@@ -1056,8 +1052,6 @@ int wmain( int argc, wchar_t* argvW[] ) {
cerr << "exception: " << e.what() << endl;
returnCode = 1;
}
- SetConsoleCP( initialConsoleInputCodePage );
- SetConsoleOutputCP( initialConsoleOutputCodePage );
::_exit(returnCode);
}
#else // #ifdef _WIN32
diff --git a/src/mongo/shell/mongo.js b/src/mongo/shell/mongo.js
index e4786a7cc17..2f3667f53f3 100644
--- a/src/mongo/shell/mongo.js
+++ b/src/mongo/shell/mongo.js
@@ -98,26 +98,58 @@ Mongo.prototype.getReadPrefTagSet = function () {
return this._readPrefTagSet;
};
-connect = function( url , user , pass ){
- chatty( "connecting to: " + url )
-
- if ( user && ! pass )
- throw "you specified a user and not a password. either you need a password, or you're using the old connect api";
+connect = function(url, user, pass) {
+ if (user && !pass)
+ throw Error("you specified a user and not a password. " +
+ "either you need a password, or you're using the old connect api");
+
+ // Validate connection string "url" as "hostName:portNumber/databaseName"
+ // or "hostName/databaseName"
+ // or "databaseName"
+ // hostName may be an IPv6 address (with colons), in which case ":portNumber" is required
+ //
+ var urlType = typeof url;
+ if (urlType == "undefined") {
+ throw Error("Missing connection string");
+ }
+ if (urlType != "string") {
+ throw Error("Incorrect type \"" + urlType +
+ "\" for connection string \"" + tojson(url) + "\"");
+ }
+ url = url.trim();
+ if (0 == url.length) {
+ throw Error("Empty connection string");
+ }
+ var colon = url.lastIndexOf(":");
+ var slash = url.lastIndexOf("/");
+ if (0 == colon || 0 == slash) {
+ throw Error("Missing host name in connection string \"" + url + "\"");
+ }
+ if (colon == slash - 1 || colon == url.length - 1) {
+ throw Error("Missing port number in connection string \"" + url + "\"");
+ }
+ if (colon != -1 && colon < slash) {
+ var portNumber = url.substring(colon + 1, slash);
+ if (portNumber.length > 5 || !/^\d*$/.test(portNumber) || parseInt(portNumber) > 65535) {
+ throw Error("Invalid port number \"" + portNumber +
+ "\" in connection string \"" + url + "\"");
+ }
+ }
+ if (slash == url.length - 1) {
+ throw Error("Missing database name in connection string \"" + url + "\"");
+ }
- var idx = url.lastIndexOf( "/" );
-
+ chatty("connecting to: " + url)
var db;
-
- if ( idx < 0 )
- db = new Mongo().getDB( url );
+ if (slash == -1)
+ db = new Mongo().getDB(url);
else
- db = new Mongo( url.substring( 0 , idx ) ).getDB( url.substring( idx + 1 ) );
-
- if ( user && pass ){
- if ( ! db.auth( user , pass ) ){
- throw "couldn't login";
+ db = new Mongo(url.substring(0, slash)).getDB(url.substring(slash + 1));
+
+ if (user && pass) {
+ if (!db.auth(user, pass)) {
+ throw Error("couldn't login");
}
}
-
return db;
}
diff --git a/src/mongo/shell/mongo.vcxproj b/src/mongo/shell/mongo.vcxproj
index 48bc5625c62..219f43e2488 100755
--- a/src/mongo/shell/mongo.vcxproj
+++ b/src/mongo/shell/mongo.vcxproj
@@ -382,6 +382,16 @@ cscript //Nologo "$(ProjectDir)..\shell\createCPPfromJavaScriptFiles.js" "$(Proj
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
+ <ClCompile Include="..\..\third_party\murmurhash3\MurmurHash3.cpp">
+ <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">4355;4800;4267;4244;4351;4141</DisableSpecificWarnings>
+ <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">4355;4800;4267;4244;4351;4141</DisableSpecificWarnings>
+ <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Win2008PlusDebug|Win32'">4355;4800;4267;4244;4351;4141</DisableSpecificWarnings>
+ <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Win2008PlusRelease|Win32'">4355;4800;4267;4244;4351;4141</DisableSpecificWarnings>
+ <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">4355;4800;4267;4244;4351;4141</DisableSpecificWarnings>
+ <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release|x64'">4355;4800;4267;4244;4351;4141</DisableSpecificWarnings>
+ <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Win2008PlusDebug|x64'">4355;4800;4267;4244;4351;4141</DisableSpecificWarnings>
+ <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Win2008PlusRelease|x64'">4355;4800;4267;4244;4351;4141</DisableSpecificWarnings>
+ </ClCompile>
<ClCompile Include="..\..\third_party\v8\src\experimental-libraries.cc">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\third_party\v8\src</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\third_party\v8\src</AdditionalIncludeDirectories>
@@ -1074,7 +1084,10 @@ cscript //Nologo "$(ProjectDir)..\shell\createCPPfromJavaScriptFiles.js" "$(Proj
<ClCompile Include="..\client\connection_factory.cpp" />
<ClCompile Include="..\client\sasl_client_authenticate.cpp" />
<ClCompile Include="..\db\dbmessage.cpp" />
+ <ClCompile Include="..\platform\backtrace.cpp" />
+ <ClCompile Include="..\platform\posix_fadvise.cpp" />
<ClCompile Include="..\platform\random.cpp" />
+ <ClCompile Include="..\platform\strcasestr.cpp" />
<ClCompile Include="..\scripting\bson_template_evaluator.cpp" />
<ClCompile Include="..\scripting\bson_template_evaluator_test.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
@@ -1271,6 +1284,7 @@ cscript //Nologo "$(ProjectDir)..\shell\createCPPfromJavaScriptFiles.js" "$(Proj
<ClCompile Include="shell_utils_launcher.cpp" />
</ItemGroup>
<ItemGroup>
+ <None Include="..\..\third_party\murmurhash3\SConscript" />
<None Include="..\..\third_party\run_if_newer.js" />
<None Include="..\..\third_party\v8\ChangeLog" />
<None Include="..\..\third_party\v8\ChangeLog_10gen" />
@@ -1309,6 +1323,7 @@ cscript //Nologo "$(ProjectDir)..\shell\createCPPfromJavaScriptFiles.js" "$(Proj
<None Include="utils_sh.js" />
</ItemGroup>
<ItemGroup>
+ <ClInclude Include="..\..\third_party\murmurhash3\MurmurHash3.h" />
<ClInclude Include="..\..\third_party\v8\include\v8-debug.h" />
<ClInclude Include="..\..\third_party\v8\include\v8-preparser.h" />
<ClInclude Include="..\..\third_party\v8\include\v8-profiler.h" />
@@ -1639,13 +1654,16 @@ cscript //Nologo "$(ProjectDir)..\shell\createCPPfromJavaScriptFiles.js" "$(Proj
<ClInclude Include="..\platform\atomic_intrinsics.h" />
<ClInclude Include="..\platform\atomic_intrinsics_win32.h" />
<ClInclude Include="..\platform\atomic_word.h" />
+ <ClInclude Include="..\platform\backtrace.h" />
<ClInclude Include="..\platform\basic.h" />
<ClInclude Include="..\platform\bits.h" />
<ClInclude Include="..\platform\compiler.h" />
<ClInclude Include="..\platform\compiler_msvc.h" />
<ClInclude Include="..\platform\cstdint.h" />
<ClInclude Include="..\platform\float_utils.h" />
+ <ClInclude Include="..\platform\posix_fadvise.h" />
<ClInclude Include="..\platform\random.h" />
+ <ClInclude Include="..\platform\strcasestr.h" />
<ClInclude Include="..\platform\strtoll.h" />
<ClInclude Include="..\platform\unordered_map.h" />
<ClInclude Include="..\platform\unordered_set.h" />
diff --git a/src/mongo/shell/mongo.vcxproj.filters b/src/mongo/shell/mongo.vcxproj.filters
index 0af752a3e3b..4f0661b84e3 100644
--- a/src/mongo/shell/mongo.vcxproj.filters
+++ b/src/mongo/shell/mongo.vcxproj.filters
@@ -158,6 +158,9 @@
<Filter Include="JavaScript source files\Included in shell only">
<UniqueIdentifier>{0d7ccbd5-b4e4-4e57-ae0b-b4a80a6fa6bb}</UniqueIdentifier>
</Filter>
+ <Filter Include="third_party\MurmurHash3">
+ <UniqueIdentifier>{5ced80f0-4dce-421a-ba59-1b338973dd97}</UniqueIdentifier>
+ </Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\scripting\engine.cpp">
@@ -1016,6 +1019,18 @@
<ClCompile Include="..\client\sasl_client_authenticate.cpp">
<Filter>client</Filter>
</ClCompile>
+ <ClCompile Include="..\..\third_party\murmurhash3\MurmurHash3.cpp">
+ <Filter>third_party\MurmurHash3</Filter>
+ </ClCompile>
+ <ClCompile Include="..\platform\strcasestr.cpp">
+ <Filter>platform</Filter>
+ </ClCompile>
+ <ClCompile Include="..\platform\backtrace.cpp">
+ <Filter>platform</Filter>
+ </ClCompile>
+ <ClCompile Include="..\platform\posix_fadvise.cpp">
+ <Filter>platform</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="..\..\third_party\v8\src\apinatives.js">
@@ -1126,6 +1141,9 @@
<None Include="types.js">
<Filter>JavaScript source files\Included in all executables</Filter>
</None>
+ <None Include="..\..\third_party\murmurhash3\SConscript">
+ <Filter>third_party\MurmurHash3</Filter>
+ </None>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\pch.h" />
@@ -2387,6 +2405,18 @@
<ClInclude Include="..\client\sasl_client_authenticate.h">
<Filter>client</Filter>
</ClInclude>
+ <ClInclude Include="..\..\third_party\murmurhash3\MurmurHash3.h">
+ <Filter>third_party\MurmurHash3</Filter>
+ </ClInclude>
+ <ClInclude Include="..\platform\strcasestr.h">
+ <Filter>platform</Filter>
+ </ClInclude>
+ <ClInclude Include="..\platform\backtrace.h">
+ <Filter>platform</Filter>
+ </ClInclude>
+ <ClInclude Include="..\platform\posix_fadvise.h">
+ <Filter>platform</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\db\db.rc">
diff --git a/src/mongo/shell/mongo_sm.vcxproj b/src/mongo/shell/mongo_sm.vcxproj
index 0f2bd65b5b8..82381afe47b 100644
--- a/src/mongo/shell/mongo_sm.vcxproj
+++ b/src/mongo/shell/mongo_sm.vcxproj
@@ -876,6 +876,16 @@ cscript //Nologo "$(ProjectDir)..\shell\createCPPfromJavaScriptFiles.js" "$(Proj
<DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Win2008PlusDebug|x64'">4355;4800;4267;4244;4334</DisableSpecificWarnings>
<DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Win2008PlusRelease|x64'">4355;4800;4267;4244;4334</DisableSpecificWarnings>
</ClCompile>
+ <ClCompile Include="..\..\third_party\murmurhash3\MurmurHash3.cpp">
+ <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">4355;4800;4267;4244;4141</DisableSpecificWarnings>
+ <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">4355;4800;4267;4244;4141</DisableSpecificWarnings>
+ <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Win2008PlusDebug|Win32'">4355;4800;4267;4244;4141</DisableSpecificWarnings>
+ <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Win2008PlusRelease|Win32'">4355;4800;4267;4244;4141</DisableSpecificWarnings>
+ <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">4355;4800;4267;4244;4141</DisableSpecificWarnings>
+ <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release|x64'">4355;4800;4267;4244;4141</DisableSpecificWarnings>
+ <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Win2008PlusDebug|x64'">4355;4800;4267;4244;4141</DisableSpecificWarnings>
+ <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Win2008PlusRelease|x64'">4355;4800;4267;4244;4141</DisableSpecificWarnings>
+ </ClCompile>
<ClCompile Include="..\base\configuration_variable_manager.cpp" />
<ClCompile Include="..\base\error_codes.cpp" />
<ClCompile Include="..\base\global_initializer.cpp" />
@@ -897,7 +907,10 @@ cscript //Nologo "$(ProjectDir)..\shell\createCPPfromJavaScriptFiles.js" "$(Proj
<ClCompile Include="..\client\connection_factory.cpp" />
<ClCompile Include="..\client\sasl_client_authenticate.cpp" />
<ClCompile Include="..\db\dbmessage.cpp" />
+ <ClCompile Include="..\platform\backtrace.cpp" />
+ <ClCompile Include="..\platform\posix_fadvise.cpp" />
<ClCompile Include="..\platform\random.cpp" />
+ <ClCompile Include="..\platform\strcasestr.cpp" />
<ClCompile Include="..\scripting\bson_template_evaluator.cpp" />
<ClCompile Include="..\scripting\bson_template_evaluator_test.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
@@ -1114,6 +1127,7 @@ cscript //Nologo "$(ProjectDir)..\shell\createCPPfromJavaScriptFiles.js" "$(Proj
<ItemGroup>
<None Include="..\..\third_party\js-1.7\jskeyword.tbl" />
<None Include="..\..\third_party\js-1.7\jsopcode.tbl" />
+ <None Include="..\..\third_party\murmurhash3\SConscript" />
<None Include="..\base\error_codes.err" />
<None Include="..\base\generate_error_codes.py" />
<None Include="assert.js" />
@@ -1180,6 +1194,7 @@ cscript //Nologo "$(ProjectDir)..\shell\createCPPfromJavaScriptFiles.js" "$(Proj
<ClInclude Include="..\..\third_party\js-1.7\jsxml.h" />
<ClInclude Include="..\..\third_party\js-1.7\prmjtime.h" />
<ClInclude Include="..\..\third_party\js-1.7\resource.h" />
+ <ClInclude Include="..\..\third_party\murmurhash3\MurmurHash3.h" />
<ClInclude Include="..\base\configuration_variable_manager.h" />
<ClInclude Include="..\base\counter.h" />
<ClInclude Include="..\base\disallow_copying.h" />
@@ -1211,13 +1226,16 @@ cscript //Nologo "$(ProjectDir)..\shell\createCPPfromJavaScriptFiles.js" "$(Proj
<ClInclude Include="..\platform\atomic_intrinsics.h" />
<ClInclude Include="..\platform\atomic_intrinsics_win32.h" />
<ClInclude Include="..\platform\atomic_word.h" />
+ <ClInclude Include="..\platform\backtrace.h" />
<ClInclude Include="..\platform\basic.h" />
<ClInclude Include="..\platform\bits.h" />
<ClInclude Include="..\platform\compiler.h" />
<ClInclude Include="..\platform\compiler_msvc.h" />
<ClInclude Include="..\platform\cstdint.h" />
<ClInclude Include="..\platform\float_utils.h" />
+ <ClInclude Include="..\platform\posix_fadvise.h" />
<ClInclude Include="..\platform\random.h" />
+ <ClInclude Include="..\platform\strcasestr.h" />
<ClInclude Include="..\platform\strtoll.h" />
<ClInclude Include="..\platform\unordered_map.h" />
<ClInclude Include="..\platform\unordered_set.h" />
diff --git a/src/mongo/shell/mongo_sm.vcxproj.filters b/src/mongo/shell/mongo_sm.vcxproj.filters
index 1c015105890..33678d8fb74 100644
--- a/src/mongo/shell/mongo_sm.vcxproj.filters
+++ b/src/mongo/shell/mongo_sm.vcxproj.filters
@@ -104,6 +104,9 @@
<Filter Include="JavaScript source files\Included in shell only">
<UniqueIdentifier>{283d932c-5594-47a6-9b1b-8f5af53c0337}</UniqueIdentifier>
</Filter>
+ <Filter Include="third_party\MurmurHash3">
+ <UniqueIdentifier>{a07219b6-a351-468a-a705-2b691500c617}</UniqueIdentifier>
+ </Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\scripting\engine.cpp">
@@ -623,6 +626,18 @@
<ClCompile Include="..\client\sasl_client_authenticate.cpp">
<Filter>client</Filter>
</ClCompile>
+ <ClCompile Include="..\platform\strcasestr.cpp">
+ <Filter>platform</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\third_party\murmurhash3\MurmurHash3.cpp">
+ <Filter>third_party\MurmurHash3</Filter>
+ </ClCompile>
+ <ClCompile Include="..\platform\backtrace.cpp">
+ <Filter>platform</Filter>
+ </ClCompile>
+ <ClCompile Include="..\platform\posix_fadvise.cpp">
+ <Filter>platform</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="..\..\third_party\js-1.7\jskeyword.tbl">
@@ -679,6 +694,9 @@
<None Include="utils.js">
<Filter>JavaScript source files\Included in all executables</Filter>
</None>
+ <None Include="..\..\third_party\murmurhash3\SConscript">
+ <Filter>third_party\MurmurHash3</Filter>
+ </None>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\pch.h" />
@@ -1454,6 +1472,18 @@
<ClInclude Include="..\client\sasl_client_authenticate.h">
<Filter>client</Filter>
</ClInclude>
+ <ClInclude Include="..\platform\strcasestr.h">
+ <Filter>platform</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\third_party\murmurhash3\MurmurHash3.h">
+ <Filter>third_party\MurmurHash3</Filter>
+ </ClInclude>
+ <ClInclude Include="..\platform\backtrace.h">
+ <Filter>platform</Filter>
+ </ClInclude>
+ <ClInclude Include="..\platform\posix_fadvise.h">
+ <Filter>platform</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\db\db.rc">