Commit e78760681ebc7c453f98930112e7f8c200f3049d
1 parent
73f75e3f
Exists in
master
and in
3 other branches
Updating method for get/set URL.
Showing
4 changed files
with
18 additions
and
17 deletions
Show diff stats
.gitignore
src/include/lib3270.h
| @@ -459,10 +459,10 @@ | @@ -459,10 +459,10 @@ | ||
| 459 | * @param h Session handle. | 459 | * @param h Session handle. |
| 460 | * @param url URL of host to set in the format tn3270://hostname:service or tn3270s://hostname:service . | 460 | * @param url URL of host to set in the format tn3270://hostname:service or tn3270s://hostname:service . |
| 461 | * | 461 | * |
| 462 | - * @return Processed host url | 462 | + * @return 0 |
| 463 | * | 463 | * |
| 464 | */ | 464 | */ |
| 465 | - LIB3270_EXPORT const char * lib3270_set_url(H3270 *h, const char *url); | 465 | + LIB3270_EXPORT int lib3270_set_url(H3270 *h, const char *url); |
| 466 | 466 | ||
| 467 | /** | 467 | /** |
| 468 | * @brief Get hostname for the connect/reconnect operations. | 468 | * @brief Get hostname for the connect/reconnect operations. |
| @@ -489,7 +489,13 @@ | @@ -489,7 +489,13 @@ | ||
| 489 | 489 | ||
| 490 | LIB3270_EXPORT void lib3270_set_srvcname(H3270 *h, const char *srvc); | 490 | LIB3270_EXPORT void lib3270_set_srvcname(H3270 *h, const char *srvc); |
| 491 | 491 | ||
| 492 | - LIB3270_EXPORT const char * lib3270_get_url(H3270 *h, char *buffer, int len); | 492 | + /** |
| 493 | + * @brief Get HOST URL. | ||
| 494 | + * | ||
| 495 | + * @return TN3270 Connection URL. | ||
| 496 | + * | ||
| 497 | + */ | ||
| 498 | + LIB3270_EXPORT const char * lib3270_get_url(H3270 *hSession); | ||
| 493 | 499 | ||
| 494 | /** | 500 | /** |
| 495 | * @brief Get session options. | 501 | * @brief Get session options. |
src/lib3270/host.c
| @@ -169,6 +169,7 @@ LIB3270_EXPORT void lib3270_register_schange(H3270 *h, LIB3270_STATE tx, void (* | @@ -169,6 +169,7 @@ LIB3270_EXPORT void lib3270_register_schange(H3270 *h, LIB3270_STATE tx, void (* | ||
| 169 | 169 | ||
| 170 | st = (struct lib3270_state_callback *) lib3270_malloc(sizeof(struct lib3270_state_callback)); | 170 | st = (struct lib3270_state_callback *) lib3270_malloc(sizeof(struct lib3270_state_callback)); |
| 171 | st->func = func; | 171 | st->func = func; |
| 172 | + st->data = data; | ||
| 172 | 173 | ||
| 173 | if (h->st_last[tx]) | 174 | if (h->st_last[tx]) |
| 174 | h->st_last[tx]->next = st; | 175 | h->st_last[tx]->next = st; |
| @@ -231,20 +232,13 @@ static void update_host(H3270 *h) | @@ -231,20 +232,13 @@ static void update_host(H3270 *h) | ||
| 231 | 232 | ||
| 232 | } | 233 | } |
| 233 | 234 | ||
| 234 | -LIB3270_EXPORT const char * lib3270_get_url(H3270 *h, char *buffer, int len) | 235 | +LIB3270_EXPORT const char * lib3270_get_url(H3270 *hSession) |
| 235 | { | 236 | { |
| 236 | - CHECK_SESSION_HANDLE(h); | ||
| 237 | - | ||
| 238 | - snprintf(buffer,len,"%s://%s:%s", | ||
| 239 | - ((h->options & LIB3270_OPTION_SSL) == 0) ? "tn3270" : "tn3270s", | ||
| 240 | - h->host.current, | ||
| 241 | - h->host.srvc | ||
| 242 | - ); | ||
| 243 | - | ||
| 244 | - return buffer; | 237 | + CHECK_SESSION_HANDLE(hSession); |
| 238 | + return hSession->host.full; | ||
| 245 | } | 239 | } |
| 246 | 240 | ||
| 247 | -LIB3270_EXPORT const char * lib3270_set_url(H3270 *h, const char *n) | 241 | +LIB3270_EXPORT int lib3270_set_url(H3270 *h, const char *n) |
| 248 | { | 242 | { |
| 249 | CHECK_SESSION_HANDLE(h); | 243 | CHECK_SESSION_HANDLE(h); |
| 250 | 244 | ||
| @@ -289,7 +283,7 @@ LIB3270_EXPORT const char * lib3270_set_url(H3270 *h, const char *n) | @@ -289,7 +283,7 @@ LIB3270_EXPORT const char * lib3270_set_url(H3270 *h, const char *n) | ||
| 289 | } | 283 | } |
| 290 | 284 | ||
| 291 | if(!*hostname) | 285 | if(!*hostname) |
| 292 | - return h->host.current; | 286 | + return 0; |
| 293 | 287 | ||
| 294 | ptr = strchr(hostname,':'); | 288 | ptr = strchr(hostname,':'); |
| 295 | if(ptr) | 289 | if(ptr) |
| @@ -353,7 +347,7 @@ LIB3270_EXPORT const char * lib3270_set_url(H3270 *h, const char *n) | @@ -353,7 +347,7 @@ LIB3270_EXPORT const char * lib3270_set_url(H3270 *h, const char *n) | ||
| 353 | free(str); | 347 | free(str); |
| 354 | } | 348 | } |
| 355 | 349 | ||
| 356 | - return h->host.current; | 350 | + return 0; |
| 357 | } | 351 | } |
| 358 | 352 | ||
| 359 | LIB3270_EXPORT const char * lib3270_get_hostname(H3270 *h) | 353 | LIB3270_EXPORT const char * lib3270_get_hostname(H3270 *h) |
src/lib3270/testprogram/testprogram.c
| @@ -22,7 +22,7 @@ int main(int numpar, char *param[]) | @@ -22,7 +22,7 @@ int main(int numpar, char *param[]) | ||
| 22 | lib3270_set_url(h,url ? url : "tn3270://fandezhi.efglobe.com"); | 22 | lib3270_set_url(h,url ? url : "tn3270://fandezhi.efglobe.com"); |
| 23 | rc = lib3270_connect(h,120); | 23 | rc = lib3270_connect(h,120); |
| 24 | 24 | ||
| 25 | - printf("\nConnect exits with rc=%d\n",rc); | 25 | + printf("\nConnect %s exits with rc=%d\n",lib3270_get_url(h),rc); |
| 26 | 26 | ||
| 27 | lib3270_wait_for_ready(h,10); | 27 | lib3270_wait_for_ready(h,10); |
| 28 | 28 |