Commit e59a573a7d814c1a5ef73417231e7003dad9c663

Authored by Perry Werneck
1 parent c3d86fdc

Incluindo métodos para obter informações da conexão ativa.

src/include/lib3270.h
... ... @@ -1133,7 +1133,6 @@
1133 1133  
1134 1134 LIB3270_EXPORT LIB3270_POINTER lib3270_get_pointer(H3270 *hSession, int baddr);
1135 1135  
1136   -
1137 1136 /**
1138 1137 * The host is TSO?
1139 1138 *
... ...
src/include/lib3270/session.h
... ... @@ -31,6 +31,7 @@
31 31  
32 32 #define LIB3270_SESSION_H_INCLUDED 1
33 33  
  34 + #include <sys/socket.h>
34 35 #include <lib3270/popup.h>
35 36  
36 37 struct lib3270_session_callbacks
... ... @@ -78,6 +79,8 @@
78 79 */
79 80 int LIB3270_EXPORT lib3270_set_session_callbacks(const struct lib3270_callbacks *cbk);
80 81  
  82 + LIB3270_EXPORT int lib3270_getpeername(H3270 *hSession, struct sockaddr *addr, socklen_t *addrlen);
  83 + LIB3270_EXPORT int lib3270_getsockname(H3270 *hSession, struct sockaddr *addr, socklen_t *addrlen);
81 84  
82 85 LIB3270_EXPORT struct lib3270_session_callbacks * lib3270_get_session_callbacks(H3270 *session, unsigned short sz);
83 86  
... ...
src/lib3270/util.c
... ... @@ -75,11 +75,12 @@
75 75 #include "utilc.h"
76 76 #include "popupsc.h"
77 77 #include "api.h"
  78 +
  79 +#include <lib3270/session.h>
78 80 #include <lib3270/selection.h>
79 81  
80 82 #define my_isspace(c) isspace((unsigned char)c)
81 83  
82   -
83 84 #if defined(_WIN32)
84 85  
85 86 int is_nt = 1;
... ... @@ -1048,3 +1049,32 @@ int gettimeofday(struct timeval *tv, void *ignored)
1048 1049 return hSession->pointer;
1049 1050  
1050 1051 }
  1052 +
  1053 + LIB3270_EXPORT int lib3270_getpeername(H3270 *hSession, struct sockaddr *addr, socklen_t *addrlen)
  1054 + {
  1055 + CHECK_SESSION_HANDLE(hSession);
  1056 +
  1057 + memset(addr,0,*addrlen);
  1058 +
  1059 + if(hSession->sock < 0) {
  1060 + errno = ENOTCONN;
  1061 + return -1;
  1062 + }
  1063 +
  1064 + return getpeername(hSession->sock, addr, addrlen);
  1065 +
  1066 + }
  1067 +
  1068 + LIB3270_EXPORT int lib3270_getsockname(H3270 *hSession, struct sockaddr *addr, socklen_t *addrlen)
  1069 + {
  1070 + CHECK_SESSION_HANDLE(hSession);
  1071 +
  1072 + memset(addr,0,*addrlen);
  1073 +
  1074 + if(hSession->sock < 0) {
  1075 + errno = ENOTCONN;
  1076 + return -1;
  1077 + }
  1078 +
  1079 + return getsockname(hSession->sock, addr, addrlen);
  1080 + }
... ...