From: <fir...@us...> - 2012-02-24 04:49:40
|
Revision: 54037 http://firebird.svn.sourceforge.net/firebird/?rev=54037&view=rev Author: firebirds Date: 2012-02-24 04:49:32 +0000 (Fri, 24 Feb 2012) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2012-02-23 15:39:57 UTC (rev 54036) +++ firebird/trunk/ChangeLog 2012-02-24 04:49:32 UTC (rev 54037) @@ -1,3 +1,13 @@ + 2012-02-23 15:39 dimitr + M src/dsql/StmtNodes.cpp +Fixed the assert/crash when using the cursors at runtime. + + 2012-02-23 07:17 robocop + M src/dsql/ExprNodes.cpp + M src/dsql/ExprNodes.h + M src/dsql/Nodes.h +Kill variable shadowing. + 2012-02-22 08:09 dimitr M builds/win32/msvc8/engine.vcproj Fixed the MSVC8 build. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-02-23 15:39:57 UTC (rev 54036) +++ firebird/trunk/src/jrd/build_no.h 2012-02-24 04:49:32 UTC (rev 54037) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29791 + FORMAL BUILD NUMBER:29793 */ -#define PRODUCT_VER_STRING "3.0.0.29791" -#define FILE_VER_STRING "WI-T3.0.0.29791" -#define LICENSE_VER_STRING "WI-T3.0.0.29791" -#define FILE_VER_NUMBER 3, 0, 0, 29791 +#define PRODUCT_VER_STRING "3.0.0.29793" +#define FILE_VER_STRING "WI-T3.0.0.29793" +#define LICENSE_VER_STRING "WI-T3.0.0.29793" +#define FILE_VER_NUMBER 3, 0, 0, 29793 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29791" +#define FB_BUILD_NO "29793" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2012-02-23 15:39:57 UTC (rev 54036) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-02-24 04:49:32 UTC (rev 54037) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29791 +BuildNum=29793 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ale...@us...> - 2012-02-24 12:39:36
|
Revision: 54041 http://firebird.svn.sourceforge.net/firebird/?rev=54041&view=rev Author: alexpeshkoff Date: 2012-02-24 12:39:27 +0000 (Fri, 24 Feb 2012) Log Message: ----------- Implemented CORE-672: "Over the wire" connection encryption Modified Paths: -------------- firebird/trunk/builds/install/misc/firebird.conf.in firebird/trunk/builds/posix/make.shared.variables firebird/trunk/src/auth/AuthDbg.cpp firebird/trunk/src/auth/AuthDbg.h firebird/trunk/src/auth/SecureRemotePassword/client/SrpClient.cpp firebird/trunk/src/auth/SecureRemotePassword/server/SrpServer.cpp firebird/trunk/src/auth/SecurityDatabase/LegacyClient.cpp firebird/trunk/src/auth/SecurityDatabase/LegacyClient.h firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp firebird/trunk/src/auth/SecurityDatabase/LegacyServer.h firebird/trunk/src/auth/trusted/AuthSspi.cpp firebird/trunk/src/auth/trusted/AuthSspi.h firebird/trunk/src/common/classes/ClumpletWriter.cpp firebird/trunk/src/common/classes/ClumpletWriter.h firebird/trunk/src/common/classes/ImplementHelper.h firebird/trunk/src/common/config/config.cpp firebird/trunk/src/common/config/config.h firebird/trunk/src/include/firebird/Auth.h firebird/trunk/src/include/firebird/Plugin.h firebird/trunk/src/remote/client/interface.cpp firebird/trunk/src/remote/inet.cpp firebird/trunk/src/remote/protocol.cpp firebird/trunk/src/remote/protocol.h firebird/trunk/src/remote/remot_proto.h firebird/trunk/src/remote/remote.cpp firebird/trunk/src/remote/remote.h firebird/trunk/src/remote/server/server.cpp Added Paths: ----------- firebird/trunk/src/include/firebird/Crypt.h firebird/trunk/src/plugins/crypt/arc4/Arc4.cpp firebird/trunk/src/plugins/crypt/arc4/Arc4.h Modified: firebird/trunk/builds/install/misc/firebird.conf.in =================================================================== --- firebird/trunk/builds/install/misc/firebird.conf.in 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/builds/install/misc/firebird.conf.in 2012-02-24 12:39:27 UTC (rev 54041) @@ -362,7 +362,10 @@ # #TracePlugin = fbtrace +# Crypt plugins are used to crypt data transfered over the wire +#CryptPlugin = Arc4 + # ---------------------------- # # This parameter determines what providers will be used by firebird. Modified: firebird/trunk/builds/posix/make.shared.variables =================================================================== --- firebird/trunk/builds/posix/make.shared.variables 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/builds/posix/make.shared.variables 2012-02-24 12:39:27 UTC (rev 54041) @@ -54,7 +54,8 @@ $(call makeObjects,auth/SecurityDatabase,LegacyServer.cpp) # legacy security database LegacyServer.cpp should become plugin soon Remote_Client:= $(call dirObjects,remote/client) $(call dirObjects,auth/SecureRemotePassword/client) \ - $(call makeObjects,auth/SecurityDatabase,LegacyClient.cpp) + $(call makeObjects,auth/SecurityDatabase,LegacyClient.cpp) \ + $(call dirObjects,plugins/crypt/arc4) Remote_Server_Objects:= $(Remote_Common) $(Remote_Server) Remote_Client_Objects:= $(Remote_Common) $(Remote_Client) Modified: firebird/trunk/src/auth/AuthDbg.cpp =================================================================== --- firebird/trunk/src/auth/AuthDbg.cpp 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/src/auth/AuthDbg.cpp 2012-02-24 12:39:27 UTC (rev 54041) @@ -56,7 +56,7 @@ : str(getPool()) { } -Result FB_CARG DebugServer::authenticate(Firebird::IStatus* status, IServerBlock* sBlock, +int FB_CARG DebugServer::authenticate(Firebird::IStatus* status, IServerBlock* sBlock, IWriter* writerInterface) { /* try @@ -90,7 +90,7 @@ return AUTH_FAILED; } /* -Result FB_CARG DebugServer::contAuthentication(Firebird::IStatus* status, const unsigned char* data, +int FB_CARG DebugServer::contAuthentication(Firebird::IStatus* status, const unsigned char* data, unsigned int size, IWriter* writerInterface) { try @@ -125,7 +125,7 @@ : str(getPool()) { } -Result FB_CARG DebugClient::authenticate(Firebird::IStatus* status, IClientBlock* cBlock) +int FB_CARG DebugClient::authenticate(Firebird::IStatus* status, IClientBlock* cBlock) { /* try @@ -153,7 +153,7 @@ return AUTH_FAILED; } /* -Result FB_CARG DebugClient::contAuthentication(Firebird::IStatus* status, const unsigned char* data, unsigned int size) +int FB_CARG DebugClient::contAuthentication(Firebird::IStatus* status, const unsigned char* data, unsigned int size) { try { @@ -187,22 +187,6 @@ return 1; } -Result DebugServer::getSessionKey(Firebird::IStatus*, - const unsigned char** key, unsigned int* keyLen) -{ - *key = NULL; - *keyLen = 0; - return AUTH_CONTINUE; -} - -Result DebugClient::getSessionKey(Firebird::IStatus*, - const unsigned char** key, unsigned int* keyLen) -{ - *key = NULL; - *keyLen = 0; - return AUTH_CONTINUE; -} - } // namespace Auth #endif // AUTH_DEBUG Modified: firebird/trunk/src/auth/AuthDbg.h =================================================================== --- firebird/trunk/src/auth/AuthDbg.h 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/src/auth/AuthDbg.h 2012-02-24 12:39:27 UTC (rev 54041) @@ -51,10 +51,8 @@ public: DebugServer(Firebird::IPluginConfig*); - Result authenticate(Firebird::IStatus* status, IServerBlock* sBlock, - IWriter* writerInterface); - Result getSessionKey(Firebird::IStatus* status, - const unsigned char** key, unsigned int* keyLen); + int authenticate(Firebird::IStatus* status, IServerBlock* sBlock, + IWriter* writerInterface); int release(); private: @@ -66,9 +64,7 @@ public: DebugClient(Firebird::IPluginConfig*); - Result authenticate(Firebird::IStatus* status, IClientBlock* sBlock); - Result getSessionKey(Firebird::IStatus* status, - const unsigned char** key, unsigned int* keyLen); + int authenticate(Firebird::IStatus* status, IClientBlock* sBlock); int release(); private: Modified: firebird/trunk/src/auth/SecureRemotePassword/client/SrpClient.cpp =================================================================== --- firebird/trunk/src/auth/SecureRemotePassword/client/SrpClient.cpp 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/src/auth/SecureRemotePassword/client/SrpClient.cpp 2012-02-24 12:39:27 UTC (rev 54041) @@ -43,8 +43,7 @@ { } // IClient implementation - Result FB_CARG authenticate(IStatus*, IClientBlock* cb); - Result FB_CARG getSessionKey(IStatus* status, const unsigned char** key, unsigned int* keyLen); + int FB_CARG authenticate(IStatus*, IClientBlock* cb); int FB_CARG release(); private: @@ -53,7 +52,7 @@ UCharBuffer sessionKey; }; -Result SrpClient::authenticate(IStatus* status, IClientBlock* cb) +int SrpClient::authenticate(IStatus* status, IClientBlock* cb) { try { @@ -74,8 +73,8 @@ client = new RemotePassword; client->genClientKey(data); dumpIt("Clnt: clientPubKey", data); - cb->putData(data.length(), data.begin()); - return AUTH_MORE_DATA; + cb->putData(status, data.length(), data.begin()); + return status->isSuccess() ? AUTH_MORE_DATA : AUTH_FAILED; } HANDSHAKE_DEBUG(fprintf(stderr, "Cln SRP2\n")); @@ -110,7 +109,6 @@ msg.printf("Wrong length (%d) of key from server", charSize); (Arg::Gds(isc_random) << msg).raise(); } - key.assign(saltAndKey, charSize); dumpIt("Clnt: key(srvPub)", key); @@ -122,7 +120,19 @@ BigInteger cProof = client->clientProof(cb->getLogin(), salt.c_str(), sessionKey); cProof.getText(data); - cb->putData(data.length(), data.c_str()); + cb->putData(status, data.length(), data.c_str()); + if (!status->isSuccess()) + { + return AUTH_FAILED; + } + + // output the key + FbCryptKey cKey = {"Symmetric", sessionKey.begin(), NULL, sessionKey.getCount(), 0}; + cb->putKey(status, &cKey); + if (!status->isSuccess()) + { + return AUTH_FAILED; + } } catch (const Exception& ex) { @@ -133,20 +143,6 @@ return AUTH_SUCCESS; } - -Result SrpClient::getSessionKey(IStatus*, const unsigned char** key, unsigned int* keyLen) -{ - if (!sessionKey.hasData()) - { - return AUTH_MORE_DATA; - } - - *key = sessionKey.begin(); - *keyLen = sessionKey.getCount(); - - return AUTH_SUCCESS; -} - int SrpClient::release() { if (--refCounter == 0) Modified: firebird/trunk/src/auth/SecureRemotePassword/server/SrpServer.cpp =================================================================== --- firebird/trunk/src/auth/SecureRemotePassword/server/SrpServer.cpp 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/src/auth/SecureRemotePassword/server/SrpServer.cpp 2012-02-24 12:39:27 UTC (rev 54041) @@ -61,8 +61,7 @@ } // IServer implementation - Result FB_CARG authenticate(IStatus* status, IServerBlock* sBlock, IWriter* writerInterface); - Result FB_CARG getSessionKey(IStatus* status, const unsigned char** key, unsigned int* keyLen); + int FB_CARG authenticate(IStatus* status, IServerBlock* sBlock, IWriter* writerInterface); int FB_CARG release(); private: @@ -77,7 +76,7 @@ const char* secDbName; }; -Result SrpServer::authenticate(IStatus* status, IServerBlock* sb, IWriter* writerInterface) +int SrpServer::authenticate(IStatus* status, IServerBlock* sb, IWriter* writerInterface) { RefPtr<IAttachment> att; RefPtr<ITransaction> tra; @@ -239,13 +238,24 @@ data.append(serverPubKey); dumpIt("Srv: serverPubKey", serverPubKey); dumpIt("Srv: data", data); - sb->putData(data.length(), data.c_str()); + sb->putData(status, data.length(), data.c_str()); + if (!status->isSuccess()) + { + return AUTH_FAILED; + } - // Will be used to produce ISessionKey dumpIt("Srv: clientPubKey", clientPubKey); server->serverSessionKey(sessionKey, clientPubKey.c_str(), verifier); dumpIt("Srv: sessionKey", sessionKey); + // output the key + FbCryptKey cKey = {"Symmetric", sessionKey.begin(), NULL, sessionKey.getCount(), 0}; + sb->putKey(status, &cKey); + if (!status->isSuccess()) + { + return AUTH_FAILED; + } + return AUTH_MORE_DATA; } @@ -286,19 +296,6 @@ return AUTH_FAILED; } -Result SrpServer::getSessionKey(IStatus*, const unsigned char** key, unsigned int* keyLen) -{ - if (!sessionKey.hasData()) - { - return AUTH_MORE_DATA; - } - - *key = sessionKey.begin(); - *keyLen = sessionKey.getCount(); - - return AUTH_SUCCESS; -} - int SrpServer::release() { if (--refCounter == 0) Modified: firebird/trunk/src/auth/SecurityDatabase/LegacyClient.cpp =================================================================== --- firebird/trunk/src/auth/SecurityDatabase/LegacyClient.cpp 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/src/auth/SecurityDatabase/LegacyClient.cpp 2012-02-24 12:39:27 UTC (rev 54041) @@ -35,7 +35,7 @@ namespace Auth { -Result SecurityDatabaseClient::authenticate(Firebird::IStatus*, IClientBlock* cb) +int SecurityDatabaseClient::authenticate(Firebird::IStatus* status, IClientBlock* cb) { if (!(cb->getLogin() && cb->getPassword())) { @@ -44,19 +44,15 @@ TEXT pwt[Auth::MAX_LEGACY_PASSWORD_LENGTH + 2]; ENC_crypt(pwt, sizeof pwt, cb->getPassword(), Auth::LEGACY_PASSWORD_SALT); - cb->putData(strlen(&pwt[2]), &pwt[2]); + cb->putData(status, strlen(&pwt[2]), &pwt[2]); + if (! status->isSuccess()) + { + return AUTH_FAILED; + } return AUTH_SUCCESS; } -Result SecurityDatabaseClient::getSessionKey(Firebird::IStatus*, - const unsigned char** key, unsigned int* keyLen) -{ - *key = NULL; - *keyLen = 0; - return AUTH_CONTINUE; -} - int SecurityDatabaseClient::release() { if (--refCounter == 0) Modified: firebird/trunk/src/auth/SecurityDatabase/LegacyClient.h =================================================================== --- firebird/trunk/src/auth/SecurityDatabase/LegacyClient.h 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/src/auth/SecurityDatabase/LegacyClient.h 2012-02-24 12:39:27 UTC (rev 54041) @@ -43,9 +43,7 @@ } // IClient implementation - Result FB_CARG authenticate(Firebird::IStatus*, IClientBlock* data); - Result FB_CARG getSessionKey(Firebird::IStatus* status, - const unsigned char** key, unsigned int* keyLen); + int FB_CARG authenticate(Firebird::IStatus*, IClientBlock* data); int FB_CARG release(); }; Modified: firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp =================================================================== --- firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp 2012-02-24 12:39:27 UTC (rev 54041) @@ -127,7 +127,7 @@ class SecurityDatabase : public Firebird::RefCntIface<Firebird::ITimer, FB_TIMER_VERSION> { public: - Result verify(IWriter* authBlock, IServerBlock* sBlock); + int verify(IWriter* authBlock, IServerBlock* sBlock); static int shutdown(const int, const int, void*); @@ -291,7 +291,7 @@ * Public interface */ -Result SecurityDatabase::verify(IWriter* authBlock, IServerBlock* sBlock) +int SecurityDatabase::verify(IWriter* authBlock, IServerBlock* sBlock) { static AmCache useNative = AM_UNKNOWN; @@ -451,7 +451,7 @@ const static unsigned int INIT_KEY = ((~0) - 1); static unsigned int secDbKey = INIT_KEY; -Result SecurityDatabaseServer::authenticate(Firebird::IStatus* status, IServerBlock* sBlock, +int SecurityDatabaseServer::authenticate(Firebird::IStatus* status, IServerBlock* sBlock, IWriter* writerInterface) { status->init(); @@ -501,7 +501,7 @@ fb_assert(instance); - Result rc = instance->verify(writerInterface, sBlock); + int rc = instance->verify(writerInterface, sBlock); TimerInterfacePtr()->start(instance, 10 * 1000 * 1000); return rc; } @@ -512,14 +512,6 @@ } } -Result SecurityDatabaseServer::getSessionKey(Firebird::IStatus*, - const unsigned char** key, unsigned int* keyLen) -{ - *key = NULL; - *keyLen = 0; - return AUTH_CONTINUE; -} - int SecurityDatabaseServer::release() { if (--refCounter == 0) Modified: firebird/trunk/src/auth/SecurityDatabase/LegacyServer.h =================================================================== --- firebird/trunk/src/auth/SecurityDatabase/LegacyServer.h 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/src/auth/SecurityDatabase/LegacyServer.h 2012-02-24 12:39:27 UTC (rev 54041) @@ -51,9 +51,7 @@ { } // IServer implementation - Result FB_CARG authenticate(Firebird::IStatus* status, IServerBlock* sBlock, IWriter* writerInterface); - Result FB_CARG getSessionKey(Firebird::IStatus* status, - const unsigned char** key, unsigned int* keyLen); + int FB_CARG authenticate(Firebird::IStatus* status, IServerBlock* sBlock, IWriter* writerInterface); int FB_CARG release(); private: Modified: firebird/trunk/src/auth/trusted/AuthSspi.cpp =================================================================== --- firebird/trunk/src/auth/trusted/AuthSspi.cpp 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/src/auth/trusted/AuthSspi.cpp 2012-02-24 12:39:27 UTC (rev 54041) @@ -344,9 +344,9 @@ : sspiData(getPool()) { } -Result WinSspiServer::authenticate(Firebird::IStatus* status, - IServerBlock* sBlock, - IWriter* writerInterface) +int WinSspiServer::authenticate(Firebird::IStatus* status, + IServerBlock* sBlock, + IWriter* writerInterface) { try { @@ -385,15 +385,6 @@ return AUTH_MORE_DATA; } -Result WinSspiServer::getSessionKey(Firebird::IStatus*, - const unsigned char** key, - unsigned int* keyLen) -{ - *key = NULL; - *keyLen = 0; - return AUTH_CONTINUE; -} - int WinSspiServer::release() { if (--refCounter == 0) @@ -405,8 +396,8 @@ return 1; } -Result WinSspiClient::authenticate(Firebird::IStatus* status, - IClientBlock* cBlock) +int WinSspiClient::authenticate(Firebird::IStatus* status, + IClientBlock* cBlock) { try { @@ -434,15 +425,6 @@ return AUTH_MORE_DATA; } -Result WinSspiClient::getSessionKey(Firebird::IStatus* /*status*/, - const unsigned char** key, - unsigned int* keyLen) -{ - *key = NULL; - *keyLen = 0; - return AUTH_CONTINUE; -} - int WinSspiClient::release() { if (--refCounter == 0) Modified: firebird/trunk/src/auth/trusted/AuthSspi.h =================================================================== --- firebird/trunk/src/auth/trusted/AuthSspi.h 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/src/auth/trusted/AuthSspi.h 2012-02-24 12:39:27 UTC (rev 54041) @@ -100,8 +100,7 @@ { public: // IServer implementation - Result FB_CARG authenticate(Firebird::IStatus* status, IServerBlock* sBlock, IWriter* writerInterface); - Result FB_CARG getSessionKey(Firebird::IStatus* status, const unsigned char** key, unsigned int* keyLen); + int FB_CARG authenticate(Firebird::IStatus* status, IServerBlock* sBlock, IWriter* writerInterface); int FB_CARG release(); WinSspiServer(Firebird::IPluginConfig*); @@ -115,8 +114,7 @@ { public: // IClient implementation - Result FB_CARG authenticate(Firebird::IStatus* status, IClientBlock* sBlock); - Result FB_CARG getSessionKey(Firebird::IStatus* status, const unsigned char** key, unsigned int* keyLen); + int FB_CARG authenticate(Firebird::IStatus* status, IClientBlock* sBlock); int FB_CARG release(); WinSspiClient(Firebird::IPluginConfig*); Modified: firebird/trunk/src/common/classes/ClumpletWriter.cpp =================================================================== --- firebird/trunk/src/common/classes/ClumpletWriter.cpp 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/src/common/classes/ClumpletWriter.cpp 2012-02-24 12:39:27 UTC (rev 54041) @@ -69,14 +69,14 @@ { dynamic_buffer.push(isc_spb_version); } - dynamic_buffer.push(tag); - break; + // fall down .... case Tagged: case Tpb: case WideTagged: dynamic_buffer.push(tag); break; default: + fb_assert(tag == 0); break; } } Modified: firebird/trunk/src/common/classes/ClumpletWriter.h =================================================================== --- firebird/trunk/src/common/classes/ClumpletWriter.h 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/src/common/classes/ClumpletWriter.h 2012-02-24 12:39:27 UTC (rev 54041) @@ -64,7 +64,7 @@ ClumpletWriter(MemoryPool& pool, const ClumpletWriter& from); ClumpletWriter(const ClumpletWriter& from); - void reset(UCHAR tag); + void reset(UCHAR tag = 0); void reset(const UCHAR* buffer, const size_t buffLen); void clear(); Modified: firebird/trunk/src/common/classes/ImplementHelper.h =================================================================== --- firebird/trunk/src/common/classes/ImplementHelper.h 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/src/common/classes/ImplementHelper.h 2012-02-24 12:39:27 UTC (rev 54041) @@ -119,7 +119,11 @@ ++refCounter; } +#ifdef DEV_BUILD +public: +#else protected: +#endif AtomicCounter refCounter; }; Modified: firebird/trunk/src/common/config/config.cpp =================================================================== --- firebird/trunk/src/common/config/config.cpp 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/src/common/config/config.cpp 2012-02-24 12:39:27 UTC (rev 54041) @@ -109,6 +109,10 @@ const char* AmTrusted = "trusted"; const char* AmMixed = "mixed"; +const char* WIRE_CRYPT_DISABLED = "DISABLED"; +const char* WIRE_CRYPT_ENABLED = "ENABLED"; +const char* WIRE_CRYPT_REQUIRED = "REQUIRED"; + const Config::ConfigEntry Config::entries[MAX_CONFIG_KEY] = { {TYPE_INTEGER, "TempBlockSize", (ConfigValue) 1048576}, // bytes @@ -169,7 +173,9 @@ {TYPE_STRING, "TracePlugin", (ConfigValue) "fbtrace"}, {TYPE_STRING, "SecurityDatabase", (ConfigValue) "$(root)/security3.fdb"}, // security database name {TYPE_BOOLEAN, "SharedCache", (ConfigValue) true}, - {TYPE_BOOLEAN, "SharedDatabase", (ConfigValue) false} + {TYPE_BOOLEAN, "SharedDatabase", (ConfigValue) false}, + {TYPE_STRING, "WireCrypt", (ConfigValue) NULL}, + {TYPE_STRING, "CryptPlugin", (ConfigValue) "Arc4"} }; /****************************************************************************** @@ -671,9 +677,11 @@ return (const char*) getDefaultConfig()->values[KEY_PLUG_AUTH_MANAGE]; case Firebird::PluginType::Trace: return (const char*) getDefaultConfig()->values[KEY_PLUG_TRACE]; + case Firebird::PluginType::Crypt: + return (const char*) getDefaultConfig()->values[KEY_PLUG_CRYPT]; } - (Firebird::Arg::Gds(isc_random) << "Internal error in getPlugins()").raise(); + (Firebird::Arg::Gds(isc_random) << "Internal error in Config::getPlugins()").raise(); return NULL; // compiler warning silencer } @@ -707,3 +715,9 @@ { return get<const char*>(KEY_SECURITY_DATABASE); } + +const char* Config::getWireCrypt(WireCryptMode wcMode) +{ + const char* rc = getDefaultConfig()->get<const char*>(KEY_WIRE_CRYPT); + return rc ? rc : wcMode == WC_CLIENT ? WIRE_CRYPT_ENABLED : WIRE_CRYPT_REQUIRED; +} Modified: firebird/trunk/src/common/config/config.h =================================================================== --- firebird/trunk/src/common/config/config.h 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/src/common/config/config.h 2012-02-24 12:39:27 UTC (rev 54041) @@ -75,6 +75,12 @@ enum AmCache {AM_UNKNOWN, AM_DISABLED, AM_ENABLED}; +extern const char* WIRE_CRYPT_DISABLED; +extern const char* WIRE_CRYPT_ENABLED; +extern const char* WIRE_CRYPT_REQUIRED; + +enum WireCryptMode {WC_CLIENT, WC_SERVER}; // Have different defaults + const char* const CONFIG_FILE = "firebird.conf"; class Config : public Firebird::RefCounted, public Firebird::GlobalStorage @@ -133,6 +139,8 @@ KEY_SECURITY_DATABASE, KEY_SHARED_CACHE, KEY_SHARED_DATABASE, + KEY_WIRE_CRYPT, + KEY_PLUG_CRYPT, MAX_CONFIG_KEY // keep it last }; @@ -332,6 +340,8 @@ static const char* getPlugins(unsigned int type); const char* getSecurityDatabase() const; + + static const char* getWireCrypt(WireCryptMode wcMode); }; // Implementation of interface to access master configuration file Modified: firebird/trunk/src/include/firebird/Auth.h =================================================================== --- firebird/trunk/src/include/firebird/Auth.h 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/src/include/firebird/Auth.h 2012-02-24 12:39:27 UTC (rev 54041) @@ -37,7 +37,10 @@ namespace Auth { -enum Result {AUTH_SUCCESS, AUTH_CONTINUE, AUTH_FAILED, AUTH_MORE_DATA}; +const int AUTH_SUCCESS = 0; +const int AUTH_MORE_DATA = 1; +const int AUTH_CONTINUE = 2; +const int AUTH_FAILED = -1; class IWriter : public Firebird::IVersioned { @@ -54,9 +57,10 @@ public: virtual const char* FB_CARG getLogin() = 0; virtual const unsigned char* FB_CARG getData(unsigned int* length) = 0; - virtual void FB_CARG putData(unsigned int length, const void* data) = 0; + virtual void FB_CARG putData(Firebird::IStatus* status, unsigned int length, const void* data) = 0; + virtual void FB_CARG putKey(Firebird::IStatus* status, Firebird::FbCryptKey* cryptKey) = 0; }; -#define FB_AUTH_SERVER_BLOCK_VERSION (FB_VERSIONED_VERSION + 3) +#define FB_AUTH_SERVER_BLOCK_VERSION (FB_VERSIONED_VERSION + 4) // Representation of auth-related data, passed to client auth plugin class IClientBlock : public Firebird::IRefCounted @@ -65,29 +69,26 @@ virtual const char* FB_CARG getLogin() = 0; virtual const char* FB_CARG getPassword() = 0; virtual const unsigned char* FB_CARG getData(unsigned int* length) = 0; - virtual void FB_CARG putData(unsigned int length, const void* data) = 0; + virtual void FB_CARG putData(Firebird::IStatus* status, unsigned int length, const void* data) = 0; + virtual void FB_CARG putKey(Firebird::IStatus* status, Firebird::FbCryptKey* cryptKey) = 0; }; -#define FB_AUTH_CLIENT_BLOCK_VERSION (FB_VERSIONED_VERSION + 4) +#define FB_AUTH_CLIENT_BLOCK_VERSION (FB_VERSIONED_VERSION + 5) // server part of authentication plugin class IServer : public Firebird::IPluginBase { public: - virtual Result FB_CARG authenticate(Firebird::IStatus* status, IServerBlock* sBlock, IWriter* writerInterface) = 0; - virtual Result FB_CARG getSessionKey(Firebird::IStatus* status, - const unsigned char** key, unsigned int* keyLen) = 0; + virtual int FB_CARG authenticate(Firebird::IStatus* status, IServerBlock* sBlock, IWriter* writerInterface) = 0; }; -#define FB_AUTH_SERVER_VERSION (FB_PLUGIN_VERSION + 2) +#define FB_AUTH_SERVER_VERSION (FB_PLUGIN_VERSION + 1) // .. and corresponding client class IClient : public Firebird::IPluginBase { public: - virtual Result FB_CARG authenticate(Firebird::IStatus* status, IClientBlock* cBlock) = 0; - virtual Result FB_CARG getSessionKey(Firebird::IStatus* status, - const unsigned char** key, unsigned int* keyLen) = 0; + virtual int FB_CARG authenticate(Firebird::IStatus* status, IClientBlock* cBlock) = 0; }; -#define FB_AUTH_CLIENT_VERSION (FB_PLUGIN_VERSION + 2) +#define FB_AUTH_CLIENT_VERSION (FB_PLUGIN_VERSION + 1) class IUserField : public Firebird::IVersioned { Added: firebird/trunk/src/include/firebird/Crypt.h =================================================================== --- firebird/trunk/src/include/firebird/Crypt.h (rev 0) +++ firebird/trunk/src/include/firebird/Crypt.h 2012-02-24 12:39:27 UTC (rev 54041) @@ -0,0 +1,53 @@ +/* + * The contents of this file are subject to the Initial + * Developer's Public License Version 1.0 (the "License"); + * you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_idpl. + * + * Software distributed under the License is distributed AS IS, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. + * See the License for the specific language governing rights + * and limitations under the License. + * + * The Original Code was created by Alexander Peshkov + * for the Firebird Open Source RDBMS project. + * + * Copyright (c) 2012 Alex Peshkov <pes...@ma...> + * and all contributors signed below. + * + * All Rights Reserved. + * Contributor(s): ______________________________________. + */ + +#ifndef FIREBIRD_CRYPT_PLUGIN_H +#define FIREBIRD_CRYPT_PLUGIN_H + +#include "./Plugin.h" + +namespace Firebird { + +class ICrypt : public IRefCounted +{ +public: + virtual void FB_CARG transform(IStatus* status, unsigned int length, void* to, const void* from) = 0; +}; + +#define FB_CRYPT_VERSION (FB_REFCOUNTED_VERSION + 1) + +class ICryptPlugin : public IPluginBase +{ +public: + // getKnownTypes() function must return list of acceptable keys' types + // special type 'builtin' means that crypt plugin knows itself where to get the key from + virtual const char* FB_CARG getKnownTypes(IStatus* status) = 0; + virtual ICrypt* FB_CARG getEncrypt(IStatus* status, FbCryptKey* key) = 0; + virtual ICrypt* FB_CARG getDecrypt(IStatus* status, FbCryptKey* key) = 0; +}; + +#define FB_CRYPT_PLUGIN_VERSION (FB_PLUGIN_VERSION + 3) + +} // namespace Firebird + + +#endif // FIREBIRD_CRYPT_PLUGIN_H Property changes on: firebird/trunk/src/include/firebird/Crypt.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Modified: firebird/trunk/src/include/firebird/Plugin.h =================================================================== --- firebird/trunk/src/include/firebird/Plugin.h 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/src/include/firebird/Plugin.h 2012-02-24 12:39:27 UTC (rev 54041) @@ -198,6 +198,16 @@ #define FB_PLUGIN_MANAGER_VERSION (FB_VERSIONED_VERSION + 6) +struct FbCryptKey +{ + const char* type; // If NULL type is auth plugin name + const void* encryptKey; + const void* decryptKey; // May be NULL for symmetric keys + unsigned int encryptLength; + unsigned int decryptLength; // Ignored when decryptKey is NULL +}; + + typedef void PluginEntrypoint(IMaster* masterInterface); namespace PluginType { @@ -215,15 +225,6 @@ static const unsigned int MaxType = 17; // keep in sync please }; -class ICrypt : public IPluginBase -{ -public: - virtual void FB_CARG setKey(IStatus* status, unsigned int length, const void* key) = 0; - virtual void FB_CARG transform(IStatus* status, unsigned int length, void* to, const void* from) = 0; -}; -#define FB_CRYPT_VERSION (FB_PLUGIN_VERSION + 2) - } // namespace Firebird - #endif // FIREBIRD_PLUGIN_API_H Added: firebird/trunk/src/plugins/crypt/arc4/Arc4.cpp =================================================================== --- firebird/trunk/src/plugins/crypt/arc4/Arc4.cpp (rev 0) +++ firebird/trunk/src/plugins/crypt/arc4/Arc4.cpp 2012-02-24 12:39:27 UTC (rev 54041) @@ -0,0 +1,179 @@ +/* + * PROGRAM: Firebird authentication. + * MODULE: SrpClient.cpp + * DESCRIPTION: SPR authentication plugin. + * + * The contents of this file are subject to the Initial + * Developer's Public License Version 1.0 (the "License"); + * you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_idpl. + * + * Software distributed under the License is distributed AS IS, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. + * See the License for the specific language governing rights + * and limitations under the License. + * + * The Original Code was created by Alex Peshkov + * for the Firebird Open Source RDBMS project. + * + * Copyright (c) 2012 Alex Peshkov <peshkoff at mail.ru> + * and all contributors signed below. + * + * All Rights Reserved. + * Contributor(s): ______________________________________. + */ + +#include "firebird.h" + +#include "./Arc4.h" +#include "../common/classes/ImplementHelper.h" + +using namespace Firebird; + +namespace +{ + +class Cypher : public RefCntIface<ICrypt, FB_CRYPT_VERSION> +{ +public: + Cypher() + : s1(0), s2(0) + { + for (unsigned int n = 0; n < sizeof(state); ++n) + { + state[n] = n; + } + } + + void setKey(unsigned int l, const unsigned char* key) + { + for (unsigned int k1 = 0, k2 = 0; k1 < sizeof(state); ++k1) + { + k2 = (k2 + key[k1 % l] + state[k1]) & 0xff; + swap(state[k1], state[k2]); + } + } + + // ICrypt implementation + void FB_CARG transform(IStatus* status, unsigned int length, void* to, const void* from) + { + status->init(); + + unsigned char* t = reinterpret_cast<unsigned char*>(to); + const unsigned char* f = reinterpret_cast<const unsigned char*>(from); + while(length--) + { + s2 += state[++s1]; + swap(state[s1], state[s2]); + unsigned char k = state[s1] + state[s2]; + k = state[k]; + *t++ = k ^ *f++; + } + } + + int release() + { + if (--refCounter == 0) + { + delete this; + return 0; + } + return 1; + } + +private: + unsigned char state[256]; + unsigned char s1; + unsigned char s2; + + void swap(unsigned char& c1, unsigned char& c2) + { + unsigned char temp = c1; + c1 = c2; + c2 = temp; + } +}; + +} // anonymous namespace + + +namespace Crypt { + +class Arc4 : public StdPlugin<ICryptPlugin, FB_CRYPT_PLUGIN_VERSION> +{ +public: + explicit Arc4(IPluginConfig*) + { } + + // ICryptPlugin implementation + const char* FB_CARG getKnownTypes(IStatus* status); + ICrypt* FB_CARG getEncrypt(IStatus* status, FbCryptKey* key); + ICrypt* FB_CARG getDecrypt(IStatus* status, FbCryptKey* key); + int FB_CARG release(); + +private: + ICrypt* createCypher(IStatus* status, unsigned int l, const void* key); +}; + +int Arc4::release() +{ + if (--refCounter == 0) + { + delete this; + return 0; + } + return 1; +} + +ICrypt* Arc4::getEncrypt(IStatus* status, FbCryptKey* key) +{ + return createCypher(status, key->encryptLength, key->encryptKey); +} + +ICrypt* Arc4::getDecrypt(IStatus* status, FbCryptKey* key) +{ + const void* k = key->decryptKey; + unsigned int l = key->decryptLength; + if (!k) + { + k = key->encryptKey; + l = key->encryptLength; + } + return createCypher(status, l, k); +} + +ICrypt* Arc4::createCypher(IStatus* status, unsigned int l, const void* key) +{ + status->init(); + try + { + Cypher* rc = new Cypher; + rc->setKey(l, reinterpret_cast<const unsigned char*>(key)); + return rc; + } + catch (const Exception& ex) + { + ex.stuffException(status); + } + return NULL; +} + +const char* Arc4::getKnownTypes(IStatus* status) +{ + status->init(); + return "Symmetric"; +} + + +namespace +{ + SimpleFactory<Arc4> factory; +} + +void registerArc4(IPluginManager* iPlugin) +{ + iPlugin->registerPluginFactory(PluginType::Crypt, "Arc4", &factory); +} + +} // namespace Crypt Property changes on: firebird/trunk/src/plugins/crypt/arc4/Arc4.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: firebird/trunk/src/plugins/crypt/arc4/Arc4.h =================================================================== --- firebird/trunk/src/plugins/crypt/arc4/Arc4.h (rev 0) +++ firebird/trunk/src/plugins/crypt/arc4/Arc4.h 2012-02-24 12:39:27 UTC (rev 54041) @@ -0,0 +1,38 @@ +/* + * PROGRAM: Firebird authentication. + * MODULE: SrpClient.h + * DESCRIPTION: SPR authentication plugin. + * + * The contents of this file are subject to the Initial + * Developer's Public License Version 1.0 (the "License"); + * you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_idpl. + * + * Software distributed under the License is distributed AS IS, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. + * See the License for the specific language governing rights + * and limitations under the License. + * + * The Original Code was created by Alex Peshkov + * for the Firebird Open Source RDBMS project. + * + * Copyright (c) 2012 Alex Peshkov <peshkoff at mail.ru> + * and all contributors signed below. + * + * All Rights Reserved. + * Contributor(s): ______________________________________. + */ + +#ifndef CRYPT_ARC4_H +#define CRYPT_ARC4_H + +#include "firebird/Crypt.h" + +namespace Crypt { + +void registerArc4(Firebird::IPluginManager* iPlugin); + +} // namespace Auth + +#endif // CRYPT_ARC4_H Property changes on: firebird/trunk/src/plugins/crypt/arc4/Arc4.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Modified: firebird/trunk/src/remote/client/interface.cpp =================================================================== --- firebird/trunk/src/remote/client/interface.cpp 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/src/remote/client/interface.cpp 2012-02-24 12:39:27 UTC (rev 54041) @@ -66,6 +66,7 @@ #include "../auth/SecurityDatabase/LegacyClient.h" #include "../auth/SecureRemotePassword/client/SrpClient.h" #include "../auth/trusted/AuthSspi.h" +#include "../plugins/crypt/arc4/Arc4.h" #ifdef HAVE_UNISTD_H @@ -529,6 +530,8 @@ #ifdef TRUSTED_AUTH Auth::registerTrustedClient(iPlugin); #endif + + Crypt::registerArc4(iPlugin); } } // namespace Remote @@ -593,7 +596,7 @@ static void authFillParametersBlock(ClntAuthBlock& authItr, ClumpletWriter& dpb, const ParametersSet* tags, rem_port* port); static void authReceiveResponse(ClntAuthBlock& authItr, rem_port* port, Rdb* rdb, - IStatus* status, PACKET* packet); + IStatus* status, PACKET* packet, bool checkKeys); static AtomicCounter remote_event_id; @@ -4562,21 +4565,24 @@ cBlock.load(dpb, &dpbParam); authenticateStep0(cBlock); + rem_port* port = NULL; + #ifdef WIN_NT if (ISC_analyze_protocol(PROTOCOL_XNET, file_name, node_name)) { - return XNET_analyze(&cBlock, file_name, uv_flag); + port = XNET_analyze(&cBlock, file_name, uv_flag); } - if (ISC_analyze_protocol(PROTOCOL_WNET, file_name, node_name) || + else if (ISC_analyze_protocol(PROTOCOL_WNET, file_name, node_name) || ISC_analyze_pclan(file_name, node_name)) { if (node_name.isEmpty()) { node_name = WNET_LOCALHOST; } - return WNET_analyze(&cBlock, file_name, node_name.c_str(), uv_flag); + port = WNET_analyze(&cBlock, file_name, node_name.c_str(), uv_flag); } + else #endif if (ISC_analyze_protocol(PROTOCOL_INET, file_name, node_name) || @@ -4586,13 +4592,17 @@ { node_name = INET_LOCALHOST; } - return INET_analyze(&cBlock, file_name, node_name.c_str(), uv_flag, dpb); + port = INET_analyze(&cBlock, file_name, node_name.c_str(), uv_flag, dpb); } // We have a local connection string. If it's a file on a network share, // try to connect to the corresponding host remotely. - rem_port* port = NULL; + if (port) + { + cBlock.tryNewKeys(port); + return port; + } #ifdef WIN_NT PathName expanded_name = file_name; @@ -4640,6 +4650,10 @@ } } + if (port) + { + cBlock.tryNewKeys(port); + } return port; } @@ -5410,7 +5424,7 @@ // Probably communicate with services auth fb_assert(cBlock); HANDSHAKE_DEBUG(fprintf(stderr, "info() calls authReceiveResponse\n")); - authReceiveResponse(*cBlock, rdb->rdb_port, rdb, status, packet); + authReceiveResponse(*cBlock, rdb->rdb_port, rdb, status, packet, false); } else { @@ -5440,9 +5454,11 @@ if (port->port_protocol >= PROTOCOL_VERSION13 || REMOTE_legacy_auth(cBlock.plugins.name(), port->port_protocol)) { + // OK to use plugin cBlock.resetDataFromPlugin(); - // OK to use plugin - switch(cBlock.plugins.plugin()->authenticate(&s, &cBlock)) + int authRc = cBlock.plugins.plugin()->authenticate(&s, &cBlock); + cBlock.tryNewKeys(port); + switch(authRc) { case Auth::AUTH_SUCCESS: case Auth::AUTH_MORE_DATA: @@ -5460,8 +5476,35 @@ } } +static CSTRING* REMOTE_dup_string(CSTRING* from) +{ + if (from && from->cstr_length) + { + CSTRING* rc = FB_NEW(*getDefaultMemoryPool()) CSTRING; + memset(rc, 0, sizeof(CSTRING)); + rc->cstr_length = from->cstr_length; + rc->cstr_address = FB_NEW(*getDefaultMemoryPool()) UCHAR[rc->cstr_length]; + memcpy(rc->cstr_address, from->cstr_address, rc->cstr_length); + return rc; + } + + return NULL; +} + +static void REMOTE_free_string(CSTRING* tmp) +{ + if (tmp) + { + if (tmp->cstr_address) + { + delete[] tmp->cstr_address; + } + delete tmp; + } +} + static void authReceiveResponse(ClntAuthBlock& cBlock, rem_port* port, Rdb* rdb, - IStatus* status, PACKET* packet) + IStatus* status, PACKET* packet, bool checkKeys) { LocalStatus s; @@ -5484,13 +5527,30 @@ case op_cont_auth: d = &packet->p_auth_cont.p_data; n = &packet->p_auth_cont.p_name; + port->addServerKeys(&packet->p_auth_cont.p_keys); HANDSHAKE_DEBUG(fprintf(stderr, "RR:CA d=%d n=%d '%.*s' 0x%x\n", d->cstr_length, n->cstr_length, n->cstr_length, n->cstr_address, n->cstr_address ? n->cstr_address[0] : 0)); break; + case op_crypt: + fb_assert(!checkKeys); + { + HANDSHAKE_DEBUG(fprintf(stderr, "RR: Crypt answer\n")); + CSTRING* tmpKeys = REMOTE_dup_string(&packet->p_crypt.p_key); + // it was start crypt packet, receive next one + receive_response(status, rdb, packet); + // now try to start crypt + if (tmpKeys) + { + port->addServerKeys(tmpKeys); + REMOTE_free_string(tmpKeys); + } + } + return; + default: HANDSHAKE_DEBUG(fprintf(stderr, "RR: Default answer\n")); - REMOTE_check_response(status, rdb, packet); + REMOTE_check_response(status, rdb, packet, checkKeys); // successfully attached HANDSHAKE_DEBUG(fprintf(stderr, "RR: OK!\n")); rdb->rdb_id = packet->p_resp.p_resp_object; @@ -5528,6 +5588,7 @@ { break; } + cBlock.tryNewKeys(port); // send answer (may be empty) to server if (port->port_protocol >= PROTOCOL_VERSION13) @@ -5620,7 +5681,7 @@ send_packet(port, packet); - authReceiveResponse(cBlock, port, rdb, status, packet); + authReceiveResponse(cBlock, port, rdb, status, packet, true); } catch (const Exception&) { @@ -6519,7 +6580,7 @@ try { - authReceiveResponse(cBlock, rdb->rdb_port, rdb, status, packet); + authReceiveResponse(cBlock, rdb->rdb_port, rdb, status, packet, true); } catch (const Exception&) { @@ -6788,10 +6849,17 @@ return *length ? dataForPlugin.begin() : NULL; } -void ClntAuthBlock::putData(unsigned int length, const void* data) +void ClntAuthBlock::putData(IStatus* status, unsigned int length, const void* data) { - void* to = dataFromPlugin.getBuffer(length); - memcpy(to, data, length); + try + { + void* to = dataFromPlugin.getBuffer(length); + memcpy(to, data, length); + } + catch (const Exception& ex) + { + ex.stuffException(status); + } } int ClntAuthBlock::release() @@ -6828,3 +6896,49 @@ userName = port->port_user_name; password = port->port_password; } + +void ClntAuthBlock::putKey(IStatus* status, FbCryptKey* cryptKey) +{ + status->init(); + try + { + const char* t = cryptKey->type; + if (!t) + { + fb_assert(plugins.hasData()); + t = plugins.name(); + } + + InternalCryptKey* k = FB_NEW(*getDefaultMemoryPool()) + InternalCryptKey(t, cryptKey->encryptKey, cryptKey->encryptLength, + cryptKey->decryptKey, cryptKey->decryptLength); + cryptKeys.add(k); + } + catch (const Exception& ex) + { + ex.stuffException(status); + } +} + +void ClntAuthBlock::tryNewKeys(rem_port* port) +{ + for (unsigned k = 0; k < cryptKeys.getCount(); ++k) + { + if (port->tryNewKey(cryptKeys[k])) + { + releaseKeys(k); + cryptKeys.clear(); + return; + } + } + + cryptKeys.clear(); +} + +void ClntAuthBlock::releaseKeys(unsigned from) +{ + while (from < cryptKeys.getCount()) + { + delete cryptKeys[from++]; + } +} Modified: firebird/trunk/src/remote/inet.cpp =================================================================== --- firebird/trunk/src/remote/inet.cpp 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/src/remote/inet.cpp 2012-02-24 12:39:27 UTC (rev 54041) @@ -607,6 +607,7 @@ cBlock->storeDataForPlugin(packet->p_acpd.p_acpt_data.cstr_length, packet->p_acpd.p_acpt_data.cstr_address); cBlock->authComplete = packet->p_acpd.p_acpt_authenticated; + port->addServerKeys(&packet->p_acpd.p_acpt_keys); } break; @@ -622,7 +623,7 @@ try { Firebird::LocalStatus warning; // Ignore connect warnings for a while - REMOTE_check_response(&warning, rdb, packet); + REMOTE_check_response(&warning, rdb, packet, false); } catch(const Firebird::Exception&) { @@ -2871,6 +2872,7 @@ int n = 0; int inetErrNo; + LocalStatus st; for (;;) { @@ -2944,9 +2946,17 @@ } n = recv(port->port_handle, reinterpret_cast<char*>(buffer), buffer_length, 0); - // ->decrypt inetErrNo = INET_ERRNO; + if (n > 0 && port->port_recv_cipher) + { + port->port_recv_cipher->transform(&st, n, buffer, buffer); + if (!st.isSuccess()) + { + status_exception::raise(st.get()); + } + } + if (n != -1 || !INTERRUPT_ERROR(inetErrNo)) break; } @@ -3010,11 +3020,25 @@ * **************************************/ + SSHORT length = buffer_length; const char* data = buffer; - SSHORT length = buffer_length; - // ->encrypt + // encrypt + HalfStaticArray<char, BUFFER_TINY> b; + if (port->port_send_cipher) + { + LocalStatus st; + char* d = b.getBuffer(buffer_length); + port->port_send_cipher->transform(&st, buffer_length, d, data); + if (!st.isSuccess()) + { + status_exception::raise(st.get()); + } + + data = d; + } + while (length) { #ifdef DEBUG Modified: firebird/trunk/src/remote/protocol.cpp =================================================================== --- firebird/trunk/src/remote/protocol.cpp 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/src/remote/protocol.cpp 2012-02-24 12:39:27 UTC (rev 54041) @@ -336,7 +336,7 @@ MAP(xdr_cstring, accept_with_data->p_acpt_data); MAP(xdr_cstring, accept_with_data->p_acpt_plugin); MAP(xdr_u_short, accept_with_data->p_acpt_authenticated); - //??? fprintf(stderr, "data length %d\n", accept_with_data->p_acpt_data.cstr_length); + MAP(xdr_cstring, accept_with_data->p_acpt_keys); DEBUG_PRINTSIZE(xdrs, p->p_operation); return P_TRUE(xdrs, p); @@ -749,6 +749,7 @@ MAP(xdr_cstring, auth->p_data); MAP(xdr_cstring, auth->p_name); MAP(xdr_cstring, auth->p_list); + MAP(xdr_cstring, auth->p_keys); DEBUG_PRINTSIZE(xdrs, p->p_operation); return P_TRUE(xdrs, p); @@ -763,6 +764,16 @@ return P_TRUE(xdrs, p); } + case op_crypt: + { + P_CRYPT* crypt = &p->p_crypt; + MAP(xdr_cstring, crypt->p_plugin); + MAP(xdr_cstring, crypt->p_key); + DEBUG_PRINTSIZE(xdrs, p->p_operation); + + return P_TRUE(xdrs, p); + } + ///case op_insert: default: #ifdef DEV_BUILD Modified: firebird/trunk/src/remote/protocol.h =================================================================== --- firebird/trunk/src/remote/protocol.h 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/src/remote/protocol.h 2012-02-24 12:39:27 UTC (rev 54041) @@ -277,6 +277,8 @@ op_abort_aux_connection = 95, // Async operation - stop waiting for async connection to arrive + op_crypt = 96, + op_max }; @@ -390,6 +392,7 @@ CSTRING p_acpt_data; // Returned auth data CSTRING p_acpt_plugin; // Plugin to continue with USHORT p_acpt_authenticated; // Auth complete in single step (few! strange...) + CSTRING p_acpt_keys; // Keys known to the server }; typedef p_acpd P_ACPD; @@ -610,6 +613,7 @@ CSTRING p_data; // Specific data CSTRING p_name; // Plugin name CSTRING p_list; // Plugin list + CSTRING p_keys; // Keys available on server } P_AUTH_CONT; struct p_update_account @@ -632,6 +636,11 @@ USHORT p_co_kind; // Kind of cancelation } P_CANCEL_OP; +typedef struct p_crypt +{ + CSTRING p_plugin; // Crypt plugin name + CSTRING p_key; // Key name / keys available on server +} P_CRYPT; // Generalize packet (sic!) @@ -675,6 +684,7 @@ p_authenticate p_authenticate_user; P_CANCEL_OP p_cancel_op; // Cancel operation P_AUTH_CONT p_auth_cont; // Request more auth data + P_CRYPT p_crypt; // Start wire crypt public: packet() Modified: firebird/trunk/src/remote/remot_proto.h =================================================================== --- firebird/trunk/src/remote/remot_proto.h 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/src/remote/remot_proto.h 2012-02-24 12:39:27 UTC (rev 54041) @@ -61,7 +61,7 @@ Firebird::RefPtr<Config> REMOTE_get_config(const Firebird::PathName* dbName); void REMOTE_parseList(Remote::ParsedList&, Firebird::PathName); void REMOTE_makeList(Firebird::PathName& list, const Remote::ParsedList& parsed); -void REMOTE_check_response(Firebird::IStatus* warning, Rdb* rdb, PACKET* packet); +void REMOTE_check_response(Firebird::IStatus* warning, Rdb* rdb, PACKET* packet, bool checkKeys = false); #define HANDSHAKE_DEBUG(A) Modified: firebird/trunk/src/remote/remote.cpp =================================================================== --- firebird/trunk/src/remote/remote.cpp 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/src/remote/remote.cpp 2012-02-24 12:39:27 UTC (rev 54041) @@ -46,10 +46,70 @@ IMPLEMENT_TRACE_ROUTINE(remote_trace, "REMOTE") #endif + +const ParametersSet dpbParam = {isc_dpb_dummy_packet_interval, + isc_dpb_user_name, + isc_dpb_auth_block, + isc_dpb_password, + isc_dpb_password_enc, + isc_dpb_trusted_auth, + isc_dpb_auth_plugin_name, + isc_dpb_auth_plugin_list, + isc_dpb_specific_auth_data, + isc_dpb_address_path, + isc_dpb_process_id, + isc_dpb_process_name, + isc_dpb_encrypt_key}; + +const ParametersSet spbParam = {isc_spb_dummy_packet_interval, + isc_spb_user_name, + isc_spb_auth_block, + isc_spb_password, + isc_spb_password_enc, + isc_spb_trusted_auth, + isc_spb_auth_plugin_name, + isc_spb_auth_plugin_list, + isc_spb_specific_auth_data, + isc_spb_address_path, + isc_spb_process_id, + isc_spb_process_name, + 0}; + +const ParametersSet spbStartParam = {0, + 0, + isc_spb_auth_block, + 0, + 0, + isc_spb_trusted_auth, + isc_spb_auth_plugin_name, + isc_spb_auth_plugin_list, + isc_spb_specific_auth_data, + 0, + 0, + 0, + 0}; // Need new parameter here + +const ParametersSet spbInfoParam = {0, + 0, + isc_info_svc_auth_block, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0}; + + const SLONG DUMMY_INTERVAL = 60; // seconds const int ATTACH_FAILURE_SPACE = 16 * 1024; // bytes +static Firebird::MakeUpgradeInfo<> upInfo; + void REMOTE_cleanup_transaction( Rtr* transaction) { /************************************** @@ -812,8 +872,18 @@ delete port_packet_vector; #endif - delete port_crypt_keys; + while (port_crypt_keys.hasData()) + { + delete port_crypt_keys.pop(); + } + if (port_send_cipher) + port_send_cipher->release(); + if (port_recv_cipher) + port_recv_cipher->release(); + if (port_crypt_plugin) + Firebird::PluginManagerInterfacePtr()->releasePlugin(port_crypt_plugin); + #ifdef DEV_BUILD --portCounter; #endif @@ -1028,7 +1098,7 @@ } } -void REMOTE_check_response(Firebird::IStatus* warning, Rdb* rdb, PACKET* packet) +void REMOTE_check_response(Firebird::IStatus* warning, Rdb* rdb, PACKET* packet, bool checkKeys) { /************************************** * @@ -1041,6 +1111,22 @@ * **************************************/ + rdb->rdb_port->checkResponse(warning, packet, checkKeys); +} + +void rem_port::checkResponse(Firebird::IStatus* warning, PACKET* packet, bool checkKeys) +{ +/************************************** + * + * R E M O T E _ c h e c k _ r e s p o n s e + * + ************************************** + * + * Functional description + * Check response to a remote call. + * + **************************************/ + // Get status vector const ISC_STATUS success_vector[] = {isc_arg_gds, FB_SUCCESS, isc_arg_end}; @@ -1053,7 +1139,6 @@ // Translate any gds codes into local operating specific codes Firebird::SimpleStatusVector newVector; - rem_port* port = rdb->rdb_port; while (*vector != isc_arg_end) { @@ -1083,8 +1168,12 @@ const ISC_STATUS pktErr = vector[1]; if (pktErr == isc_shutdown || pktErr == isc_att_shutdown) { - port->port_flags |= PORT_rdb_shutdown; + port_flags |= PORT_rdb_shutdown; } + else if (checkKeys) + { + addServerKeys(&packet->p_resp.p_resp_data); + } if ((packet->p_operation == op_response || packet->p_operation == op_response_piggyback) && !vector[1]) @@ -1101,58 +1190,129 @@ Firebird::status_exception::raise(vector); } -const ParametersSet dpbParam = {isc_dpb_dummy_packet_interval, - isc_dpb_user_name, - isc_dpb_auth_block, - isc_dpb_password, - isc_dpb_password_enc, - isc_dpb_trusted_auth, - isc_dpb_auth_plugin_name, - isc_dpb_auth_plugin_list, - isc_dpb_specific_auth_data, - isc_dpb_address_path, - isc_dpb_process_id, - isc_dpb_process_name, - isc_dpb_encrypt_key}; +void rem_port::addServerKeys(CSTRING* passedStr) +{ + Firebird::ClumpletReader newKeys(Firebird::ClumpletReader::UnTagged, + passedStr->cstr_address, passedStr->cstr_length); -const ParametersSet spbParam = {isc_spb_dummy_packet_interval, - isc_spb_user_name, - isc_spb_auth_block, - isc_spb_password, - isc_spb_password_enc, - isc_spb_trusted_auth, - isc_spb_auth_plugin_name, - isc_spb_auth_plugin_list, - isc_spb_specific_auth_data, - isc_spb_address_path, - isc_spb_process_id, - isc_spb_process_name, - 0}; + for (newKeys.rewind(); !newKeys.isEof(); newKeys.moveNext()) + { + KnownServerKey key; + fb_assert(newKeys.getClumpTag() == TAG_KEY_TYPE); + newKeys.getPath(key.type); + newKeys.moveNext(); + if (newKeys.isEof()) + { + break; + } + fb_assert(newKeys.getClumpTag() == TAG_KEY_PLUGINS); + newKeys.getPath(key.plugins); + key.plugins += ' '; + key.plugins.insert(0, " "); -const ParametersSet spbStartParam = {0, - 0, - isc_spb_auth_block, - 0, - 0, - isc_spb_trusted_auth, - isc_spb_auth_plugin_name, - isc_spb_auth_plugin_list, - isc_spb_specific_auth_data, - 0, - 0, - 0, - 0}; // Need new parameter here + for (unsigned k = 0; k < port_crypt_keys.getCount(); ++k) + { + if (tryKeyType(key, port_crypt_keys[k])) + { + return; + } + } -const ParametersSet spbInfoParam = {0, - 0, - isc_info_svc_auth_block, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0}; + port_known_server_keys.add(key); + } +} + +bool rem_port::tryNewKey(InternalCryptKey* cryptKey) +{ + for (unsigned t = 0; t < port_known_server_keys.getCount(); ++t) + { + if (tryKeyType(port_known_server_keys[t], cryptKey)) + { + return true; + } + } + + port_crypt_keys.push(cryptKey); + return false; +} + +static void setCStr(CSTRING& to, const char* from) +{ + to.cstr_address = reinterpret_cast<UCHAR*>(const_cast<char*>(from)); + to.cstr_length = strlen(from); + to.cstr_allocated = 0; +} + +bool rem_port::tryKeyType(const KnownServerKey& srvKey, InternalCryptKey* cryptKey) +{ + if (port_crypt_complete) + { + return true; + } + + if (srvKey.type != cryptKey->type) + { + return false; + } + + if (Config::getWireCrypt(WC_CLIENT) == WIRE_CRYPT_DISABLED) + { + port_crypt_complete = true; + return true; + } + + // we got correct key's type pair + // check what about crypt plugin for it + Remote::ParsedList clientPlugins; + REMOTE_parseList(clientPlugins, Config::getPlugins(Firebird::PluginType::Crypt)); + for (unsigned n = 0; n < clientPlugins.getCount(); ++n) + { + Firebird::PathName p(clientPlugins[n]); + if (srvKey.plugins.find(" " + p + " ") != Firebird::PathName::npos) + { + Firebird::GetPlugins<Firebird::ICryptPlugin> + cp(Firebird::PluginType::Crypt, FB_CRYPT_PLUGIN_VERSION, upInfo, p.c_str()); + if (cp.hasData()) + { + // looks like we've found correct crypt plugin and key for it + Firebird::ICryptPlugin* plugin = cp.plugin(); + Firebird::LocalStatus st; + + // Install decrypting cipher + port_recv_cipher = plugin->getDecrypt(&st, cryptKey); + if (!st.isSuccess()) + { + Firebird::status_exception::raise(st.get()); + } + + // Now it's time to notify server about choice done + PACKET crypt; + crypt.p_operation = op_crypt; + setCStr(crypt.p_crypt.p_key, cryptKey->type); + setCStr(crypt.p_crypt.p_plugin, p.c_str()); + send(&crypt); + + // Validate answer - decryptor is installed, therefore OK to do + receive(&crypt); + checkResponse(&st, &crypt); + + // Install encrypting cipher + port_send_cipher = plugin->getEncrypt(&st, cryptKey); + if (!st.isSuccess()) + { + port_recv_cipher->release(); + port_recv_cipher = NULL; + Firebird::status_exception::raise(st.get()); + } + + port_crypt_plugin = plugin; + port_crypt_plugin->addRef(); + port_crypt_complete = true; + // fprintf(stderr, "Installed cipher %s key %s\n", cp.name(), cryptKey->type); + return true; + } + } + } + + return false; +} Modified: firebird/trunk/src/remote/remote.h =================================================================== --- firebird/trunk/src/remote/remote.h 2012-02-24 12:27:36 UTC (rev 54040) +++ firebird/trunk/src/remote/remote.h 2012-02-24 12:39:27 UTC (rev 54041) @@ -46,6 +46,7 @@ #include "firebird/Provider.h" #include "firebird/Auth.h" +#include "firebird/Crypt.h" #ifndef WIN_NT #include <signal.h> @@ -89,7 +90,6 @@ class IEventCallback; } struct rem_port; -class RemCryptKey; typedef Firebird::AutoPtr<UCHAR, Firebird::ArrayDelete<UCHAR> > UCharArrayAutoPtr; @@ -590,9 +590,44 @@ { public: virtual ~ServerAuthBase(); - virtual bool authenticate(rem_port* port, PACKET* send) = 0; + virtual bool authenticate(PACKET* send) = 0; }; +// Helper class to work with public structure FbCryptKey +class InternalCryptKey : public Firebird::FbCryptKey +{ +public: + InternalCryptKey(const char* p_type, const void* p_enc, unsigned int p_eLen, + const void* p_dec = NULL, unsigned int p_dLen = 0) + { + type = p_type; + encryptKey = keyDup(p_enc, p_eLen); + encryptLength = p_eLen; + decryptKey = p_dec ? keyDup(p_dec, p_dLen) : NULL; + decryptLength = p_dLen; + } + + ~InternalCryptKey() + { + keyFree(decryptKey); + keyFree(encryptKey); + } + +private: + void* keyDup(const void* k, unsigned int l) + { + void* rc = FB_NEW(*getDefaultMemoryPool()) char[l]; + memcpy(rc, k, l); + return rc; + } + + void keyFree(const void* k) + { + delete[] ((char*) k); + } +}; + + typedef Firebird::GetPlugins<Auth::IClient> AuthClientPlugins; // Representation of authentication data, visible for plugin @@ -604,6 +639,8 @@ Firebird::string userName, password; // Used by plugin, taken from DPB // These two are legacy encrypted password, trusted auth data and so on - what plugin needs Firebird::UCharBuffer dataForPlugin, dataFromPlugin; + Firebird::HalfStaticArray<InternalCryptKey*, 1> cryptKeys; // Wire crypt keys that came from plugin(s) last time + unsigned nextKey; // First key to be analyzed bool hasCryptKey; // DPB contains disk crypt key, may be passed only over encrypted wire @@ -613,6 +650,10 @@ bool firstTime; // Invoked first time after reset explicit ClntAuthBlock(const Firebird::PathName* fileName); + ~ClntAuthBlock() + { + releaseKeys(0); + } void storeDataForPlugin(unsigned int length, const unsigned char* data); void resetDataFromPlugin(); @@ -626,13 +667,16 @@ void saveServiceDataTo(rem_port*); void loadServiceDataFrom(rem_port*); Firebird::PathName getPluginName(); + void tryNewKeys(rem_port*); + void releaseKeys(unsigned from); // Auth::IClientBlock implementation int FB_CARG release(); const char* FB_CARG getLogin(); const char* FB_CARG getPassword(); const unsigned char* FB_CARG getData(unsigned int* length); - void FB_CARG putData(unsigned int length, const void* data); + void FB_CARG putData(Firebird::IStatus* status, unsigned int length, const void* data); + void FB_CARG putKey(Firebird::IStatus* status, Firebird::FbCryptKey* cryptKey); }; // Representation of authentication data, visible for plugin @@ -642,23 +686,27 @@ class SrvAuthBlock : public Firebird::StdPlugin<Auth::IServerBlock, FB_AUTH_SERVER_BLOCK_VERSION> { private: + rem_port* port; Firebird::string userName; Firebird::PathName pluginName, pluginList; - // These two may be legacy encrypted password, trusted auth data and so on Firebird::UCharBuffer dataForPlugin, dataFromPlugin; - Firebird::PathName dbPath; + Firebird::ClumpletWriter lastExtractedKeys; + Firebird::ObjectsArray<Firebird::PathName> newKeys; bool flComplete, firstTime; public: AuthServerPlugins* plugins; Auth::WriterImplementation authBlockWriter; - SrvAuthBlock() - : userName(getPool()), pluginName(getPool()), pluginList(getPool()), + SrvAuthBlock(rem_port* p_port) + : port(p_port), + userName(getPool()), pluginName(getPool()), pluginList(getPool()), dataForPlugin(getPool()), dataFromPlugin(getPool()), dbPath(getPool()), + lastExtractedKeys(getPool(), Firebird::ClumpletReader::UnTagged, MAX_DPB_SIZE), + newKeys(getPool()), flComplete(false), firstTime(true), plugins(NULL) { } @@ -685,15 +733,44 @@ void createPluginsItr(); void setDataForPlugin(const p_auth_continue* data); void reset(); + bool extractNewKeys(CSTRING* to); // Auth::IServerBlock implementation int FB_CARG release(); const char* FB_CARG getLogin(); const unsigned char* FB_CARG getData(unsigned int* length); - void FB_CARG putData(unsigned int length, const void* data); + void FB_CARG putData(Firebird::IStatus* status, unsigned int length, const void* data); + void FB_CARG putKey(Firebird::IStatus* status, Firebird::FbCr... [truncated message content] |
From: <fir...@us...> - 2012-02-25 04:49:59
|
Revision: 54043 http://firebird.svn.sourceforge.net/firebird/?rev=54043&view=rev Author: firebirds Date: 2012-02-25 04:49:52 +0000 (Sat, 25 Feb 2012) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2012-02-24 16:55:18 UTC (rev 54042) +++ firebird/trunk/ChangeLog 2012-02-25 04:49:52 UTC (rev 54043) @@ -1,3 +1,55 @@ + 2012-02-24 16:55 alexpeshkoff + M builds/posix/darwin.defaults + M builds/posix/make.defaults + M builds/posix/make.rules +Mac port + + 2012-02-24 12:39 alexpeshkoff + M builds/install/misc/firebird.conf.in + M builds/posix/make.shared.variables + M src/auth/AuthDbg.cpp + M src/auth/AuthDbg.h + M src/auth/SecureRemotePassword/client/SrpClient.cpp + M src/auth/SecureRemotePassword/server/SrpServer.cpp + M src/auth/SecurityDatabase/LegacyClient.cpp + M src/auth/SecurityDatabase/LegacyClient.h + M src/auth/SecurityDatabase/LegacyServer.cpp + M src/auth/SecurityDatabase/LegacyServer.h + M src/auth/trusted/AuthSspi.cpp + M src/auth/trusted/AuthSspi.h + M src/common/classes/ClumpletWriter.cpp + M src/common/classes/ClumpletWriter.h + M src/common/classes/ImplementHelper.h + M src/common/config/config.cpp + M src/common/config/config.h + M src/include/firebird/Auth.h + A src/include/firebird/Crypt.h + M src/include/firebird/Plugin.h + A src/plugins/crypt/arc4/Arc4.cpp + A src/plugins/crypt/arc4/Arc4.h + M src/remote/client/interface.cpp + M src/remote/inet.cpp + M src/remote/protocol.cpp + M src/remote/protocol.h + M src/remote/remot_proto.h + M src/remote/remote.cpp + M src/remote/remote.h + M src/remote/server/server.cpp +Implemented CORE-672: "Over the wire" connection encryption + + 2012-02-24 12:27 alexpeshkoff + M src/jrd/jrd.cpp +No use in specially handling DBB_security_db when closing engine. Keep it commented for a while. + + 2012-02-24 12:25 alexpeshkoff + M src/yvalve/YObjects.h + M src/yvalve/why.cpp +Fixed races in YValve + + 2012-02-24 12:24 alexpeshkoff + M src/yvalve/PluginManager.cpp +Minor debugging enhancement - makes it possible to watch name in dtor + 2012-02-23 15:39 dimitr M src/dsql/StmtNodes.cpp Fixed the assert/crash when using the cursors at runtime. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-02-24 16:55:18 UTC (rev 54042) +++ firebird/trunk/src/jrd/build_no.h 2012-02-25 04:49:52 UTC (rev 54043) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29793 + FORMAL BUILD NUMBER:29798 */ -#define PRODUCT_VER_STRING "3.0.0.29793" -#define FILE_VER_STRING "WI-T3.0.0.29793" -#define LICENSE_VER_STRING "WI-T3.0.0.29793" -#define FILE_VER_NUMBER 3, 0, 0, 29793 +#define PRODUCT_VER_STRING "3.0.0.29798" +#define FILE_VER_STRING "WI-T3.0.0.29798" +#define LICENSE_VER_STRING "WI-T3.0.0.29798" +#define FILE_VER_NUMBER 3, 0, 0, 29798 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29793" +#define FB_BUILD_NO "29798" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2012-02-24 16:55:18 UTC (rev 54042) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-02-25 04:49:52 UTC (rev 54043) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29793 +BuildNum=29798 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <asf...@us...> - 2012-02-25 13:55:10
|
Revision: 54045 http://firebird.svn.sourceforge.net/firebird/?rev=54045&view=rev Author: asfernandes Date: 2012-02-25 13:55:04 +0000 (Sat, 25 Feb 2012) Log Message: ----------- Renamed error constant/message by Alex request. Modified Paths: -------------- firebird/trunk/lang_helpers/gds_codes.ftn firebird/trunk/lang_helpers/gds_codes.pas firebird/trunk/src/include/gen/codetext.h firebird/trunk/src/include/gen/iberror.h firebird/trunk/src/include/gen/msgs.h firebird/trunk/src/include/gen/sql_code.h firebird/trunk/src/include/gen/sql_state.h firebird/trunk/src/jrd/jrd.cpp firebird/trunk/src/msgs/messages2.sql firebird/trunk/src/msgs/system_errors2.sql firebird/trunk/src/yvalve/why.cpp Modified: firebird/trunk/lang_helpers/gds_codes.ftn =================================================================== --- firebird/trunk/lang_helpers/gds_codes.ftn 2012-02-25 13:53:49 UTC (rev 54044) +++ firebird/trunk/lang_helpers/gds_codes.ftn 2012-02-25 13:55:04 UTC (rev 54045) @@ -1390,8 +1390,8 @@ PARAMETER (GDS__package_name = 335544988) INTEGER*4 GDS__cannot_make_not_null PARAMETER (GDS__cannot_make_not_null = 335544989) - INTEGER*4 GDS__feature_deprecated - PARAMETER (GDS__feature_deprecated = 335544990) + INTEGER*4 GDS__feature_removed + PARAMETER (GDS__feature_removed = 335544990) INTEGER*4 GDS__view_name PARAMETER (GDS__view_name = 335544991) INTEGER*4 GDS__lock_dir_access Modified: firebird/trunk/lang_helpers/gds_codes.pas =================================================================== --- firebird/trunk/lang_helpers/gds_codes.pas 2012-02-25 13:53:49 UTC (rev 54044) +++ firebird/trunk/lang_helpers/gds_codes.pas 2012-02-25 13:55:04 UTC (rev 54045) @@ -702,7 +702,7 @@ gds_no_trusted_spb = 335544987; gds_package_name = 335544988; gds_cannot_make_not_null = 335544989; - gds_feature_deprecated = 335544990; + gds_feature_removed = 335544990; gds_view_name = 335544991; gds_lock_dir_access = 335544992; gds_invalid_fetch_option = 335544993; Modified: firebird/trunk/src/include/gen/codetext.h =================================================================== --- firebird/trunk/src/include/gen/codetext.h 2012-02-25 13:53:49 UTC (rev 54044) +++ firebird/trunk/src/include/gen/codetext.h 2012-02-25 13:55:04 UTC (rev 54045) @@ -691,7 +691,7 @@ {"no_trusted_spb", 335544987}, {"package_name", 335544988}, {"cannot_make_not_null", 335544989}, - {"feature_deprecated", 335544990}, + {"feature_removed", 335544990}, {"view_name", 335544991}, {"lock_dir_access", 335544992}, {"invalid_fetch_option", 335544993}, Modified: firebird/trunk/src/include/gen/iberror.h =================================================================== --- firebird/trunk/src/include/gen/iberror.h 2012-02-25 13:53:49 UTC (rev 54044) +++ firebird/trunk/src/include/gen/iberror.h 2012-02-25 13:55:04 UTC (rev 54045) @@ -725,7 +725,7 @@ const ISC_STATUS isc_no_trusted_spb = 335544987L; const ISC_STATUS isc_package_name = 335544988L; const ISC_STATUS isc_cannot_make_not_null = 335544989L; -const ISC_STATUS isc_feature_deprecated = 335544990L; +const ISC_STATUS isc_feature_removed = 335544990L; const ISC_STATUS isc_view_name = 335544991L; const ISC_STATUS isc_lock_dir_access = 335544992L; const ISC_STATUS isc_invalid_fetch_option = 335544993L; @@ -1905,7 +1905,7 @@ #define isc_no_trusted_spb 335544987L #define isc_package_name 335544988L #define isc_cannot_make_not_null 335544989L -#define isc_feature_deprecated 335544990L +#define isc_feature_removed 335544990L #define isc_view_name 335544991L #define isc_lock_dir_access 335544992L #define isc_invalid_fetch_option 335544993L Modified: firebird/trunk/src/include/gen/msgs.h =================================================================== --- firebird/trunk/src/include/gen/msgs.h 2012-02-25 13:53:49 UTC (rev 54044) +++ firebird/trunk/src/include/gen/msgs.h 2012-02-25 13:55:04 UTC (rev 54045) @@ -694,7 +694,7 @@ {335544987, "Use of TRUSTED switches in spb_command_line is prohibited"}, /* no_trusted_spb */ {335544988, "PACKAGE @1"}, /* package_name */ {335544989, "Cannot make field @1 of table @2 NOT NULL because there are NULLs present"}, /* cannot_make_not_null */ - {335544990, "Feature @1 is deprecated"}, /* feature_deprecated */ + {335544990, "Feature @1 is not supported any more"}, /* feature_removed */ {335544991, "VIEW @1"}, /* view_name */ {335544992, "Can not access lock files directory @1"}, /* lock_dir_access */ {335544993, "Fetch option @1 is invalid for a non-scrollable cursor"}, /* invalid_fetch_option */ Modified: firebird/trunk/src/include/gen/sql_code.h =================================================================== --- firebird/trunk/src/include/gen/sql_code.h 2012-02-25 13:53:49 UTC (rev 54044) +++ firebird/trunk/src/include/gen/sql_code.h 2012-02-25 13:55:04 UTC (rev 54045) @@ -690,7 +690,7 @@ {335544987, -902}, /* 667 no_trusted_spb */ {335544988, -901}, /* 668 package_name */ {335544989, -901}, /* 669 cannot_make_not_null */ - {335544990, -901}, /* 670 feature_deprecated */ + {335544990, -901}, /* 670 feature_removed */ {335544991, -901}, /* 671 view_name */ {335544992, -904}, /* 672 lock_dir_access */ {335544993, -901}, /* 673 invalid_fetch_option */ Modified: firebird/trunk/src/include/gen/sql_state.h =================================================================== --- firebird/trunk/src/include/gen/sql_state.h 2012-02-25 13:53:49 UTC (rev 54044) +++ firebird/trunk/src/include/gen/sql_state.h 2012-02-25 13:55:04 UTC (rev 54045) @@ -690,7 +690,7 @@ {335544987, "28000"}, // 667 no_trusted_spb {335544988, "42000"}, // 668 package_name {335544989, "22006"}, // 669 cannot_make_not_null - {335544990, "0A000"}, // 670 feature_deprecated + {335544990, "0A000"}, // 670 feature_removed {335544991, "00000"}, // 671 view_name {335544992, "08006"}, // 672 lock_dir_access {335544993, "HY106"}, // 673 invalid_fetch_option Modified: firebird/trunk/src/jrd/jrd.cpp =================================================================== --- firebird/trunk/src/jrd/jrd.cpp 2012-02-25 13:53:49 UTC (rev 54044) +++ firebird/trunk/src/jrd/jrd.cpp 2012-02-25 13:55:04 UTC (rev 54045) @@ -2638,7 +2638,7 @@ * This function is deprecated and "removed". * **************************************/ - status->set((Arg::Gds(isc_feature_deprecated) << Arg::Str("isc_ddl")).value()); + status->set((Arg::Gds(isc_feature_removed) << Arg::Str("isc_ddl")).value()); } Modified: firebird/trunk/src/msgs/messages2.sql =================================================================== --- firebird/trunk/src/msgs/messages2.sql 2012-02-25 13:53:49 UTC (rev 54044) +++ firebird/trunk/src/msgs/messages2.sql 2012-02-25 13:55:04 UTC (rev 54045) @@ -777,7 +777,7 @@ ('no_trusted_spb', NULL, 'svc.cpp', NULL, 0, 667, NULL, 'Use of TRUSTED switches in spb_command_line is prohibited', NULL, NULL) ('package_name', 'check_dependencies', 'dfw.epp', NULL, 0, 668, NULL, 'PACKAGE @1', NULL, NULL); ('cannot_make_not_null', 'check_not_null', 'dfw.epp', NULL, 0, 669, NULL, 'Cannot make field @1 of table @2 NOT NULL because there are NULLs present', NULL, NULL); -('feature_deprecated', NULL, '', NULL, 0, 670, NULL, 'Feature @1 is deprecated', NULL, NULL); +('feature_removed', NULL, '', NULL, 0, 670, NULL, 'Feature @1 is not supported any more', NULL, NULL); ('view_name', 'check_dependencies', 'dfw.epp', NULL, 0, 671, NULL, 'VIEW @1', NULL, NULL); ('lock_dir_access', 'createLockDirectory', 'os_utils.cpp', NULL, 0, 672, NULL, 'Can not access lock files directory @1', NULL, NULL); ('invalid_fetch_option', NULL, 'Cursor.cpp', NULL, 0, 673, NULL, 'Fetch option @1 is invalid for a non-scrollable cursor', NULL, NULL); Modified: firebird/trunk/src/msgs/system_errors2.sql =================================================================== --- firebird/trunk/src/msgs/system_errors2.sql 2012-02-25 13:53:49 UTC (rev 54044) +++ firebird/trunk/src/msgs/system_errors2.sql 2012-02-25 13:55:04 UTC (rev 54045) @@ -675,7 +675,7 @@ (-902, '28', '000', 0, 667, 'no_trusted_spb', NULL, NULL) (-901, '42', '000', 0, 668, 'package_name', NULL, NULL) (-901, '22', '006', 0, 669, 'cannot_make_not_null', NULL, NULL) -(-901, '0A', '000', 0, 670, 'feature_deprecated', NULL, NULL) +(-901, '0A', '000', 0, 670, 'feature_removed', NULL, NULL) (-901, '00', '000', 0, 671, 'view_name', NULL, NULL) (-904, '08', '006', 0, 672, 'lock_dir_access', NULL, NULL) (-901, 'HY', '106', 0, 673, 'invalid_fetch_option', NULL, NULL) Modified: firebird/trunk/src/yvalve/why.cpp =================================================================== --- firebird/trunk/src/yvalve/why.cpp 2012-02-25 13:53:49 UTC (rev 54044) +++ firebird/trunk/src/yvalve/why.cpp 2012-02-25 13:55:04 UTC (rev 54045) @@ -2250,7 +2250,7 @@ ISC_STATUS API_ROUTINE isc_dsql_insert(ISC_STATUS* userStatus, FB_API_HANDLE* /*stmtHandle*/, USHORT /*dialect*/, XSQLDA* /*sqlda*/) { - (Arg::Gds(isc_feature_deprecated) << Arg::Str("isc_dsql_insert")).copyTo(userStatus); + (Arg::Gds(isc_feature_removed) << Arg::Str("isc_dsql_insert")).copyTo(userStatus); return userStatus[1]; } @@ -2260,7 +2260,7 @@ USHORT /*blrLength*/, const SCHAR* /*blr*/, USHORT /*msgType*/, USHORT /*msgLength*/, const SCHAR* /*msg*/) { - (Arg::Gds(isc_feature_deprecated) << Arg::Str("isc_dsql_insert")).copyTo(userStatus); + (Arg::Gds(isc_feature_removed) << Arg::Str("isc_dsql_insert")).copyTo(userStatus); return userStatus[1]; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2012-02-26 04:50:05
|
Revision: 54047 http://firebird.svn.sourceforge.net/firebird/?rev=54047&view=rev Author: firebirds Date: 2012-02-26 04:49:58 +0000 (Sun, 26 Feb 2012) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2012-02-25 19:56:37 UTC (rev 54046) +++ firebird/trunk/ChangeLog 2012-02-26 04:49:58 UTC (rev 54047) @@ -1,3 +1,36 @@ + 2012-02-25 19:56 asfernandes + M src/dsql/DsqlCompilerScratch.h + M src/dsql/Nodes.h + M src/dsql/Parser.cpp + M src/dsql/Parser.h + M src/dsql/StmtNodes.cpp + M src/dsql/StmtNodes.h + M src/dsql/dsql.cpp + M src/dsql/dsql.h + M src/dsql/parse.y +1) Make a new kind of Node (TransactionNode). +2) Make main parser statement return requests instead of nodes. +3) Some related cleanup (ddlData, ddlScratch). +4) Added dsqlPass to dsql_req and children, to get rid of ugly logic in prepareStatement. + + 2012-02-25 13:55 asfernandes + M lang_helpers/gds_codes.ftn + M lang_helpers/gds_codes.pas + M src/include/gen/codetext.h + M src/include/gen/iberror.h + M src/include/gen/msgs.h + M src/include/gen/sql_code.h + M src/include/gen/sql_state.h + M src/jrd/jrd.cpp + M src/msgs/messages2.sql + M src/msgs/system_errors2.sql + M src/yvalve/why.cpp +Renamed error constant/message by Alex request. + + 2012-02-25 13:53 asfernandes + M src/dsql/ExprNodes.cpp +Patch by Alex to fix some bug in restore. + 2012-02-24 16:55 alexpeshkoff M builds/posix/darwin.defaults M builds/posix/make.defaults Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-02-25 19:56:37 UTC (rev 54046) +++ firebird/trunk/src/jrd/build_no.h 2012-02-26 04:49:58 UTC (rev 54047) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29798 + FORMAL BUILD NUMBER:29801 */ -#define PRODUCT_VER_STRING "3.0.0.29798" -#define FILE_VER_STRING "WI-T3.0.0.29798" -#define LICENSE_VER_STRING "WI-T3.0.0.29798" -#define FILE_VER_NUMBER 3, 0, 0, 29798 +#define PRODUCT_VER_STRING "3.0.0.29801" +#define FILE_VER_STRING "WI-T3.0.0.29801" +#define LICENSE_VER_STRING "WI-T3.0.0.29801" +#define FILE_VER_NUMBER 3, 0, 0, 29801 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29798" +#define FB_BUILD_NO "29801" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2012-02-25 19:56:37 UTC (rev 54046) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-02-26 04:49:58 UTC (rev 54047) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29798 +BuildNum=29801 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2012-02-27 04:48:22
|
Revision: 54051 http://firebird.svn.sourceforge.net/firebird/?rev=54051&view=rev Author: firebirds Date: 2012-02-27 04:48:16 +0000 (Mon, 27 Feb 2012) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2012-02-26 14:27:27 UTC (rev 54050) +++ firebird/trunk/ChangeLog 2012-02-27 04:48:16 UTC (rev 54051) @@ -1,3 +1,21 @@ + 2012-02-26 14:27 asfernandes + M src/auth/AuthDbg.cpp + M src/dsql/StmtNodes.h + M src/jrd/jrd.cpp + M src/remote/client/interface.cpp + M src/remote/remote.h + M src/remote/server/server.cpp + M src/yvalve/why.cpp +Misc. + + 2012-02-26 14:26 asfernandes + M src/include/firebird/Auth.h +Corrections. + + 2012-02-26 14:26 asfernandes + M src/plugins/crypt/arc4/Arc4.cpp +Replace reinterpret_casts to static_casts. + 2012-02-25 19:56 asfernandes M src/dsql/DsqlCompilerScratch.h M src/dsql/Nodes.h Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-02-26 14:27:27 UTC (rev 54050) +++ firebird/trunk/src/jrd/build_no.h 2012-02-27 04:48:16 UTC (rev 54051) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29801 + FORMAL BUILD NUMBER:29804 */ -#define PRODUCT_VER_STRING "3.0.0.29801" -#define FILE_VER_STRING "WI-T3.0.0.29801" -#define LICENSE_VER_STRING "WI-T3.0.0.29801" -#define FILE_VER_NUMBER 3, 0, 0, 29801 +#define PRODUCT_VER_STRING "3.0.0.29804" +#define FILE_VER_STRING "WI-T3.0.0.29804" +#define LICENSE_VER_STRING "WI-T3.0.0.29804" +#define FILE_VER_NUMBER 3, 0, 0, 29804 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29801" +#define FB_BUILD_NO "29804" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2012-02-26 14:27:27 UTC (rev 54050) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-02-27 04:48:16 UTC (rev 54051) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29801 +BuildNum=29804 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2012-02-28 04:54:51
|
Revision: 54060 http://firebird.svn.sourceforge.net/firebird/?rev=54060&view=rev Author: firebirds Date: 2012-02-28 04:54:44 +0000 (Tue, 28 Feb 2012) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2012-02-27 16:59:01 UTC (rev 54059) +++ firebird/trunk/ChangeLog 2012-02-28 04:54:44 UTC (rev 54060) @@ -1,3 +1,23 @@ + 2012-02-27 16:59 alexpeshkoff + M builds/posix/make.shared.variables +Fixed Darwin build + + 2012-02-27 16:09 alexpeshkoff + M src/yvalve/why.cpp +Fixed broken multi DB transaction - thanks to Adriano + + 2012-02-27 16:07 alexpeshkoff + M src/remote/server/server.cpp +cleanup + + 2012-02-27 13:50 alexpeshkoff + M src/common/classes/ImplementHelper.h +cleanup + + 2012-02-27 12:12 alexpeshkoff + M builds/posix/darwin.defaults +Fixed make syntax + 2012-02-26 14:27 asfernandes M src/auth/AuthDbg.cpp M src/dsql/StmtNodes.h Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-02-27 16:59:01 UTC (rev 54059) +++ firebird/trunk/src/jrd/build_no.h 2012-02-28 04:54:44 UTC (rev 54060) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29804 + FORMAL BUILD NUMBER:29809 */ -#define PRODUCT_VER_STRING "3.0.0.29804" -#define FILE_VER_STRING "WI-T3.0.0.29804" -#define LICENSE_VER_STRING "WI-T3.0.0.29804" -#define FILE_VER_NUMBER 3, 0, 0, 29804 +#define PRODUCT_VER_STRING "3.0.0.29809" +#define FILE_VER_STRING "WI-T3.0.0.29809" +#define LICENSE_VER_STRING "WI-T3.0.0.29809" +#define FILE_VER_NUMBER 3, 0, 0, 29809 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29804" +#define FB_BUILD_NO "29809" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2012-02-27 16:59:01 UTC (rev 54059) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-02-28 04:54:44 UTC (rev 54060) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29804 +BuildNum=29809 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2012-02-29 04:51:24
|
Revision: 54064 http://firebird.svn.sourceforge.net/firebird/?rev=54064&view=rev Author: firebirds Date: 2012-02-29 04:51:17 +0000 (Wed, 29 Feb 2012) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2012-02-28 12:58:07 UTC (rev 54063) +++ firebird/trunk/ChangeLog 2012-02-29 04:51:17 UTC (rev 54064) @@ -1,3 +1,17 @@ + 2012-02-28 12:58 alexpeshkoff + M src/jrd/os/posix/unix.cpp +Lock database file when opening it + + 2012-02-28 11:08 alexpeshkoff + M src/jrd/jrd.cpp + M src/jrd/nbak.cpp + M src/jrd/os/pio_proto.h + M src/jrd/os/posix/unix.cpp + M src/jrd/os/win32/winnt.cpp + M src/jrd/pag.cpp + M src/jrd/sdw.cpp +Cleanup unneeded parameter (was used in nbackup, where PIO is replaced with OS function calls) + 2012-02-27 16:59 alexpeshkoff M builds/posix/make.shared.variables Fixed Darwin build Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-02-28 12:58:07 UTC (rev 54063) +++ firebird/trunk/src/jrd/build_no.h 2012-02-29 04:51:17 UTC (rev 54064) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29809 + FORMAL BUILD NUMBER:29811 */ -#define PRODUCT_VER_STRING "3.0.0.29809" -#define FILE_VER_STRING "WI-T3.0.0.29809" -#define LICENSE_VER_STRING "WI-T3.0.0.29809" -#define FILE_VER_NUMBER 3, 0, 0, 29809 +#define PRODUCT_VER_STRING "3.0.0.29811" +#define FILE_VER_STRING "WI-T3.0.0.29811" +#define LICENSE_VER_STRING "WI-T3.0.0.29811" +#define FILE_VER_NUMBER 3, 0, 0, 29811 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29809" +#define FB_BUILD_NO "29811" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2012-02-28 12:58:07 UTC (rev 54063) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-02-29 04:51:17 UTC (rev 54064) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29809 +BuildNum=29811 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2012-03-01 04:50:19
|
Revision: 54067 http://firebird.svn.sourceforge.net/firebird/?rev=54067&view=rev Author: firebirds Date: 2012-03-01 04:50:12 +0000 (Thu, 01 Mar 2012) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2012-02-29 15:24:50 UTC (rev 54066) +++ firebird/trunk/ChangeLog 2012-03-01 04:50:12 UTC (rev 54067) @@ -1,3 +1,23 @@ + 2012-02-29 15:24 asfernandes + M src/dsql/DdlNodes.epp +Correction. + + 2012-02-29 07:08 alexpeshkoff + M src/common/classes/Synchronize.h + M src/common/classes/condition.h + M src/common/classes/fb_tls.h + M src/common/classes/locks.h + M src/common/classes/rwlock.h + M src/common/classes/semaphore.h + M src/common/isc_s_proto.h + M src/common/os/posix/SyncSignals.cpp + M src/common/thd.cpp + M src/extlib/fbudf/stdafx.h + A src/include/fb_pthread.h + M src/utilities/fbcpl/stdafx.h + M src/yvalve/MasterImplementation.cpp +Always define appropriate macro before including pthread.h + 2012-02-28 12:58 alexpeshkoff M src/jrd/os/posix/unix.cpp Lock database file when opening it Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-02-29 15:24:50 UTC (rev 54066) +++ firebird/trunk/src/jrd/build_no.h 2012-03-01 04:50:12 UTC (rev 54067) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29811 + FORMAL BUILD NUMBER:29813 */ -#define PRODUCT_VER_STRING "3.0.0.29811" -#define FILE_VER_STRING "WI-T3.0.0.29811" -#define LICENSE_VER_STRING "WI-T3.0.0.29811" -#define FILE_VER_NUMBER 3, 0, 0, 29811 +#define PRODUCT_VER_STRING "3.0.0.29813" +#define FILE_VER_STRING "WI-T3.0.0.29813" +#define LICENSE_VER_STRING "WI-T3.0.0.29813" +#define FILE_VER_NUMBER 3, 0, 0, 29813 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29811" +#define FB_BUILD_NO "29813" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2012-02-29 15:24:50 UTC (rev 54066) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-03-01 04:50:12 UTC (rev 54067) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29811 +BuildNum=29813 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ale...@us...> - 2012-03-01 08:38:06
|
Revision: 54068 http://firebird.svn.sourceforge.net/firebird/?rev=54068&view=rev Author: alexpeshkoff Date: 2012-03-01 08:37:55 +0000 (Thu, 01 Mar 2012) Log Message: ----------- Fixed opening read-only databases on unix Modified Paths: -------------- firebird/trunk/builds/posix/Makefile.in firebird/trunk/src/jrd/os/posix/unix.cpp Modified: firebird/trunk/builds/posix/Makefile.in =================================================================== --- firebird/trunk/builds/posix/Makefile.in 2012-03-01 04:50:12 UTC (rev 54067) +++ firebird/trunk/builds/posix/Makefile.in 2012-03-01 08:37:55 UTC (rev 54068) @@ -232,6 +232,7 @@ help.fdb: $(BLD_ROOT)/misc/help.gbak $(GBAK) -MODE read_only -R $< $@ + $(CHMOD) 0444 $@ $(SECURITY_FDB): security.fdb -$(RM) $@ Modified: firebird/trunk/src/jrd/os/posix/unix.cpp =================================================================== --- firebird/trunk/src/jrd/os/posix/unix.cpp 2012-03-01 04:50:12 UTC (rev 54067) +++ firebird/trunk/src/jrd/os/posix/unix.cpp 2012-03-01 08:37:55 UTC (rev 54068) @@ -634,6 +634,20 @@ Arg::Gds(isc_io_open_err) << Arg::Unix(errno)); } + readOnly = true; + } + else if (geteuid() == 0) + { + // root has too many rights - therefore artificially check for readonly file + struct stat st; + if (fstat(desc, &st) == 0) + { + readOnly = ((st.st_mode & 0222) == 0); // nobody has write permissions + } + } + + if (readOnly) + { // If this is the primary file, set Database flag to indicate that it is // being opened ReadOnly. This flag will be used later to compare with // the Header Page flag setting to make sure that the database is set ReadOnly. @@ -641,11 +655,10 @@ PageSpace* pageSpace = dbb->dbb_page_manager.findPageSpace(DB_PAGE_SPACE); if (!pageSpace->file) dbb->dbb_flags |= DBB_being_opened_read_only; - readOnly = true; } const bool shareMode = dbb->dbb_config->getSharedDatabase(); - if (!lockDatabaseFile(desc, shareMode)) + if (!lockDatabaseFile(desc, shareMode || readOnly)) { ERR_post(Arg::Gds(isc_io_error) << Arg::Str("lock") << Arg::Str(file_name) << Arg::Gds(isc_io_open_err) << Arg::Unix(errno)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hv...@us...> - 2012-03-01 18:18:53
|
Revision: 54076 http://firebird.svn.sourceforge.net/firebird/?rev=54076&view=rev Author: hvlad Date: 2012-03-01 18:18:46 +0000 (Thu, 01 Mar 2012) Log Message: ----------- Fixed Windows build Modified Paths: -------------- firebird/trunk/builds/win32/msvc10/yvalve.vcxproj firebird/trunk/builds/win32/msvc10/yvalve.vcxproj.filters firebird/trunk/src/common/thd.h firebird/trunk/src/iscguard/iscguard.cpp firebird/trunk/src/jrd/jrd.cpp firebird/trunk/src/remote/remote.h firebird/trunk/src/yvalve/MasterImplementation.cpp firebird/trunk/src/yvalve/utl.cpp Modified: firebird/trunk/builds/win32/msvc10/yvalve.vcxproj =================================================================== --- firebird/trunk/builds/win32/msvc10/yvalve.vcxproj 2012-03-01 17:13:11 UTC (rev 54075) +++ firebird/trunk/builds/win32/msvc10/yvalve.vcxproj 2012-03-01 18:18:46 UTC (rev 54076) @@ -24,6 +24,7 @@ <ClCompile Include="..\..\..\src\auth\SecureRemotePassword\client\SrpClient.cpp" /> <ClCompile Include="..\..\..\src\auth\SecurityDatabase\LegacyClient.cpp" /> <ClCompile Include="..\..\..\src\jrd\os\win32\ibinitdll.cpp" /> + <ClCompile Include="..\..\..\src\plugins\crypt\arc4\Arc4.cpp" /> <ClCompile Include="..\..\..\src\remote\client\interface.cpp" /> <ClCompile Include="..\..\..\src\yvalve\alt.cpp" /> <ClCompile Include="..\..\..\src\yvalve\DistributedTransaction.cpp" /> @@ -41,6 +42,7 @@ <ClInclude Include="..\..\..\src\auth\SecureRemotePassword\client\SrpClient.h" /> <ClInclude Include="..\..\..\src\auth\SecurityDatabase\LegacyClient.h" /> <ClInclude Include="..\..\..\src\auth\trusted\AuthSspi.h" /> + <ClInclude Include="..\..\..\src\plugins\crypt\arc4\Arc4.h" /> <ClInclude Include="..\..\..\src\yvalve\alt_proto.h" /> <ClInclude Include="..\..\..\src\yvalve\array_proto.h" /> <ClInclude Include="..\..\..\src\yvalve\blob_proto.h" /> Modified: firebird/trunk/builds/win32/msvc10/yvalve.vcxproj.filters =================================================================== --- firebird/trunk/builds/win32/msvc10/yvalve.vcxproj.filters 2012-03-01 17:13:11 UTC (rev 54075) +++ firebird/trunk/builds/win32/msvc10/yvalve.vcxproj.filters 2012-03-01 18:18:46 UTC (rev 54076) @@ -75,6 +75,9 @@ <ClCompile Include="..\..\..\src\auth\SecureRemotePassword\client\SrpClient.cpp"> <Filter>Auth</Filter> </ClCompile> + <ClCompile Include="..\..\..\src\plugins\crypt\arc4\Arc4.cpp"> + <Filter>source</Filter> + </ClCompile> </ItemGroup> <ItemGroup> <ClInclude Include="..\..\..\src\yvalve\why_proto.h"> @@ -122,6 +125,9 @@ <ClInclude Include="..\..\..\src\auth\SecureRemotePassword\client\SrpClient.h"> <Filter>headers</Filter> </ClInclude> + <ClInclude Include="..\..\..\src\plugins\crypt\arc4\Arc4.h"> + <Filter>headers</Filter> + </ClInclude> </ItemGroup> <ItemGroup> <ResourceCompile Include="..\..\..\src\jrd\version.rc"> Modified: firebird/trunk/src/common/thd.h =================================================================== --- firebird/trunk/src/common/thd.h 2012-03-01 17:13:11 UTC (rev 54075) +++ firebird/trunk/src/common/thd.h 2012-03-01 18:18:46 UTC (rev 54076) @@ -36,7 +36,7 @@ #ifdef WIN_NT #include <windows.h> -typedef HANDLE ThreadId; +typedef DWORD ThreadId; #endif #ifdef USE_POSIX_THREADS Modified: firebird/trunk/src/iscguard/iscguard.cpp =================================================================== --- firebird/trunk/src/iscguard/iscguard.cpp 2012-03-01 17:13:11 UTC (rev 54075) +++ firebird/trunk/src/iscguard/iscguard.cpp 2012-03-01 18:18:46 UTC (rev 54076) @@ -249,7 +249,7 @@ * **************************************/ - ThreadId thread_id = 0; + Thread::Handle thread_id = 0; // If we're a service, don't create a window if (service_flag) @@ -376,7 +376,7 @@ static BOOL bInTaskBar = FALSE; static bool bStartup = false; static HINSTANCE hInstance = NULL; - static ThreadId thread_id; + static Thread::Handle thread_id; static UINT s_uTaskbarRestart; hInstance = (HINSTANCE) GetWindowLongPtr(hWnd, GWLP_HINSTANCE); Modified: firebird/trunk/src/jrd/jrd.cpp =================================================================== --- firebird/trunk/src/jrd/jrd.cpp 2012-03-01 17:13:11 UTC (rev 54075) +++ firebird/trunk/src/jrd/jrd.cpp 2012-03-01 18:18:46 UTC (rev 54076) @@ -3941,7 +3941,7 @@ { Semaphore shutdown_semaphore; - ThreadId h; + Thread::Handle h; Thread::start(shutdown_thread, &shutdown_semaphore, THREAD_medium, &h); if (!shutdown_semaphore.tryEnter(0, timeout)) Modified: firebird/trunk/src/remote/remote.h =================================================================== --- firebird/trunk/src/remote/remote.h 2012-03-01 17:13:11 UTC (rev 54075) +++ firebird/trunk/src/remote/remote.h 2012-03-01 18:18:46 UTC (rev 54076) @@ -843,7 +843,7 @@ SOCKET port_channel; // handle for connection (from by OS) struct linger port_linger; // linger value as defined by SO_LINGER Rdb* port_context; - ThreadId port_events_thread; // handle of thread, handling incoming events + Thread::Handle port_events_thread; // handle of thread, handling incoming events void (*port_events_shutdown)(rem_port*); // hack - avoid changing API at beta stage #ifdef WIN_NT HANDLE port_pipe; // port pipe handle Modified: firebird/trunk/src/yvalve/MasterImplementation.cpp =================================================================== --- firebird/trunk/src/yvalve/MasterImplementation.cpp 2012-03-01 17:13:11 UTC (rev 54075) +++ firebird/trunk/src/yvalve/MasterImplementation.cpp 2012-03-01 18:18:46 UTC (rev 54076) @@ -436,7 +436,7 @@ GlobalPtr<Semaphore> timerWakeup; // Should use atomic flag for thread stop to provide correct membar AtomicCounter stopTimerThread(0); -ThreadId timerThreadHandle = 0; +Thread::Handle timerThreadHandle = 0; struct TimerEntry { Modified: firebird/trunk/src/yvalve/utl.cpp =================================================================== --- firebird/trunk/src/yvalve/utl.cpp 2012-03-01 17:13:11 UTC (rev 54075) +++ firebird/trunk/src/yvalve/utl.cpp 2012-03-01 18:18:46 UTC (rev 54076) @@ -2132,7 +2132,7 @@ int rc = 0; try { - Thread::start((ThreadEntryPoint*) entrypoint, arg, priority, (ThreadId*) thd_id); + Thread::start((ThreadEntryPoint*) entrypoint, arg, priority, (Thread::Handle*) thd_id); } catch (const Firebird::status_exception& status) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2012-03-02 04:49:49
|
Revision: 54077 http://firebird.svn.sourceforge.net/firebird/?rev=54077&view=rev Author: firebirds Date: 2012-03-02 04:49:42 +0000 (Fri, 02 Mar 2012) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2012-03-01 18:18:46 UTC (rev 54076) +++ firebird/trunk/ChangeLog 2012-03-02 04:49:42 UTC (rev 54077) @@ -1,3 +1,329 @@ + 2012-03-01 18:18 hvlad + M builds/win32/msvc10/yvalve.vcxproj + M builds/win32/msvc10/yvalve.vcxproj.filters + M src/common/thd.h + M src/iscguard/iscguard.cpp + M src/jrd/jrd.cpp + M src/remote/remote.h + M src/yvalve/MasterImplementation.cpp + M src/yvalve/utl.cpp +Fixed Windows build + + 2012-03-01 17:01 alexpeshkoff + M src/utilities/gsec/gsec.cpp +Fixed CORE-3762: gsec returns 0 return code on some errors + + 2012-03-01 15:47 alexpeshkoff + M src/common/ThreadStart.cpp + M src/common/ThreadStart.h +Restore separate datatypes for thread ID and handle according to Vlad's request. They match on posix build, but supposed to be different on windows. + + 2012-03-01 15:42 hvlad + M src/include/firebird/Interface.h + M src/yvalve/MasterImplementation.cpp + M src/yvalve/MasterImplementation.h +Undo part of previous commit: it is not good to make internal type (ThreadId) as public + + 2012-03-01 15:27 hvlad + M src/auth/trusted/AuthSspi.cpp + M src/include/firebird/Interface.h + M src/yvalve/MasterImplementation.cpp + M src/yvalve/MasterImplementation.h +Misc + + 2012-03-01 14:55 hvlad + M src/common/ThreadData.h +Isolate POSIX-related code + + 2012-03-01 08:55 alexpeshkoff + M src/alice/alice.cpp + M src/alice/alice_meta.epp + M src/alice/aliceswi.h + M src/alice/exe.cpp + M src/alice/tdr.cpp + M src/auth/SecurityDatabase/LegacyManagement.epp + M src/auth/SecurityDatabase/LegacyServer.cpp + M src/burp/burp.cpp + M src/burp/burp.h + M src/burp/burpswi.h + M src/burp/restore.epp + M src/burp/split/spit.cpp + M src/burp/split/spit.h + M src/common/ScanDir.cpp + M src/common/ThreadData.cpp + M src/common/ThreadData.h + M src/common/ThreadStart.cpp + M src/common/ThreadStart.h + M src/common/call_service.cpp + M src/common/classes/DbImplementation.cpp + M src/common/classes/MsgPrint.cpp + M src/common/classes/NoThrowTimeStamp.cpp + M src/common/classes/SafeArg.cpp + M src/common/classes/SyncObject.cpp + M src/common/classes/Synchronize.cpp + M src/common/classes/Synchronize.h + M src/common/classes/UserBlob.cpp + M src/common/classes/alloc.cpp + M src/common/classes/array.h + M src/common/classes/locks.cpp + M src/common/classes/timestamp.cpp + M src/common/common.h + M src/common/cvt.cpp + M src/common/dsc.cpp + M src/common/enc.cpp + M src/common/fb_exception.cpp + M src/common/isc.cpp + M src/common/isc_file.cpp + M src/common/isc_sync.cpp + M src/common/os/SyncSignals.h + M src/common/os/darwin/mod_loader.cpp + M src/common/os/posix/SyncSignals.cpp + M src/common/os/posix/divorce.cpp + M src/common/os/posix/isc_ipc.cpp + M src/common/os/posix/mod_loader.cpp + M src/common/os/posix/os_utils.cpp + M src/common/os/win32/isc_ipc.cpp + M src/common/os/win32/os_utils.cpp + M src/common/pretty.cpp + M src/common/sdl.cpp + M src/common/thd.cpp + M src/common/thd.h + M src/common/utils.cpp + M src/common/xdr.cpp + M src/common/xdr.h + M src/dsql/AggNodes.cpp + M src/dsql/AggNodes.h + M src/dsql/BlrWriter.cpp + M src/dsql/BlrWriter.h + M src/dsql/BoolNodes.cpp + M src/dsql/BoolNodes.h + M src/dsql/DdlNodes.epp + M src/dsql/DdlNodes.h + M src/dsql/DsqlCompilerScratch.cpp + M src/dsql/DsqlCompilerScratch.h + M src/dsql/ExprNodes.cpp + M src/dsql/ExprNodes.h + M src/dsql/Nodes.h + M src/dsql/PackageNodes.epp + M src/dsql/PackageNodes.h + M src/dsql/Parser.h + M src/dsql/StmtNodes.cpp + M src/dsql/StmtNodes.h + M src/dsql/Visitors.h + M src/dsql/WinNodes.cpp + M src/dsql/WinNodes.h + M src/dsql/btyacc_fb.ske + M src/dsql/dsql.h + M src/dsql/errd.cpp + M src/dsql/movd.cpp + M src/dsql/parse.y + M src/dsql/sym.h + M src/extlib/fbudf/stdafx.h + M src/extlib/ib_udf.h + M src/extlib/ib_util.cpp + M src/gpre/c_cxx.cpp + M src/gpre/exp.cpp + M src/gpre/gpre.h + M src/gpre/gpreswi.h + M src/gpre/int_cxx.cpp + M src/gpre/jrdmet.cpp + M src/gpre/languages/ada.cpp + M src/gpre/languages/cob.cpp + M src/gpre/languages/ftn.cpp + M src/gpre/languages/pas.cpp + M src/gpre/languages/rmc.cpp + M src/gpre/movg.cpp + M src/include/fb_exception.h + M src/include/fb_types.h + M src/include/firebird.h + M src/include/ibase.h + M src/include/old_fb_blk.h + M src/intl/kanji.cpp + M src/intl/utils/mapdump.c + M src/intl/utils/mapgen4.c + M src/intl/utils/maptest.cpp + M src/iscguard/cntl_guard.cpp + M src/iscguard/iscguard.cpp + M src/isql/InputDevices.cpp + M src/isql/extract.epp + M src/isql/isql.epp + M src/isql/iutils.cpp + M src/isql/show.epp + M src/jrd/Attachment.h + M src/jrd/DataTypeUtil.cpp + M src/jrd/Database.cpp + M src/jrd/Database.h + M src/jrd/ExtEngineManager.h + M src/jrd/Function.epp + M src/jrd/JrdStatement.cpp + M src/jrd/Optimizer.cpp + M src/jrd/PreparedStatement.h + M src/jrd/RandomGenerator.cpp + M src/jrd/RecordSourceNodes.cpp + M src/jrd/RecordSourceNodes.h + M src/jrd/Relation.cpp + M src/jrd/ResultSet.h + M src/jrd/UserManagement.cpp + M src/jrd/blb.cpp + M src/jrd/blob_filter.cpp + M src/jrd/btn.cpp + M src/jrd/btn.h + M src/jrd/btr.cpp + M src/jrd/builtin.cpp + M src/jrd/cch.cpp + M src/jrd/cmp.cpp + M src/jrd/cvt.cpp + M src/jrd/cvt2.cpp + M src/jrd/dfw.epp + M src/jrd/dpm.epp + M src/jrd/dyn_util.epp + M src/jrd/err.cpp + M src/jrd/event.cpp + M src/jrd/evl.cpp + M src/jrd/exe.cpp + M src/jrd/ext.cpp + M src/jrd/extds/ExtDS.cpp + M src/jrd/extds/InternalDS.cpp + M src/jrd/extds/IscDS.cpp + M src/jrd/filters.cpp + M src/jrd/flu.cpp + M src/jrd/fun.epp + M src/jrd/grant.epp + M src/jrd/idx.cpp + M src/jrd/inf.cpp + M src/jrd/ini.epp + M src/jrd/intl.cpp + M src/jrd/intl_builtin.cpp + M src/jrd/jrd.cpp + M src/jrd/jrd.h + M src/jrd/lck.cpp + M src/jrd/met.epp + M src/jrd/mov.cpp + M src/jrd/nbak.cpp + M src/jrd/nodebug.cpp + M src/jrd/ntrace.h + M src/jrd/ods.cpp + M src/jrd/opt.cpp + M src/jrd/os/posix/unix.cpp + M src/jrd/os/vms/vmsevent.cpp + M src/jrd/os/vms/vmslock.cpp + M src/jrd/os/win32/winnt.cpp + M src/jrd/pag.cpp + M src/jrd/par.cpp + M src/jrd/pcmet.epp + M src/jrd/recsrc/AggregatedStream.cpp + M src/jrd/recsrc/BitmapTableScan.cpp + M src/jrd/recsrc/BufferedStream.cpp + M src/jrd/recsrc/ConditionalStream.cpp + M src/jrd/recsrc/Cursor.cpp + M src/jrd/recsrc/FilteredStream.cpp + M src/jrd/recsrc/FirstRowsStream.cpp + M src/jrd/recsrc/FullOuterJoin.cpp + M src/jrd/recsrc/FullTableScan.cpp + M src/jrd/recsrc/HashJoin.cpp + M src/jrd/recsrc/IndexTableScan.cpp + M src/jrd/recsrc/LockedStream.cpp + M src/jrd/recsrc/MergeJoin.cpp + M src/jrd/recsrc/NestedLoopJoin.cpp + M src/jrd/recsrc/ProcedureScan.cpp + M src/jrd/recsrc/RecordSource.cpp + M src/jrd/recsrc/RecursiveStream.cpp + M src/jrd/recsrc/SingularStream.cpp + M src/jrd/recsrc/SkipRowsStream.cpp + M src/jrd/recsrc/SortedStream.cpp + M src/jrd/recsrc/Union.cpp + M src/jrd/recsrc/WindowedStream.cpp + M src/jrd/rlck.cpp + M src/jrd/rpb_chain.cpp + M src/jrd/scl.epp + M src/jrd/sdw.cpp + M src/jrd/shut.cpp + M src/jrd/sort.cpp + M src/jrd/sort.h + M src/jrd/sqz.cpp + M src/jrd/status.h + M src/jrd/svc.cpp + M src/jrd/svc.h + M src/jrd/tpc.cpp + M src/jrd/tra.cpp + M src/jrd/trace/TraceConfigStorage.cpp + M src/jrd/trace/TraceConfigStorage.h + M src/jrd/trace/TraceLog.cpp + M src/jrd/trace/TraceManager.cpp + M src/jrd/trace/TraceObjects.cpp + M src/jrd/validation.cpp + M src/jrd/vio.cpp + M src/lock/lock.cpp + M src/lock/lock_proto.h + M src/lock/print.cpp + M src/misc/codes.epp + M src/msgs/build_file.epp + M src/msgs/change_msgs.epp + M src/msgs/check_msgs.epp + M src/msgs/enter_msgs.epp + M src/msgs/include.epp + M src/msgs/load.epp + M src/msgs/modify_msgs.epp + M src/qli/dtr.h + M src/qli/eval.cpp + M src/qli/exe.cpp + M src/remote/inet.cpp + M src/remote/remote.h + M src/remote/server/os/posix/inet_server.cpp + M src/remote/server/os/win32/chop.cpp + M src/remote/server/os/win32/cntl.cpp + M src/remote/server/os/win32/property.cpp + M src/remote/server/os/win32/window.cpp + M src/remote/server/server.cpp + M src/utilities/analyse.cpp + M src/utilities/cache.cpp + M src/utilities/create_db.cpp + M src/utilities/drop.cpp + M src/utilities/fbcpl/stdafx.h + M src/utilities/fbsvcmgr/fbsvcmgr.cpp + M src/utilities/gsec/gsec.cpp + M src/utilities/gstat/dba.epp + M src/utilities/gstat/ppg.cpp + M src/utilities/guard/guard.cpp + M src/utilities/guard/util.cpp + M src/utilities/ibmgr/ibmgr.cpp + M src/utilities/ibmgr/ibmgrswi.h + M src/utilities/ibmgr/srvrmgr.cpp + M src/utilities/install/install.cpp + M src/utilities/install/install_client.cpp + M src/utilities/install/install_reg.cpp + M src/utilities/install/install_svc.cpp + M src/utilities/install/registry.cpp + M src/utilities/install/services.cpp + M src/utilities/nbackup/nbackup.cpp + M src/utilities/ntrace/os/FileObject.h + M src/utilities/print_event.cpp + M src/utilities/print_pool.cpp + M src/utilities/rebuild/rebuild.cpp + M src/utilities/rebuild/rebuild.h + M src/utilities/relay.cpp + M src/utilities/run_service.cpp + M src/yvalve/MasterImplementation.cpp + M src/yvalve/PluginManager.h + M src/yvalve/YObjects.h + M src/yvalve/alt.cpp + M src/yvalve/array.epp + M src/yvalve/blob.epp + M src/yvalve/gds.cpp + M src/yvalve/gds_proto.h + M src/yvalve/keywords.h + M src/yvalve/perf.cpp + M src/yvalve/preparse.cpp + M src/yvalve/user_dsql.cpp + M src/yvalve/utl.cpp + M src/yvalve/why.cpp +Include platform definitions file common.h in firebird.h. Use OS-specific ThreadId instead artificial FB_THREAD_ID, avoiding unneeded casts in the code. This should fix BSD and MAC ports. + + 2012-03-01 08:37 alexpeshkoff + M builds/posix/Makefile.in + M src/jrd/os/posix/unix.cpp +Fixed opening read-only databases on unix + 2012-02-29 15:24 asfernandes M src/dsql/DdlNodes.epp Correction. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-03-01 18:18:46 UTC (rev 54076) +++ firebird/trunk/src/jrd/build_no.h 2012-03-02 04:49:42 UTC (rev 54077) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29813 + FORMAL BUILD NUMBER:29821 */ -#define PRODUCT_VER_STRING "3.0.0.29813" -#define FILE_VER_STRING "WI-T3.0.0.29813" -#define LICENSE_VER_STRING "WI-T3.0.0.29813" -#define FILE_VER_NUMBER 3, 0, 0, 29813 +#define PRODUCT_VER_STRING "3.0.0.29821" +#define FILE_VER_STRING "WI-T3.0.0.29821" +#define LICENSE_VER_STRING "WI-T3.0.0.29821" +#define FILE_VER_NUMBER 3, 0, 0, 29821 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29813" +#define FB_BUILD_NO "29821" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2012-03-01 18:18:46 UTC (rev 54076) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-03-02 04:49:42 UTC (rev 54077) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29813 +BuildNum=29821 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2012-03-03 04:51:16
|
Revision: 54084 http://firebird.svn.sourceforge.net/firebird/?rev=54084&view=rev Author: firebirds Date: 2012-03-03 04:51:09 +0000 (Sat, 03 Mar 2012) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2012-03-02 15:38:24 UTC (rev 54083) +++ firebird/trunk/ChangeLog 2012-03-03 04:51:09 UTC (rev 54084) @@ -1,3 +1,16 @@ + 2012-03-02 15:38 alexpeshkoff + M src/yvalve/why.cpp +Fixed hang in shutdown + + 2012-03-02 12:12 hvlad + M builds/win32/msvc8/yvalve.vcproj +Update MSVC8 build + + 2012-03-02 12:12 hvlad + M src/common/classes/locks.cpp + M src/plugins/crypt/arc4/Arc4.cpp +Fixed Win32 build + 2012-03-01 18:18 hvlad M builds/win32/msvc10/yvalve.vcxproj M builds/win32/msvc10/yvalve.vcxproj.filters Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-03-02 15:38:24 UTC (rev 54083) +++ firebird/trunk/src/jrd/build_no.h 2012-03-03 04:51:09 UTC (rev 54084) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29821 + FORMAL BUILD NUMBER:29824 */ -#define PRODUCT_VER_STRING "3.0.0.29821" -#define FILE_VER_STRING "WI-T3.0.0.29821" -#define LICENSE_VER_STRING "WI-T3.0.0.29821" -#define FILE_VER_NUMBER 3, 0, 0, 29821 +#define PRODUCT_VER_STRING "3.0.0.29824" +#define FILE_VER_STRING "WI-T3.0.0.29824" +#define LICENSE_VER_STRING "WI-T3.0.0.29824" +#define FILE_VER_NUMBER 3, 0, 0, 29824 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29821" +#define FB_BUILD_NO "29824" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2012-03-02 15:38:24 UTC (rev 54083) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-03-03 04:51:09 UTC (rev 54084) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29821 +BuildNum=29824 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2012-03-04 04:48:40
|
Revision: 54088 http://firebird.svn.sourceforge.net/firebird/?rev=54088&view=rev Author: firebirds Date: 2012-03-04 04:48:33 +0000 (Sun, 04 Mar 2012) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2012-03-03 16:48:40 UTC (rev 54087) +++ firebird/trunk/ChangeLog 2012-03-04 04:48:33 UTC (rev 54088) @@ -1,3 +1,11 @@ + 2012-03-03 16:47 alexpeshkoff + M src/burp/backup.epp + M src/burp/burp.cpp + M src/burp/burp.h + M src/msgs/facilities2.sql + M src/msgs/messages2.sql +Fixed CORE-3649: gbak deletes backup file even if error happens when it's already successfully closed + 2012-03-02 15:38 alexpeshkoff M src/yvalve/why.cpp Fixed hang in shutdown Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-03-03 16:48:40 UTC (rev 54087) +++ firebird/trunk/src/jrd/build_no.h 2012-03-04 04:48:33 UTC (rev 54088) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29824 + FORMAL BUILD NUMBER:29825 */ -#define PRODUCT_VER_STRING "3.0.0.29824" -#define FILE_VER_STRING "WI-T3.0.0.29824" -#define LICENSE_VER_STRING "WI-T3.0.0.29824" -#define FILE_VER_NUMBER 3, 0, 0, 29824 +#define PRODUCT_VER_STRING "3.0.0.29825" +#define FILE_VER_STRING "WI-T3.0.0.29825" +#define LICENSE_VER_STRING "WI-T3.0.0.29825" +#define FILE_VER_NUMBER 3, 0, 0, 29825 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29824" +#define FB_BUILD_NO "29825" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2012-03-03 16:48:40 UTC (rev 54087) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-03-04 04:48:33 UTC (rev 54088) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29824 +BuildNum=29825 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2012-03-05 04:49:28
|
Revision: 54095 http://firebird.svn.sourceforge.net/firebird/?rev=54095&view=rev Author: firebirds Date: 2012-03-05 04:49:21 +0000 (Mon, 05 Mar 2012) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2012-03-05 03:56:36 UTC (rev 54094) +++ firebird/trunk/ChangeLog 2012-03-05 04:49:21 UTC (rev 54095) @@ -1,3 +1,7 @@ + 2012-03-05 03:56 robocop + M src/lock/print.cpp +Misc: delete obsolete workaround. + 2012-03-03 16:47 alexpeshkoff M src/burp/backup.epp M src/burp/burp.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-03-05 03:56:36 UTC (rev 54094) +++ firebird/trunk/src/jrd/build_no.h 2012-03-05 04:49:21 UTC (rev 54095) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29825 + FORMAL BUILD NUMBER:29826 */ -#define PRODUCT_VER_STRING "3.0.0.29825" -#define FILE_VER_STRING "WI-T3.0.0.29825" -#define LICENSE_VER_STRING "WI-T3.0.0.29825" -#define FILE_VER_NUMBER 3, 0, 0, 29825 +#define PRODUCT_VER_STRING "3.0.0.29826" +#define FILE_VER_STRING "WI-T3.0.0.29826" +#define LICENSE_VER_STRING "WI-T3.0.0.29826" +#define FILE_VER_NUMBER 3, 0, 0, 29826 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29825" +#define FB_BUILD_NO "29826" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2012-03-05 03:56:36 UTC (rev 54094) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-03-05 04:49:21 UTC (rev 54095) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29825 +BuildNum=29826 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2012-03-06 04:50:56
|
Revision: 54099 http://firebird.svn.sourceforge.net/firebird/?rev=54099&view=rev Author: firebirds Date: 2012-03-06 04:50:49 +0000 (Tue, 06 Mar 2012) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2012-03-05 22:20:54 UTC (rev 54098) +++ firebird/trunk/ChangeLog 2012-03-06 04:50:49 UTC (rev 54099) @@ -1,3 +1,7 @@ + 2012-03-05 22:20 robocop + M src/common/classes/GenericMap.h +Style. + 2012-03-05 03:56 robocop M src/lock/print.cpp Misc: delete obsolete workaround. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-03-05 22:20:54 UTC (rev 54098) +++ firebird/trunk/src/jrd/build_no.h 2012-03-06 04:50:49 UTC (rev 54099) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29826 + FORMAL BUILD NUMBER:29827 */ -#define PRODUCT_VER_STRING "3.0.0.29826" -#define FILE_VER_STRING "WI-T3.0.0.29826" -#define LICENSE_VER_STRING "WI-T3.0.0.29826" -#define FILE_VER_NUMBER 3, 0, 0, 29826 +#define PRODUCT_VER_STRING "3.0.0.29827" +#define FILE_VER_STRING "WI-T3.0.0.29827" +#define LICENSE_VER_STRING "WI-T3.0.0.29827" +#define FILE_VER_NUMBER 3, 0, 0, 29827 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29826" +#define FB_BUILD_NO "29827" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2012-03-05 22:20:54 UTC (rev 54098) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-03-06 04:50:49 UTC (rev 54099) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29826 +BuildNum=29827 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2012-03-07 04:51:09
|
Revision: 54105 http://firebird.svn.sourceforge.net/firebird/?rev=54105&view=rev Author: firebirds Date: 2012-03-07 04:51:02 +0000 (Wed, 07 Mar 2012) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2012-03-06 13:29:28 UTC (rev 54104) +++ firebird/trunk/ChangeLog 2012-03-07 04:51:02 UTC (rev 54105) @@ -1,3 +1,16 @@ + 2012-03-06 13:29 alexpeshkoff + M src/common/fb_exception.cpp + M src/yvalve/MasterImplementation.cpp +Mac port + + 2012-03-06 13:25 alexpeshkoff + M src/yvalve/why.cpp +Restored old filename expansion logic in createDatabase() + + 2012-03-06 11:31 alexpeshkoff + M src/yvalve/gds.cpp +Mac port + 2012-03-05 22:20 robocop M src/common/classes/GenericMap.h Style. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-03-06 13:29:28 UTC (rev 54104) +++ firebird/trunk/src/jrd/build_no.h 2012-03-07 04:51:02 UTC (rev 54105) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29827 + FORMAL BUILD NUMBER:29830 */ -#define PRODUCT_VER_STRING "3.0.0.29827" -#define FILE_VER_STRING "WI-T3.0.0.29827" -#define LICENSE_VER_STRING "WI-T3.0.0.29827" -#define FILE_VER_NUMBER 3, 0, 0, 29827 +#define PRODUCT_VER_STRING "3.0.0.29830" +#define FILE_VER_STRING "WI-T3.0.0.29830" +#define LICENSE_VER_STRING "WI-T3.0.0.29830" +#define FILE_VER_NUMBER 3, 0, 0, 29830 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29827" +#define FB_BUILD_NO "29830" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2012-03-06 13:29:28 UTC (rev 54104) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-03-07 04:51:02 UTC (rev 54105) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29827 +BuildNum=29830 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2012-03-08 04:49:08
|
Revision: 54110 http://firebird.svn.sourceforge.net/firebird/?rev=54110&view=rev Author: firebirds Date: 2012-03-08 04:48:58 +0000 (Thu, 08 Mar 2012) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2012-03-07 15:20:37 UTC (rev 54109) +++ firebird/trunk/ChangeLog 2012-03-08 04:48:58 UTC (rev 54110) @@ -1,3 +1,16 @@ + 2012-03-07 15:20 alexpeshkoff + M src/yvalve/why.cpp +Make createDatabase() work with config and national characters like attachDatabase() + + 2012-03-07 12:04 alexpeshkoff + M builds/install/arch-specific/linux/misc/firebird.init.d.debian.in + M builds/install/arch-specific/linux/misc/firebird.init.d.generic.in + M builds/install/arch-specific/linux/misc/firebird.init.d.gentoo.in + M builds/install/arch-specific/linux/misc/firebird.init.d.mandrake.in + M builds/install/arch-specific/linux/misc/firebird.init.d.slackware.in + M builds/install/arch-specific/linux/misc/firebird.init.d.suse.in +Fixed CORE-3721: Multiuser server startup (/etc/init.d) script picks up the ISC_ variables if set. + 2012-03-06 13:29 alexpeshkoff M src/common/fb_exception.cpp M src/yvalve/MasterImplementation.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-03-07 15:20:37 UTC (rev 54109) +++ firebird/trunk/src/jrd/build_no.h 2012-03-08 04:48:58 UTC (rev 54110) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29830 + FORMAL BUILD NUMBER:29832 */ -#define PRODUCT_VER_STRING "3.0.0.29830" -#define FILE_VER_STRING "WI-T3.0.0.29830" -#define LICENSE_VER_STRING "WI-T3.0.0.29830" -#define FILE_VER_NUMBER 3, 0, 0, 29830 +#define PRODUCT_VER_STRING "3.0.0.29832" +#define FILE_VER_STRING "WI-T3.0.0.29832" +#define LICENSE_VER_STRING "WI-T3.0.0.29832" +#define FILE_VER_NUMBER 3, 0, 0, 29832 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29830" +#define FB_BUILD_NO "29832" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2012-03-07 15:20:37 UTC (rev 54109) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-03-08 04:48:58 UTC (rev 54110) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29830 +BuildNum=29832 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2012-03-11 04:48:54
|
Revision: 54131 http://firebird.svn.sourceforge.net/firebird/?rev=54131&view=rev Author: firebirds Date: 2012-03-11 04:48:47 +0000 (Sun, 11 Mar 2012) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2012-03-10 16:20:14 UTC (rev 54130) +++ firebird/trunk/ChangeLog 2012-03-11 04:48:47 UTC (rev 54131) @@ -1,3 +1,33 @@ + 2012-03-10 15:37 asfernandes + M src/auth/trusted/AuthSspi.cpp + M src/burp/split/spit.h + M src/common/os/SyncSignals.h + M src/common/xdr.h + M src/dsql/sym.h + M src/gpre/gpreswi.h + M src/intl/utils/mapdump.c + M src/jrd/os/posix/unix.cpp + M src/msgs/include.epp + M src/msgs/modify_msgs.epp + M src/remote/server/server.cpp + M src/yvalve/keywords.h +Misc. + + 2012-03-10 14:01 alexpeshkoff + M src/common/classes/alloc.cpp + M src/common/common.h +Mac port + + 2012-03-10 12:28 alexpeshkoff + M src/common/ThreadStart.cpp +Misc + + 2012-03-10 12:07 alexpeshkoff + M src/include/firebird/Crypt.h + M src/plugins/crypt/arc4/Arc4.cpp + M src/remote/inet.cpp +Changed order of args as requested by Claudio + 2012-03-07 15:20 alexpeshkoff M src/yvalve/why.cpp Make createDatabase() work with config and national characters like attachDatabase() Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-03-10 16:20:14 UTC (rev 54130) +++ firebird/trunk/src/jrd/build_no.h 2012-03-11 04:48:47 UTC (rev 54131) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29832 + FORMAL BUILD NUMBER:29836 */ -#define PRODUCT_VER_STRING "3.0.0.29832" -#define FILE_VER_STRING "WI-T3.0.0.29832" -#define LICENSE_VER_STRING "WI-T3.0.0.29832" -#define FILE_VER_NUMBER 3, 0, 0, 29832 +#define PRODUCT_VER_STRING "3.0.0.29836" +#define FILE_VER_STRING "WI-T3.0.0.29836" +#define LICENSE_VER_STRING "WI-T3.0.0.29836" +#define FILE_VER_NUMBER 3, 0, 0, 29836 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29832" +#define FB_BUILD_NO "29836" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2012-03-10 16:20:14 UTC (rev 54130) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-03-11 04:48:47 UTC (rev 54131) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29832 +BuildNum=29836 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2012-03-12 04:50:42
|
Revision: 54134 http://firebird.svn.sourceforge.net/firebird/?rev=54134&view=rev Author: firebirds Date: 2012-03-12 04:50:36 +0000 (Mon, 12 Mar 2012) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2012-03-11 15:32:58 UTC (rev 54133) +++ firebird/trunk/ChangeLog 2012-03-12 04:50:36 UTC (rev 54134) @@ -1,3 +1,12 @@ + 2012-03-11 15:32 alexpeshkoff + M src/yvalve/YObjects.h + M src/yvalve/why.cpp +Avoid code duplication in yvalve. Always store expanded filename in YAttachment. + + 2012-03-11 15:17 alexpeshkoff + M src/yvalve/why.cpp +Fixed my old error done when applying providers interface in yValve + 2012-03-10 15:37 asfernandes M src/auth/trusted/AuthSspi.cpp M src/burp/split/spit.h Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-03-11 15:32:58 UTC (rev 54133) +++ firebird/trunk/src/jrd/build_no.h 2012-03-12 04:50:36 UTC (rev 54134) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29836 + FORMAL BUILD NUMBER:29838 */ -#define PRODUCT_VER_STRING "3.0.0.29836" -#define FILE_VER_STRING "WI-T3.0.0.29836" -#define LICENSE_VER_STRING "WI-T3.0.0.29836" -#define FILE_VER_NUMBER 3, 0, 0, 29836 +#define PRODUCT_VER_STRING "3.0.0.29838" +#define FILE_VER_STRING "WI-T3.0.0.29838" +#define LICENSE_VER_STRING "WI-T3.0.0.29838" +#define FILE_VER_NUMBER 3, 0, 0, 29838 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29836" +#define FB_BUILD_NO "29838" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2012-03-11 15:32:58 UTC (rev 54133) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-03-12 04:50:36 UTC (rev 54134) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29836 +BuildNum=29838 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2012-03-14 04:49:35
|
Revision: 54137 http://firebird.svn.sourceforge.net/firebird/?rev=54137&view=rev Author: firebirds Date: 2012-03-14 04:49:29 +0000 (Wed, 14 Mar 2012) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2012-03-13 10:31:28 UTC (rev 54136) +++ firebird/trunk/ChangeLog 2012-03-14 04:49:29 UTC (rev 54137) @@ -1,3 +1,10 @@ + 2012-03-13 10:31 dimitr + M src/jrd/btn.h + M src/jrd/btr.cpp + M src/jrd/ods.h + M src/jrd/validation.cpp +Made the jump nodes unconditional. To be continued. + 2012-03-11 15:32 alexpeshkoff M src/yvalve/YObjects.h M src/yvalve/why.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-03-13 10:31:28 UTC (rev 54136) +++ firebird/trunk/src/jrd/build_no.h 2012-03-14 04:49:29 UTC (rev 54137) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29838 + FORMAL BUILD NUMBER:29839 */ -#define PRODUCT_VER_STRING "3.0.0.29838" -#define FILE_VER_STRING "WI-T3.0.0.29838" -#define LICENSE_VER_STRING "WI-T3.0.0.29838" -#define FILE_VER_NUMBER 3, 0, 0, 29838 +#define PRODUCT_VER_STRING "3.0.0.29839" +#define FILE_VER_STRING "WI-T3.0.0.29839" +#define LICENSE_VER_STRING "WI-T3.0.0.29839" +#define FILE_VER_NUMBER 3, 0, 0, 29839 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29838" +#define FB_BUILD_NO "29839" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2012-03-13 10:31:28 UTC (rev 54136) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-03-14 04:49:29 UTC (rev 54137) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29838 +BuildNum=29839 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2012-03-15 04:50:15
|
Revision: 54160 http://firebird.svn.sourceforge.net/firebird/?rev=54160&view=rev Author: firebirds Date: 2012-03-15 04:50:08 +0000 (Thu, 15 Mar 2012) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2012-03-14 17:46:57 UTC (rev 54159) +++ firebird/trunk/ChangeLog 2012-03-15 04:50:08 UTC (rev 54160) @@ -1,3 +1,67 @@ + 2012-03-14 17:46 dimitr + M src/msgs/messages2.sql +Pleased Paul V. so that CORE-3195 (Concatenation to CHAR(32766/7) impossible) could be resolved. + + 2012-03-14 17:39 dimitr + M src/remote/server/server.cpp +Totally misc. + + 2012-03-14 17:38 dimitr + M src/dsql/ExprNodes.cpp + M src/dsql/gen.cpp + M src/dsql/utld.cpp + M src/dsql/utld_proto.h + M src/jrd/DataTypeUtil.cpp +Fixed CORE-3569: CHAR(32767) present in XSQLVAR with length 32765. The JRD part of the patch is not strictly required, as it's used exclusively for VARCHARs right now, but let's be protected for the unpredictable future. + + 2012-03-14 16:04 dimitr + M src/jrd/cvt2.cpp + M src/jrd/cvt2_proto.h + M src/jrd/opt.cpp +Front-ported CORE-3553: Nested loop plan is chosen instead of the sort merge for joining independent streams using keys of different types. + + 2012-03-14 15:26 dimitr + M src/jrd/DatabaseSnapshot.cpp +Fixed CORE-2286: Selecting from MON$CALL_STACK within a Trigger or SP sometimes return 0 rows. + + 2012-03-14 14:35 dimitr + M src/utilities/gstat/dba.epp +Integrated the jumping information natively into the index bucket. +WARNING: This is an ODS change, databases must be recreated. + + 2012-03-14 14:33 dimitr + M src/jrd/btn.cpp + M src/jrd/btn.h + M src/jrd/btr.cpp + M src/jrd/btr.h + M src/jrd/ods.h + M src/jrd/recsrc/IndexTableScan.cpp + M src/jrd/validation.cpp +Integrated the jumping information natively into the index bucket. +WARNING: This is an ODS change, databases must be recreated. + + 2012-03-14 14:00 dimitr + M src/jrd/TempSpace.cpp + M src/jrd/TempSpace.h + M src/jrd/recsrc/MergeJoin.cpp + M src/jrd/sort.cpp +Front-ported CORE-3457: Optimize the temporary space manager regarding small chunk allocations. + + 2012-03-14 13:46 alexpeshkoff + M src/common/db_alias.cpp +Comments + + 2012-03-14 08:46 alexpeshkoff + M src/common/db_alias.cpp + M src/common/db_alias.h + M src/jrd/jrd.cpp + M src/lock/print.cpp + M src/remote/remote.cpp + M src/utilities/gstat/dba.epp + M src/utilities/nbackup/nbackup.cpp + M src/yvalve/why.cpp +Implemented CORE-3788: Make all utilities follow same rules when expanding database name + 2012-03-13 10:31 dimitr M src/jrd/btn.h M src/jrd/btr.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-03-14 17:46:57 UTC (rev 54159) +++ firebird/trunk/src/jrd/build_no.h 2012-03-15 04:50:08 UTC (rev 54160) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29839 + FORMAL BUILD NUMBER:29849 */ -#define PRODUCT_VER_STRING "3.0.0.29839" -#define FILE_VER_STRING "WI-T3.0.0.29839" -#define LICENSE_VER_STRING "WI-T3.0.0.29839" -#define FILE_VER_NUMBER 3, 0, 0, 29839 +#define PRODUCT_VER_STRING "3.0.0.29849" +#define FILE_VER_STRING "WI-T3.0.0.29849" +#define LICENSE_VER_STRING "WI-T3.0.0.29849" +#define FILE_VER_NUMBER 3, 0, 0, 29849 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29839" +#define FB_BUILD_NO "29849" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2012-03-14 17:46:57 UTC (rev 54159) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-03-15 04:50:08 UTC (rev 54160) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29839 +BuildNum=29849 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2012-03-16 04:50:32
|
Revision: 54179 http://firebird.svn.sourceforge.net/firebird/?rev=54179&view=rev Author: firebirds Date: 2012-03-16 04:50:25 +0000 (Fri, 16 Mar 2012) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2012-03-15 16:00:59 UTC (rev 54178) +++ firebird/trunk/ChangeLog 2012-03-16 04:50:25 UTC (rev 54179) @@ -1,3 +1,52 @@ + 2012-03-15 15:05 alexpeshkoff + M src/alice/exe.cpp + M src/alice/tdr.cpp + M src/burp/burp.cpp + M src/burp/restore.epp + M src/common/UtilSvc.cpp + M src/common/UtilSvc.h + M src/common/db_alias.cpp + M src/include/consts_pub.h + M src/jrd/svc.cpp + M src/jrd/svc.h + M src/utilities/gsec/gsec.cpp + M src/utilities/gstat/dba.epp + M src/yvalve/YObjects.h + M src/yvalve/utl.cpp + M src/yvalve/why.cpp +Fixed use of UTF8 strings in services + + 2012-03-15 15:03 alexpeshkoff + M src/utilities/gstat/dba.epp +Fixed delivery of errors from gstat service + + 2012-03-15 14:39 alexpeshkoff + M src/remote/server/server.cpp +Fixed assertion at client side in service logon + + 2012-03-15 12:10 dimitr + M src/dsql/ExprNodes.cpp +Fixed CORE-1992: bad BLR -- invalid stream for union select. + + 2012-03-15 10:40 dimitr + M src/dsql/StmtNodes.cpp + M src/jrd/exe.cpp + M src/jrd/req.h +Fixed CORE-3092: ROW_COUNT is not cleared before the singleton INSERT statement, + + 2012-03-15 09:52 alexpeshkoff + M builds/posix/Makefile.in.examples +Better track file dependencies + + 2012-03-15 09:29 dimitr + M src/jrd/DatabaseSnapshot.cpp + M src/jrd/RuntimeStatistics.h +Fixed CORE-3625: MON$IO_STATS doesn't report page writes performed asynchronously (at the AST level). + + 2012-03-15 08:14 alexpeshkoff + M src/include/gen/msgs.h +Misc + 2012-03-14 17:46 dimitr M src/msgs/messages2.sql Pleased Paul V. so that CORE-3195 (Concatenation to CHAR(32766/7) impossible) could be resolved. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-03-15 16:00:59 UTC (rev 54178) +++ firebird/trunk/src/jrd/build_no.h 2012-03-16 04:50:25 UTC (rev 54179) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29849 + FORMAL BUILD NUMBER:29857 */ -#define PRODUCT_VER_STRING "3.0.0.29849" -#define FILE_VER_STRING "WI-T3.0.0.29849" -#define LICENSE_VER_STRING "WI-T3.0.0.29849" -#define FILE_VER_NUMBER 3, 0, 0, 29849 +#define PRODUCT_VER_STRING "3.0.0.29857" +#define FILE_VER_STRING "WI-T3.0.0.29857" +#define LICENSE_VER_STRING "WI-T3.0.0.29857" +#define FILE_VER_NUMBER 3, 0, 0, 29857 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29849" +#define FB_BUILD_NO "29857" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2012-03-15 16:00:59 UTC (rev 54178) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-03-16 04:50:25 UTC (rev 54179) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29849 +BuildNum=29857 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ale...@us...> - 2012-03-16 17:08:35
|
Revision: 54184 http://firebird.svn.sourceforge.net/firebird/?rev=54184&view=rev Author: alexpeshkoff Date: 2012-03-16 17:08:24 +0000 (Fri, 16 Mar 2012) Log Message: ----------- System to UTF8 conversion on non-Windows systems Modified Paths: -------------- firebird/trunk/configure.in firebird/trunk/src/common/isc_file.cpp Modified: firebird/trunk/configure.in =================================================================== --- firebird/trunk/configure.in 2012-03-16 17:05:56 UTC (rev 54183) +++ firebird/trunk/configure.in 2012-03-16 17:08:24 UTC (rev 54184) @@ -674,6 +674,8 @@ AC_CHECK_HEADERS(atomic.h) AC_CHECK_HEADERS(atomic_ops.h) AC_CHECK_HEADERS(poll.h) +AC_CHECK_HEADERS(langinfo.h) +AC_CHECK_HEADERS(iconv.h) dnl check for ICU presence AC_CHECK_HEADER(unicode/ucnv.h,,AC_MSG_ERROR(ICU support not found - please install development ICU package)) Modified: firebird/trunk/src/common/isc_file.cpp =================================================================== --- firebird/trunk/src/common/isc_file.cpp 2012-03-16 17:05:56 UTC (rev 54183) +++ firebird/trunk/src/common/isc_file.cpp 2012-03-16 17:08:24 UTC (rev 54184) @@ -78,6 +78,12 @@ #ifdef HAVE_SYS_MOUNT_H #include <sys/mount.h> #endif +#ifdef HAVE_LANGINFO_H +#include <langinfo.h> +#endif +#ifdef HAVE_ICONV_H +#include <iconv.h> +#endif #include "../common/config/config.h" @@ -1644,14 +1650,89 @@ } #endif // WIN_NT +#ifdef HAVE_ICONV_H +namespace { +class IConv +{ +public: + IConv(MemoryPool& p) + : toBuf(p) + { +#ifdef HAVE_LANGINFO_H + string systemCharmap = nl_langinfo(CODESET); +#else + string systemCharmap; + if (!fb_utils::readenv("LC_CTYPE", systemCharmap)) + { + systemCharmap = "ANSI_X3.4-1968"; // ascii + } +#endif + const char* utfCharmap = "UTF-8"; + + toUtf = openIconv(utfCharmap, systemCharmap.c_str()); + toSystem = openIconv(systemCharmap.c_str(), utfCharmap); + } + + void systemToUtf8(AbstractString& str) + { + convert(str, toUtf); + } + + void utf8ToSystem(AbstractString& str) + { + convert(str, toSystem); + } + +private: + iconv_t toUtf, toSystem; + Mutex mtx; + Array<char> toBuf; + + iconv_t openIconv(const char *tocode, const char *fromcode) + { + toUtf = iconv_open(tocode, fromcode); + if (toUtf == (iconv_t) -1) + { + (Arg::Gds(isc_random) << "Error opening conversion descriptor" << + Arg::Unix(errno)).raise(); + // adding text "from @1 to @2" is good idea + } + } + + void convert(AbstractString& str, iconv_t id) + { + MutexLockGuard g(mtx); + + const size_t outlength = str.length() * 4; + size_t outsize = outlength; + char* outbuf = toBuf.getBuffer(outsize); + size_t insize = str.length(); + char* inbuf = str.begin(); + if (iconv(id, &inbuf, &insize, &outbuf, &outsize) == (size_t) -1) + { + (Arg::Gds(isc_bad_conn_str) << + Arg::Gds(isc_transliteration_failed) << + Arg::Unix(errno)).raise(); + } + + outsize = outlength - outsize; + memcpy(str.getBuffer(outsize), toBuf.begin(), outsize); + } +}; + +InitInstance<IConv> iConv; + +} +#endif // HAVE_ICONV_H + // Converts a string from the system charset to UTF-8. void ISC_systemToUtf8(Firebird::AbstractString& str) { if (str.isEmpty()) return; -#ifdef WIN_NT +#if defined(WIN_NT) WCHAR utf16Buffer[MAX_PATH]; int len = MultiByteToWideChar(CP_ACP, 0, str.c_str(), str.length(), utf16Buffer, sizeof(utf16Buffer) / sizeof(WCHAR)); @@ -1667,6 +1748,8 @@ status_exception::raise(Arg::Gds(isc_bad_conn_str) << Arg::Gds(isc_transliteration_failed)); memcpy(str.getBuffer(len), utf8Buffer, len); +#elif defined(HAVE_ICONV_H) + iConv().systemToUtf8(str); #endif } @@ -1677,7 +1760,7 @@ if (str.isEmpty()) return; -#ifdef WIN_NT +#if defined(WIN_NT) WCHAR utf16Buffer[MAX_PATH]; int len = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), str.length(), utf16Buffer, sizeof(utf16Buffer) / sizeof(WCHAR)); @@ -1694,6 +1777,8 @@ status_exception::raise(Arg::Gds(isc_bad_conn_str) << Arg::Gds(isc_transliteration_failed)); memcpy(str.getBuffer(len), ansiBuffer, len); +#elif defined(HAVE_ICONV_H) + iConv().utf8ToSystem(str); #endif } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2012-03-17 04:50:59
|
Revision: 54188 http://firebird.svn.sourceforge.net/firebird/?rev=54188&view=rev Author: firebirds Date: 2012-03-17 04:50:51 +0000 (Sat, 17 Mar 2012) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2012-03-17 02:26:59 UTC (rev 54187) +++ firebird/trunk/ChangeLog 2012-03-17 04:50:51 UTC (rev 54188) @@ -1,3 +1,40 @@ + 2012-03-17 02:26 asfernandes + M src/common/IntlParametersBlock.cpp + M src/common/db_alias.cpp + M src/common/db_alias.h + M src/dsql/StmtNodes.cpp + M src/dsql/gen.cpp + M src/jrd/DatabaseSnapshot.cpp + M src/jrd/TempSpace.cpp + M src/jrd/TempSpace.h + M src/jrd/UserManagement.cpp + M src/jrd/btr.cpp +Misc. + + 2012-03-17 02:26 asfernandes + M src/common/isc_file.cpp +Corrections. + + 2012-03-16 17:10 alexpeshkoff + A src/common/IntlParametersBlock.cpp + A src/common/IntlParametersBlock.h + M src/remote/client/interface.cpp + M src/yvalve/why.cpp +Finished with conversions of all strings in both kinds of SPBs (attach/start) to UTF8 + + 2012-03-16 17:08 alexpeshkoff + M configure.in + M src/common/isc_file.cpp +System to UTF8 conversion on non-Windows systems + + 2012-03-16 17:05 alexpeshkoff + M src/jrd/UserManagement.cpp +Misc + + 2012-03-16 12:46 alexpeshkoff + M src/common/BigInteger.h +Misc + 2012-03-15 15:05 alexpeshkoff M src/alice/exe.cpp M src/alice/tdr.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-03-17 02:26:59 UTC (rev 54187) +++ firebird/trunk/src/jrd/build_no.h 2012-03-17 04:50:51 UTC (rev 54188) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29857 + FORMAL BUILD NUMBER:29863 */ -#define PRODUCT_VER_STRING "3.0.0.29857" -#define FILE_VER_STRING "WI-T3.0.0.29857" -#define LICENSE_VER_STRING "WI-T3.0.0.29857" -#define FILE_VER_NUMBER 3, 0, 0, 29857 +#define PRODUCT_VER_STRING "3.0.0.29863" +#define FILE_VER_STRING "WI-T3.0.0.29863" +#define LICENSE_VER_STRING "WI-T3.0.0.29863" +#define FILE_VER_NUMBER 3, 0, 0, 29863 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29857" +#define FB_BUILD_NO "29863" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2012-03-17 02:26:59 UTC (rev 54187) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-03-17 04:50:51 UTC (rev 54188) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29857 +BuildNum=29863 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |