Commit 65847bff3e2dd3525e7efee77793b51efef2afec
Exists in
master
and in
3 other branches
Merge branch 'master'
Showing
3 changed files
with
17 additions
and
8 deletions
Show diff stats
src/core/host.c
@@ -219,20 +219,22 @@ void lib3270_st_changed(H3270 *h, LIB3270_STATE tx, int mode) | @@ -219,20 +219,22 @@ void lib3270_st_changed(H3270 *h, LIB3270_STATE tx, int mode) | ||
219 | trace("%s ends",__FUNCTION__); | 219 | trace("%s ends",__FUNCTION__); |
220 | } | 220 | } |
221 | 221 | ||
222 | -static void update_host(H3270 *h) | 222 | +static void update_url(H3270 *hSession) |
223 | { | 223 | { |
224 | - Replace(h->host.full, | 224 | + Replace(hSession->host.full, |
225 | lib3270_strdup_printf( | 225 | lib3270_strdup_printf( |
226 | "%s%s:%s", | 226 | "%s%s:%s", |
227 | #ifdef HAVE_LIBSSL | 227 | #ifdef HAVE_LIBSSL |
228 | - (h->ssl.enabled ? "tn3270s://" : "tn3270://"), | 228 | + (hSession->ssl.enabled ? "tn3270s://" : "tn3270://"), |
229 | #else | 229 | #else |
230 | "tn3270://", | 230 | "tn3270://", |
231 | #endif // HAVE_LIBSSL | 231 | #endif // HAVE_LIBSSL |
232 | - h->host.current, | ||
233 | - h->host.srvc | 232 | + hSession->host.current, |
233 | + hSession->host.srvc | ||
234 | )); | 234 | )); |
235 | 235 | ||
236 | + hSession->cbk.update_url(hSession, hSession->host.full); | ||
237 | + | ||
236 | } | 238 | } |
237 | 239 | ||
238 | LIB3270_EXPORT int lib3270_set_luname(H3270 *hSession, const char *luname) | 240 | LIB3270_EXPORT int lib3270_set_luname(H3270 *hSession, const char *luname) |
@@ -381,7 +383,7 @@ LIB3270_EXPORT int lib3270_set_url(H3270 *h, const char *n) | @@ -381,7 +383,7 @@ LIB3270_EXPORT int lib3270_set_url(H3270 *h, const char *n) | ||
381 | } | 383 | } |
382 | 384 | ||
383 | // Notifica atualização | 385 | // Notifica atualização |
384 | - update_host(h); | 386 | + update_url(h); |
385 | 387 | ||
386 | return 0; | 388 | return 0; |
387 | } | 389 | } |
@@ -398,7 +400,7 @@ LIB3270_EXPORT void lib3270_set_hostname(H3270 *h, const char *hostname) | @@ -398,7 +400,7 @@ LIB3270_EXPORT void lib3270_set_hostname(H3270 *h, const char *hostname) | ||
398 | { | 400 | { |
399 | CHECK_SESSION_HANDLE(h); | 401 | CHECK_SESSION_HANDLE(h); |
400 | Replace(h->host.current,strdup(hostname)); | 402 | Replace(h->host.current,strdup(hostname)); |
401 | - update_host(h); | 403 | + update_url(h); |
402 | } | 404 | } |
403 | 405 | ||
404 | LIB3270_EXPORT const char * lib3270_get_srvcname(const H3270 *h) | 406 | LIB3270_EXPORT const char * lib3270_get_srvcname(const H3270 *h) |
@@ -412,7 +414,7 @@ LIB3270_EXPORT void lib3270_set_srvcname(H3270 *h, const char *srvc) | @@ -412,7 +414,7 @@ LIB3270_EXPORT void lib3270_set_srvcname(H3270 *h, const char *srvc) | ||
412 | { | 414 | { |
413 | CHECK_SESSION_HANDLE(h); | 415 | CHECK_SESSION_HANDLE(h); |
414 | Replace(h->host.srvc,strdup(srvc)); | 416 | Replace(h->host.srvc,strdup(srvc)); |
415 | - update_host(h); | 417 | + update_url(h); |
416 | } | 418 | } |
417 | 419 | ||
418 | LIB3270_EXPORT const char * lib3270_get_host(const H3270 *h) | 420 | LIB3270_EXPORT const char * lib3270_get_host(const H3270 *h) |
src/core/session.c
@@ -276,6 +276,11 @@ static void default_update_luname(H3270 GNUC_UNUSED(*session), const char GNUC_U | @@ -276,6 +276,11 @@ static void default_update_luname(H3270 GNUC_UNUSED(*session), const char GNUC_U | ||
276 | { | 276 | { |
277 | } | 277 | } |
278 | 278 | ||
279 | +static void default_update_url(H3270 GNUC_UNUSED(*session), const char GNUC_UNUSED(*url)) | ||
280 | +{ | ||
281 | +} | ||
282 | + | ||
283 | + | ||
279 | void lib3270_reset_callbacks(H3270 *hSession) | 284 | void lib3270_reset_callbacks(H3270 *hSession) |
280 | { | 285 | { |
281 | // Default calls | 286 | // Default calls |
@@ -309,6 +314,7 @@ void lib3270_reset_callbacks(H3270 *hSession) | @@ -309,6 +314,7 @@ void lib3270_reset_callbacks(H3270 *hSession) | ||
309 | hSession->cbk.load = load; | 314 | hSession->cbk.load = load; |
310 | hSession->cbk.set_peer_certificate = set_peer_certificate; | 315 | hSession->cbk.set_peer_certificate = set_peer_certificate; |
311 | hSession->cbk.update_luname = default_update_luname; | 316 | hSession->cbk.update_luname = default_update_luname; |
317 | + hSession->cbk.update_url = default_update_url; | ||
312 | } | 318 | } |
313 | 319 | ||
314 | static void lib3270_session_init(H3270 *hSession, const char *model, const char *charset) | 320 | static void lib3270_session_init(H3270 *hSession, const char *model, const char *charset) |
src/include/lib3270/session.h
@@ -66,6 +66,7 @@ | @@ -66,6 +66,7 @@ | ||
66 | void (*update_model)(H3270 *session, const char *name, int model, int rows, int cols); | 66 | void (*update_model)(H3270 *session, const char *name, int model, int rows, int cols); |
67 | void (*update_selection)(H3270 *session, int start, int end); | 67 | void (*update_selection)(H3270 *session, int start, int end); |
68 | void (*update_ssl)(H3270 *session, LIB3270_SSL_STATE state); | 68 | void (*update_ssl)(H3270 *session, LIB3270_SSL_STATE state); |
69 | + void (*update_url)(H3270 *session, const char *url); | ||
69 | 70 | ||
70 | void (*set_timer)(H3270 *session, unsigned char on); | 71 | void (*set_timer)(H3270 *session, unsigned char on); |
71 | void (*erase)(H3270 *session); | 72 | void (*erase)(H3270 *session); |