Commit 13d1732bc9ffc14209f8980dd2b20ce81f23d9c7
1 parent
48efc5cc
Exists in
master
and in
3 other branches
Adjustments in the API.
Showing
4 changed files
with
42 additions
and
43 deletions
Show diff stats
src/core/ctlr.c
| ... | ... | @@ -515,29 +515,35 @@ LIB3270_EXPORT int lib3270_field_addr(H3270 *hSession, int baddr) |
| 515 | 515 | return -1; |
| 516 | 516 | } |
| 517 | 517 | |
| 518 | -LIB3270_EXPORT int lib3270_get_field_attribute(H3270 *hSession, int baddr) | |
| 518 | +LIB3270_EXPORT LIB3270_FIELD_ATTRIBUTE lib3270_get_field_attribute(H3270 *hSession, int baddr) | |
| 519 | 519 | { |
| 520 | 520 | int sbaddr; |
| 521 | 521 | |
| 522 | 522 | FAIL_IF_NOT_ONLINE(hSession); |
| 523 | 523 | |
| 524 | 524 | if(!hSession->formatted) |
| 525 | - return errno = ENOTCONN; | |
| 525 | + { | |
| 526 | + errno = ENOTCONN; | |
| 527 | + return (LIB3270_FIELD_ATTRIBUTE) 0; | |
| 528 | + } | |
| 529 | + | |
| 530 | + if(baddr < 0) | |
| 531 | + baddr = lib3270_get_cursor_address(hSession); | |
| 526 | 532 | |
| 527 | 533 | sbaddr = baddr; |
| 528 | 534 | do |
| 529 | 535 | { |
| 530 | 536 | if(hSession->ea_buf[baddr].fa) |
| 531 | - return hSession->ea_buf[baddr].fa; | |
| 537 | + return (LIB3270_FIELD_ATTRIBUTE) hSession->ea_buf[baddr].fa; | |
| 538 | + | |
| 532 | 539 | DEC_BA(baddr); |
| 533 | 540 | } while (baddr != sbaddr); |
| 534 | 541 | |
| 535 | 542 | errno = EINVAL; |
| 536 | - return -1; | |
| 543 | + return (LIB3270_FIELD_ATTRIBUTE) 0; | |
| 537 | 544 | |
| 538 | 545 | } |
| 539 | 546 | |
| 540 | - | |
| 541 | 547 | /** |
| 542 | 548 | * @brief Get the length of the field at given buffer address. |
| 543 | 549 | * | ... | ... |
src/include/lib3270.h
| ... | ... | @@ -547,6 +547,14 @@ |
| 547 | 547 | LIB3270_EXPORT int lib3270_get_secure_host(H3270 *hSession); |
| 548 | 548 | |
| 549 | 549 | /** |
| 550 | + * @brief Get security state. | |
| 551 | + * | |
| 552 | + */ | |
| 553 | + LIB3270_EXPORT LIB3270_SSL_STATE lib3270_get_ssl_state(H3270 *session); | |
| 554 | + | |
| 555 | + LIB3270_EXPORT long lib3270_get_SSL_verify_result(H3270 *session); | |
| 556 | + | |
| 557 | + /** | |
| 550 | 558 | * @brief Get security state as text. |
| 551 | 559 | * |
| 552 | 560 | */ |
| ... | ... | @@ -971,8 +979,6 @@ |
| 971 | 979 | LIB3270_EXPORT int lib3270_is_secure(H3270 *h); |
| 972 | 980 | |
| 973 | 981 | LIB3270_EXPORT LIB3270_MESSAGE lib3270_lock_status(H3270 *h); |
| 974 | - LIB3270_EXPORT LIB3270_SSL_STATE lib3270_get_secure(H3270 *session); | |
| 975 | - LIB3270_EXPORT long lib3270_get_SSL_verify_result(H3270 *session); | |
| 976 | 982 | |
| 977 | 983 | /** |
| 978 | 984 | * Run main iteration. |
| ... | ... | @@ -1176,11 +1182,11 @@ |
| 1176 | 1182 | * @brief Get field attribute for a given buffer address. |
| 1177 | 1183 | * |
| 1178 | 1184 | * @param hSession Session handle. |
| 1179 | - * @param addr Buffer address of the field. | |
| 1185 | + * @param addr Buffer address of the field (-1 to use the cursor address). | |
| 1180 | 1186 | * |
| 1181 | - * @return field attribute or -1 when failed (sets errno). | |
| 1187 | + * @return field attribute or 0 when failed (sets errno). | |
| 1182 | 1188 | */ |
| 1183 | - LIB3270_EXPORT int lib3270_get_field_attribute(H3270 *hSession, int baddr); | |
| 1189 | + LIB3270_EXPORT LIB3270_FIELD_ATTRIBUTE lib3270_get_field_attribute(H3270 *hSession, int baddr); | |
| 1184 | 1190 | |
| 1185 | 1191 | /** |
| 1186 | 1192 | * @brief Get the length of the field at given buffer address. | ... | ... |
src/ssl/negotiate.c
| ... | ... | @@ -434,30 +434,17 @@ void ssl_info_callback(INFO_CONST SSL *s, int where, int ret) |
| 434 | 434 | |
| 435 | 435 | #endif /*]*/ |
| 436 | 436 | |
| 437 | -int popup_ssl_error(H3270 *hSession, int rc, const char *title, const char *summary, const char *body) | |
| 437 | +int popup_ssl_error(H3270 GNUC_UNUSED(*hSession), int rc, const char *title, const char *summary, const char *body) | |
| 438 | 438 | { |
| 439 | -#ifdef SSL_ENABLE_NOTIFICATION_WHEN_FAILED | |
| 440 | - | |
| 441 | - lib3270_write_log(hSession, "SSL", "%s", summary ); | |
| 442 | - return hSession->cbk.popup_ssl_error(hSession,rc,title,summary,body); | |
| 443 | - | |
| 444 | -#else | |
| 445 | - | |
| 446 | - lib3270_autoptr(char) message = NULL; | |
| 447 | - | |
| 448 | - if(body && *body) | |
| 449 | - message = lib3270_strdup_printf("%s - rc=%d",body,rc); | |
| 450 | - else if(rc) | |
| 451 | - message = lib3270_strdup_printf("%s (rc=%d)",strerror(rc),rc); | |
| 452 | - else | |
| 453 | - message = lib3270_strdup_printf("rc=%d",rc); | |
| 454 | - | |
| 455 | 439 | #ifdef _WIN32 |
| 456 | 440 | |
| 441 | + lib3270_autoptr(char) rcMessage = lib3270_strdup_printf("The error code was %d",rc); | |
| 442 | + | |
| 457 | 443 | const char *outMsg[] = { |
| 458 | 444 | title, |
| 459 | 445 | summary, |
| 460 | - message | |
| 446 | + (body ? body : ""), | |
| 447 | + rcMessage | |
| 461 | 448 | }; |
| 462 | 449 | |
| 463 | 450 | ReportEvent( |
| ... | ... | @@ -466,7 +453,7 @@ int popup_ssl_error(H3270 *hSession, int rc, const char *title, const char *summ |
| 466 | 453 | 1, |
| 467 | 454 | 0, |
| 468 | 455 | NULL, |
| 469 | - 3, | |
| 456 | + (sizeof(outMsg)/sizeof(outMsg[0])), | |
| 470 | 457 | 0, |
| 471 | 458 | outMsg, |
| 472 | 459 | NULL |
| ... | ... | @@ -474,18 +461,18 @@ int popup_ssl_error(H3270 *hSession, int rc, const char *title, const char *summ |
| 474 | 461 | |
| 475 | 462 | #else |
| 476 | 463 | |
| 477 | - lib3270_write_log( | |
| 478 | - hSession, | |
| 479 | - "SSL", | |
| 480 | - "%s - %s - %s", | |
| 481 | - title, | |
| 482 | - summary, | |
| 483 | - message | |
| 484 | - ); | |
| 464 | + lib3270_write_log(hSession, "SSL", "%s %s (rc=%d)", summary, (body ? body : ""), rc); | |
| 485 | 465 | |
| 486 | 466 | #endif // _WIN32 |
| 487 | 467 | |
| 468 | +#ifdef SSL_ENABLE_NOTIFICATION_WHEN_FAILED | |
| 469 | + | |
| 470 | + return hSession->cbk.popup_ssl_error(hSession,rc,title,summary,body); | |
| 471 | + | |
| 472 | +#else | |
| 473 | + | |
| 488 | 474 | return 0; |
| 475 | + | |
| 489 | 476 | #endif // SSL_ENABLE_NOTIFICATION_WHEN_FAILED |
| 490 | 477 | |
| 491 | 478 | } | ... | ... |
src/ssl/state.c
| ... | ... | @@ -47,7 +47,7 @@ |
| 47 | 47 | |
| 48 | 48 | LIB3270_EXPORT int lib3270_is_secure(H3270 *hSession) |
| 49 | 49 | { |
| 50 | - return lib3270_get_secure(hSession) == LIB3270_SSL_SECURE; | |
| 50 | + return lib3270_get_ssl_state(hSession) == LIB3270_SSL_SECURE; | |
| 51 | 51 | } |
| 52 | 52 | |
| 53 | 53 | LIB3270_EXPORT long lib3270_get_SSL_verify_result(H3270 *hSession) |
| ... | ... | @@ -60,7 +60,7 @@ LIB3270_EXPORT long lib3270_get_SSL_verify_result(H3270 *hSession) |
| 60 | 60 | return -1; |
| 61 | 61 | } |
| 62 | 62 | |
| 63 | -LIB3270_EXPORT LIB3270_SSL_STATE lib3270_get_secure(H3270 *hSession) | |
| 63 | +LIB3270_EXPORT LIB3270_SSL_STATE lib3270_get_ssl_state(H3270 *hSession) | |
| 64 | 64 | { |
| 65 | 65 | CHECK_SESSION_HANDLE(hSession); |
| 66 | 66 | return hSession->ssl.state; |
| ... | ... | @@ -365,7 +365,7 @@ void set_ssl_state(H3270 *hSession, LIB3270_SSL_STATE state) |
| 365 | 365 | |
| 366 | 366 | const char * lib3270_get_ssl_state_message(H3270 *hSession) |
| 367 | 367 | { |
| 368 | - if(lib3270_get_secure(hSession) != LIB3270_SSL_UNSECURE) | |
| 368 | + if(lib3270_get_ssl_state(hSession) != LIB3270_SSL_UNSECURE) | |
| 369 | 369 | { |
| 370 | 370 | const struct ssl_status_msg *info = get_ssl_status_msg(hSession); |
| 371 | 371 | if(info) |
| ... | ... | @@ -378,7 +378,7 @@ void set_ssl_state(H3270 *hSession, LIB3270_SSL_STATE state) |
| 378 | 378 | |
| 379 | 379 | const char * lib3270_get_ssl_state_icon_name(H3270 *hSession) |
| 380 | 380 | { |
| 381 | - if(lib3270_get_secure(hSession) != LIB3270_SSL_UNSECURE) | |
| 381 | + if(lib3270_get_ssl_state(hSession) != LIB3270_SSL_UNSECURE) | |
| 382 | 382 | { |
| 383 | 383 | const struct ssl_status_msg *info = get_ssl_status_msg(hSession); |
| 384 | 384 | if(info) |
| ... | ... | @@ -392,7 +392,7 @@ void set_ssl_state(H3270 *hSession, LIB3270_SSL_STATE state) |
| 392 | 392 | |
| 393 | 393 | const char * lib3270_get_ssl_state_description(H3270 *hSession) |
| 394 | 394 | { |
| 395 | - if(lib3270_get_secure(hSession) != LIB3270_SSL_UNSECURE) | |
| 395 | + if(lib3270_get_ssl_state(hSession) != LIB3270_SSL_UNSECURE) | |
| 396 | 396 | { |
| 397 | 397 | const struct ssl_status_msg *info = get_ssl_status_msg(hSession); |
| 398 | 398 | if(info) |
| ... | ... | @@ -408,7 +408,7 @@ void set_ssl_state(H3270 *hSession, LIB3270_SSL_STATE state) |
| 408 | 408 | |
| 409 | 409 | LIB3270_NOTIFY lib3270_get_ssl_state_icon(H3270 *hSession) |
| 410 | 410 | { |
| 411 | - if(lib3270_get_secure(hSession) != LIB3270_SSL_UNSECURE) | |
| 411 | + if(lib3270_get_ssl_state(hSession) != LIB3270_SSL_UNSECURE) | |
| 412 | 412 | { |
| 413 | 413 | const struct ssl_status_msg *info = get_ssl_status_msg(hSession); |
| 414 | 414 | if(info) | ... | ... |