"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/remote/client/interface.cpp" between
Firebird-3.0.2.32703-0.tar.bz2 and Firebird-3.0.4.33054-0.tar.bz2

About: Firebird is a relational database offering many ANSI SQL standard features.

interface.cpp  (Firebird-3.0.2.32703-0.tar.bz2):interface.cpp  (Firebird-3.0.4.33054-0.tar.bz2)
skipping to change at line 1574 skipping to change at line 1574
************************************** **************************************
* *
* Functional description * Functional description
* Close down a database. * Close down a database.
* *
**************************************/ **************************************/
try try
{ {
CHECK_HANDLE(rdb, isc_bad_db_handle); CHECK_HANDLE(rdb, isc_bad_db_handle);
rem_port* port = rdb->rdb_port; rem_port* port = rdb->rdb_port;
RefMutexGuard portGuard(*port->port_sync, FB_FUNCTION); RemotePortGuard portGuard(port, FB_FUNCTION);
try try
{ {
if (!(port->port_flags & PORT_rdb_shutdown)) if (!(port->port_flags & PORT_rdb_shutdown))
{ {
release_object(status, rdb, op_detach, rdb->rdb_i d); release_object(status, rdb, op_detach, rdb->rdb_i d);
} }
} }
catch (const status_exception& ex) catch (const status_exception& ex)
{ {
// If something other than a network error occurred, just return. Otherwise // If something other than a network error occurred, just return. Otherwise
// we need to free up the associated structures, close th e socket and // we need to free up the associated structures, close th e socket and
// scream. By the way, we should probably create an entr y in the log // scream. By the way, we should probably create an entr y in the log
// telling the user that an unrecoverable network error o ccurred and that // telling the user that an unrecoverable network error o ccurred and that
// if there was any uncommitted work, its gone...... Oh well.... // if there was any uncommitted work, its gone...... Oh well....
ex.stuffException(status); ex.stuffException(status);
if ((status->getErrors()[1] != isc_network_error) && (!fo
rce)) if (!fb_utils::isNetworkError(status->getErrors()[1]) &&
(!force))
{ {
return; return;
} }
} }
while (rdb->rdb_events) while (rdb->rdb_events)
release_event(rdb->rdb_events); release_event(rdb->rdb_events);
while (rdb->rdb_requests) while (rdb->rdb_requests)
release_request(rdb->rdb_requests); release_request(rdb->rdb_requests);
skipping to change at line 1666 skipping to change at line 1667
* Functional description * Functional description
* Close down and purge a database. * Close down and purge a database.
* *
**************************************/ **************************************/
try try
{ {
reset(status); reset(status);
CHECK_HANDLE(rdb, isc_bad_db_handle); CHECK_HANDLE(rdb, isc_bad_db_handle);
rem_port* port = rdb->rdb_port; rem_port* port = rdb->rdb_port;
RefMutexGuard portGuard(*port->port_sync, FB_FUNCTION); RemotePortGuard portGuard(port, FB_FUNCTION);
try try
{ {
release_object(status, rdb, op_drop_database, rdb->rdb_id ); release_object(status, rdb, op_drop_database, rdb->rdb_id );
} }
catch (const status_exception& ex) catch (const status_exception& ex)
{ {
ex.stuffException(status); ex.stuffException(status);
if (ex.value()[1] != isc_drdb_completed_with_errs) if (ex.value()[1] != isc_drdb_completed_with_errs)
{ {
skipping to change at line 3875 skipping to change at line 3876
send_and_receive(status, rdb, packet); send_and_receive(status, rdb, packet);
*id = packet->p_resp.p_resp_blob_id; *id = packet->p_resp.p_resp_blob_id;
} }
catch (const Exception& ex) catch (const Exception& ex)
{ {
ex.stuffException(status); ex.stuffException(status);
} }
} }
namespace {
void portEventsShutdown(rem_port* port)
{
if (port->port_events_thread)
Thread::waitForCompletion(port->port_events_thread);
}
}
Firebird::IEvents* Attachment::queEvents(CheckStatusWrapper* status, Firebird::I EventCallback* callback, Firebird::IEvents* Attachment::queEvents(CheckStatusWrapper* status, Firebird::I EventCallback* callback,
unsigned int length, const unsigned char* events) unsigned int length, const unsigned char* events)
{ {
/************************************** /**************************************
* *
* g d s _ $ q u e _ e v e n t s * g d s _ $ q u e _ e v e n t s
* *
************************************** **************************************
* *
* Functional description * Functional description
skipping to change at line 3922 skipping to change at line 3915
if (!port->port_async) if (!port->port_async)
{ {
packet->p_operation = op_connect_request; packet->p_operation = op_connect_request;
P_REQ* request = &packet->p_req; P_REQ* request = &packet->p_req;
request->p_req_object = rdb->rdb_id; request->p_req_object = rdb->rdb_id;
request->p_req_type = P_REQ_async; request->p_req_type = P_REQ_async;
send_packet(port, packet); send_packet(port, packet);
receive_response(status, rdb, packet); receive_response(status, rdb, packet);
port->connect(packet); port->connect(packet);
Thread::start(event_thread, port->port_async, THREAD_high rem_port* port_async = port->port_async;
, port_async->port_events_threadId =
&port->port_async->port_events_ Thread::start(event_thread, port_async, THREAD_hi
thread); gh, &port_async->port_events_thread);
port->port_async->port_events_shutdown = portEventsShutdo
wn;
port->port_async->port_context = rdb; port_async->port_context = rdb;
} }
// Add event block to port's list of active remote events // Add event block to port's list of active remote events
Rvnt* rem_event = add_event(port); Rvnt* rem_event = add_event(port);
rem_event->rvnt_callback = callback; rem_event->rvnt_callback = callback;
rem_event->rvnt_port = port->port_async; rem_event->rvnt_port = port->port_async;
rem_event->rvnt_length = length; rem_event->rvnt_length = length;
rem_event->rvnt_rdb = rdb; rem_event->rvnt_rdb = rdb;
skipping to change at line 4639 skipping to change at line 4632
* *
**************************************/ **************************************/
try try
{ {
reset(status); reset(status);
// Check and validate handles, etc. // Check and validate handles, etc.
CHECK_HANDLE(rdb, isc_bad_svc_handle); CHECK_HANDLE(rdb, isc_bad_svc_handle);
rem_port* port = rdb->rdb_port; rem_port* port = rdb->rdb_port;
RefMutexGuard portGuard(*port->port_sync, FB_FUNCTION); RemotePortGuard portGuard(port, FB_FUNCTION);
try try
{ {
release_object(status, rdb, op_service_detach, rdb->rdb_i d); release_object(status, rdb, op_service_detach, rdb->rdb_i d);
} }
catch (const Exception&) catch (const Exception&)
{ {
if (!force) if (!force)
throw; throw;
} }
skipping to change at line 7330 skipping to change at line 7323
dpb.deleteWithTag(tags->trusted_auth); dpb.deleteWithTag(tags->trusted_auth);
} }
} //namespace Remote } //namespace Remote
ClntAuthBlock::ClntAuthBlock(const Firebird::PathName* fileName, Firebird::Clump letReader* dpb, ClntAuthBlock::ClntAuthBlock(const Firebird::PathName* fileName, Firebird::Clump letReader* dpb,
const ParametersSet* tag s) const ParametersSet* tag s)
: pluginList(getPool()), serverPluginList(getPool()), : pluginList(getPool()), serverPluginList(getPool()),
cliUserName(getPool()), cliPassword(getPool()), cliOrigUserName(getPool ()), cliUserName(getPool()), cliPassword(getPool()), cliOrigUserName(getPool ()),
dataForPlugin(getPool()), dataFromPlugin(getPool()), dataForPlugin(getPool()), dataFromPlugin(getPool()),
cryptKeys(getPool()), dpbConfig(getPool()), cryptKeys(getPool()), dpbConfig(getPool()), dpbPlugins(getPool()),
hasCryptKey(false), plugins(IPluginManager::TYPE_AUTH_CLIENT), hasCryptKey(false), plugins(IPluginManager::TYPE_AUTH_CLIENT),
authComplete(false), firstTime(true) authComplete(false), firstTime(true)
{ {
if (dpb && tags && dpb->find(tags->config_text)) if (dpb && tags)
{ {
dpb->getString(dpbConfig); if (dpb->find(tags->config_text))
{
dpb->getString(dpbConfig);
}
if (dpb->find(tags->plugin_list))
{
dpb->getPath(dpbPlugins);
}
} }
resetClnt(fileName); resetClnt(fileName);
} }
void ClntAuthBlock::resetDataFromPlugin() void ClntAuthBlock::resetDataFromPlugin()
{ {
dataFromPlugin.clear(); dataFromPlugin.clear();
} }
void ClntAuthBlock::extractDataFromPluginTo(Firebird::ClumpletWriter& dpb, void ClntAuthBlock::extractDataFromPluginTo(Firebird::ClumpletWriter& dpb,
skipping to change at line 7365 skipping to change at line 7365
PathName pluginName = getPluginName(); PathName pluginName = getPluginName();
if (protocol >= PROTOCOL_VERSION13) if (protocol >= PROTOCOL_VERSION13)
{ {
if (firstTime) if (firstTime)
{ {
fb_assert(tags->plugin_name && tags->plugin_list); fb_assert(tags->plugin_name && tags->plugin_list);
if (pluginName.hasData()) if (pluginName.hasData())
{ {
dpb.insertPath(tags->plugin_name, pluginName); dpb.insertPath(tags->plugin_name, pluginName);
} }
dpb.deleteWithTag(tags->plugin_list);
dpb.insertPath(tags->plugin_list, pluginList); dpb.insertPath(tags->plugin_list, pluginList);
firstTime = false; firstTime = false;
HANDSHAKE_DEBUG(fprintf(stderr, HANDSHAKE_DEBUG(fprintf(stderr,
"Cli: extractDataFromPluginTo: first time - added plugName & pluginList\n")); "Cli: extractDataFromPluginTo: first time - added plugName & pluginList\n"));
} }
fb_assert(tags->specific_data); fb_assert(tags->specific_data);
dpb.insertBytes(tags->specific_data, dataFromPlugin.begin(), data FromPlugin.getCount()); dpb.insertBytes(tags->specific_data, dataFromPlugin.begin(), data FromPlugin.getCount());
HANDSHAKE_DEBUG(fprintf(stderr, HANDSHAKE_DEBUG(fprintf(stderr,
"Cli: extractDataFromPluginTo: Added %u bytes of spec dat a with tag %d\n", "Cli: extractDataFromPluginTo: Added %u bytes of spec dat a with tag %d\n",
 End of changes. 11 change blocks. 
23 lines changed or deleted 22 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)