From 62dcf4f9d20c934639537947e7825cacf47488e2 Mon Sep 17 00:00:00 2001 From: Kelvin Sherlock Date: Tue, 19 Feb 2019 21:57:52 -0500 Subject: [PATCH] clean up socket stuff a little bit to compile better with msys2 --- src/scc.c | 2 +- src/scc.h | 7 +------ src/scc_imagewriter.c | 3 ++- src/scc_macdriver.c | 7 +++---- src/scc_socket_driver.c | 38 +++++++++++++++++--------------------- src/scc_windriver.c | 5 ++--- 6 files changed, 26 insertions(+), 36 deletions(-) diff --git a/src/scc.c b/src/scc.c index 4d4ea3b..b116ae8 100644 --- a/src/scc.c +++ b/src/scc.c @@ -6,6 +6,7 @@ */ #include "defc.h" +#include "scc.h" #include "scc_llap.h" #ifdef UNDER_CE @@ -25,7 +26,6 @@ extern int g_appletalk_turbo; /* my scc port 0 == channel A = slot 1 = c039/c03b */ /* port 1 == channel B = slot 2 = c038/c03a */ -#include "scc.h" #define SCC_R14_DPLL_SOURCE_BRG 0x100 #define SCC_R14_FM_MODE 0x200 diff --git a/src/scc.h b/src/scc.h index 50939ea..31c96e2 100644 --- a/src/scc.h +++ b/src/scc.h @@ -5,14 +5,13 @@ See LICENSE.txt for license (GPL v2) */ -#include - #ifdef _WIN32 # include #else # include # include # include +typedef int SOCKET; #endif #if defined(HPUX) || defined(__linux__) || defined(SOLARIS) || defined(MAC) || defined(__MACH__) || defined(_WIN32) @@ -28,10 +27,6 @@ #define SCC_MODEM_MAX_CMD_STR 128 -#ifndef SOCKET -# define SOCKET word32 /* for non-windows */ -#endif - STRUCT(Scc) { int port; int state /* 0 == disconnected, 1 == real serial port, 2 == socket, 3 == LocalTalk */; diff --git a/src/scc_imagewriter.c b/src/scc_imagewriter.c index 7ebca0e..e03854a 100644 --- a/src/scc_imagewriter.c +++ b/src/scc_imagewriter.c @@ -8,8 +8,9 @@ /* This is an interface between the SCC emulation and the Virtual Imagewriter. */ #include "defc.h" -#include "scc.h" #include "imagewriter.h" +#include "scc.h" + extern Scc scc_stat[2]; extern word32 g_vbl_count; diff --git a/src/scc_macdriver.c b/src/scc_macdriver.c index 15eab92..d7f7b14 100644 --- a/src/scc_macdriver.c +++ b/src/scc_macdriver.c @@ -7,17 +7,16 @@ /* This file contains the Mac serial calls */ +#ifdef MAC + #include "defc.h" #include "scc.h" -#ifndef _WIN32 -# include -#endif +#include extern Scc scc_stat[2]; extern word32 g_c025_val; -#ifdef MAC int scc_serial_mac_init(int port) { char str_buf[1024]; Scc *scc_ptr; diff --git a/src/scc_socket_driver.c b/src/scc_socket_driver.c index af038ce..1affefb 100644 --- a/src/scc_socket_driver.c +++ b/src/scc_socket_driver.c @@ -14,17 +14,16 @@ #ifndef UNDER_CE //OG #include #endif -#ifdef __CYGWIN__ + +#ifdef _WIN32 #include +#define socklen_t int #endif + extern Scc scc_stat[2]; extern int g_serial_modem[]; -#if !(defined _WIN32) -extern int h_errno; -#else -#define socklen_t int -#endif + int g_wsastartup_called = 0; typedef unsigned short USHORT; @@ -108,19 +107,17 @@ void scc_socket_maybe_open_incoming(int port, double dcycs) { sockfd = socket(AF_INET, SOCK_STREAM, 0); printf("sockfd ret: %d\n", sockfd); if(sockfd == -1) { - printf("socket ret: %d, errno: %d\n", sockfd, errno); + perror("socket"); scc_socket_close(port, 0, dcycs); scc_ptr->socket_state = -1; return; } - /* printf("socket ret: %d\n", sockfd); */ on = 1; ret = setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (char *)&on, sizeof(on)); if(ret < 0) { - printf("setsockopt REUSEADDR ret: %d, err:%d\n", - ret, errno); + perror("setsockopt REUSEADDR"); scc_socket_close(port, 0, dcycs); scc_ptr->socket_state = -1; return; @@ -138,7 +135,7 @@ void scc_socket_maybe_open_incoming(int port, double dcycs) { break; } /* else ret to bind was < 0 */ - printf("bind ret: %d, errno: %d\n", ret, errno); + perror("bind"); inc++; scc_socket_close_handle(sockfd); printf("Trying next port: %d\n", 6501 + port + inc); @@ -180,7 +177,7 @@ void scc_socket_open_outgoing(int port, double dcycs) { sockfd = socket(AF_INET, SOCK_STREAM, 0); printf("sockfd ret: %d\n", sockfd); if(sockfd == -1) { - printf("socket ret: %d, errno: %d\n", sockfd, errno); + perror("socket"); scc_socket_close(port, 1, dcycs); return; } @@ -190,8 +187,7 @@ void scc_socket_open_outgoing(int port, double dcycs) { ret = setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (char *)&on, sizeof(on)); if(ret < 0) { - printf("setsockopt REUSEADDR ret: %d, err:%d\n", - ret, errno); + perror("setsockopt REUSEADDR"); scc_socket_close(port, 1, dcycs); return; } @@ -218,9 +214,9 @@ void scc_socket_open_outgoing(int port, double dcycs) { hostentptr = gethostbyname((const char*)&scc_ptr->modem_cmd_str[0]); // OG Added Cast if(hostentptr == 0) { #if defined(_WIN32) - fatal_printf("Lookup host %s failed\n", &scc_ptr->modem_cmd_str[0]); + fatal_printf("gethostbyname %s failed\n", &scc_ptr->modem_cmd_str[0]); #else - fatal_printf("Lookup host %s failed, herrno: %d\n", &scc_ptr->modem_cmd_str[0], h_errno); + fatal_printf("gethostbyname %s failed: %s\n", &scc_ptr->modem_cmd_str[0], hstrerror(h_errno)); #endif scc_socket_close_handle(sockfd); scc_socket_close(port, 1, dcycs); @@ -234,7 +230,7 @@ void scc_socket_open_outgoing(int port, double dcycs) { ret = connect(sockfd, (struct sockaddr *)&sa_in, sizeof(sa_in)); if(ret < 0) { - printf("connect ret: %d, errno: %d\n", ret, errno); + perror("connect"); scc_socket_close_handle(sockfd); scc_socket_close(port, 1, dcycs); return; @@ -276,14 +272,14 @@ void scc_socket_make_nonblock(int port, double dcycs) { #else flags = fcntl(sockfd, F_GETFL, 0); if(flags == -1) { - printf("fcntl GETFL ret: %d, errno: %d\n", flags, errno); + perror("fcntl GETFL"); scc_socket_close(port, 1, dcycs); scc_ptr->socket_state = -1; return; } ret = fcntl(sockfd, F_SETFL, flags | O_NONBLOCK); if(ret == -1) { - printf("fcntl SETFL ret: %d, errno: %d\n", ret, errno); + perror("fcntl SETFL"); scc_socket_close(port, 1, dcycs); scc_ptr->socket_state = -1; return; @@ -374,12 +370,12 @@ void scc_accept_socket(int port, double dcycs) { /* For Linux, we need to set O_NONBLOCK on the rdwrfd */ flags = fcntl(rdwrfd, F_GETFL, 0); if(flags == -1) { - printf("fcntl GETFL ret: %d, errno: %d\n", flags,errno); + perror("fcntl GETFL"); return; } ret = fcntl(rdwrfd, F_SETFL, flags | O_NONBLOCK); if(ret == -1) { - printf("fcntl SETFL ret: %d, errno: %d\n", ret, errno); + perror("fcntl SETFL"); return; } #endif diff --git a/src/scc_windriver.c b/src/scc_windriver.c index 8fecd17..bc2d664 100644 --- a/src/scc_windriver.c +++ b/src/scc_windriver.c @@ -7,13 +7,13 @@ /* This file contains the Win32 COM1/COM2 calls */ +#ifdef _WIN32 + #include "defc.h" #include "scc.h" -#ifdef __CYGWIN__ #include #include -#endif #ifdef UNDER_CE #define vsnprintf _vsnprintf @@ -22,7 +22,6 @@ extern Scc scc_stat[2]; extern word32 g_c025_val; -#ifdef _WIN32 int scc_serial_win_init(int port) { COMMTIMEOUTS commtimeouts; TCHAR str_buf[8];