|
|
@ -234,6 +234,10 @@ DYNAMIC_API PEP_STATUS init(PEP_SESSION *session) |
|
|
|
|
|
|
|
_session->version = PEP_ENGINE_VERSION; |
|
|
|
|
|
|
|
#ifdef DEBUG_ERRORSTACK |
|
|
|
_session->errorstack = new_stringlist(NULL); |
|
|
|
#endif |
|
|
|
|
|
|
|
assert(LOCAL_DB); |
|
|
|
if (LOCAL_DB == NULL) { |
|
|
|
status = PEP_INIT_CANNOT_OPEN_DB; |
|
|
@ -749,6 +753,9 @@ DYNAMIC_API void release(PEP_SESSION session) |
|
|
|
release_transport_system(session, out_last); |
|
|
|
release_cryptotech(session, out_last); |
|
|
|
|
|
|
|
#ifdef DEBUG_ERRORSTACK |
|
|
|
free_stringlist(session->errorstack); |
|
|
|
#endif |
|
|
|
free(session); |
|
|
|
} |
|
|
|
} |
|
|
@ -2272,3 +2279,39 @@ DYNAMIC_API PEP_STATUS reset_peptest_hack(PEP_SESSION session) |
|
|
|
|
|
|
|
return PEP_STATUS_OK; |
|
|
|
} |
|
|
|
|
|
|
|
#ifdef DEBUG_ERRORSTACK |
|
|
|
PEP_STATUS session_add_error(PEP_SESSION session, const char* file, unsigned line, PEP_STATUS status) |
|
|
|
{ |
|
|
|
char logline[48]; |
|
|
|
if(status>0) |
|
|
|
{ |
|
|
|
snprintf(logline,47, "%24s:%u status=%u (0x%x)", file, line, status, status); |
|
|
|
}else{ |
|
|
|
snprintf(logline,47, "%24s:%u status=%i.", file, line, status); |
|
|
|
} |
|
|
|
stringlist_add(session->errorstack, logline); // logline is copied! :-) |
|
|
|
return status; |
|
|
|
} |
|
|
|
|
|
|
|
DYNAMIC_API const stringlist_t* get_errorstack(PEP_SESSION session) |
|
|
|
{ |
|
|
|
return session->errorstack; |
|
|
|
} |
|
|
|
|
|
|
|
#else |
|
|
|
|
|
|
|
static stringlist_t* dummy_errorstack = NULL; |
|
|
|
|
|
|
|
DYNAMIC_API const stringlist_t* get_errorstack(PEP_SESSION session) |
|
|
|
{ |
|
|
|
if(dummy_errorstack == NULL) |
|
|
|
{ |
|
|
|
dummy_errorstack = new_stringlist("( Please recompile pEpEngine with -DDEBUG_ERRORSTACK )"); |
|
|
|
} |
|
|
|
|
|
|
|
return dummy_errorstack; |
|
|
|
} |
|
|
|
|
|
|
|
#endif |
|
|
|
|