diff --git a/src/lib3270/html.c b/src/lib3270/html.c
index 006156c..9bcc2db 100644
--- a/src/lib3270/html.c
+++ b/src/lib3270/html.c
@@ -208,7 +208,7 @@
if(info->mode == HTML_MODE_TEXT)
return;
- trace("maxlength=%d",info->maxlength);
+// trace("maxlength=%d",info->maxlength);
if(info->maxlength < 1)
{
diff --git a/src/lib3270/iocalls.c b/src/lib3270/iocalls.c
index 99f3a47..bac34e3 100644
--- a/src/lib3270/iocalls.c
+++ b/src/lib3270/iocalls.c
@@ -570,13 +570,21 @@ void RemoveTimeOut(void * timer)
return remove_timeout(timer);
}
+#ifdef WIN32
void * AddInput(HANDLE source, H3270 *session, void (*fn)(H3270 *session))
+#else
+void * AddInput(int source, H3270 *session, void (*fn)(H3270 *session))
+#endif // WIN32
{
CHECK_SESSION_HANDLE(session);
return add_input(source,session,fn);
}
+#ifdef WIN32
void * AddExcept(HANDLE source, H3270 *session, void (*fn)(H3270 *session))
+#else
+void * AddExcept(int source, H3270 *session, void (*fn)(H3270 *session))
+#endif // WIN32
{
CHECK_SESSION_HANDLE(session);
return add_except(source,session,fn);
diff --git a/src/lib3270/proxy.c b/src/lib3270/proxy.c
index 780633d..07fe797 100644
--- a/src/lib3270/proxy.c
+++ b/src/lib3270/proxy.c
@@ -341,8 +341,7 @@ proxy_negotiate(int type, int fd, char *host, unsigned short port)
}
/* Sun PASSTHRU proxy. */
-static int
-proxy_passthru(int fd, char *host, unsigned short port)
+static int proxy_passthru(int fd, char *host, unsigned short port)
{
char *buf;
@@ -351,11 +350,12 @@ proxy_passthru(int fd, char *host, unsigned short port)
#if defined(X3270_TRACE) /*[*/
trace_dsn("Passthru Proxy: xmit '%.*s'", (int) (strlen(buf) - 2), buf);
- trace_netdata('>', (unsigned char *)buf, (int) strlen(buf));
+ trace_netdata(&h3270,'>', (unsigned char *)buf, (int) strlen(buf));
#endif /*]*/
- if (send(fd, buf, strlen(buf), 0) < 0) {
- popup_a_sockerr(NULL,"Passthru Proxy: send error");
+ if (send(fd, buf, strlen(buf), 0) < 0)
+ {
+ popup_a_sockerr(NULL,"Passthru Proxy: send error");
lib3270_free(buf);
return -1;
}
@@ -386,7 +386,7 @@ proxy_http(int fd, char *host, unsigned short port)
#if defined(X3270_TRACE) /*[*/
trace_dsn("HTTP Proxy: xmit '%.*s'\n", (int) (strlen(buf) - 2), buf);
- trace_netdata('>', (unsigned char *)buf, (int) strlen(buf));
+ trace_netdata(&h3270, '>', (unsigned char *)buf, (int) strlen(buf));
#endif /*]*/
if (send(fd, buf, strlen(buf), 0) < 0) {
@@ -403,7 +403,7 @@ proxy_http(int fd, char *host, unsigned short port)
#if defined(X3270_TRACE) /*[*/
trace_dsn("HTTP Proxy: xmit '%.*s'\n", (int) (strlen(buf) - 2), buf);
- trace_netdata('>', (unsigned char *)buf, (int) strlen(buf));
+ trace_netdata(&h3270, '>', (unsigned char *)buf, (int) strlen(buf));
#endif /*]*/
if (send(fd, buf, strlen(buf), 0) < 0) {
@@ -415,7 +415,7 @@ proxy_http(int fd, char *host, unsigned short port)
strcpy(buf, "\r\n");
#if defined(X3270_TRACE) /*[*/
trace_dsn("HTTP Proxy: xmit ''\n");
- trace_netdata('>', (unsigned char *)buf, strlen(buf));
+ trace_netdata(&h3270, '>', (unsigned char *)buf, strlen(buf));
#endif /*]*/
if (send(fd, buf, strlen(buf), 0) < 0) {
@@ -441,7 +441,7 @@ proxy_http(int fd, char *host, unsigned short port)
popup_an_error(NULL,"HTTP Proxy: server timeout");
#if defined(X3270_TRACE) /*[*/
if (nread)
- trace_netdata('<', (unsigned char *)rbuf, nread);
+ trace_netdata(&h3270, '<', (unsigned char *)rbuf, nread);
#endif /*]*/
return -1;
}
@@ -451,14 +451,14 @@ proxy_http(int fd, char *host, unsigned short port)
popup_a_sockerr(NULL,"HTTP Proxy: receive error");
#if defined(X3270_TRACE) /*[*/
if (nread)
- trace_netdata('<', (unsigned char *)rbuf, nread);
+ trace_netdata(&h3270, '<', (unsigned char *)rbuf, nread);
#endif /*]*/
return -1;
}
if (nr == 0) {
#if defined(X3270_TRACE) /*[*/
if (nread)
- trace_netdata('<', (unsigned char *)rbuf, nread);
+ trace_netdata(&h3270, '<', (unsigned char *)rbuf, nread);
#endif /*]*/
popup_an_error(NULL,"HTTP Proxy: unexpected EOF");
return -1;
@@ -475,7 +475,7 @@ proxy_http(int fd, char *host, unsigned short port)
rbuf[nread] = '\0';
#if defined(X3270_TRACE) /*[*/
- trace_netdata('<', (unsigned char *)rbuf, nread);
+ trace_netdata(&h3270, '<', (unsigned char *)rbuf, nread);
trace_dsn("HTTP Proxy: recv '%s'\n", rbuf);
#endif /*]*/
@@ -502,7 +502,7 @@ proxy_telnet(int fd, char *host, unsigned short port)
#if defined(X3270_TRACE) /*[*/
trace_dsn("TELNET Proxy: xmit '%.*s'", (int) (strlen(buf) - 2), buf);
- trace_netdata('>', (unsigned char *)buf, (int) strlen(buf));
+ trace_netdata(&h3270, '>', (unsigned char *)buf, (int) strlen(buf));
#endif /*]*/
if (send(fd, buf, strlen(buf), 0) < 0) {
@@ -735,7 +735,7 @@ proxy_socks5(int fd, char *host, unsigned short port, int force_d)
strcpy((char *)rbuf, "\005\001\000");
#if defined(X3270_TRACE) /*[*/
trace_dsn("SOCKS5 Proxy: xmit version 5 nmethods 1 (no auth)\n");
- trace_netdata('>', rbuf, 3);
+ trace_netdata(&h3270, '>', rbuf, 3);
#endif /*]*/
if (send(fd, (const char *) rbuf, 3, 0) < 0) {
popup_a_sockerr(NULL,"SOCKS5 Proxy: send error");
@@ -755,29 +755,32 @@ proxy_socks5(int fd, char *host, unsigned short port, int force_d)
FD_SET(fd, &rfds);
tv.tv_sec = 15;
tv.tv_usec = 0;
- if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) {
- popup_an_error(NULL,"SOCKS5 Proxy: server timeout");
+ if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0)
+ {
+ popup_an_error(&h3270,"SOCKS5 Proxy: server timeout");
#if defined(X3270_TRACE) /*[*/
- if (nread)
- trace_netdata('<', rbuf, nread);
+ if (nread)
+ trace_netdata(&h3270, '<', rbuf, nread);
#endif /*]*/
return -1;
}
nr = recv(fd, (char *) &rbuf[nread], 1, 0);
- if (nr < 0) {
- popup_a_sockerr(NULL,"SOCKS5 Proxy: receive error");
+ if (nr < 0)
+ {
+ popup_a_sockerr(&h3270,"SOCKS5 Proxy: receive error");
#if defined(X3270_TRACE) /*[*/
- if (nread)
- trace_netdata('<', rbuf, nread);
+ if (nread)
+ trace_netdata(&h3270, '<', rbuf, nread);
#endif /*]*/
return -1;
}
- if (nr == 0) {
+ if (nr == 0)
+ {
popup_a_sockerr(NULL,"SOCKS5 Proxy: unexpected EOF");
#if defined(X3270_TRACE) /*[*/
- if (nread)
- trace_netdata('<', rbuf, nread);
+ if (nread)
+ trace_netdata(&h3270, '<', rbuf, nread);
#endif /*]*/
return -1;
}
@@ -786,17 +789,17 @@ proxy_socks5(int fd, char *host, unsigned short port, int force_d)
}
#if defined(X3270_TRACE) /*[*/
- trace_netdata('<', rbuf, nread);
+ trace_netdata(&h3270, '<', rbuf, nread);
#endif /*]*/
- if (rbuf[0] != 0x05 || (rbuf[1] != 0 && rbuf[1] != 0xff)) {
- popup_an_error(NULL,"SOCKS5 Proxy: bad authentication response");
+ if (rbuf[0] != 0x05 || (rbuf[1] != 0 && rbuf[1] != 0xff))
+ {
+ popup_an_error(NULL,"SOCKS5 Proxy: bad authentication response");
return -1;
}
#if defined(X3270_TRACE) /*[*/
- trace_dsn("SOCKS5 Proxy: recv version %d method %d\n", rbuf[0],
- rbuf[1]);
+ trace_dsn("SOCKS5 Proxy: recv version %d method %d\n", rbuf[0],rbuf[1]);
#endif /*]*/
if (rbuf[1] == 0xff) {
@@ -836,7 +839,7 @@ proxy_socks5(int fd, char *host, unsigned short port, int force_d)
((ha.sa.sa_family == AF_INET)? "IPv4": "IPv6"),
use_name? host: nbuf,
port);
- trace_netdata('>', (unsigned char *)buf, s - buf);
+ trace_netdata(&h3270, '>', (unsigned char *)buf, s - buf);
#endif /*]*/
if (send(fd, buf, s - buf, 0) < 0) {
@@ -869,19 +872,21 @@ proxy_socks5(int fd, char *host, unsigned short port, int force_d)
}
nr = recv(fd, (char *) &r, 1, 0);
- if (nr < 0) {
+ if (nr < 0)
+ {
popup_a_sockerr(NULL,"SOCKS5 Proxy: receive error");
#if defined(X3270_TRACE) /*[*/
- if (nread)
- trace_netdata('<', (unsigned char *)buf, nread);
+ if (nread)
+ trace_netdata(&h3270, '<', (unsigned char *)buf, nread);
#endif /*]*/
return -1;
}
- if (nr == 0) {
- popup_an_error(NULL,"SOCKS5 Proxy: unexpected EOF");
+ if (nr == 0)
+ {
+ popup_an_error(&h3270, "SOCKS5 Proxy: unexpected EOF");
#if defined(X3270_TRACE) /*[*/
- if (nread)
- trace_netdata('<', (unsigned char *)buf, nread);
+ if (nread)
+ trace_netdata(&h3270, '<', (unsigned char *)buf, nread);
#endif /*]*/
return -1;
}
@@ -891,12 +896,12 @@ proxy_socks5(int fd, char *host, unsigned short port, int force_d)
switch (nread++) {
case 0:
- if (r != 0x05) {
- popup_an_error(NULL,"SOCKS5 Proxy: incorrect "
- "reply version 0x%02x", r);
+ if (r != 0x05)
+ {
+ popup_an_error(&h3270, "SOCKS5 Proxy: incorrect reply version 0x%02x", r);
#if defined(X3270_TRACE) /*[*/
if (nread)
- trace_netdata('<', (unsigned char *)buf, nread);
+ trace_netdata(&h3270, '<', (unsigned char *)buf, nread);
#endif /*]*/
return -1;
}
@@ -904,17 +909,16 @@ proxy_socks5(int fd, char *host, unsigned short port, int force_d)
case 1:
#if defined(X3270_TRACE) /*[*/
if (r != 0x00)
- trace_netdata('<', (unsigned char *)buf, nread);
+ trace_netdata(&h3270, '<', (unsigned char *)buf, nread);
#endif /*]*/
switch (r) {
case 0x00:
break;
case 0x01:
- popup_an_error(NULL,"SOCKS5 Proxy: server failure");
+ popup_an_error(&h3270, "SOCKS5 Proxy: server failure");
return -1;
case 0x02:
- popup_an_error(NULL,"SOCKS5 Proxy: connection not "
- "allowed");
+ popup_an_error(&h3270, "SOCKS5 Proxy: connection not allowed");
return -1;
case 0x03:
popup_an_error(NULL,"SOCKS5 Proxy: network "
@@ -961,11 +965,10 @@ proxy_socks5(int fd, char *host, unsigned short port, int force_d)
break;
#endif /*]*/
default:
- popup_an_error(NULL,"SOCKS5 Proxy: unknown server "
- "address type 0x%02x", r);
+ popup_an_error(&h3270, "SOCKS5 Proxy: unknown server address type 0x%02x", r);
#if defined(X3270_TRACE) /*[*/
if (nread)
- trace_netdata('<', (unsigned char *)buf, nread);
+ trace_netdata(&h3270, '<', (unsigned char *)buf, nread);
#endif /*]*/
return -1;
}
@@ -980,7 +983,7 @@ proxy_socks5(int fd, char *host, unsigned short port, int force_d)
}
#if defined(X3270_TRACE) /*[*/
- trace_netdata('<', (unsigned char *)buf, nread);
+ trace_netdata(&h3270, '<', (unsigned char *)buf, nread);
switch (buf[3]) {
case 0x01: /* IPv4 */
memcpy(&ha.sin.sin_addr, &buf[4], 4);
diff --git a/src/lib3270/telnet.c b/src/lib3270/telnet.c
index 971c653..12ee56f 100644
--- a/src/lib3270/telnet.c
+++ b/src/lib3270/telnet.c
@@ -210,7 +210,7 @@ static char vlnext;
// static unsigned short proxy_port = 0;
static int telnet_fsm(H3270 *session, unsigned char c);
-static void net_rawout(H3270 *session, unsigned const char *buf, int len);
+static void net_rawout(H3270 *session, unsigned const char *buf, size_t len);
static void check_in3270(H3270 *session);
static void store3270in(H3270 *hSession, unsigned char c);
static void check_linemode(H3270 *hSession, Boolean init);
@@ -992,7 +992,9 @@ LIB3270_EXPORT void lib3270_data_recv(H3270 *hSession, size_t nr, const unsigned
{
register const unsigned char * cp;
- trace_netdata('<', netrbuf, nr);
+ trace("%s: nr=%d",__FUNCTION__,nr);
+
+ trace_netdata(hSession, '<', netrbuf, nr);
hSession->ns_brcvd += nr;
for (cp = netrbuf; cp < (netrbuf + nr); cp++)
@@ -2096,15 +2098,20 @@ LIB3270_INTERNAL int lib3270_sock_send(H3270 *hSession, unsigned const char *buf
return -1;
}
-/*
- * net_rawout
- * Send out raw telnet data. We assume that there will always be enough
- * space to buffer what we want to transmit, so we don't handle EAGAIN or
- * EWOULDBLOCK.
+/**
+ * Send out raw telnet data.
+ *
+ * We assume that there will always be enough space to buffer what we want to transmit,
+ * so we don't handle EAGAIN or EWOULDBLOCK.
+ *
+ * @param hSession Session handle.
+ * @param buf Buffer to send.
+ * @param len Buffer length
+ *
*/
-static void net_rawout(H3270 *hSession, unsigned const char *buf, int len)
+static void net_rawout(H3270 *hSession, unsigned const char *buf, size_t len)
{
- trace_netdata('>', buf, len);
+ trace_netdata(hSession, '>', buf, len);
while (len)
{
@@ -2669,22 +2676,26 @@ opt(unsigned char c)
#define LINEDUMP_MAX 32
-void trace_netdata(char direction, unsigned const char *buf, int len)
+void trace_netdata(H3270 *hSession, char direction, unsigned const char *buf, int len)
{
int offset;
struct timeval ts;
double tdiff;
- if (!lib3270_get_toggle(&h3270,LIB3270_TOGGLE_DS_TRACE))
+ if (!lib3270_get_toggle(hSession,LIB3270_TOGGLE_DS_TRACE))
return;
+
(void) gettimeofday(&ts, (struct timezone *)NULL);
- if (IN_3270) {
+ if (IN_3270)
+ {
tdiff = ((1.0e6 * (double)(ts.tv_sec - h3270.ds_ts.tv_sec)) +
(double)(ts.tv_usec - h3270.ds_ts.tv_usec)) / 1.0e6;
trace_dsn("%c +%gs\n", direction, tdiff);
}
- h3270.ds_ts = ts;
- for (offset = 0; offset < len; offset++) {
+
+ hSession->ds_ts = ts;
+ for (offset = 0; offset < len; offset++)
+ {
if (!(offset % LINEDUMP_MAX))
trace_dsn("%s%c 0x%-3x ",
(offset ? "\n" : ""), direction, offset);
diff --git a/src/lib3270/telnetc.h b/src/lib3270/telnetc.h
index d4ef4fe..99fa1b7 100644
--- a/src/lib3270/telnetc.h
+++ b/src/lib3270/telnetc.h
@@ -60,7 +60,7 @@ LIB3270_INTERNAL void space3270out(H3270 *hSession, int n);
// LIB3270_INTERNAL char *net_proxy_port(void);
#if defined(X3270_TRACE)
- LIB3270_INTERNAL void trace_netdata(char direction, unsigned const char *buf, int len);
+ LIB3270_INTERNAL void trace_netdata(H3270 *hSession, char direction, unsigned const char *buf, int len);
#else
#define trace_netdata(direction, buf, len) /* */
#endif // X3270_TRACE
--
libgit2 0.21.2