inf.cpp (Firebird-3.0.2.32703-0.tar.bz2) | : | inf.cpp (Firebird-3.0.4.33054-0.tar.bz2) | ||
---|---|---|---|---|
skipping to change at line 735 | skipping to change at line 735 | |||
case fb_info_page_contents: | case fb_info_page_contents: | |||
if (tdbb->getAttachment()->locksmith()) | if (tdbb->getAttachment()->locksmith()) | |||
{ | { | |||
length = gds__vax_integer(items, 2); | length = gds__vax_integer(items, 2); | |||
items += 2; | items += 2; | |||
const SLONG page_num = gds__vax_integer(items, le ngth); | const SLONG page_num = gds__vax_integer(items, le ngth); | |||
items += length; | items += length; | |||
win window(PageNumber(DB_PAGE_SPACE, page_num)); | win window(PageNumber(DB_PAGE_SPACE, page_num)); | |||
Ods::pag* page = CCH_FETCH(tdbb, &window, LCK_WAI | Ods::pag* page = CCH_FETCH(tdbb, &window, LCK_rea | |||
T, pag_undefined); | d, pag_undefined); | |||
info = INF_put_item(item, dbb->dbb_page_size, rei | info = INF_put_item(item, dbb->dbb_page_size, pag | |||
nterpret_cast<UCHAR*>(page), info, end); | e, info, end); | |||
CCH_RELEASE_TAIL(tdbb, &window); | CCH_RELEASE_TAIL(tdbb, &window); | |||
if (!info) | if (!info) | |||
{ | { | |||
if (transaction) | if (transaction) | |||
TRA_commit(tdbb, transaction, fal se); | TRA_commit(tdbb, transaction, fal se); | |||
return; | return; | |||
} | } | |||
continue; | continue; | |||
} | } | |||
skipping to change at line 766 | skipping to change at line 766 | |||
case fb_info_pages_free: | case fb_info_pages_free: | |||
length = INF_convert(PageSpace::maxAlloc(dbb) - PageSpace ::usedPages(dbb), buffer); | length = INF_convert(PageSpace::maxAlloc(dbb) - PageSpace ::usedPages(dbb), buffer); | |||
break; | break; | |||
case fb_info_crypt_state: | case fb_info_crypt_state: | |||
length = INF_convert(dbb->dbb_crypto_manager ? | length = INF_convert(dbb->dbb_crypto_manager ? | |||
dbb->dbb_crypto_manager->getCurrentState() : 0, b uffer); | dbb->dbb_crypto_manager->getCurrentState() : 0, b uffer); | |||
break; | break; | |||
case fb_info_crypt_key: | ||||
if (tdbb->getAttachment()->locksmith()) | ||||
{ | ||||
const char* key = dbb->dbb_crypto_manager->getKey | ||||
Name(); | ||||
if (!(info = INF_put_item(item, static_cast<USHOR | ||||
T>(strlen(key)), key, info, end))) | ||||
{ | ||||
if (transaction) | ||||
TRA_commit(tdbb, transaction, fal | ||||
se); | ||||
return; | ||||
} | ||||
continue; | ||||
} | ||||
buffer[0] = item; | ||||
item = isc_info_error; | ||||
length = 1 + INF_convert(isc_adm_task_denied, buffer + 1) | ||||
; | ||||
break; | ||||
case fb_info_conn_flags: | ||||
length = INF_convert(tdbb->getAttachment()->att_remote_fl | ||||
ags, buffer); | ||||
break; | ||||
default: | default: | |||
buffer[0] = item; | buffer[0] = item; | |||
item = isc_info_error; | item = isc_info_error; | |||
length = 1 + INF_convert(isc_infunk, buffer + 1); | length = 1 + INF_convert(isc_infunk, buffer + 1); | |||
break; | break; | |||
} | } | |||
if (!(info = INF_put_item(item, length, buffer, info, end))) | if (!(info = INF_put_item(item, length, buffer, info, end))) | |||
{ | { | |||
if (transaction) | if (transaction) | |||
skipping to change at line 789 | skipping to change at line 812 | |||
} | } | |||
if (transaction) | if (transaction) | |||
TRA_commit(tdbb, transaction, false); | TRA_commit(tdbb, transaction, false); | |||
*info++ = isc_info_end; | *info++ = isc_info_end; | |||
} | } | |||
UCHAR* INF_put_item(UCHAR item, | UCHAR* INF_put_item(UCHAR item, | |||
USHORT length, | USHORT length, | |||
const UCHAR* string, | const void* data, | |||
UCHAR* ptr, | UCHAR* ptr, | |||
const UCHAR* end, | const UCHAR* end, | |||
const bool inserting) | const bool inserting) | |||
{ | { | |||
/************************************** | /************************************** | |||
* | * | |||
* I N F _ p u t _ i t e m | * I N F _ p u t _ i t e m | |||
* | * | |||
************************************** | ************************************** | |||
* | * | |||
skipping to change at line 819 | skipping to change at line 842 | |||
{ | { | |||
*ptr = isc_info_truncated; | *ptr = isc_info_truncated; | |||
return NULL; | return NULL; | |||
} | } | |||
*ptr++ = item; | *ptr++ = item; | |||
STUFF_WORD(ptr, length); | STUFF_WORD(ptr, length); | |||
if (length) | if (length) | |||
{ | { | |||
memmove(ptr, string, length); | memmove(ptr, data, length); | |||
ptr += length; | ptr += length; | |||
} | } | |||
return ptr; | return ptr; | |||
} | } | |||
ULONG INF_request_info(const jrd_req* request, const ULONG item_length, const UC HAR* items, | ULONG INF_request_info(const jrd_req* request, const ULONG item_length, const UC HAR* items, | |||
const ULONG output_length, UCHAR* info) | const ULONG output_length, UCHAR* info) | |||
{ | { | |||
/************************************** | /************************************** | |||
End of changes. 4 change blocks. | ||||
6 lines changed or deleted | 34 lines changed or added |