From: <ale...@us...> - 2015-12-30 15:16:46
|
Revision: 62751 http://sourceforge.net/p/firebird/code/62751 Author: alexpeshkoff Date: 2015-12-30 15:16:43 +0000 (Wed, 30 Dec 2015) Log Message: ----------- Fixed CORE-5056: Write-lock of database file is cleared ("W" disappears from output of lsof <db_name>) when remote machine obtains DB header running "fbsvcmgr <remote_host>/port:service_mgr action_db_stats <remote_dbname>" 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/os/posix/unix.cpp firebird/trunk/src/msgs/facilities2.sql firebird/trunk/src/msgs/messages2.sql firebird/trunk/src/msgs/system_errors2.sql Modified: firebird/trunk/lang_helpers/gds_codes.ftn =================================================================== --- firebird/trunk/lang_helpers/gds_codes.ftn 2015-12-30 10:11:26 UTC (rev 62750) +++ firebird/trunk/lang_helpers/gds_codes.ftn 2015-12-30 15:16:43 UTC (rev 62751) @@ -1624,6 +1624,8 @@ PARAMETER (GDS__map_down = 335545105) INTEGER*4 GDS__login_error PARAMETER (GDS__login_error = 335545106) + INTEGER*4 GDS__already_opened + PARAMETER (GDS__already_opened = 335545107) INTEGER*4 GDS__gfix_db_name PARAMETER (GDS__gfix_db_name = 335740929) INTEGER*4 GDS__gfix_invalid_sw Modified: firebird/trunk/lang_helpers/gds_codes.pas =================================================================== --- firebird/trunk/lang_helpers/gds_codes.pas 2015-12-30 10:11:26 UTC (rev 62750) +++ firebird/trunk/lang_helpers/gds_codes.pas 2015-12-30 15:16:43 UTC (rev 62751) @@ -1619,6 +1619,8 @@ gds_map_down = 335545105; isc_login_error = 335545106; gds_login_error = 335545106; + isc_already_opened = 335545107; + gds_already_opened = 335545107; isc_gfix_db_name = 335740929; gds_gfix_db_name = 335740929; isc_gfix_invalid_sw = 335740930; Modified: firebird/trunk/src/include/gen/codetext.h =================================================================== --- firebird/trunk/src/include/gen/codetext.h 2015-12-30 10:11:26 UTC (rev 62750) +++ firebird/trunk/src/include/gen/codetext.h 2015-12-30 15:16:43 UTC (rev 62751) @@ -808,6 +808,7 @@ {"invalid_attachment_charset", 335545104}, {"map_down", 335545105}, {"login_error", 335545106}, + {"already_opened", 335545107}, {"gfix_db_name", 335740929}, {"gfix_invalid_sw", 335740930}, {"gfix_incmp_sw", 335740932}, Modified: firebird/trunk/src/include/gen/iberror.h =================================================================== --- firebird/trunk/src/include/gen/iberror.h 2015-12-30 10:11:26 UTC (rev 62750) +++ firebird/trunk/src/include/gen/iberror.h 2015-12-30 15:16:43 UTC (rev 62751) @@ -842,6 +842,7 @@ const ISC_STATUS isc_invalid_attachment_charset = 335545104L; const ISC_STATUS isc_map_down = 335545105L; const ISC_STATUS isc_login_error = 335545106L; +const ISC_STATUS isc_already_opened = 335545107L; const ISC_STATUS isc_gfix_db_name = 335740929L; const ISC_STATUS isc_gfix_invalid_sw = 335740930L; const ISC_STATUS isc_gfix_incmp_sw = 335740932L; @@ -1305,7 +1306,7 @@ const ISC_STATUS isc_trace_switch_param_miss = 337182758L; const ISC_STATUS isc_trace_param_act_notcompat = 337182759L; const ISC_STATUS isc_trace_mandatory_switch_miss = 337182760L; -const ISC_STATUS isc_err_max = 1249; +const ISC_STATUS isc_err_max = 1250; #else /* c definitions */ @@ -2117,6 +2118,7 @@ #define isc_invalid_attachment_charset 335545104L #define isc_map_down 335545105L #define isc_login_error 335545106L +#define isc_already_opened 335545107L #define isc_gfix_db_name 335740929L #define isc_gfix_invalid_sw 335740930L #define isc_gfix_incmp_sw 335740932L @@ -2580,7 +2582,7 @@ #define isc_trace_switch_param_miss 337182758L #define isc_trace_param_act_notcompat 337182759L #define isc_trace_mandatory_switch_miss 337182760L -#define isc_err_max 1249 +#define isc_err_max 1250 #endif Modified: firebird/trunk/src/include/gen/msgs.h =================================================================== --- firebird/trunk/src/include/gen/msgs.h 2015-12-30 10:11:26 UTC (rev 62750) +++ firebird/trunk/src/include/gen/msgs.h 2015-12-30 15:16:43 UTC (rev 62751) @@ -811,6 +811,7 @@ {335545104, "CHARACTER SET @1 cannot be used as a attachment character set"}, /* invalid_attachment_charset */ {335545105, "Some database(s) were shutdown when trying to read mapping data"}, /* map_down */ {335545106, "Error occurred during login, please check server firebird.log for details"}, /* login_error */ + {335545107, "Database already opened with engine instance, incompatible with current"}, /* already_opened */ {335740929, "data base file name (@1) already given"}, /* gfix_db_name */ {335740930, "invalid switch @1"}, /* gfix_invalid_sw */ {335740932, "incompatible switch combination"}, /* gfix_incmp_sw */ Modified: firebird/trunk/src/include/gen/sql_code.h =================================================================== --- firebird/trunk/src/include/gen/sql_code.h 2015-12-30 10:11:26 UTC (rev 62750) +++ firebird/trunk/src/include/gen/sql_code.h 2015-12-30 15:16:43 UTC (rev 62751) @@ -807,6 +807,7 @@ {335545104, -204}, /* 784 invalid_attachment_charset */ {335545105, -901}, /* 785 map_down */ {335545106, -902}, /* 786 login_error */ + {335545107, -902}, /* 787 already_opened */ {335740929, -901}, /* 1 gfix_db_name */ {335740930, -901}, /* 2 gfix_invalid_sw */ {335740932, -901}, /* 4 gfix_incmp_sw */ Modified: firebird/trunk/src/include/gen/sql_state.h =================================================================== --- firebird/trunk/src/include/gen/sql_state.h 2015-12-30 10:11:26 UTC (rev 62750) +++ firebird/trunk/src/include/gen/sql_state.h 2015-12-30 15:16:43 UTC (rev 62751) @@ -807,6 +807,7 @@ {335545104, "2C000"}, // 784 invalid_attachment_charset {335545105, "08004"}, // 785 map_down {335545106, "08006"}, // 786 login_error + {335545107, "08006"}, // 787 already_opened {335740929, "00000"}, // 1 gfix_db_name {335740930, "00000"}, // 2 gfix_invalid_sw {335740932, "00000"}, // 4 gfix_incmp_sw Modified: firebird/trunk/src/jrd/os/posix/unix.cpp =================================================================== --- firebird/trunk/src/jrd/os/posix/unix.cpp 2015-12-30 10:11:26 UTC (rev 62750) +++ firebird/trunk/src/jrd/os/posix/unix.cpp 2015-12-30 15:16:43 UTC (rev 62751) @@ -112,7 +112,8 @@ #define FCNTL_BROKEN static jrd_file* seek_file(jrd_file*, BufferDesc*, FB_UINT64*, FbStatusVector*); static jrd_file* setup_file(Database*, const PathName&, const int, const bool, const bool); -static bool lockDatabaseFile(int desc, const bool shareMode, const bool temporary = false); +static void lockDatabaseFile(int& desc, const bool shareMode, const bool temporary, + const char* fileName, ISC_STATUS operation); static bool unix_error(const TEXT*, const jrd_file*, ISC_STATUS, FbStatusVector* = NULL); #if !(defined HAVE_PREAD && defined HAVE_PWRITE) static SLONG pread(int, SCHAR*, SLONG, SLONG); @@ -217,7 +218,7 @@ Database* const dbb = tdbb->getDatabase(); - const int desc = os_utils::open(file_name.c_str(), flag, 0666); + int desc = os_utils::open(file_name.c_str(), flag, 0666); if (desc == -1) { ERR_post(Arg::Gds(isc_io_error) << Arg::Str("open O_CREAT") << Arg::Str(file_name) << @@ -225,15 +226,7 @@ } const bool shareMode = dbb->dbb_config->getServerMode() != MODE_SUPER; - if (!lockDatabaseFile(desc, shareMode, temporary)) - { - int lockErrno = errno; - close(desc); - // error when locking file almost always means it's locked by someone else - // therefore do not remove file here (contrary to chmod error) - ERR_post(Arg::Gds(isc_io_error) << Arg::Str("lock") << Arg::Str(file_name) << - Arg::Gds(isc_io_create_err) << Arg::Unix(lockErrno)); - } + lockDatabaseFile(desc, shareMode, temporary, file_name.c_str(), isc_io_create_err); #ifdef HAVE_FCHMOD if (fchmod(desc, MASK) < 0) @@ -440,10 +433,7 @@ unix_error("re open() for SYNC/DIRECT", file, isc_io_open_err); } - if (!lockDatabaseFile(file->fil_desc, file->fil_flags & FIL_sh_write)) - { - unix_error("lock", file, isc_io_open_err); - } + lockDatabaseFile(file->fil_desc, file->fil_flags & FIL_sh_write, false, file->fil_string, isc_io_open_err); #endif //FCNTL_BROKEN #ifdef SOLARIS @@ -677,11 +667,7 @@ } const bool shareMode = dbb->dbb_config->getServerMode() != MODE_SUPER; - 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)); - } + lockDatabaseFile(desc, shareMode || readOnly, false, ptr, isc_io_open_err); // posix_fadvise(desc, 0, 0, POSIX_FADV_RANDOM); @@ -942,15 +928,41 @@ } -static bool lockDatabaseFile(int desc, const bool share, const bool temporary) +static void lockDatabaseFile(int& desc, const bool share, const bool temporary, + const char* fileName, ISC_STATUS operation) { - struct flock lck; - lck.l_type = (!temporary && share) ? F_RDLCK : F_WRLCK; - lck.l_whence = SEEK_SET; - lck.l_start = 0; - lck.l_len = 0; + bool shared = (!temporary) && share; + bool busy = false; - return fcntl(desc, F_SETLK, &lck) == 0; + do + { +#ifndef HAVE_FLOCK + struct flock lck; + lck.l_type = shared ? F_RDLCK : F_WRLCK; + lck.l_whence = SEEK_SET; + lck.l_start = 0; + lck.l_len = 0; + + if (fcntl(desc, F_SETLK, &lck) == 0) + return; + busy = (errno == EACCES) || (errno == EAGAIN); +#else + if (flock(desc, (shared ? LOCK_SH : LOCK_EX) | LOCK_NB) == 0) + return; + busy = (errno == EWOULDBLOCK); +#endif + } + while (errno == EINTR); + + maybeCloseFile(desc); + + Arg::Gds err(isc_io_error); + err << "lock" << fileName; + if (busy) + err << Arg::Gds(isc_already_opened); + else + err << Arg::Gds(operation) << Arg::Unix(errno); + ERR_post(err); } Modified: firebird/trunk/src/msgs/facilities2.sql =================================================================== --- firebird/trunk/src/msgs/facilities2.sql 2015-12-30 10:11:26 UTC (rev 62750) +++ firebird/trunk/src/msgs/facilities2.sql 2015-12-30 15:16:43 UTC (rev 62751) @@ -1,7 +1,7 @@ /* MAX_NUMBER is the next number to be used, always one more than the highest message number. */ set bulk_insert INSERT INTO FACILITIES (LAST_CHANGE, FACILITY, FAC_CODE, MAX_NUMBER) VALUES (?, ?, ?, ?); -- -('2015-12-22 20:33:22', 'JRD', 0, 787) +('2015-12-30 17:52:25', 'JRD', 0, 788) ('2015-03-17 18:33:00', 'QLI', 1, 533) ('2015-01-07 18:01:51', 'GFIX', 3, 134) ('1996-11-07 13:39:40', 'GPRE', 4, 1) Modified: firebird/trunk/src/msgs/messages2.sql =================================================================== --- firebird/trunk/src/msgs/messages2.sql 2015-12-30 10:11:26 UTC (rev 62750) +++ firebird/trunk/src/msgs/messages2.sql 2015-12-30 15:16:43 UTC (rev 62751) @@ -894,6 +894,7 @@ ('invalid_attachment_charset', NULL, NULL, NULL, 0, 784, NULL, 'CHARACTER SET @1 cannot be used as a attachment character set', NULL, NULL); ('map_down', NULL, 'Mapping.cpp', NULL, 0, 785, NULL, 'Some database(s) were shutdown when trying to read mapping data', NULL, NULL); ('login_error', NULL, 'server.cpp', NULL, 0, 786, NULL, 'Error occurred during login, please check server firebird.log for details', NULL, NULL); +('already_opened', 'lockDatabaseFile', 'unix.cpp', NULL, 0, 787, NULL, 'Database already opened with engine instance, incompatible with current', NULL, NULL); -- QLI (NULL, NULL, NULL, NULL, 1, 0, NULL, 'expected type', NULL, NULL); (NULL, NULL, NULL, NULL, 1, 1, NULL, 'bad block type', NULL, NULL); Modified: firebird/trunk/src/msgs/system_errors2.sql =================================================================== --- firebird/trunk/src/msgs/system_errors2.sql 2015-12-30 10:11:26 UTC (rev 62750) +++ firebird/trunk/src/msgs/system_errors2.sql 2015-12-30 15:16:43 UTC (rev 62751) @@ -793,6 +793,7 @@ (-204, '2C', '000', 0, 784, 'invalid_attachment_charset', NULL, NULL) (-901, '08', '004', 0, 785, 'map_down', NULL, NULL) (-902, '08', '006', 0, 786, 'login_error', NULL, NULL) +(-902, '08', '006', 0, 787, 'already_opened', NULL, NULL) -- GFIX (-901, '00', '000', 3, 1, 'gfix_db_name', NULL, NULL) (-901, '00', '000', 3, 2, 'gfix_invalid_sw', NULL, NULL) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2015-12-31 00:09:32
|
Revision: 62754 http://sourceforge.net/p/firebird/code/62754 Author: firebirds Date: 2015-12-31 00:09:29 +0000 (Thu, 31 Dec 2015) 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 2015-12-30 19:17:36 UTC (rev 62753) +++ firebird/trunk/ChangeLog 2015-12-31 00:09:29 UTC (rev 62754) @@ -1,3 +1,17 @@ + 2015-12-30 15:16 alexpeshkoff + 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/os/posix/unix.cpp + M src/msgs/facilities2.sql + M src/msgs/messages2.sql + M src/msgs/system_errors2.sql +Fixed CORE-5056: Write-lock of database file is cleared ("W" disappears from output of lsof <db_name>) when remote machine obtains DB header running "fbsvcmgr <remote_host>/port:service_mgr action_db_stats <remote_dbname>" + 2015-12-29 19:00 dimitr M src/jrd/Monitoring.cpp M src/jrd/Monitoring.h Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2015-12-30 19:17:36 UTC (rev 62753) +++ firebird/trunk/src/jrd/build_no.h 2015-12-31 00:09:29 UTC (rev 62754) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:32256 + FORMAL BUILD NUMBER:32257 */ -#define PRODUCT_VER_STRING "3.0.0.32256" -#define FILE_VER_STRING "WI-V3.0.0.32256" -#define LICENSE_VER_STRING "WI-V3.0.0.32256" -#define FILE_VER_NUMBER 3, 0, 0, 32256 +#define PRODUCT_VER_STRING "3.0.0.32257" +#define FILE_VER_STRING "WI-V3.0.0.32257" +#define LICENSE_VER_STRING "WI-V3.0.0.32257" +#define FILE_VER_NUMBER 3, 0, 0, 32257 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "32256" +#define FB_BUILD_NO "32257" #define FB_BUILD_TYPE "V" #define FB_BUILD_SUFFIX "Firebird 3.0 Release Candidate 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2015-12-30 19:17:36 UTC (rev 62753) +++ firebird/trunk/src/misc/writeBuildNum.sh 2015-12-31 00:09:29 UTC (rev 62754) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=32256 +BuildNum=32257 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...> - 2016-01-03 00:10:16
|
Revision: 62762 http://sourceforge.net/p/firebird/code/62762 Author: firebirds Date: 2016-01-03 00:10:14 +0000 (Sun, 03 Jan 2016) 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 2016-01-02 14:41:17 UTC (rev 62761) +++ firebird/trunk/ChangeLog 2016-01-03 00:10:14 UTC (rev 62762) @@ -1,3 +1,39 @@ + 2016-01-02 14:41 alexpeshkoff + M src/jrd/scl.epp +Fixed CORE-5060: Cannot CREATE VIEW that selects from a system table, despite having all grants + + 2016-01-02 12:08 dimitr + M src/dsql/dsql.cpp + M src/isql/isql.epp + M src/isql/isql.h +Fixed CORE-5061: ISQL plan output is unexpectedly truncated after a query is simplified to become shorter. + + 2016-01-02 11:41 alexpeshkoff + M src/jrd/os/posix/unix.cpp +Postfix for CORE-5056: better error reporting, thanks to Claudio + + 2016-01-02 11:37 hvlad + M src/isql/isql.h + M src/isql/show.epp + M src/msgs/facilities2.sql + M src/msgs/messages2.sql +Improvement CORE-5063 : Make "show database" command to show numbers of used and free pages in database + + 2016-01-02 11:28 hvlad + M src/jrd/inf.cpp + M src/jrd/inf_pub.h + M src/jrd/pag.cpp + M src/jrd/pag.h +New feature CORE-1538 : Add an option to isc_database_info to return the number of free pages in a database + + 2016-01-02 01:45 asfernandes + M src/jrd/SysFunction.cpp +Revert fix for CORE-5062 for better investigation. + + 2016-01-02 01:04 asfernandes + M src/jrd/SysFunction.cpp +Fixed CORE-5062 - CHAR_TO_UUID on column with index throws expression evaluation not supported Human readable UUID argument for CHAR_TO_UUID must be of exact length 36. + 2015-12-30 15:16 alexpeshkoff M lang_helpers/gds_codes.ftn M lang_helpers/gds_codes.pas Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2016-01-02 14:41:17 UTC (rev 62761) +++ firebird/trunk/src/jrd/build_no.h 2016-01-03 00:10:14 UTC (rev 62762) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:32257 + FORMAL BUILD NUMBER:32264 */ -#define PRODUCT_VER_STRING "3.0.0.32257" -#define FILE_VER_STRING "WI-V3.0.0.32257" -#define LICENSE_VER_STRING "WI-V3.0.0.32257" -#define FILE_VER_NUMBER 3, 0, 0, 32257 +#define PRODUCT_VER_STRING "3.0.0.32264" +#define FILE_VER_STRING "WI-V3.0.0.32264" +#define LICENSE_VER_STRING "WI-V3.0.0.32264" +#define FILE_VER_NUMBER 3, 0, 0, 32264 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "32257" +#define FB_BUILD_NO "32264" #define FB_BUILD_TYPE "V" #define FB_BUILD_SUFFIX "Firebird 3.0 Release Candidate 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2016-01-02 14:41:17 UTC (rev 62761) +++ firebird/trunk/src/misc/writeBuildNum.sh 2016-01-03 00:10:14 UTC (rev 62762) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=32257 +BuildNum=32264 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...> - 2016-01-04 00:09:25
|
Revision: 62771 http://sourceforge.net/p/firebird/code/62771 Author: firebirds Date: 2016-01-04 00:09:22 +0000 (Mon, 04 Jan 2016) 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 2016-01-03 20:20:56 UTC (rev 62770) +++ firebird/trunk/ChangeLog 2016-01-04 00:09:22 UTC (rev 62771) @@ -1,3 +1,11 @@ + 2016-01-03 20:20 dimitr + M src/isql/isql.epp +Fixed (hopefully) my last commit re. plan output. + + 2016-01-03 15:50 asfernandes + M src/dsql/dsql.cpp +Fixed CORE-5062 - CHAR_TO_UUID on column with index throws expression evaluation not supported Human readable UUID argument for CHAR_TO_UUID must be of exact length 36. + 2016-01-02 14:41 alexpeshkoff M src/jrd/scl.epp Fixed CORE-5060: Cannot CREATE VIEW that selects from a system table, despite having all grants Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2016-01-03 20:20:56 UTC (rev 62770) +++ firebird/trunk/src/jrd/build_no.h 2016-01-04 00:09:22 UTC (rev 62771) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:32264 + FORMAL BUILD NUMBER:32266 */ -#define PRODUCT_VER_STRING "3.0.0.32264" -#define FILE_VER_STRING "WI-V3.0.0.32264" -#define LICENSE_VER_STRING "WI-V3.0.0.32264" -#define FILE_VER_NUMBER 3, 0, 0, 32264 +#define PRODUCT_VER_STRING "3.0.0.32266" +#define FILE_VER_STRING "WI-V3.0.0.32266" +#define LICENSE_VER_STRING "WI-V3.0.0.32266" +#define FILE_VER_NUMBER 3, 0, 0, 32266 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "32264" +#define FB_BUILD_NO "32266" #define FB_BUILD_TYPE "V" #define FB_BUILD_SUFFIX "Firebird 3.0 Release Candidate 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2016-01-03 20:20:56 UTC (rev 62770) +++ firebird/trunk/src/misc/writeBuildNum.sh 2016-01-04 00:09:22 UTC (rev 62771) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=32264 +BuildNum=32266 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...> - 2016-01-07 00:09:54
|
Revision: 62788 http://sourceforge.net/p/firebird/code/62788 Author: firebirds Date: 2016-01-07 00:09:51 +0000 (Thu, 07 Jan 2016) 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 2016-01-06 18:33:36 UTC (rev 62787) +++ firebird/trunk/ChangeLog 2016-01-07 00:09:51 UTC (rev 62788) @@ -1,3 +1,12 @@ + 2016-01-06 18:20 asfernandes + M src/dsql/dsql.cpp + M src/jrd/SysFunction.cpp +Revert to the bad (that works) commit for CORE-5062. It's difficult to work when both the original architects and the users do bad things in relation to CHAR and MBCS. + + 2016-01-06 18:20 asfernandes + M src/include/firebird/Message.h +Fix for messages with FB_INTL_CHAR and FB_INTL_VARCHAR macros. + 2016-01-03 20:20 dimitr M src/isql/isql.epp Fixed (hopefully) my last commit re. plan output. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2016-01-06 18:33:36 UTC (rev 62787) +++ firebird/trunk/src/jrd/build_no.h 2016-01-07 00:09:51 UTC (rev 62788) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:32266 + FORMAL BUILD NUMBER:32268 */ -#define PRODUCT_VER_STRING "3.0.0.32266" -#define FILE_VER_STRING "WI-V3.0.0.32266" -#define LICENSE_VER_STRING "WI-V3.0.0.32266" -#define FILE_VER_NUMBER 3, 0, 0, 32266 +#define PRODUCT_VER_STRING "3.0.0.32268" +#define FILE_VER_STRING "WI-V3.0.0.32268" +#define LICENSE_VER_STRING "WI-V3.0.0.32268" +#define FILE_VER_NUMBER 3, 0, 0, 32268 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "32266" +#define FB_BUILD_NO "32268" #define FB_BUILD_TYPE "V" #define FB_BUILD_SUFFIX "Firebird 3.0 Release Candidate 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2016-01-06 18:33:36 UTC (rev 62787) +++ firebird/trunk/src/misc/writeBuildNum.sh 2016-01-07 00:09:51 UTC (rev 62788) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=32266 +BuildNum=32268 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...> - 2016-01-11 00:09:52
|
Revision: 62800 http://sourceforge.net/p/firebird/code/62800 Author: firebirds Date: 2016-01-11 00:09:49 +0000 (Mon, 11 Jan 2016) 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 2016-01-10 22:31:06 UTC (rev 62799) +++ firebird/trunk/ChangeLog 2016-01-11 00:09:49 UTC (rev 62800) @@ -1,3 +1,7 @@ + 2016-01-10 14:20 hvlad + M src/remote/inet.cpp +Improvement CORE-2493 : Append the IP address of the remote host to error messages in firebird.log for TCP connections + 2016-01-06 18:20 asfernandes M src/dsql/dsql.cpp M src/jrd/SysFunction.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2016-01-10 22:31:06 UTC (rev 62799) +++ firebird/trunk/src/jrd/build_no.h 2016-01-11 00:09:49 UTC (rev 62800) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:32268 + FORMAL BUILD NUMBER:32269 */ -#define PRODUCT_VER_STRING "3.0.0.32268" -#define FILE_VER_STRING "WI-V3.0.0.32268" -#define LICENSE_VER_STRING "WI-V3.0.0.32268" -#define FILE_VER_NUMBER 3, 0, 0, 32268 +#define PRODUCT_VER_STRING "3.0.0.32269" +#define FILE_VER_STRING "WI-V3.0.0.32269" +#define LICENSE_VER_STRING "WI-V3.0.0.32269" +#define FILE_VER_NUMBER 3, 0, 0, 32269 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "32268" +#define FB_BUILD_NO "32269" #define FB_BUILD_TYPE "V" #define FB_BUILD_SUFFIX "Firebird 3.0 Release Candidate 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2016-01-10 22:31:06 UTC (rev 62799) +++ firebird/trunk/src/misc/writeBuildNum.sh 2016-01-11 00:09:49 UTC (rev 62800) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=32268 +BuildNum=32269 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...> - 2016-01-11 14:23:37
|
Revision: 62803 http://sourceforge.net/p/firebird/code/62803 Author: alexpeshkoff Date: 2016-01-11 14:23:35 +0000 (Mon, 11 Jan 2016) Log Message: ----------- Fixed CORE-4996: Need some SECURITY2.FDB --> SECURITY3.FDB upgrade feature, placed new files into linux package Modified Paths: -------------- firebird/trunk/builds/install/arch-specific/linux/makeInstallImage.sh.in firebird/trunk/src/misc/upgrade/v3.0/security_database.txt Modified: firebird/trunk/builds/install/arch-specific/linux/makeInstallImage.sh.in =================================================================== --- firebird/trunk/builds/install/arch-specific/linux/makeInstallImage.sh.in 2016-01-11 13:46:41 UTC (rev 62802) +++ firebird/trunk/builds/install/arch-specific/linux/makeInstallImage.sh.in 2016-01-11 14:23:35 UTC (rev 62803) @@ -140,7 +140,7 @@ @FB_SAMPLEDIR@ @FB_SAMPLEDBDIR@ @FB_HELPDIR@ @FB_INTLDIR@ @FB_MISCDIR@ @FB_SECDBDIR@ @FB_MSGDIR@ @FB_LOGDIR@ \ @FB_GUARDDIR@ @FB_PLUGDIR@" - for i in ib_udf metadata security; do + for i in security; do makeDirs @FB_MISCDIR@/upgrade/$i done @@ -293,9 +293,7 @@ #misc cp $BuildRootDir/src/misc/intl.sql ${TargetDir}@FB_MISCDIR@ - cp $BuildRootDir/src/misc/upgrade/v2/ib_udf* ${TargetDir}@FB_MISCDIR@/upgrade/ib_udf - cp $BuildRootDir/src/misc/upgrade/v2/security_database* ${TargetDir}@FB_MISCDIR@/upgrade/security - cp $BuildRootDir/src/misc/upgrade/v2.1/metadata_charset* ${TargetDir}@FB_MISCDIR@/upgrade/metadata + cp $BuildRootDir/src/misc/upgrade/v3.0/security_database* ${TargetDir}@FB_MISCDIR@/upgrade/security cp $BuildRootDir/gen/install/misc/firebird.xinetd ${TargetDir}@FB_MISCDIR@ cp $BuildRootDir/gen/install/misc/firebird.init.d.* ${TargetDir}@FB_MISCDIR@ cp $BuildRootDir/gen/install/misc/rc.config.firebird ${TargetDir}@FB_MISCDIR@ Modified: firebird/trunk/src/misc/upgrade/v3.0/security_database.txt =================================================================== --- firebird/trunk/src/misc/upgrade/v3.0/security_database.txt 2016-01-11 13:46:41 UTC (rev 62802) +++ firebird/trunk/src/misc/upgrade/v3.0/security_database.txt 2016-01-11 14:23:35 UTC (rev 62803) @@ -1,4 +1,4 @@ -*** How to migrate existaing users from firebird 2.X to firebird 3? *** +*** How to migrate existing users from firebird 2.X to firebird 3? *** Firebird 3 is using new method to validate users on the server. Direct upgrade of security database is therefore impossible. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2016-01-12 00:09:19
|
Revision: 62806 http://sourceforge.net/p/firebird/code/62806 Author: firebirds Date: 2016-01-12 00:09:16 +0000 (Tue, 12 Jan 2016) 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 2016-01-11 16:14:59 UTC (rev 62805) +++ firebird/trunk/ChangeLog 2016-01-12 00:09:16 UTC (rev 62806) @@ -1,3 +1,19 @@ + 2016-01-11 14:23 alexpeshkoff + M builds/install/arch-specific/linux/makeInstallImage.sh.in + M src/misc/upgrade/v3.0/security_database.txt +Fixed CORE-4996: Need some SECURITY2.FDB --> SECURITY3.FDB upgrade feature, placed new files into linux package + + 2016-01-11 13:46 hvlad + M src/remote/inet.cpp +Addition to the patch for CORE-2493. +Always ask for numeric form of service name + + 2016-01-11 13:38 alexpeshkoff + A src/misc/upgrade/v3.0 + A src/misc/upgrade/v3.0/security_database.sql + A src/misc/upgrade/v3.0/security_database.txt +Fixed CORE-4996: Need some SECURITY2.FDB --> SECURITY3.FDB upgrade feature + 2016-01-10 14:20 hvlad M src/remote/inet.cpp Improvement CORE-2493 : Append the IP address of the remote host to error messages in firebird.log for TCP connections Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2016-01-11 16:14:59 UTC (rev 62805) +++ firebird/trunk/src/jrd/build_no.h 2016-01-12 00:09:16 UTC (rev 62806) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:32269 + FORMAL BUILD NUMBER:32272 */ -#define PRODUCT_VER_STRING "3.0.0.32269" -#define FILE_VER_STRING "WI-V3.0.0.32269" -#define LICENSE_VER_STRING "WI-V3.0.0.32269" -#define FILE_VER_NUMBER 3, 0, 0, 32269 +#define PRODUCT_VER_STRING "3.0.0.32272" +#define FILE_VER_STRING "WI-V3.0.0.32272" +#define LICENSE_VER_STRING "WI-V3.0.0.32272" +#define FILE_VER_NUMBER 3, 0, 0, 32272 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "32269" +#define FB_BUILD_NO "32272" #define FB_BUILD_TYPE "V" #define FB_BUILD_SUFFIX "Firebird 3.0 Release Candidate 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2016-01-11 16:14:59 UTC (rev 62805) +++ firebird/trunk/src/misc/writeBuildNum.sh 2016-01-12 00:09:16 UTC (rev 62806) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=32269 +BuildNum=32272 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...> - 2016-01-14 00:10:23
|
Revision: 62813 http://sourceforge.net/p/firebird/code/62813 Author: firebirds Date: 2016-01-14 00:10:20 +0000 (Thu, 14 Jan 2016) 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 2016-01-13 13:53:52 UTC (rev 62812) +++ firebird/trunk/ChangeLog 2016-01-14 00:10:20 UTC (rev 62813) @@ -1,3 +1,17 @@ + 2016-01-13 13:53 asfernandes + M extern/icu/Readme.txt + M extern/icu/icu.exe +Add missing (GBK, for example) character sets to our ICU data file. + + 2016-01-13 10:08 dimitr + M src/jrd/recsrc/HashJoin.cpp +Minor correction. + + 2016-01-13 09:35 hvlad + M src/remote/inet.cpp +IPv6 address could contain percent sign inside, therefore make sure error string not used as vfprintf format string by gds__log(). +See also comments at CORE-2493. + 2016-01-11 14:23 alexpeshkoff M builds/install/arch-specific/linux/makeInstallImage.sh.in M src/misc/upgrade/v3.0/security_database.txt Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2016-01-13 13:53:52 UTC (rev 62812) +++ firebird/trunk/src/jrd/build_no.h 2016-01-14 00:10:20 UTC (rev 62813) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:32272 + FORMAL BUILD NUMBER:32275 */ -#define PRODUCT_VER_STRING "3.0.0.32272" -#define FILE_VER_STRING "WI-V3.0.0.32272" -#define LICENSE_VER_STRING "WI-V3.0.0.32272" -#define FILE_VER_NUMBER 3, 0, 0, 32272 +#define PRODUCT_VER_STRING "3.0.0.32275" +#define FILE_VER_STRING "WI-V3.0.0.32275" +#define LICENSE_VER_STRING "WI-V3.0.0.32275" +#define FILE_VER_NUMBER 3, 0, 0, 32275 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "32272" +#define FB_BUILD_NO "32275" #define FB_BUILD_TYPE "V" #define FB_BUILD_SUFFIX "Firebird 3.0 Release Candidate 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2016-01-13 13:53:52 UTC (rev 62812) +++ firebird/trunk/src/misc/writeBuildNum.sh 2016-01-14 00:10:20 UTC (rev 62813) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=32272 +BuildNum=32275 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...> - 2016-01-15 00:09:25
|
Revision: 62815 http://sourceforge.net/p/firebird/code/62815 Author: firebirds Date: 2016-01-15 00:09:22 +0000 (Fri, 15 Jan 2016) 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 2016-01-14 23:09:01 UTC (rev 62814) +++ firebird/trunk/ChangeLog 2016-01-15 00:09:22 UTC (rev 62815) @@ -1,3 +1,8 @@ + 2016-01-14 23:09 hvlad + M src/jrd/jrd.cpp +Fixed crash reason (see CORE-5075). +Error on disconnect requires more analyzing. + 2016-01-13 13:53 asfernandes M extern/icu/Readme.txt M extern/icu/icu.exe Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2016-01-14 23:09:01 UTC (rev 62814) +++ firebird/trunk/src/jrd/build_no.h 2016-01-15 00:09:22 UTC (rev 62815) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:32275 + FORMAL BUILD NUMBER:32276 */ -#define PRODUCT_VER_STRING "3.0.0.32275" -#define FILE_VER_STRING "WI-V3.0.0.32275" -#define LICENSE_VER_STRING "WI-V3.0.0.32275" -#define FILE_VER_NUMBER 3, 0, 0, 32275 +#define PRODUCT_VER_STRING "3.0.0.32276" +#define FILE_VER_STRING "WI-V3.0.0.32276" +#define LICENSE_VER_STRING "WI-V3.0.0.32276" +#define FILE_VER_NUMBER 3, 0, 0, 32276 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "32275" +#define FB_BUILD_NO "32276" #define FB_BUILD_TYPE "V" #define FB_BUILD_SUFFIX "Firebird 3.0 Release Candidate 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2016-01-14 23:09:01 UTC (rev 62814) +++ firebird/trunk/src/misc/writeBuildNum.sh 2016-01-15 00:09:22 UTC (rev 62815) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=32275 +BuildNum=32276 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...> - 2016-01-18 00:10:16
|
Revision: 62823 http://sourceforge.net/p/firebird/code/62823 Author: firebirds Date: 2016-01-18 00:10:14 +0000 (Mon, 18 Jan 2016) 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 2016-01-17 10:22:52 UTC (rev 62822) +++ firebird/trunk/ChangeLog 2016-01-18 00:10:14 UTC (rev 62823) @@ -1,3 +1,22 @@ + 2016-01-17 01:46 asfernandes + M src/jrd/CryptoManager.cpp + M src/jrd/os/posix/unix.cpp + M src/jrd/pag.cpp + M src/misc/pascal/Pascal.implementation.pas + M src/misc/pascal/Pascal.interface.pas + M src/remote/inet.cpp + M src/remote/server/os/posix/inet_server.cpp + M src/yvalve/why.cpp +Misc. + + 2016-01-17 01:14 asfernandes + M examples/interfaces/01.create.pas +Missing dispose. + + 2016-01-17 01:10 asfernandes + M src/yvalve/utl.cpp +Misc. + 2016-01-14 23:09 hvlad M src/jrd/jrd.cpp Fixed crash reason (see CORE-5075). Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2016-01-17 10:22:52 UTC (rev 62822) +++ firebird/trunk/src/jrd/build_no.h 2016-01-18 00:10:14 UTC (rev 62823) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:32276 + FORMAL BUILD NUMBER:32279 */ -#define PRODUCT_VER_STRING "3.0.0.32276" -#define FILE_VER_STRING "WI-V3.0.0.32276" -#define LICENSE_VER_STRING "WI-V3.0.0.32276" -#define FILE_VER_NUMBER 3, 0, 0, 32276 +#define PRODUCT_VER_STRING "3.0.0.32279" +#define FILE_VER_STRING "WI-V3.0.0.32279" +#define LICENSE_VER_STRING "WI-V3.0.0.32279" +#define FILE_VER_NUMBER 3, 0, 0, 32279 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "32276" +#define FB_BUILD_NO "32279" #define FB_BUILD_TYPE "V" #define FB_BUILD_SUFFIX "Firebird 3.0 Release Candidate 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2016-01-17 10:22:52 UTC (rev 62822) +++ firebird/trunk/src/misc/writeBuildNum.sh 2016-01-18 00:10:14 UTC (rev 62823) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=32276 +BuildNum=32279 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...> - 2016-01-19 00:09:34
|
Revision: 62826 http://sourceforge.net/p/firebird/code/62826 Author: firebirds Date: 2016-01-19 00:09:32 +0000 (Tue, 19 Jan 2016) 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 2016-01-18 17:30:37 UTC (rev 62825) +++ firebird/trunk/ChangeLog 2016-01-19 00:09:32 UTC (rev 62826) @@ -1,3 +1,14 @@ + 2016-01-18 17:30 alexpeshkoff + M src/isql/isql.h + M src/isql/show.epp + M src/jrd/CryptoManager.cpp + M src/jrd/CryptoManager.h + M src/jrd/inf.cpp + M src/jrd/inf_pub.h + M src/msgs/facilities2.sql + M src/msgs/messages2.sql +Fixed CORE-5077: ISQL does not show encryption status of database + 2016-01-17 01:46 asfernandes M src/jrd/CryptoManager.cpp M src/jrd/os/posix/unix.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2016-01-18 17:30:37 UTC (rev 62825) +++ firebird/trunk/src/jrd/build_no.h 2016-01-19 00:09:32 UTC (rev 62826) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:32279 + FORMAL BUILD NUMBER:32280 */ -#define PRODUCT_VER_STRING "3.0.0.32279" -#define FILE_VER_STRING "WI-V3.0.0.32279" -#define LICENSE_VER_STRING "WI-V3.0.0.32279" -#define FILE_VER_NUMBER 3, 0, 0, 32279 +#define PRODUCT_VER_STRING "3.0.0.32280" +#define FILE_VER_STRING "WI-V3.0.0.32280" +#define LICENSE_VER_STRING "WI-V3.0.0.32280" +#define FILE_VER_NUMBER 3, 0, 0, 32280 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "32279" +#define FB_BUILD_NO "32280" #define FB_BUILD_TYPE "V" #define FB_BUILD_SUFFIX "Firebird 3.0 Release Candidate 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2016-01-18 17:30:37 UTC (rev 62825) +++ firebird/trunk/src/misc/writeBuildNum.sh 2016-01-19 00:09:32 UTC (rev 62826) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=32279 +BuildNum=32280 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...> - 2016-01-21 00:10:05
|
Revision: 62834 http://sourceforge.net/p/firebird/code/62834 Author: firebirds Date: 2016-01-21 00:10:02 +0000 (Thu, 21 Jan 2016) 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 2016-01-20 13:51:12 UTC (rev 62833) +++ firebird/trunk/ChangeLog 2016-01-21 00:10:02 UTC (rev 62834) @@ -1,3 +1,9 @@ + 2016-01-20 10:05 hvlad + M src/jrd/Attachment.h + M src/jrd/jrd.cpp +Fixed bug CORE-5075 : Triger on DISCONNECT with dynamic SQL (ES 'insert into ...'): 1) does not work in 3.0 +Also, log exception happens in ON DISCONNECT trigger. + 2016-01-18 17:30 alexpeshkoff M src/isql/isql.h M src/isql/show.epp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2016-01-20 13:51:12 UTC (rev 62833) +++ firebird/trunk/src/jrd/build_no.h 2016-01-21 00:10:02 UTC (rev 62834) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:32280 + FORMAL BUILD NUMBER:32281 */ -#define PRODUCT_VER_STRING "3.0.0.32280" -#define FILE_VER_STRING "WI-V3.0.0.32280" -#define LICENSE_VER_STRING "WI-V3.0.0.32280" -#define FILE_VER_NUMBER 3, 0, 0, 32280 +#define PRODUCT_VER_STRING "3.0.0.32281" +#define FILE_VER_STRING "WI-V3.0.0.32281" +#define LICENSE_VER_STRING "WI-V3.0.0.32281" +#define FILE_VER_NUMBER 3, 0, 0, 32281 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "32280" +#define FB_BUILD_NO "32281" #define FB_BUILD_TYPE "V" #define FB_BUILD_SUFFIX "Firebird 3.0 Release Candidate 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2016-01-20 13:51:12 UTC (rev 62833) +++ firebird/trunk/src/misc/writeBuildNum.sh 2016-01-21 00:10:02 UTC (rev 62834) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=32280 +BuildNum=32281 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...> - 2016-01-22 00:09:26
|
Revision: 62845 http://sourceforge.net/p/firebird/code/62845 Author: firebirds Date: 2016-01-22 00:09:23 +0000 (Fri, 22 Jan 2016) 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 2016-01-21 16:47:57 UTC (rev 62844) +++ firebird/trunk/ChangeLog 2016-01-22 00:09:23 UTC (rev 62845) @@ -1,3 +1,17 @@ + 2016-01-21 11:00 hvlad + M src/jrd/blb.cpp +Fixed bug CORE-5078 : "Invalid BLOB ID" error + + 2016-01-21 00:25 robocop + M src/jrd/CryptoManager.h +Misc. + + 2016-01-21 00:25 robocop + M src/isql/show.epp + M src/jrd/CryptoManager.cpp + M src/jrd/inf_pub.h +Typo. + 2016-01-20 10:05 hvlad M src/jrd/Attachment.h M src/jrd/jrd.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2016-01-21 16:47:57 UTC (rev 62844) +++ firebird/trunk/src/jrd/build_no.h 2016-01-22 00:09:23 UTC (rev 62845) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:32281 + FORMAL BUILD NUMBER:32284 */ -#define PRODUCT_VER_STRING "3.0.0.32281" -#define FILE_VER_STRING "WI-V3.0.0.32281" -#define LICENSE_VER_STRING "WI-V3.0.0.32281" -#define FILE_VER_NUMBER 3, 0, 0, 32281 +#define PRODUCT_VER_STRING "3.0.0.32284" +#define FILE_VER_STRING "WI-V3.0.0.32284" +#define LICENSE_VER_STRING "WI-V3.0.0.32284" +#define FILE_VER_NUMBER 3, 0, 0, 32284 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "32281" +#define FB_BUILD_NO "32284" #define FB_BUILD_TYPE "V" #define FB_BUILD_SUFFIX "Firebird 3.0 Release Candidate 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2016-01-21 16:47:57 UTC (rev 62844) +++ firebird/trunk/src/misc/writeBuildNum.sh 2016-01-22 00:09:23 UTC (rev 62845) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=32281 +BuildNum=32284 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...> - 2016-01-25 00:10:00
|
Revision: 62855 http://sourceforge.net/p/firebird/code/62855 Author: firebirds Date: 2016-01-25 00:09:57 +0000 (Mon, 25 Jan 2016) 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 2016-01-24 21:14:18 UTC (rev 62854) +++ firebird/trunk/ChangeLog 2016-01-25 00:09:57 UTC (rev 62855) @@ -1,3 +1,44 @@ + 2016-01-24 21:14 dimitr + M src/jrd/Attachment.cpp + M src/jrd/Attachment.h + M src/jrd/Database.h + M src/jrd/JrdStatement.cpp + M src/jrd/Monitoring.cpp + M src/jrd/Monitoring.h + M src/jrd/RuntimeStatistics.h + M src/jrd/cch.cpp + M src/jrd/exe.cpp + M src/jrd/jrd.cpp + M src/jrd/jrd.h + M src/jrd/sort.cpp +This should fix the races while accessing the relation statistics inside dbb_stats. Reads/writes/fetches/marks are incremented (CCH) and read (INF) unprotected, as it's crash safe and read skews are acceptable. Other counters (both global and relation wise) are protected with a mutex. They're incremented on demand based on the attachment counters (via diffs). While being there, cleaned up the currently unused performance counters. + + 2016-01-24 21:02 dimitr + M src/lock/lock.cpp +Reverted back to the single-pass algorithm used in v2.x. This should work around the issue with non-zero-timeout shutdown in SC. + + 2016-01-24 17:58 alexpeshkoff + M src/common/classes/GetPlugins.h + M src/common/security.cpp + M src/common/security.h + M src/jrd/extds/ExtDS.cpp + M src/jrd/extds/ExtDS.h + M src/jrd/extds/InternalDS.cpp + M src/jrd/extds/InternalDS.h + M src/jrd/extds/IscDS.cpp + M src/jrd/extds/IscDS.h + M src/remote/remot_proto.h + M src/remote/remote.cpp +Fixed CORE-5082: Server does not validate correctness of user/password pair provided in EXECUTE STATEMENT operator + + 2016-01-24 17:53 alexpeshkoff + M src/remote/client/interface.cpp +Use correct error code + + 2016-01-24 17:51 alexpeshkoff + M src/include/firebird/FirebirdInterface.idl +Drop old wrong comment + 2016-01-21 11:00 hvlad M src/jrd/blb.cpp Fixed bug CORE-5078 : "Invalid BLOB ID" error Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2016-01-24 21:14:18 UTC (rev 62854) +++ firebird/trunk/src/jrd/build_no.h 2016-01-25 00:09:57 UTC (rev 62855) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:32284 + FORMAL BUILD NUMBER:32289 */ -#define PRODUCT_VER_STRING "3.0.0.32284" -#define FILE_VER_STRING "WI-V3.0.0.32284" -#define LICENSE_VER_STRING "WI-V3.0.0.32284" -#define FILE_VER_NUMBER 3, 0, 0, 32284 +#define PRODUCT_VER_STRING "3.0.0.32289" +#define FILE_VER_STRING "WI-V3.0.0.32289" +#define LICENSE_VER_STRING "WI-V3.0.0.32289" +#define FILE_VER_NUMBER 3, 0, 0, 32289 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "32284" +#define FB_BUILD_NO "32289" #define FB_BUILD_TYPE "V" #define FB_BUILD_SUFFIX "Firebird 3.0 Release Candidate 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2016-01-24 21:14:18 UTC (rev 62854) +++ firebird/trunk/src/misc/writeBuildNum.sh 2016-01-25 00:09:57 UTC (rev 62855) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=32284 +BuildNum=32289 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...> - 2016-01-25 18:34:29
|
Revision: 62860 http://sourceforge.net/p/firebird/code/62860 Author: alexpeshkoff Date: 2016-01-25 18:34:27 +0000 (Mon, 25 Jan 2016) Log Message: ----------- Implemented CORE-5083: Provide method to correcty set offsets in implemented by user IMessageMetadata Modified Paths: -------------- firebird/trunk/src/include/firebird/FirebirdInterface.idl firebird/trunk/src/include/firebird/IdlFbInterfaces.h firebird/trunk/src/yvalve/YObjects.h firebird/trunk/src/yvalve/utl.cpp Added Paths: ----------- firebird/trunk/examples/interfaces/05.user_metadata.cpp Added: firebird/trunk/examples/interfaces/05.user_metadata.cpp =================================================================== --- firebird/trunk/examples/interfaces/05.user_metadata.cpp (rev 0) +++ firebird/trunk/examples/interfaces/05.user_metadata.cpp 2016-01-25 18:34:27 UTC (rev 62860) @@ -0,0 +1,260 @@ +/* + * PROGRAM: Object oriented API samples. + * MODULE: 05.user_metadata.cpp + * DESCRIPTION: A sample of user-implemented IMessageMetadata. + * Prints firebird user name (SYSDBA by default). + * + * Example for the following interfaces: + * + * IOffsetsCallback - callback for IUtil::setOffsets() + * IMessageMetadata - how to implement it yourself + * + * 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 Peshkoff + * for the Firebird Open Source RDBMS project. + * + * Copyright (c) 2016 Alexander Peshkoff <pes...@ma...> + * and all contributors signed below. + * + * All Rights Reserved. + * Contributor(s): ______________________________________. + */ + +#include "ifaceExamples.h" + +static IMaster* master = fb_get_master_interface(); + +/* + * Trivial sample of IMessageMetadata implementation. + * Metadata is created for a fixed outptu format with single char field. + * Therefore index parameter in all functions is ignored. + * Because the only possible error is index out of bounds status parameter is ignored too. + * Atomic operation is not used in IReferenceCounted cause we do not plan MT support. + * Non-array vars used to represent offset and nullOffset of that single field. + */ + +class MyMetadata : public IMessageMetadataImpl<MyMetadata, ThrowStatusWrapper> +{ +private: + class Callback : public IOffsetsCallbackImpl<Callback, ThrowStatusWrapper> + { + private: + MyMetadata* metadata; + + public: + Callback(MyMetadata* pmeta) + : metadata(pmeta) + { } + + //IOffsetsCallback implementation + void setOffset(ThrowStatusWrapper* status, unsigned /*index*/, unsigned offset, unsigned nullOffset) + { + // Typically setOffset() function should save passed offsets + // in your implementation of message metadata. + metadata->offset = offset; + metadata->nullOffset = nullOffset; + } + }; + +public: + unsigned offset, nullOffset, length; + + MyMetadata() + { + IUtil* utl = master->getUtilInterface(); + ThrowStatusWrapper s(master->getStatus()); + try + { + Callback cb(this); + length = utl->setOffsets(&s, this, &cb); + } + catch(...) + { + s.dispose(); + throw; + } + s.dispose(); + } + + // Dummy IReferenceCounted implementation + // JUST a SAMPLE - interface will be placed on stack, ignore reference counts !!! + // In real life please use your favorite atomic incr/decr here + // and create reference counted interfaces on heap. + void addRef() + { } + + int release() + { + return 1; + } + + // IMessageMetadata implementation + unsigned getCount(ThrowStatusWrapper* /*status*/) + { + return 1; + } + + const char* getField(ThrowStatusWrapper* /*status*/, unsigned /*index*/) + { + return NULL; + } + + const char* getRelation(ThrowStatusWrapper* /*status*/, unsigned /*index*/) + { + return NULL; + } + + const char* getOwner(ThrowStatusWrapper* /*status*/, unsigned /*index*/) + { + return NULL; + } + + const char* getAlias(ThrowStatusWrapper* /*status*/, unsigned /*index*/) + { + return NULL; + } + + unsigned getType(ThrowStatusWrapper* /*status*/, unsigned /*index*/) + { + return SQL_VARYING; + } + + FB_BOOLEAN isNullable(ThrowStatusWrapper* /*status*/, unsigned /*index*/) + { + return false; + } + + int getSubType(ThrowStatusWrapper* /*status*/, unsigned /*index*/) + { + return 0; + } + + unsigned getLength(ThrowStatusWrapper* /*status*/, unsigned /*index*/) + { + return 20; // Want to make it fit + } + + int getScale(ThrowStatusWrapper* /*status*/, unsigned /*index*/) + { + return 0; + } + + unsigned getCharSet(ThrowStatusWrapper* /*status*/, unsigned /*index*/) + { + return 0; + } + + unsigned getOffset(ThrowStatusWrapper* /*status*/, unsigned /*index*/) + { + return offset; + } + + unsigned getNullOffset(ThrowStatusWrapper* /*status*/, unsigned /*index*/) + { + return nullOffset; + } + + IMetadataBuilder* getBuilder(ThrowStatusWrapper* status) + { + ISC_STATUS err[] = {isc_arg_gds, isc_wish_list, isc_arg_end}; + status->setErrors(err); + return NULL; + } + + unsigned getMessageLength(ThrowStatusWrapper* /*status*/) + { + return length; + } +}; + +template <typename T> +T to(const unsigned char* b, unsigned o) +{ + return *((T*)(b + o)); +} + +int main() +{ + int rc = 0; + unsigned char* buffer = NULL; + + // set default password if none specified in environment + setenv("ISC_USER", "sysdba", 0); + setenv("ISC_PASSWORD", "masterkey", 0); + + // status vector and main dispatcher + ThrowStatusWrapper status(master->getStatus()); + IProvider* prov = master->getDispatcher(); + + // declare pointers to required interfaces + IAttachment* att = NULL; + ITransaction* tra = NULL; + IResultSet* curs = NULL; + + // Instance of our metadata + MyMetadata meta; + + // allocate output buffer + buffer = new unsigned char[meta.length]; + + try + { + // attach employee db + att = prov->attachDatabase(&status, "employee", 0, NULL); + + // start default transaction + tra = att->startTransaction(&status, 0, NULL); + + // open cursor + curs = att->openCursor(&status, tra, 0, "select current_user from rdb$database", 3, NULL, NULL, &meta, NULL, 0); + + // fetch record from cursor and print it + curs->fetchNext(&status, buffer); + ISC_SHORT l = to<ISC_SHORT>(buffer, meta.offset); + printf("<%*.*s>\n", l, l, buffer + meta.offset + sizeof(ISC_SHORT)); + + // close interfaces + curs->close(&status); + curs = NULL; + + tra->commit(&status); + tra = NULL; + + att->detach(&status); + att = NULL; + } + catch (const FbException& error) + { + // handle error + rc = 1; + + char buf[256]; + master->getUtilInterface()->formatStatus(buf, sizeof(buf), error.getStatus()); + fprintf(stderr, "%s\n", buf); + } + + // release interfaces after error caught + if (curs) + curs->release(); + if (tra) + tra->release(); + if (att) + att->release(); + + prov->release(); + status.dispose(); + + delete buffer; + + return rc; +} Property changes on: firebird/trunk/examples/interfaces/05.user_metadata.cpp ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/x-c++src \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Modified: firebird/trunk/src/include/firebird/FirebirdInterface.idl =================================================================== --- firebird/trunk/src/include/firebird/FirebirdInterface.idl 2016-01-25 14:17:50 UTC (rev 62859) +++ firebird/trunk/src/include/firebird/FirebirdInterface.idl 2016-01-25 18:34:27 UTC (rev 62860) @@ -911,8 +911,7 @@ interface Util : Versioned { - void getFbVersion(Status status, Attachment att, - VersionCallback callback); + void getFbVersion(Status status, Attachment att, VersionCallback callback); void loadBlob(Status status, ISC_QUAD* blobId, Attachment att, Transaction tra, const string file, boolean txt); void dumpBlob(Status status, ISC_QUAD* blobId, @@ -929,8 +928,14 @@ uint formatStatus(string buffer, uint bufferSize, Status status); uint getClientVersion(); // Returns major * 256 + minor XpbBuilder getXpbBuilder(Status status, uint kind, const uchar* buf, uint len); + uint setOffsets(Status status, MessageMetadata metadata, OffsetsCallback callback); } +interface OffsetsCallback : Versioned +{ + void setOffset(Status status, uint index, uint offset, uint nullOffset); +} + interface XpbBuilder : Disposable { const uint DPB = 1; Modified: firebird/trunk/src/include/firebird/IdlFbInterfaces.h =================================================================== --- firebird/trunk/src/include/firebird/IdlFbInterfaces.h 2016-01-25 14:17:50 UTC (rev 62859) +++ firebird/trunk/src/include/firebird/IdlFbInterfaces.h 2016-01-25 18:34:27 UTC (rev 62860) @@ -84,6 +84,7 @@ class ITimerControl; class IVersionCallback; class IUtil; + class IOffsetsCallback; class IXpbBuilder; class ITraceConnection; class ITraceDatabaseConnection; @@ -3446,6 +3447,7 @@ unsigned (CLOOP_CARG *formatStatus)(IUtil* self, char* buffer, unsigned bufferSize, IStatus* status) throw(); unsigned (CLOOP_CARG *getClientVersion)(IUtil* self) throw(); IXpbBuilder* (CLOOP_CARG *getXpbBuilder)(IUtil* self, IStatus* status, unsigned kind, const unsigned char* buf, unsigned len) throw(); + unsigned (CLOOP_CARG *setOffsets)(IUtil* self, IStatus* status, IMessageMetadata* metadata, IOffsetsCallback* callback) throw(); }; protected: @@ -3538,8 +3540,45 @@ StatusType::checkException(status); return ret; } + + template <typename StatusType> unsigned setOffsets(StatusType* status, IMessageMetadata* metadata, IOffsetsCallback* callback) + { + StatusType::clearException(status); + unsigned ret = static_cast<VTable*>(this->cloopVTable)->setOffsets(this, status, metadata, callback); + StatusType::checkException(status); + return ret; + } }; + class IOffsetsCallback : public IVersioned + { + public: + struct VTable : public IVersioned::VTable + { + void (CLOOP_CARG *setOffset)(IOffsetsCallback* self, IStatus* status, unsigned index, unsigned offset, unsigned nullOffset) throw(); + }; + + protected: + IOffsetsCallback(DoNotInherit) + : IVersioned(DoNotInherit()) + { + } + + ~IOffsetsCallback() + { + } + + public: + static const unsigned VERSION = 2; + + template <typename StatusType> void setOffset(StatusType* status, unsigned index, unsigned offset, unsigned nullOffset) + { + StatusType::clearException(status); + static_cast<VTable*>(this->cloopVTable)->setOffset(this, status, index, offset, nullOffset); + StatusType::checkException(status); + } + }; + class IXpbBuilder : public IDisposable { public: @@ -12257,6 +12296,7 @@ this->formatStatus = &Name::cloopformatStatusDispatcher; this->getClientVersion = &Name::cloopgetClientVersionDispatcher; this->getXpbBuilder = &Name::cloopgetXpbBuilderDispatcher; + this->setOffsets = &Name::cloopsetOffsetsDispatcher; } } vTable; @@ -12424,6 +12464,21 @@ return static_cast<IXpbBuilder*>(0); } } + + static unsigned CLOOP_CARG cloopsetOffsetsDispatcher(IUtil* self, IStatus* status, IMessageMetadata* metadata, IOffsetsCallback* callback) throw() + { + StatusType status2(status); + + try + { + return static_cast<Name*>(self)->Name::setOffsets(&status2, metadata, callback); + } + catch (...) + { + StatusType::catchException(&status2); + return static_cast<unsigned>(0); + } + } }; template <typename Name, typename StatusType, typename Base = IVersionedImpl<Name, StatusType, Inherit<IUtil> > > @@ -12451,9 +12506,61 @@ virtual unsigned formatStatus(char* buffer, unsigned bufferSize, IStatus* status) = 0; virtual unsigned getClientVersion() = 0; virtual IXpbBuilder* getXpbBuilder(StatusType* status, unsigned kind, const unsigned char* buf, unsigned len) = 0; + virtual unsigned setOffsets(StatusType* status, IMessageMetadata* metadata, IOffsetsCallback* callback) = 0; }; template <typename Name, typename StatusType, typename Base> + class IOffsetsCallbackBaseImpl : public Base + { + public: + typedef IOffsetsCallback Declaration; + + IOffsetsCallbackBaseImpl(DoNotInherit = DoNotInherit()) + { + static struct VTableImpl : Base::VTable + { + VTableImpl() + { + this->version = Base::VERSION; + this->setOffset = &Name::cloopsetOffsetDispatcher; + } + } vTable; + + this->cloopVTable = &vTable; + } + + static void CLOOP_CARG cloopsetOffsetDispatcher(IOffsetsCallback* self, IStatus* status, unsigned index, unsigned offset, unsigned nullOffset) throw() + { + StatusType status2(status); + + try + { + static_cast<Name*>(self)->Name::setOffset(&status2, index, offset, nullOffset); + } + catch (...) + { + StatusType::catchException(&status2); + } + } + }; + + template <typename Name, typename StatusType, typename Base = IVersionedImpl<Name, StatusType, Inherit<IOffsetsCallback> > > + class IOffsetsCallbackImpl : public IOffsetsCallbackBaseImpl<Name, StatusType, Base> + { + protected: + IOffsetsCallbackImpl(DoNotInherit = DoNotInherit()) + { + } + + public: + virtual ~IOffsetsCallbackImpl() + { + } + + virtual void setOffset(StatusType* status, unsigned index, unsigned offset, unsigned nullOffset) = 0; + }; + + template <typename Name, typename StatusType, typename Base> class IXpbBuilderBaseImpl : public Base { public: Modified: firebird/trunk/src/yvalve/YObjects.h =================================================================== --- firebird/trunk/src/yvalve/YObjects.h 2016-01-25 14:17:50 UTC (rev 62859) +++ firebird/trunk/src/yvalve/YObjects.h 2016-01-25 18:34:27 UTC (rev 62860) @@ -567,6 +567,8 @@ unsigned getClientVersion(); Firebird::IXpbBuilder* getXpbBuilder(Firebird::CheckStatusWrapper* status, unsigned kind, const unsigned char* buf, unsigned len); + unsigned setOffsets(Firebird::CheckStatusWrapper* status, Firebird::IMessageMetadata* metadata, + Firebird::IOffsetsCallback* callback); }; } // namespace Why Modified: firebird/trunk/src/yvalve/utl.cpp =================================================================== --- firebird/trunk/src/yvalve/utl.cpp 2016-01-25 14:17:50 UTC (rev 62859) +++ firebird/trunk/src/yvalve/utl.cpp 2016-01-25 18:34:27 UTC (rev 62860) @@ -1054,6 +1054,42 @@ } } +unsigned UtilInterface::setOffsets(CheckStatusWrapper* status, IMessageMetadata* metadata, + IOffsetsCallback* callback) +{ + try + { + unsigned count = metadata->getCount(status); + check(status); + + unsigned length = 0; + + for (unsigned n = 0; n < count; ++n) + { + unsigned type = metadata->getType(status, n); + check(status); + unsigned len = metadata->getLength(status, n); + check(status); + + unsigned offset, nullOffset; + length = fb_utils::sqlTypeToDsc(length, type, len, + NULL /*dtype*/, NULL /*length*/, &offset, &nullOffset); + + callback->setOffset(status, n, offset, nullOffset); + check(status); + } + + return length; + } + catch (const Exception& ex) + { + ex.stuffException(status); + } + + return 0; +} + + } // namespace Why This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2016-01-26 00:08:29
|
Revision: 62862 http://sourceforge.net/p/firebird/code/62862 Author: firebirds Date: 2016-01-26 00:08:27 +0000 (Tue, 26 Jan 2016) 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 2016-01-25 20:51:11 UTC (rev 62861) +++ firebird/trunk/ChangeLog 2016-01-26 00:08:27 UTC (rev 62862) @@ -1,3 +1,38 @@ + 2016-01-25 18:34 alexpeshkoff + A examples/interfaces/05.user_metadata.cpp + M src/include/firebird/FirebirdInterface.idl + M src/include/firebird/IdlFbInterfaces.h + M src/yvalve/YObjects.h + M src/yvalve/utl.cpp +Implemented CORE-5083: Provide method to correcty set offsets in implemented by user IMessageMetadata + + 2016-01-25 14:17 hvlad + M src/jrd/extds/ExtDS.cpp + M src/jrd/extds/ExtDS.h + M src/jrd/extds/ValidatePassword.cpp + M src/jrd/extds/ValidatePassword.h +Cleanup + + 2016-01-25 14:03 hvlad + M builds/win32/msvc10/engine.vcxproj + M builds/win32/msvc10/engine.vcxproj.filters + M builds/win32/msvc12/engine.vcxproj + M builds/win32/msvc12/engine.vcxproj.filters +Update VC10 and VC12 builds + + 2016-01-25 13:52 alexpeshkoff + M src/jrd/extds/ExtDS.cpp + M src/jrd/extds/ExtDS.h + M src/jrd/extds/InternalDS.cpp + M src/jrd/extds/IscDS.cpp + A src/jrd/extds/ValidatePassword.cpp + A src/jrd/extds/ValidatePassword.h +Postfix for CORE-5082: reorganized sources according to Vlad request + + 2016-01-25 07:17 dimitr + M doc/WhatsNew +Updated the docs for RC2. + 2016-01-24 21:14 dimitr M src/jrd/Attachment.cpp M src/jrd/Attachment.h Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2016-01-25 20:51:11 UTC (rev 62861) +++ firebird/trunk/src/jrd/build_no.h 2016-01-26 00:08:27 UTC (rev 62862) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:32289 + FORMAL BUILD NUMBER:32294 */ -#define PRODUCT_VER_STRING "3.0.0.32289" -#define FILE_VER_STRING "WI-V3.0.0.32289" -#define LICENSE_VER_STRING "WI-V3.0.0.32289" -#define FILE_VER_NUMBER 3, 0, 0, 32289 +#define PRODUCT_VER_STRING "3.0.0.32294" +#define FILE_VER_STRING "WI-V3.0.0.32294" +#define LICENSE_VER_STRING "WI-V3.0.0.32294" +#define FILE_VER_NUMBER 3, 0, 0, 32294 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "32289" +#define FB_BUILD_NO "32294" #define FB_BUILD_TYPE "V" #define FB_BUILD_SUFFIX "Firebird 3.0 Release Candidate 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2016-01-25 20:51:11 UTC (rev 62861) +++ firebird/trunk/src/misc/writeBuildNum.sh 2016-01-26 00:08:27 UTC (rev 62862) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=32289 +BuildNum=32294 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...> - 2016-01-28 00:10:43
|
Revision: 62868 http://sourceforge.net/p/firebird/code/62868 Author: firebirds Date: 2016-01-28 00:10:41 +0000 (Thu, 28 Jan 2016) 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 2016-01-27 17:35:00 UTC (rev 62867) +++ firebird/trunk/ChangeLog 2016-01-28 00:10:41 UTC (rev 62868) @@ -1,3 +1,17 @@ + 2016-01-27 11:11 hvlad + M src/jrd/btr.cpp + M src/jrd/btr.h + M src/jrd/idx.cpp + M src/jrd/lck.cpp + M src/jrd/lck.h + M src/jrd/ods.h + M src/jrd/validation.cpp + M src/utilities/gstat/dba.epp +Remove LCK_idx_reserve introduced with 64-bit transaction ID. +Restore original logic in BTR_next_index (wait for tx lock when index build is in progress). +Use irt_repeat::irt_root to store high 32 bit of tra_num. +It also fixed deadlock related with LCK_idx_reserve lock (reported privately). + 2016-01-25 18:34 alexpeshkoff A examples/interfaces/05.user_metadata.cpp M src/include/firebird/FirebirdInterface.idl Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2016-01-27 17:35:00 UTC (rev 62867) +++ firebird/trunk/src/jrd/build_no.h 2016-01-28 00:10:41 UTC (rev 62868) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:32294 + FORMAL BUILD NUMBER:32295 */ -#define PRODUCT_VER_STRING "3.0.0.32294" -#define FILE_VER_STRING "WI-V3.0.0.32294" -#define LICENSE_VER_STRING "WI-V3.0.0.32294" -#define FILE_VER_NUMBER 3, 0, 0, 32294 +#define PRODUCT_VER_STRING "3.0.0.32295" +#define FILE_VER_STRING "WI-V3.0.0.32295" +#define LICENSE_VER_STRING "WI-V3.0.0.32295" +#define FILE_VER_NUMBER 3, 0, 0, 32295 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "32294" +#define FB_BUILD_NO "32295" #define FB_BUILD_TYPE "V" #define FB_BUILD_SUFFIX "Firebird 3.0 Release Candidate 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2016-01-27 17:35:00 UTC (rev 62867) +++ firebird/trunk/src/misc/writeBuildNum.sh 2016-01-28 00:10:41 UTC (rev 62868) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=32294 +BuildNum=32295 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...> - 2016-01-29 00:08:51
|
Revision: 62873 http://sourceforge.net/p/firebird/code/62873 Author: firebirds Date: 2016-01-29 00:08:49 +0000 (Fri, 29 Jan 2016) 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 2016-01-28 22:05:17 UTC (rev 62872) +++ firebird/trunk/ChangeLog 2016-01-29 00:08:49 UTC (rev 62873) @@ -1,3 +1,11 @@ + 2016-01-28 17:00 alexpeshkoff + M src/yvalve/MasterImplementation.cpp +Fixed CORE-5088: Segfault when 'gstat -h' is closing + + 2016-01-28 11:40 paul_reeves + M builds/install/arch-specific/win32/ru/custom_messages_ru.inc +Add BOM to file. Hopefully this finally fixes CORE-5002 + 2016-01-27 11:11 hvlad M src/jrd/btr.cpp M src/jrd/btr.h Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2016-01-28 22:05:17 UTC (rev 62872) +++ firebird/trunk/src/jrd/build_no.h 2016-01-29 00:08:49 UTC (rev 62873) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:32295 + FORMAL BUILD NUMBER:32297 */ -#define PRODUCT_VER_STRING "3.0.0.32295" -#define FILE_VER_STRING "WI-V3.0.0.32295" -#define LICENSE_VER_STRING "WI-V3.0.0.32295" -#define FILE_VER_NUMBER 3, 0, 0, 32295 +#define PRODUCT_VER_STRING "3.0.0.32297" +#define FILE_VER_STRING "WI-V3.0.0.32297" +#define LICENSE_VER_STRING "WI-V3.0.0.32297" +#define FILE_VER_NUMBER 3, 0, 0, 32297 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "32295" +#define FB_BUILD_NO "32297" #define FB_BUILD_TYPE "V" #define FB_BUILD_SUFFIX "Firebird 3.0 Release Candidate 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2016-01-28 22:05:17 UTC (rev 62872) +++ firebird/trunk/src/misc/writeBuildNum.sh 2016-01-29 00:08:49 UTC (rev 62873) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=32295 +BuildNum=32297 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...> - 2016-01-30 00:08:49
|
Revision: 62879 http://sourceforge.net/p/firebird/code/62879 Author: firebirds Date: 2016-01-30 00:08:47 +0000 (Sat, 30 Jan 2016) 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 2016-01-29 15:46:06 UTC (rev 62878) +++ firebird/trunk/ChangeLog 2016-01-30 00:08:47 UTC (rev 62879) @@ -1,3 +1,17 @@ + 2016-01-29 15:46 alexpeshkoff + M src/jrd/CryptoManager.cpp + M src/jrd/CryptoManager.h +Simplified code - thanks to Vlad + + 2016-01-29 14:51 asfernandes + M src/isql/extract.epp +Fixed CORE-5089 - Metadata extration (ISQL -X): "CREATE PROCEDURE/FUNCTION" statement contains reference to column of table(s) that not yet exists if this procedure had parameter of such type when it was created. + + 2016-01-29 14:12 alexpeshkoff + M src/jrd/CryptoManager.cpp + M src/jrd/CryptoManager.h +Fixed regression in CryptoManager added after RC1 - avoid reading incorrect header when database is locked by nbackup + 2016-01-28 17:00 alexpeshkoff M src/yvalve/MasterImplementation.cpp Fixed CORE-5088: Segfault when 'gstat -h' is closing Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2016-01-29 15:46:06 UTC (rev 62878) +++ firebird/trunk/src/jrd/build_no.h 2016-01-30 00:08:47 UTC (rev 62879) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:32297 + FORMAL BUILD NUMBER:32300 */ -#define PRODUCT_VER_STRING "3.0.0.32297" -#define FILE_VER_STRING "WI-V3.0.0.32297" -#define LICENSE_VER_STRING "WI-V3.0.0.32297" -#define FILE_VER_NUMBER 3, 0, 0, 32297 +#define PRODUCT_VER_STRING "3.0.0.32300" +#define FILE_VER_STRING "WI-V3.0.0.32300" +#define LICENSE_VER_STRING "WI-V3.0.0.32300" +#define FILE_VER_NUMBER 3, 0, 0, 32300 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "32297" +#define FB_BUILD_NO "32300" #define FB_BUILD_TYPE "V" #define FB_BUILD_SUFFIX "Firebird 3.0 Release Candidate 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2016-01-29 15:46:06 UTC (rev 62878) +++ firebird/trunk/src/misc/writeBuildNum.sh 2016-01-30 00:08:47 UTC (rev 62879) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=32297 +BuildNum=32300 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...> - 2016-01-31 00:09:28
|
Revision: 62886 http://sourceforge.net/p/firebird/code/62886 Author: firebirds Date: 2016-01-31 00:09:25 +0000 (Sun, 31 Jan 2016) 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 2016-01-31 00:06:06 UTC (rev 62885) +++ firebird/trunk/ChangeLog 2016-01-31 00:09:25 UTC (rev 62886) @@ -1,3 +1,7 @@ + 2016-01-30 23:40 asfernandes + M examples/interfaces/05.user_metadata.cpp +Correction. + 2016-01-29 15:46 alexpeshkoff M src/jrd/CryptoManager.cpp M src/jrd/CryptoManager.h Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2016-01-31 00:06:06 UTC (rev 62885) +++ firebird/trunk/src/jrd/build_no.h 2016-01-31 00:09:25 UTC (rev 62886) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:32300 + FORMAL BUILD NUMBER:32301 */ -#define PRODUCT_VER_STRING "3.0.0.32300" -#define FILE_VER_STRING "WI-V3.0.0.32300" -#define LICENSE_VER_STRING "WI-V3.0.0.32300" -#define FILE_VER_NUMBER 3, 0, 0, 32300 +#define PRODUCT_VER_STRING "3.0.0.32301" +#define FILE_VER_STRING "WI-V3.0.0.32301" +#define LICENSE_VER_STRING "WI-V3.0.0.32301" +#define FILE_VER_NUMBER 3, 0, 0, 32301 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "32300" +#define FB_BUILD_NO "32301" #define FB_BUILD_TYPE "V" #define FB_BUILD_SUFFIX "Firebird 3.0 Release Candidate 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2016-01-31 00:06:06 UTC (rev 62885) +++ firebird/trunk/src/misc/writeBuildNum.sh 2016-01-31 00:09:25 UTC (rev 62886) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=32300 +BuildNum=32301 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...> - 2016-02-01 00:09:17
|
Revision: 62894 http://sourceforge.net/p/firebird/code/62894 Author: firebirds Date: 2016-02-01 00:09:15 +0000 (Mon, 01 Feb 2016) 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 2016-01-31 23:57:19 UTC (rev 62893) +++ firebird/trunk/ChangeLog 2016-02-01 00:09:15 UTC (rev 62894) @@ -1,3 +1,30 @@ + 2016-01-31 23:57 asfernandes + M src/isql/extract.epp +Fixed CORE-5092 - ISQL extract command lose COMPUTED BY field types. + + 2016-01-31 23:56 asfernandes + M src/isql/extract.epp +Revert this solution for CORE-5089 as it doesn't work for packages. + + 2016-01-31 10:45 dimitr + M src/common/isc_file.cpp +Fix for semicolons embedded into the []-styled IPv6 address. + + 2016-01-31 00:09 asfernandes + M src/common/security.cpp +Avoid constant duplication. + + 2016-01-31 00:06 asfernandes + M src/common/security.cpp + M src/isql/show.epp + M src/jrd/CryptoManager.cpp + M src/jrd/blb.cpp + M src/jrd/btr.cpp + M src/jrd/extds/ValidatePassword.cpp + M src/jrd/jrd.cpp + M src/jrd/ods.h +Misc. + 2016-01-30 23:40 asfernandes M examples/interfaces/05.user_metadata.cpp Correction. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2016-01-31 23:57:19 UTC (rev 62893) +++ firebird/trunk/src/jrd/build_no.h 2016-02-01 00:09:15 UTC (rev 62894) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:32301 + FORMAL BUILD NUMBER:32306 */ -#define PRODUCT_VER_STRING "3.0.0.32301" -#define FILE_VER_STRING "WI-V3.0.0.32301" -#define LICENSE_VER_STRING "WI-V3.0.0.32301" -#define FILE_VER_NUMBER 3, 0, 0, 32301 +#define PRODUCT_VER_STRING "3.0.0.32306" +#define FILE_VER_STRING "WI-V3.0.0.32306" +#define LICENSE_VER_STRING "WI-V3.0.0.32306" +#define FILE_VER_NUMBER 3, 0, 0, 32306 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "32301" +#define FB_BUILD_NO "32306" #define FB_BUILD_TYPE "V" #define FB_BUILD_SUFFIX "Firebird 3.0 Release Candidate 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2016-01-31 23:57:19 UTC (rev 62893) +++ firebird/trunk/src/misc/writeBuildNum.sh 2016-02-01 00:09:15 UTC (rev 62894) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=32301 +BuildNum=32306 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...> - 2016-02-02 00:10:07
|
Revision: 62903 http://sourceforge.net/p/firebird/code/62903 Author: firebirds Date: 2016-02-02 00:10:04 +0000 (Tue, 02 Feb 2016) 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 2016-02-01 18:14:44 UTC (rev 62902) +++ firebird/trunk/ChangeLog 2016-02-02 00:10:04 UTC (rev 62903) @@ -1,3 +1,28 @@ + 2016-02-01 16:51 asfernandes + M src/dsql/DdlNodes.epp + M src/dsql/parse.y +Fixed CORE-5093 - Alter computed field type does not work. + + 2016-02-01 16:16 alexpeshkoff + M src/jrd/CryptoManager.cpp + M src/jrd/CryptoManager.h + M src/jrd/cch.cpp + M src/jrd/nbak.cpp + M src/jrd/sdw.cpp +Fixed CORE-5044: Pages are encrypted for each shadow separately + + 2016-02-01 16:13 alexpeshkoff + M examples/interfaces/05.user_metadata.cpp +comment + + 2016-02-01 15:05 dimitr + M src/jrd/jrd.cpp +Fixed (or worked around, if you wish) redundant UTF8->system conversions happening if isc_dpb_utf8_filename tag is located in the middle of DPB. + + 2016-02-01 14:54 dimitr + M src/auth/trusted/AuthSspi.cpp +Fixed (on behalf of Alex) CORE-4885: Error retrieving current user name when using Windows trusted authentication and OS user name contains non-ASCII characters. + 2016-01-31 23:57 asfernandes M src/isql/extract.epp Fixed CORE-5092 - ISQL extract command lose COMPUTED BY field types. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2016-02-01 18:14:44 UTC (rev 62902) +++ firebird/trunk/src/jrd/build_no.h 2016-02-02 00:10:04 UTC (rev 62903) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:32306 + FORMAL BUILD NUMBER:32311 */ -#define PRODUCT_VER_STRING "3.0.0.32306" -#define FILE_VER_STRING "WI-V3.0.0.32306" -#define LICENSE_VER_STRING "WI-V3.0.0.32306" -#define FILE_VER_NUMBER 3, 0, 0, 32306 +#define PRODUCT_VER_STRING "3.0.0.32311" +#define FILE_VER_STRING "WI-V3.0.0.32311" +#define LICENSE_VER_STRING "WI-V3.0.0.32311" +#define FILE_VER_NUMBER 3, 0, 0, 32311 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "32306" +#define FB_BUILD_NO "32311" #define FB_BUILD_TYPE "V" #define FB_BUILD_SUFFIX "Firebird 3.0 Release Candidate 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2016-02-01 18:14:44 UTC (rev 62902) +++ firebird/trunk/src/misc/writeBuildNum.sh 2016-02-02 00:10:04 UTC (rev 62903) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=32306 +BuildNum=32311 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...> - 2016-02-03 00:10:32
|
Revision: 62911 http://sourceforge.net/p/firebird/code/62911 Author: firebirds Date: 2016-02-03 00:10:30 +0000 (Wed, 03 Feb 2016) 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 2016-02-02 22:26:50 UTC (rev 62910) +++ firebird/trunk/ChangeLog 2016-02-03 00:10:30 UTC (rev 62911) @@ -1,3 +1,11 @@ + 2016-02-02 22:26 hvlad + M src/dsql/StmtNodes.cpp +It should fix bug CORE-5087 : Database shutdown can cause server crash if multiple attachments run EXECUTE STATEMENT + + 2016-02-02 14:46 asfernandes + M src/isql/extract.epp +Fixed CORE-5089 - Metadata extration (ISQL -X): "CREATE PROCEDURE/FUNCTION" statement contains reference to column of table(s) that not yet exists if this procedure had parameter of such type when it was created. + 2016-02-01 16:51 asfernandes M src/dsql/DdlNodes.epp M src/dsql/parse.y Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2016-02-02 22:26:50 UTC (rev 62910) +++ firebird/trunk/src/jrd/build_no.h 2016-02-03 00:10:30 UTC (rev 62911) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:32311 + FORMAL BUILD NUMBER:32313 */ -#define PRODUCT_VER_STRING "3.0.0.32311" -#define FILE_VER_STRING "WI-V3.0.0.32311" -#define LICENSE_VER_STRING "WI-V3.0.0.32311" -#define FILE_VER_NUMBER 3, 0, 0, 32311 +#define PRODUCT_VER_STRING "3.0.0.32313" +#define FILE_VER_STRING "WI-V3.0.0.32313" +#define LICENSE_VER_STRING "WI-V3.0.0.32313" +#define FILE_VER_NUMBER 3, 0, 0, 32313 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "32311" +#define FB_BUILD_NO "32313" #define FB_BUILD_TYPE "V" #define FB_BUILD_SUFFIX "Firebird 3.0 Release Candidate 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2016-02-02 22:26:50 UTC (rev 62910) +++ firebird/trunk/src/misc/writeBuildNum.sh 2016-02-03 00:10:30 UTC (rev 62911) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=32311 +BuildNum=32313 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...> - 2016-02-03 13:20:44
|
Revision: 62916 http://sourceforge.net/p/firebird/code/62916 Author: alexpeshkoff Date: 2016-02-03 13:20:41 +0000 (Wed, 03 Feb 2016) Log Message: ----------- Implemented CORE-5100: Improve control over database crypt keys Modified Paths: -------------- firebird/trunk/examples/dbcrypt/CryptKeyHolder.cpp firebird/trunk/examples/dbcrypt/DbCrypt.cpp firebird/trunk/lang_helpers/gds_codes.ftn firebird/trunk/lang_helpers/gds_codes.pas firebird/trunk/src/common/classes/ClumpletReader.cpp firebird/trunk/src/common/classes/ClumpletReader.h firebird/trunk/src/common/classes/ClumpletWriter.cpp firebird/trunk/src/common/classes/ClumpletWriter.h firebird/trunk/src/dsql/DdlNodes.epp firebird/trunk/src/dsql/DdlNodes.h firebird/trunk/src/dsql/parse.y firebird/trunk/src/include/firebird/FirebirdInterface.idl firebird/trunk/src/include/firebird/IdlFbInterfaces.h 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/CryptoManager.cpp firebird/trunk/src/jrd/CryptoManager.h firebird/trunk/src/jrd/ods.h firebird/trunk/src/msgs/facilities2.sql firebird/trunk/src/msgs/messages2.sql firebird/trunk/src/msgs/system_errors2.sql firebird/trunk/src/utilities/gstat/ppg.cpp Modified: firebird/trunk/examples/dbcrypt/CryptKeyHolder.cpp =================================================================== --- firebird/trunk/examples/dbcrypt/CryptKeyHolder.cpp 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/examples/dbcrypt/CryptKeyHolder.cpp 2016-02-03 13:20:41 UTC (rev 62916) @@ -85,7 +85,7 @@ { public: explicit CryptKeyHolder(IPluginConfig* cnf) throw() - : callbackInterface(this), config(cnf), key(0), owner(NULL) + : callbackInterface(this), named(NULL), config(cnf), key(0), owner(NULL) { config->addRef(); } @@ -139,12 +139,12 @@ { public: explicit CallbackInterface(CryptKeyHolder* p) - : parent(p) + : holder(p) { } unsigned int callback(unsigned int, const void*, unsigned int length, void* buffer) { - UCHAR k = parent->getKey(); + UCHAR k = holder->getKey(); if (!k) { return 0; @@ -157,16 +157,38 @@ return 1; } - IPluginModule* getModule() + private: + CryptKeyHolder* holder; + }; + + class NamedCallback : public ICryptKeyCallbackImpl<NamedCallback, CheckStatusWrapper> + { + public: + NamedCallback(NamedCallback *n, const char* nm, UCHAR k) + : next(n), key(k) { - return &module; + strncpy(name, nm, sizeof(name)); + name[sizeof(name) - 1] = 0; } - private: - CryptKeyHolder* parent; + unsigned int callback(unsigned int, const void*, unsigned int length, void* buffer) + { + memcpy(buffer, &key, 1); + return 1; + } + + ~NamedCallback() + { + delete next; + } + + char name[32]; + NamedCallback* next; + UCHAR key; }; CallbackInterface callbackInterface; + NamedCallback *named; IPluginConfig* config; UCHAR key; @@ -174,18 +196,21 @@ AtomicCounter refCounter; IReferenceCounted* owner; - void noKeyError(CheckStatusWrapper* status); + IConfigEntry* getEntry(CheckStatusWrapper* status, const char* entryName); }; -void CryptKeyHolder::noKeyError(CheckStatusWrapper* status) +IConfigEntry* CryptKeyHolder::getEntry(CheckStatusWrapper* status, const char* entryName) { - ISC_STATUS_ARRAY vector; - vector[0] = isc_arg_gds; - vector[1] = isc_random; - vector[2] = isc_arg_string; - vector[3] = (ISC_STATUS) "Key not set"; - vector[4] = isc_arg_end; - status->setErrors(vector); + IConfig* def = config->getDefaultConfig(status); + if (status->getState() & Firebird::IStatus::STATE_ERRORS) + return NULL; + + IConfigEntry* confEntry = def->find(status, entryName); + def->release(); + if (status->getState() & Firebird::IStatus::STATE_ERRORS) + return NULL; + + return confEntry; } int CryptKeyHolder::keyCallback(CheckStatusWrapper* status, ICryptKeyCallback* callback) @@ -195,15 +220,8 @@ if (key != 0) return 1; - IConfig* def = config->getDefaultConfig(status); - if (status->getState() & Firebird::IStatus::STATE_ERRORS) - return 1; + IConfigEntry* confEntry = getEntry(status, "Auto"); - IConfigEntry* confEntry = def->find(status, "Auto"); - def->release(); - if (status->getState() & Firebird::IStatus::STATE_ERRORS) - return 1; - if (confEntry) { FB_BOOLEAN b = confEntry->getBoolValue(); @@ -226,12 +244,33 @@ ICryptKeyCallback* CryptKeyHolder::keyHandle(CheckStatusWrapper* status, const char* keyName) { - if (strcmp(keyName, "sample") != 0) + if (keyName[0] == 0) + return &callbackInterface; + + for (NamedCallback* n = named; n; n = n->next) { - return NULL; + if (strcmp(keyName, n->name) == 0) + return n; } - return &callbackInterface; + char kn[40]; + strcpy(kn, "Key"); + strncat(kn, keyName, sizeof(kn)); + kn[sizeof(kn) - 1] = 0; + + IConfigEntry* confEntry = getEntry(status, kn); + if (confEntry) + { + UCHAR k = confEntry->getIntValue(); + confEntry->release(); + if (k > 0 && k < 256) + { + named = new NamedCallback(named, keyName, static_cast<UCHAR>(k)); + return named; + } + } + + return NULL; } class Factory : public IPluginFactoryImpl<Factory, CheckStatusWrapper> Modified: firebird/trunk/examples/dbcrypt/DbCrypt.cpp =================================================================== --- firebird/trunk/examples/dbcrypt/DbCrypt.cpp 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/examples/dbcrypt/DbCrypt.cpp 2016-02-03 13:20:41 UTC (rev 62916) @@ -95,7 +95,8 @@ // ICryptPlugin implementation void encrypt(CheckStatusWrapper* status, unsigned int length, const void* from, void* to); void decrypt(CheckStatusWrapper* status, unsigned int length, const void* from, void* to); - void setKey(CheckStatusWrapper* status, unsigned int length, IKeyHolderPlugin** sources); + void setKey(CheckStatusWrapper* status, const char* keyName, + unsigned int length, IKeyHolderPlugin** sources); int release() { @@ -129,6 +130,7 @@ private: IPluginConfig* config; + char savedKeyName[32]; UCHAR key; AtomicCounter refCounter; @@ -139,11 +141,20 @@ void DbCrypt::noKeyError(CheckStatusWrapper* status) { + char msg[100]; + strcpy(msg, "Crypt key "); + if (savedKeyName[0]) + { + strcat(msg, savedKeyName); + strcat(msg, " "); + } + strcat(msg, "not set"); + ISC_STATUS_ARRAY vector; vector[0] = isc_arg_gds; vector[1] = isc_random; vector[2] = isc_arg_string; - vector[3] = (ISC_STATUS)"Key not set"; + vector[3] = (ISC_STATUS)msg; vector[4] = isc_arg_end; status->setErrors(vector); } @@ -186,13 +197,17 @@ } } -void DbCrypt::setKey(CheckStatusWrapper* status, unsigned int length, IKeyHolderPlugin** sources) +void DbCrypt::setKey(CheckStatusWrapper* status, const char* keyName, + unsigned int length, IKeyHolderPlugin** sources) { status->init(); if (key != 0) return; + strncpy(savedKeyName, keyName ? keyName : "", sizeof(savedKeyName)); + savedKeyName[sizeof(savedKeyName) - 1] = 0; + IConfig* def = config->getDefaultConfig(status); if (status->getState() & Firebird::IStatus::STATE_ERRORS) return; @@ -230,7 +245,7 @@ for (unsigned n = 0; n < length; ++n) { - ICryptKeyCallback* callback = sources[n]->keyHandle(status, "sample"); + ICryptKeyCallback* callback = sources[n]->keyHandle(status, savedKeyName); if (status->getState() & Firebird::IStatus::STATE_ERRORS) return; Modified: firebird/trunk/lang_helpers/gds_codes.ftn =================================================================== --- firebird/trunk/lang_helpers/gds_codes.ftn 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/lang_helpers/gds_codes.ftn 2016-02-03 13:20:41 UTC (rev 62916) @@ -1626,6 +1626,10 @@ PARAMETER (GDS__login_error = 335545106) INTEGER*4 GDS__already_opened PARAMETER (GDS__already_opened = 335545107) + INTEGER*4 GDS__bad_crypt_key + PARAMETER (GDS__bad_crypt_key = 335545108) + INTEGER*4 GDS__encrypt_error + PARAMETER (GDS__encrypt_error = 335545109) INTEGER*4 GDS__gfix_db_name PARAMETER (GDS__gfix_db_name = 335740929) INTEGER*4 GDS__gfix_invalid_sw Modified: firebird/trunk/lang_helpers/gds_codes.pas =================================================================== --- firebird/trunk/lang_helpers/gds_codes.pas 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/lang_helpers/gds_codes.pas 2016-02-03 13:20:41 UTC (rev 62916) @@ -1621,6 +1621,10 @@ gds_login_error = 335545106; isc_already_opened = 335545107; gds_already_opened = 335545107; + isc_bad_crypt_key = 335545108; + gds_bad_crypt_key = 335545108; + isc_encrypt_error = 335545109; + gds_encrypt_error = 335545109; isc_gfix_db_name = 335740929; gds_gfix_db_name = 335740929; isc_gfix_invalid_sw = 335740930; Modified: firebird/trunk/src/common/classes/ClumpletReader.cpp =================================================================== --- firebird/trunk/src/common/classes/ClumpletReader.cpp 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/src/common/classes/ClumpletReader.cpp 2016-02-03 13:20:41 UTC (rev 62916) @@ -29,6 +29,7 @@ #include "firebird.h" #include "../common/classes/ClumpletReader.h" +#include "../common/classes/MetaName.h" #include "fb_exception.h" #include "../jrd/ibase.h" @@ -784,6 +785,14 @@ return str; } +MetaName& ClumpletReader::getString(MetaName& str) const +{ + const UCHAR* ptr = getBytes(); + const FB_SIZE_T length = getClumpLength(); + str.assign(reinterpret_cast<const char*>(ptr), length); + return str; +} + PathName& ClumpletReader::getPath(PathName& str) const { const UCHAR* ptr = getBytes(); Modified: firebird/trunk/src/common/classes/ClumpletReader.h =================================================================== --- firebird/trunk/src/common/classes/ClumpletReader.h 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/src/common/classes/ClumpletReader.h 2016-02-03 13:20:41 UTC (rev 62916) @@ -40,6 +40,8 @@ namespace Firebird { +class MetaName; + // This class provides read access for clumplet structure // Note: it doesn't make a copy of buffer it reads class ClumpletReader : protected AutoStorage @@ -100,6 +102,7 @@ bool getBoolean() const; SINT64 getBigInt() const; string& getString(string& str) const; + MetaName& getString(MetaName& str) const; PathName& getPath(PathName& str) const; void getData(UCharBuffer& data) const; const UCHAR* getBytes() const; Modified: firebird/trunk/src/common/classes/ClumpletWriter.cpp =================================================================== --- firebird/trunk/src/common/classes/ClumpletWriter.cpp 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/src/common/classes/ClumpletWriter.cpp 2016-02-03 13:20:41 UTC (rev 62916) @@ -30,6 +30,7 @@ #include "firebird.h" #include "../common/classes/ClumpletWriter.h" +#include "../common/classes/MetaName.h" #include "fb_exception.h" #include "../jrd/ibase.h" @@ -183,7 +184,7 @@ } else { - UCHAR tag = (kind == SpbStart || kind == UnTagged || kind == WideUnTagged) ? getBufferTag() : 0; + UCHAR tag = (kind == SpbStart || kind == UnTagged || kind == WideUnTagged) ? 0 : getBufferTag(); initNewBuffer(tag); } rewind(); @@ -250,16 +251,26 @@ insertString(tag, str.c_str(), str.length()); } -void ClumpletWriter::insertPath(UCHAR tag, const PathName& str) +void ClumpletWriter::insertString(UCHAR tag, const MetaName& str) { insertString(tag, str.c_str(), str.length()); } +void ClumpletWriter::insertString(UCHAR tag, const char* str) +{ + insertString(tag, str, strlen(str)); +} + void ClumpletWriter::insertString(UCHAR tag, const char* str, FB_SIZE_T length) { insertBytesLengthCheck(tag, str, length); } +void ClumpletWriter::insertPath(UCHAR tag, const PathName& str) +{ + insertString(tag, str.c_str(), str.length()); +} + void ClumpletWriter::insertBytes(UCHAR tag, const void* bytes, FB_SIZE_T length) { insertBytesLengthCheck(tag, bytes, length); Modified: firebird/trunk/src/common/classes/ClumpletWriter.h =================================================================== --- firebird/trunk/src/common/classes/ClumpletWriter.h 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/src/common/classes/ClumpletWriter.h 2016-02-03 13:20:41 UTC (rev 62916) @@ -73,7 +73,9 @@ void insertBigInt(UCHAR tag, const SINT64 value); void insertBytes(UCHAR tag, const void* bytes, FB_SIZE_T length); void insertString(UCHAR tag, const string& str); + void insertString(UCHAR tag, const MetaName& str); void insertPath(UCHAR tag, const PathName& str); + void insertString(UCHAR tag, const char* str); void insertString(UCHAR tag, const char* str, FB_SIZE_T length); void insertByte(UCHAR tag, const UCHAR byte); void insertTag(UCHAR tag); Modified: firebird/trunk/src/dsql/DdlNodes.epp =================================================================== --- firebird/trunk/src/dsql/DdlNodes.epp 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/src/dsql/DdlNodes.epp 2016-02-03 13:20:41 UTC (rev 62916) @@ -11577,6 +11577,7 @@ NODE_PRINT(printer, setDefaultCollation); NODE_PRINT(printer, files); NODE_PRINT(printer, cryptPlugin); + NODE_PRINT(printer, keyName); return "AlterDatabaseNode"; } @@ -11660,7 +11661,7 @@ if (clauses & CLAUSE_CRYPT) { Database* const db = tdbb->getDatabase(); - db->dbb_crypto_manager->prepareChangeCryptState(tdbb, cryptPlugin); + db->dbb_crypto_manager->prepareChangeCryptState(tdbb, cryptPlugin, keyName); DFW_post_work(transaction, dfw_db_crypt, cryptPlugin.c_str(), 0); } Modified: firebird/trunk/src/dsql/DdlNodes.h =================================================================== --- firebird/trunk/src/dsql/DdlNodes.h 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/src/dsql/DdlNodes.h 2016-02-03 13:20:41 UTC (rev 62916) @@ -2228,7 +2228,8 @@ setDefaultCharSet(p), setDefaultCollation(p), files(p), - cryptPlugin(p) + cryptPlugin(p), + keyName(p) { } @@ -2263,6 +2264,7 @@ Firebird::MetaName setDefaultCollation; Firebird::Array<NestConst<DbFileClause> > files; Firebird::MetaName cryptPlugin; + Firebird::MetaName keyName; }; Modified: firebird/trunk/src/dsql/parse.y =================================================================== --- firebird/trunk/src/dsql/parse.y 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/src/dsql/parse.y 2016-02-03 13:20:41 UTC (rev 62916) @@ -3961,7 +3961,7 @@ { $alterDatabaseNode->clauses |= AlterDatabaseNode::CLAUSE_END_BACKUP; } | SET DEFAULT CHARACTER SET symbol_character_set_name { $alterDatabaseNode->setDefaultCharSet = *$5; } - | ENCRYPT WITH valid_symbol_name + | ENCRYPT WITH valid_symbol_name crypt_key_clause($alterDatabaseNode) { setClauseFlag($alterDatabaseNode->clauses, AlterDatabaseNode::CLAUSE_CRYPT, "CRYPT"); $alterDatabaseNode->cryptPlugin = *$3; @@ -3974,6 +3974,12 @@ { $alterDatabaseNode->linger = 0; } ; +%type crypt_key_clause(<alterDatabaseNode>) +crypt_key_clause($alterDatabaseNode) + : /* nothing */ + | KEY valid_symbol_name + { $alterDatabaseNode->keyName = *$2; } + ; // ALTER TRIGGER Modified: firebird/trunk/src/include/firebird/FirebirdInterface.idl =================================================================== --- firebird/trunk/src/include/firebird/FirebirdInterface.idl 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/src/include/firebird/FirebirdInterface.idl 2016-02-03 13:20:41 UTC (rev 62916) @@ -720,11 +720,11 @@ interface DbCryptPlugin : PluginBase { // When database crypt plugin is loaded, setKey() is called to provide information - // about key holders, available for a given database. + // about key holders, available for a given database and key name for database. // It's supposed that crypt plugin will invoke keyHandle() function from them // to access callback interface for getting actual crypt key. // If crypt plugin fails to find appropriate key in sources, it should raise error. - void setKey(Status status, uint length, KeyHolderPlugin* sources); + void setKey(Status status, const string keyName, uint length, KeyHolderPlugin* sources); void encrypt(Status status, uint length, const void* from, void* to); void decrypt(Status status, uint length, const void* from, void* to); } Modified: firebird/trunk/src/include/firebird/IdlFbInterfaces.h =================================================================== --- firebird/trunk/src/include/firebird/IdlFbInterfaces.h 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/src/include/firebird/IdlFbInterfaces.h 2016-02-03 13:20:41 UTC (rev 62916) @@ -2871,7 +2871,7 @@ public: struct VTable : public IPluginBase::VTable { - void (CLOOP_CARG *setKey)(IDbCryptPlugin* self, IStatus* status, unsigned length, IKeyHolderPlugin** sources) throw(); + void (CLOOP_CARG *setKey)(IDbCryptPlugin* self, IStatus* status, const char* keyName, unsigned length, IKeyHolderPlugin** sources) throw(); void (CLOOP_CARG *encrypt)(IDbCryptPlugin* self, IStatus* status, unsigned length, const void* from, void* to) throw(); void (CLOOP_CARG *decrypt)(IDbCryptPlugin* self, IStatus* status, unsigned length, const void* from, void* to) throw(); }; @@ -2889,10 +2889,10 @@ public: static const unsigned VERSION = 4; - template <typename StatusType> void setKey(StatusType* status, unsigned length, IKeyHolderPlugin** sources) + template <typename StatusType> void setKey(StatusType* status, const char* keyName, unsigned length, IKeyHolderPlugin** sources) { StatusType::clearException(status); - static_cast<VTable*>(this->cloopVTable)->setKey(this, status, length, sources); + static_cast<VTable*>(this->cloopVTable)->setKey(this, status, keyName, length, sources); StatusType::checkException(status); } @@ -11093,13 +11093,13 @@ this->cloopVTable = &vTable; } - static void CLOOP_CARG cloopsetKeyDispatcher(IDbCryptPlugin* self, IStatus* status, unsigned length, IKeyHolderPlugin** sources) throw() + static void CLOOP_CARG cloopsetKeyDispatcher(IDbCryptPlugin* self, IStatus* status, const char* keyName, unsigned length, IKeyHolderPlugin** sources) throw() { StatusType status2(status); try { - static_cast<Name*>(self)->Name::setKey(&status2, length, sources); + static_cast<Name*>(self)->Name::setKey(&status2, keyName, length, sources); } catch (...) { @@ -11199,7 +11199,7 @@ { } - virtual void setKey(StatusType* status, unsigned length, IKeyHolderPlugin** sources) = 0; + virtual void setKey(StatusType* status, const char* keyName, unsigned length, IKeyHolderPlugin** sources) = 0; virtual void encrypt(StatusType* status, unsigned length, const void* from, void* to) = 0; virtual void decrypt(StatusType* status, unsigned length, const void* from, void* to) = 0; }; Modified: firebird/trunk/src/include/gen/codetext.h =================================================================== --- firebird/trunk/src/include/gen/codetext.h 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/src/include/gen/codetext.h 2016-02-03 13:20:41 UTC (rev 62916) @@ -809,6 +809,8 @@ {"map_down", 335545105}, {"login_error", 335545106}, {"already_opened", 335545107}, + {"bad_crypt_key", 335545108}, + {"encrypt_error", 335545109}, {"gfix_db_name", 335740929}, {"gfix_invalid_sw", 335740930}, {"gfix_incmp_sw", 335740932}, Modified: firebird/trunk/src/include/gen/iberror.h =================================================================== --- firebird/trunk/src/include/gen/iberror.h 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/src/include/gen/iberror.h 2016-02-03 13:20:41 UTC (rev 62916) @@ -843,6 +843,8 @@ const ISC_STATUS isc_map_down = 335545105L; const ISC_STATUS isc_login_error = 335545106L; const ISC_STATUS isc_already_opened = 335545107L; +const ISC_STATUS isc_bad_crypt_key = 335545108L; +const ISC_STATUS isc_encrypt_error = 335545109L; const ISC_STATUS isc_gfix_db_name = 335740929L; const ISC_STATUS isc_gfix_invalid_sw = 335740930L; const ISC_STATUS isc_gfix_incmp_sw = 335740932L; @@ -1306,7 +1308,7 @@ const ISC_STATUS isc_trace_switch_param_miss = 337182758L; const ISC_STATUS isc_trace_param_act_notcompat = 337182759L; const ISC_STATUS isc_trace_mandatory_switch_miss = 337182760L; -const ISC_STATUS isc_err_max = 1250; +const ISC_STATUS isc_err_max = 1252; #else /* c definitions */ @@ -2119,6 +2121,8 @@ #define isc_map_down 335545105L #define isc_login_error 335545106L #define isc_already_opened 335545107L +#define isc_bad_crypt_key 335545108L +#define isc_encrypt_error 335545109L #define isc_gfix_db_name 335740929L #define isc_gfix_invalid_sw 335740930L #define isc_gfix_incmp_sw 335740932L @@ -2582,7 +2586,7 @@ #define isc_trace_switch_param_miss 337182758L #define isc_trace_param_act_notcompat 337182759L #define isc_trace_mandatory_switch_miss 337182760L -#define isc_err_max 1250 +#define isc_err_max 1252 #endif Modified: firebird/trunk/src/include/gen/msgs.h =================================================================== --- firebird/trunk/src/include/gen/msgs.h 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/src/include/gen/msgs.h 2016-02-03 13:20:41 UTC (rev 62916) @@ -812,6 +812,8 @@ {335545105, "Some database(s) were shutdown when trying to read mapping data"}, /* map_down */ {335545106, "Error occurred during login, please check server firebird.log for details"}, /* login_error */ {335545107, "Database already opened with engine instance, incompatible with current"}, /* already_opened */ + {335545108, "Invalid crypt key @1"}, /* bad_crypt_key */ + {335545109, "Page requires encyption but crypt plugin is missing"}, /* encrypt_error */ {335740929, "data base file name (@1) already given"}, /* gfix_db_name */ {335740930, "invalid switch @1"}, /* gfix_invalid_sw */ {335740932, "incompatible switch combination"}, /* gfix_incmp_sw */ Modified: firebird/trunk/src/include/gen/sql_code.h =================================================================== --- firebird/trunk/src/include/gen/sql_code.h 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/src/include/gen/sql_code.h 2016-02-03 13:20:41 UTC (rev 62916) @@ -808,6 +808,8 @@ {335545105, -901}, /* 785 map_down */ {335545106, -902}, /* 786 login_error */ {335545107, -902}, /* 787 already_opened */ + {335545108, -902}, /* 788 bad_crypt_key */ + {335545109, -901}, /* 789 encrypt_error */ {335740929, -901}, /* 1 gfix_db_name */ {335740930, -901}, /* 2 gfix_invalid_sw */ {335740932, -901}, /* 4 gfix_incmp_sw */ Modified: firebird/trunk/src/include/gen/sql_state.h =================================================================== --- firebird/trunk/src/include/gen/sql_state.h 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/src/include/gen/sql_state.h 2016-02-03 13:20:41 UTC (rev 62916) @@ -743,7 +743,7 @@ {335545040, "22001"}, // 720 cp_name_too_long {335545041, "42818"}, // 721 cp_process_active {335545042, "42818"}, // 722 cp_already_crypted - {335545043, "39000"}, // 723 decrypt_error + {335545043, "XX000"}, // 723 decrypt_error {335545044, "39000"}, // 724 no_providers {335545045, "42818"}, // 725 null_spb {335545046, "42000"}, // 726 max_args_exceeded @@ -808,6 +808,8 @@ {335545105, "08004"}, // 785 map_down {335545106, "08006"}, // 786 login_error {335545107, "08006"}, // 787 already_opened + {335545108, "08006"}, // 788 bad_crypt_key + {335545109, "XX000"}, // 789 encrypt_error {335740929, "00000"}, // 1 gfix_db_name {335740930, "00000"}, // 2 gfix_invalid_sw {335740932, "00000"}, // 4 gfix_incmp_sw Modified: firebird/trunk/src/jrd/CryptoManager.cpp =================================================================== --- firebird/trunk/src/jrd/CryptoManager.cpp 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/src/jrd/CryptoManager.cpp 2016-02-03 13:20:41 UTC (rev 62916) @@ -48,6 +48,8 @@ #include "../common/isc_proto.h" #include "../common/classes/GetPlugins.h" #include "../common/classes/RefMutex.h" +#include "../common/classes/ClumpletWriter.h" +#include "../common/sha.h" using namespace Firebird; @@ -83,23 +85,16 @@ return header; } - // This routine is looking for a clumplet on header page but is not ready to handle continuation - // Fortunately, modern pages of size 4k and bigger can contain everything on one page. - bool searchEntry(UCHAR type, UCHAR& out_len, const UCHAR* &entry) + // This routine is getting clumplets from header page but is not ready to handle continuation + // Fortunately, modern pages of size 4k and bigger can fit everything on one page. + void getClumplets(ClumpletWriter& writer) { - const UCHAR* end = ((const UCHAR*) header) + header->hdr_page_size; - for (const UCHAR* p = header->hdr_data; (p < end - 2) && (*p != Ods::HDR_end); p += 2u + p[1]) - { - if (*p == type) - { - out_len = p[1]; - entry = p + 2; - if (entry + out_len > end) - out_len = end - entry; - return true; - } - } - return false; + const UCHAR* p = header->hdr_data; + const UCHAR* const end = reinterpret_cast<const UCHAR*>(header) + header->hdr_page_size; + while ((p < end - 2) && (*p != Ods::HDR_end)) + p += 2u + p[1]; + + writer.reset(header->hdr_data, p - header->hdr_data); } private: @@ -112,7 +107,8 @@ public: CchHdr(Jrd::thread_db* p_tdbb, USHORT lockType) : window(Jrd::HEADER_PAGE_NUMBER), - tdbb(p_tdbb) + tdbb(p_tdbb), + wrtFlag(false) { void* h = CCH_FETCH(tdbb, &window, lockType, pag_header); if (!h) @@ -124,10 +120,30 @@ Ods::header_page* write() { - CCH_MARK_MUST_WRITE(tdbb, &window); + if (!wrtFlag) + { + CCH_MARK_MUST_WRITE(tdbb, &window); + wrtFlag = true; + } return const_cast<Ods::header_page*>(operator->()); } + void setClumplets(const ClumpletWriter& writer) + { + Ods::header_page* hdr = write(); + UCHAR* const to = hdr->hdr_data; + UCHAR* const end = reinterpret_cast<UCHAR*>(hdr) + hdr->hdr_page_size; + const unsigned limit = (end - to) - 1; + + const unsigned length = writer.getBufferLength(); + fb_assert(length <= limit); + if (length > limit) + (Arg::Gds(isc_random) << "HDR page clumplets overflow").raise(); + + memcpy(to, writer.getBuffer(), length); + to[length] = Ods::HDR_end; + } + ~CchHdr() { CCH_RELEASE(tdbb, &window); @@ -136,6 +152,7 @@ private: Jrd::WIN window; Jrd::thread_db* tdbb; + bool wrtFlag; }; class PhysHdr : public Header @@ -222,6 +239,7 @@ CryptoManager::CryptoManager(thread_db* tdbb) : PermanentStorage(*tdbb->getDatabase()->dbb_permanent), sync(this), + keyName(getPool()), keyHolderPlugins(getPool()), cryptThreadId(0), cryptPlugin(NULL), @@ -310,9 +328,27 @@ PhysHdr hdr(tdbb); crypt = hdr->hdr_flags & Ods::hdr_encrypted; process = hdr->hdr_flags & Ods::hdr_crypt_process; - if (crypt || process) + + if ((crypt || process) && !cryptPlugin) { + ClumpletWriter hc(ClumpletWriter::UnTagged, hdr->hdr_page_size); + hdr.getClumplets(hc); + if (hc.find(Ods::HDR_crypt_key)) + hc.getString(keyName); + else + keyName = ""; + loadPlugin(hdr->hdr_crypt_plugin); + + string valid; + calcValidation(valid); + if (hc.find(Ods::HDR_crypt_hash)) + { + string hash; + hc.getString(hash); + if (hash != valid) + (Arg::Gds(isc_bad_crypt_key) << keyName).raise(); + } } } @@ -337,12 +373,13 @@ // do not assign cryptPlugin directly before key init complete IDbCryptPlugin* p = cryptControl.plugin(); - keyHolderPlugins.init(p); + keyHolderPlugins.init(p, keyName.c_str()); cryptPlugin = p; cryptPlugin->addRef(); } - void CryptoManager::prepareChangeCryptState(thread_db* tdbb, const Firebird::MetaName& plugName) + void CryptoManager::prepareChangeCryptState(thread_db* tdbb, const MetaName& plugName, + const MetaName& key) { if (plugName.length() > MAX_PLUGIN_NAME_LEN) { @@ -371,13 +408,29 @@ if (cryptPlugin) (Arg::Gds(isc_cp_already_crypted)).raise(); + keyName = key; loadPlugin(plugName.c_str()); } } } - void CryptoManager::changeCryptState(thread_db* tdbb, const Firebird::string& plugName) + void CryptoManager::calcValidation(string& valid) { + // crypt verifier + const char* sample = "0123456789ABCDEF"; + char result[16]; + FbLocalStatus sv; + cryptPlugin->encrypt(&sv, sizeof(result), sample, result); + if (sv->getState() & IStatus::STATE_ERRORS) + Arg::StatusVector(&sv).raise(); + + // calculate it's hash + const string verifier(result, sizeof(result)); + Sha1::hashBased64(valid, verifier); + } + + void CryptoManager::changeCryptState(thread_db* tdbb, const string& plugName) + { if (plugName.length() > 31) { (Arg::Gds(isc_cp_name_too_long) << Arg::Num(31)).raise(); @@ -423,17 +476,31 @@ // Write modified header page Ods::header_page* header = hdr.write(); + ClumpletWriter hc(ClumpletWriter::UnTagged, header->hdr_page_size); + hdr.getClumplets(hc); + if (crypt) { header->hdr_flags |= Ods::hdr_encrypted; plugName.copyTo(header->hdr_crypt_plugin, sizeof(header->hdr_crypt_plugin)); + string hash; + calcValidation(hash); + hc.insertString(Ods::HDR_crypt_hash, hash); } else { header->hdr_flags &= ~Ods::hdr_encrypted; + hc.deleteWithTag(Ods::HDR_crypt_hash); } - // Set hdr_crypt_page for crypt thread + if (crypt && keyName.hasData()) + hc.insertString(Ods::HDR_crypt_key, keyName); + else + hc.deleteWithTag(Ods::HDR_crypt_key); + + hdr.setClumplets(hc); + + // Setup hdr_crypt_page for crypt thread header->hdr_crypt_page = 1; header->hdr_flags |= Ods::hdr_crypt_process; process = true; @@ -848,8 +915,7 @@ fb_assert(cryptPlugin); if (!cryptPlugin) { - (Arg::Gds(isc_decrypt_error) << - Arg::Gds(isc_random) << "Missing crypt plugin").copyTo(sv); + Arg::Gds(isc_encrypt_error).copyTo(sv); return FAILED_CRYPT; } @@ -950,7 +1016,7 @@ { IKeyHolderPlugin* keyPlugin = keyControl.plugin(); FbLocalStatus st; - if (keyPlugin->keyCallback(&st, att->att_crypt_callback) == 1) //// FIXME: 1 ??? + if (keyPlugin->keyCallback(&st, att->att_crypt_callback) > 0) { // holder accepted attachment's key HolderAttachments* ha = NULL; @@ -992,7 +1058,7 @@ } } - void CryptoManager::KeyHolderPlugins::init(IDbCryptPlugin* crypt) + void CryptoManager::KeyHolderPlugins::init(IDbCryptPlugin* crypt, const char* keyName) { MutexLockGuard g(holdersMutex, FB_FUNCTION); @@ -1005,7 +1071,7 @@ } FbLocalStatus st; - crypt->setKey(&st, length, vector); + crypt->setKey(&st, keyName, length, vector); st.check(); } Modified: firebird/trunk/src/jrd/CryptoManager.h =================================================================== --- firebird/trunk/src/jrd/CryptoManager.h 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/src/jrd/CryptoManager.h 2016-02-03 13:20:41 UTC (rev 62916) @@ -35,6 +35,7 @@ #include "../common/classes/fb_string.h" #include "../common/classes/objects_array.h" #include "../common/classes/condition.h" +#include "../common/classes/MetaName.h" #include "../common/ThreadStart.h" #include "../jrd/ods.h" #include "../jrd/status.h" @@ -259,7 +260,8 @@ void shutdown(thread_db* tdbb); - void prepareChangeCryptState(thread_db* tdbb, const Firebird::MetaName& plugName); + void prepareChangeCryptState(thread_db* tdbb, const Firebird::MetaName& plugName, + const Firebird::MetaName& key); void changeCryptState(thread_db* tdbb, const Firebird::string& plugName); void attach(thread_db* tdbb, Attachment* att); void detach(thread_db* tdbb, Attachment* att); @@ -334,7 +336,7 @@ void attach(Attachment* att, Config* config); void detach(Attachment* att); - void init(Firebird::IDbCryptPlugin* crypt); + void init(Firebird::IDbCryptPlugin* crypt, const char* keyName); private: Firebird::Mutex holdersMutex; @@ -351,12 +353,14 @@ void loadPlugin(const char* pluginName); ULONG getLastPage(thread_db* tdbb); void writeDbHeader(thread_db* tdbb, ULONG runpage); + void calcValidation(Firebird::string& valid); void lockAndReadHeader(thread_db* tdbb, unsigned flags = 0); static const unsigned CRYPT_HDR_INIT = 0x01; static const unsigned CRYPT_HDR_NOWAIT = 0x02; BarSync sync; + Firebird::MetaName keyName; ULONG currentPage; Firebird::Mutex pluginLoadMtx, cryptThreadMtx; KeyHolderPlugins keyHolderPlugins; Modified: firebird/trunk/src/jrd/ods.h =================================================================== --- firebird/trunk/src/jrd/ods.h 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/src/jrd/ods.h 2016-02-03 13:20:41 UTC (rev 62916) @@ -429,7 +429,9 @@ const UCHAR HDR_password_file_key = 5; // Key to compare to password db const UCHAR HDR_difference_file = 6; // Delta file that is used during backup lock const UCHAR HDR_backup_guid = 7; // UID generated on each switch into backup mode -const UCHAR HDR_max = 8; // Maximum HDR_clump value +const UCHAR HDR_crypt_key = 8; // Name of a key used to crypt database +const UCHAR HDR_crypt_hash = 9; // Validator of key correctness +const UCHAR HDR_max = 10; // Maximum HDR_clump value // Header page flags Modified: firebird/trunk/src/msgs/facilities2.sql =================================================================== --- firebird/trunk/src/msgs/facilities2.sql 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/src/msgs/facilities2.sql 2016-02-03 13:20:41 UTC (rev 62916) @@ -1,7 +1,7 @@ /* MAX_NUMBER is the next number to be used, always one more than the highest message number. */ set bulk_insert INSERT INTO FACILITIES (LAST_CHANGE, FACILITY, FAC_CODE, MAX_NUMBER) VALUES (?, ?, ?, ?); -- -('2015-12-30 17:52:25', 'JRD', 0, 788) +('2016-02-03 14:51:49', 'JRD', 0, 790) ('2015-03-17 18:33:00', 'QLI', 1, 533) ('2015-01-07 18:01:51', 'GFIX', 3, 134) ('1996-11-07 13:39:40', 'GPRE', 4, 1) Modified: firebird/trunk/src/msgs/messages2.sql =================================================================== --- firebird/trunk/src/msgs/messages2.sql 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/src/msgs/messages2.sql 2016-02-03 13:20:41 UTC (rev 62916) @@ -895,6 +895,8 @@ ('map_down', NULL, 'Mapping.cpp', NULL, 0, 785, NULL, 'Some database(s) were shutdown when trying to read mapping data', NULL, NULL); ('login_error', NULL, 'server.cpp', NULL, 0, 786, NULL, 'Error occurred during login, please check server firebird.log for details', NULL, NULL); ('already_opened', 'lockDatabaseFile', 'unix.cpp', NULL, 0, 787, NULL, 'Database already opened with engine instance, incompatible with current', NULL, NULL); +('bad_crypt_key', NULL, 'CryptoManager.cpp', NULL, 0, 788, NULL, 'Invalid crypt key @1', NULL, NULL); +('encrypt_error', NULL, 'CryptoManager.cpp', NULL, 0, 789, NULL, 'Page requires encyption but crypt plugin is missing', NULL, NULL); -- QLI (NULL, NULL, NULL, NULL, 1, 0, NULL, 'expected type', NULL, NULL); (NULL, NULL, NULL, NULL, 1, 1, NULL, 'bad block type', NULL, NULL); Modified: firebird/trunk/src/msgs/system_errors2.sql =================================================================== --- firebird/trunk/src/msgs/system_errors2.sql 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/src/msgs/system_errors2.sql 2016-02-03 13:20:41 UTC (rev 62916) @@ -729,7 +729,7 @@ (-104, '22', '001', 0, 720, 'cp_name_too_long', NULL, NULL) (-901, '42', '818', 0, 721, 'cp_process_active', NULL, NULL) (-901, '42', '818', 0, 722, 'cp_already_crypted', NULL, NULL) -(-902, '39', '000', 0, 723, 'decrypt_error', NULL, NULL) +(-902, 'XX', '000', 0, 723, 'decrypt_error', NULL, NULL) (-902, '39', '000', 0, 724, 'no_providers', NULL, NULL) (-104, '42', '818', 0, 725, 'null_spb', NULL, NULL) (-833, '42', '000', 0, 726, 'max_args_exceeded', NULL, NULL) @@ -794,6 +794,8 @@ (-901, '08', '004', 0, 785, 'map_down', NULL, NULL) (-902, '08', '006', 0, 786, 'login_error', NULL, NULL) (-902, '08', '006', 0, 787, 'already_opened', NULL, NULL) +(-902, '08', '006', 0, 788, 'bad_crypt_key', NULL, NULL) +(-901, 'XX', '000', 0, 789, 'encrypt_error', NULL, NULL) -- GFIX (-901, '00', '000', 3, 1, 'gfix_db_name', NULL, NULL) (-901, '00', '000', 3, 2, 'gfix_invalid_sw', NULL, NULL) Modified: firebird/trunk/src/utilities/gstat/ppg.cpp =================================================================== --- firebird/trunk/src/utilities/gstat/ppg.cpp 2016-02-03 11:06:43 UTC (rev 62915) +++ firebird/trunk/src/utilities/gstat/ppg.cpp 2016-02-03 13:20:41 UTC (rev 62916) @@ -281,6 +281,14 @@ break; } + case HDR_crypt_key: + uSvc->printf(false, "\tEncryption key name:\t%*.*s\n", p[1], p[1], p + 2); + break; + + case HDR_crypt_hash: + uSvc->printf(false, "\tKey hash:\t%*.*s\n", p[1], p[1], p + 2); + break; + default: if (*p > HDR_max) uSvc->printf(false, "\tUnrecognized option %d, length %d\n", p[0], p[1]); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |