Commit 2ec23314a30431f5df07f27032dab975ef9733b2
1 parent
e77aae75
Exists in
master
and in
3 other branches
Improving revision test.
Showing
2 changed files
with
22 additions
and
4 deletions
Show diff stats
src/core/session.c
@@ -558,14 +558,22 @@ LIB3270_EXPORT char lib3270_get_session_id(H3270 *hSession) | @@ -558,14 +558,22 @@ LIB3270_EXPORT char lib3270_get_session_id(H3270 *hSession) | ||
558 | return hSession->id; | 558 | return hSession->id; |
559 | } | 559 | } |
560 | 560 | ||
561 | -struct lib3270_session_callbacks * lib3270_get_session_callbacks(H3270 *session, unsigned short sz) | 561 | +struct lib3270_session_callbacks * lib3270_get_session_callbacks(H3270 *hSession, const char *revision, unsigned short sz) |
562 | { | 562 | { |
563 | - CHECK_SESSION_HANDLE(session); | 563 | + if(revision && strcasecmp(revision,"20200803") < 0) |
564 | + { | ||
565 | + debug("%s: Revision test was %d",__FUNCTION__,strcasecmp(revision,"20200803")); | ||
566 | + errno = EINVAL; | ||
567 | + return NULL; | ||
568 | + } | ||
564 | 569 | ||
565 | if(sz != sizeof(struct lib3270_session_callbacks)) | 570 | if(sz != sizeof(struct lib3270_session_callbacks)) |
571 | + { | ||
572 | + errno = EINVAL; | ||
566 | return NULL; | 573 | return NULL; |
574 | + } | ||
567 | 575 | ||
568 | - return &session->cbk; | 576 | + return &hSession->cbk; |
569 | } | 577 | } |
570 | 578 | ||
571 | 579 |
src/include/lib3270/session.h
@@ -104,7 +104,17 @@ | @@ -104,7 +104,17 @@ | ||
104 | LIB3270_EXPORT int lib3270_getpeername(H3270 *hSession, struct sockaddr *addr, socklen_t *addrlen); | 104 | LIB3270_EXPORT int lib3270_getpeername(H3270 *hSession, struct sockaddr *addr, socklen_t *addrlen); |
105 | LIB3270_EXPORT int lib3270_getsockname(H3270 *hSession, struct sockaddr *addr, socklen_t *addrlen); | 105 | LIB3270_EXPORT int lib3270_getsockname(H3270 *hSession, struct sockaddr *addr, socklen_t *addrlen); |
106 | 106 | ||
107 | - LIB3270_EXPORT struct lib3270_session_callbacks * lib3270_get_session_callbacks(H3270 *session, unsigned short sz); | 107 | + /** |
108 | + * @brief Get lib3270 callback table. | ||
109 | + * | ||
110 | + * @param hSession TN3270 Session. | ||
111 | + . @param revision Expected lib3270 revision. | ||
112 | + * @param sz Expected lib3270_session_callbacks struct length. | ||
113 | + * | ||
114 | + * @return Callback table if ok, NULL if failed. | ||
115 | + * | ||
116 | + */ | ||
117 | + LIB3270_EXPORT struct lib3270_session_callbacks * lib3270_get_session_callbacks(H3270 *hSession, const char *revision, unsigned short sz); | ||
108 | 118 | ||
109 | #endif // LIB3270_SESSION_H_INCLUDED | 119 | #endif // LIB3270_SESSION_H_INCLUDED |
110 | 120 |