From d58165ff939d2add1d8a435e52948a97273c102c Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 1 Nov 2019 10:57:00 -0300 Subject: [PATCH] Fixing windows build. --- src/core/iocalls.c | 2 +- src/core/windows/connect.c | 44 +++++++++++++++----------------------------- 2 files changed, 16 insertions(+), 30 deletions(-) diff --git a/src/core/iocalls.c b/src/core/iocalls.c index 9d3d49a..d68eb53 100644 --- a/src/core/iocalls.c +++ b/src/core/iocalls.c @@ -531,7 +531,7 @@ int non_blocking(H3270 *hSession, Boolean on) WSASetLastError(0); u_long iMode= on ? 1 : 0; - if(ioctlsocket(hSession->sock,FIONBIO,&iMode)) + if(ioctlsocket(hSession->connection.sock,FIONBIO,&iMode)) { lib3270_popup_dialog( hSession, LIB3270_NOTIFY_ERROR, diff --git a/src/core/windows/connect.c b/src/core/windows/connect.c index 5c4fd54..2cc0a0b 100644 --- a/src/core/windows/connect.c +++ b/src/core/windows/connect.c @@ -47,7 +47,7 @@ #include #endif // HAVE_ICONV -#define SOCK_CLOSE(s) closesocket(s->sock); s->sock = -1; +#define SOCK_CLOSE(s) closesocket(s->connection.sock); s->connection.sock = -1; #include "hostc.h" #include "trace_dsc.h" @@ -70,7 +70,7 @@ static void net_connected(H3270 *hSession, int GNUC_UNUSED(fd), LIB3270_IO_FLAG hSession->xio.write = NULL; } - if(getsockopt(hSession->sock, SOL_SOCKET, SO_ERROR, (char *) &err, &len) < 0) + if(getsockopt(hSession->connection.sock, SOL_SOCKET, SO_ERROR, (char *) &err, &len) < 0) { lib3270_disconnect(hSession); lib3270_popup_dialog( hSession, @@ -97,8 +97,8 @@ static void net_connected(H3270 *hSession, int GNUC_UNUSED(fd), LIB3270_IO_FLAG return; } - hSession->xio.except = lib3270_add_poll_fd(hSession,hSession->sock,LIB3270_IO_FLAG_EXCEPTION,net_exception,0); - hSession->xio.read = lib3270_add_poll_fd(hSession,hSession->sock,LIB3270_IO_FLAG_READ,net_input,0); + hSession->xio.except = lib3270_add_poll_fd(hSession,hSession->connection.sock,LIB3270_IO_FLAG_EXCEPTION,net_exception,0); + hSession->xio.read = lib3270_add_poll_fd(hSession,hSession->connection.sock,LIB3270_IO_FLAG_READ,net_input,0); #if defined(HAVE_LIBSSL) if(hSession->ssl.con && hSession->ssl.state == LIB3270_SSL_UNDEFINED) @@ -187,10 +187,10 @@ static void sockstart(H3270 *session) status_connecting(hSession); - for(rp = result; hSession->sock < 0 && rp != NULL; rp = rp->ai_next) + for(rp = result; hSession->connection.sock < 0 && rp != NULL; rp = rp->ai_next) { - hSession->sock = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); - if(hSession->sock < 0) + hSession->connection.sock = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); + if(hSession->connection.sock < 0) { ((struct resolver *) host)->rc = errno; ((struct resolver *) host)->message = strerror(errno); @@ -198,7 +198,7 @@ static void sockstart(H3270 *session) } // Connected! - if(connect(hSession->sock, rp->ai_addr, rp->ai_addrlen)) + if(connect(hSession->connection.sock, rp->ai_addr, rp->ai_addrlen)) { SOCK_CLOSE(hSession); ((struct resolver *) host)->rc = errno; @@ -222,7 +222,7 @@ int net_reconnect(H3270 *hSession, int seconds) sockstart(hSession); - if(lib3270_run_task(hSession, background_connect, &host) || hSession->sock < 0) + if(lib3270_run_task(hSession, background_connect, &host) || hSession->connection.sock < 0) { lib3270_autoptr(char) message = lib3270_strdup_printf(_( "Can't connect to %s"), lib3270_get_url(hSession)); @@ -326,7 +326,7 @@ int net_reconnect(H3270 *hSession, int seconds) WSASetLastError(0); int optval = lib3270_get_toggle(hSession,LIB3270_TOGGLE_KEEP_ALIVE) ? 1 : 0; - if (setsockopt(hSession->sock, SOL_SOCKET, SO_KEEPALIVE, (char *)&optval, sizeof(optval)) < 0) + if (setsockopt(hSession->connection.sock, SOL_SOCKET, SO_KEEPALIVE, (char *)&optval, sizeof(optval)) < 0) { char buffer[4096]; snprintf(buffer,4095,N_( "Can't %s network keep-alive" ), optval ? _( "enable" ) : _( "disable" )); @@ -345,7 +345,7 @@ int net_reconnect(H3270 *hSession, int seconds) } optval = 1; - if (setsockopt(hSession->sock, SOL_SOCKET, SO_OOBINLINE, (char *)&optval,sizeof(optval)) < 0) + if (setsockopt(hSession->connection.sock, SOL_SOCKET, SO_OOBINLINE, (char *)&optval,sizeof(optval)) < 0) { lib3270_popup_dialog( hSession, LIB3270_NOTIFY_ERROR, @@ -356,25 +356,11 @@ int net_reconnect(H3270 *hSession, int seconds) return errno = ENOTCONN; } - // set options for inline out-of-band data and keepalives - - /* -#if defined(OMTU) - else if (setsockopt(hSession->sock, SOL_SOCKET, SO_SNDBUF, (char *)&mtu,sizeof(mtu)) < 0) - { - popup_a_sockerr(hSession, N_( "setsockopt(%s)" ), "SO_SNDBUF"); - SOCK_CLOSE(hSession); - } -#endif - - */ - // Connecting, set callbacks, wait for connection - hSession->cstate = LIB3270_PENDING; + lib3270_set_cstate(hSession, LIB3270_PENDING); lib3270_st_changed(hSession, LIB3270_STATE_HALF_CONNECT, True); - hSession->xio.write = lib3270_add_poll_fd(hSession,hSession->sock,LIB3270_IO_FLAG_WRITE,net_connected,0); - // hSession->ns_write_id = AddOutput(hSession->sock, hSession, net_connected); + hSession->xio.write = lib3270_add_poll_fd(hSession,hSession->connection.sock,LIB3270_IO_FLAG_WRITE,net_connected,0); trace("%s: Connection in progress",__FUNCTION__); @@ -386,7 +372,7 @@ int net_reconnect(H3270 *hSession, int seconds) { lib3270_main_iterate(hSession,1); - switch(hSession->cstate) + switch(hSession->connection.state) { case LIB3270_PENDING: case LIB3270_CONNECTED_INITIAL: @@ -405,7 +391,7 @@ int net_reconnect(H3270 *hSession, int seconds) return 0; default: - lib3270_write_log(hSession,"connect", "%s: State changed to unexpected state %d",__FUNCTION__,hSession->cstate); + lib3270_write_log(hSession,"connect", "%s: State changed to unexpected state %d",__FUNCTION__,hSession->connection.state); return -1; } -- libgit2 0.21.2