diff --git a/src/include/lib3270/trace.h b/src/include/lib3270/trace.h index eafedd8..6414a0f 100644 --- a/src/include/lib3270/trace.h +++ b/src/include/lib3270/trace.h @@ -44,9 +44,8 @@ typedef void (*LIB3270_TRACE_HANDLER)(H3270 *, void *, const char *, va_list); - /** - * Set trace handle callback. + * @brief Set trace handle callback. * * @param hSession TN3270 Session handle. * @param handler Callback to write in trace file or show trace window (NULL send all trace to stdout/syslog). @@ -56,6 +55,16 @@ LIB3270_EXPORT void lib3270_set_trace_handler(H3270 *hSession, LIB3270_TRACE_HANDLER handler, void *userdata); /** + * @brief Get trace handle callback. + * + * @param hSession TN3270 Session handle. + * @param handler Callback to write in trace file or show trace window (NULL send all trace to stdout/syslog). + * @param userdata User data to pass to the trace handler. + * + */ + LIB3270_EXPORT void lib3270_get_trace_handler(H3270 *hSession, LIB3270_TRACE_HANDLER *handler, void **userdata); + + /** * Write on trace file. * * Write text on trace file, if DStrace is enabled. diff --git a/src/lib3270/session.c b/src/lib3270/session.c index ae0a0f4..9637b2c 100644 --- a/src/lib3270/session.c +++ b/src/lib3270/session.c @@ -327,10 +327,19 @@ LIB3270_EXPORT void lib3270_set_trace_handler(H3270 *hSession, LIB3270_TRACE_HAN { CHECK_SESSION_HANDLE(hSession); - hSession->trace.handler = handler ? handler : def_trace; + hSession->trace.handler = handler ? handler : def_trace; hSession->trace.userdata = userdata; } +LIB3270_EXPORT void lib3270_get_trace_handler(H3270 *hSession, LIB3270_TRACE_HANDLER *handler, void **userdata) +{ + CHECK_SESSION_HANDLE(hSession); + + *handler = hSession->trace.handler; + *userdata = hSession->trace.userdata; + +} + LIB3270_EXPORT void lib3270_set_popup_handler(H3270 *session, void (*handler)(H3270 *, LIB3270_NOTIFY, const char *, const char *, const char *, va_list)) { session->cbk.popup = handler ? handler : def_popup; } diff --git a/src/lib3270/testprogram/testprogram.c b/src/lib3270/testprogram/testprogram.c index f678fb9..4eca07b 100644 --- a/src/lib3270/testprogram/testprogram.c +++ b/src/lib3270/testprogram/testprogram.c @@ -17,7 +17,7 @@ int main(int numpar, char *param[]) h = lib3270_session_new(""); printf("3270 session %p created\n]",h); -// lib3270_set_toggle(session,LIB3270_TOGGLE_DS_TRACE,1); + lib3270_set_toggle(h,LIB3270_TOGGLE_DS_TRACE,1); lib3270_set_url(h,url ? url : "tn3270://fandezhi.efglobe.com"); rc = lib3270_connect(h,120); -- libgit2 0.21.2