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 | 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 | 570 | if(sz != sizeof(struct lib3270_session_callbacks)) |
571 | + { | |
572 | + errno = EINVAL; | |
566 | 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 | 104 | LIB3270_EXPORT int lib3270_getpeername(H3270 *hSession, struct sockaddr *addr, socklen_t *addrlen); |
105 | 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 | 119 | #endif // LIB3270_SESSION_H_INCLUDED |
110 | 120 | ... | ... |