diff --git a/Release/dump1090.exe b/Release/dump1090.exe index cd4dcd0..3e0f87f 100644 Binary files a/Release/dump1090.exe and b/Release/dump1090.exe differ diff --git a/Release/view1090.exe b/Release/view1090.exe index c4855b7..9d001f8 100644 Binary files a/Release/view1090.exe and b/Release/view1090.exe differ diff --git a/anet.c b/anet.c index cbd7c6c..af7c810 100644 --- a/anet.c +++ b/anet.c @@ -139,6 +139,9 @@ int anetResolve(char *err, char *host, char *ipbuf) static int anetCreateSocket(char *err, int domain) { int s, on = 1; if ((s = socket(domain, SOCK_STREAM, 0)) == -1) { +#ifdef _WIN32 + errno = WSAGetLastError(); +#endif anetSetError(err, "creating socket: %s", strerror(errno)); return ANET_ERR; } diff --git a/coaa1090.obj b/coaa1090.obj index acbae5f..4c67a3d 100644 Binary files a/coaa1090.obj and b/coaa1090.obj differ diff --git a/dump1090-win.1.08.0905.14.zip b/dump1090-win.1.08.2705.14.zip similarity index 90% rename from dump1090-win.1.08.0905.14.zip rename to dump1090-win.1.08.2705.14.zip index 675d115..b40d5c6 100644 Binary files a/dump1090-win.1.08.0905.14.zip and b/dump1090-win.1.08.2705.14.zip differ diff --git a/dump1090.c b/dump1090.c index 93482a8..3d683ae 100644 --- a/dump1090.c +++ b/dump1090.c @@ -132,6 +132,8 @@ void modesInit(void) { {Modes.net_output_raw_size = MODES_RAWOUT_BUF_FLUSH;} if (Modes.net_output_raw_rate > (MODES_RAWOUT_BUF_RATE)) {Modes.net_output_raw_rate = MODES_RAWOUT_BUF_RATE;} + if (Modes.net_sndbuf_size > (MODES_NET_SNDBUF_MAX)) + {Modes.net_sndbuf_size = MODES_NET_SNDBUF_MAX;} // Initialise the Block Timers to something half sensible ftime(&Modes.stSystemTimeBlk); @@ -414,6 +416,7 @@ void showHelp(void) { "--net-ro-size TCP raw output minimum size (default: 0)\n" "--net-ro-rate TCP raw output memory flush rate (default: 0)\n" "--net-heartbeat TCP heartbeat rate in seconds (default: 60 sec)\n" +"--net-buffer TCP buffer size 64Kb * (2^n) (default: n=0, 64Kb)\n" "--lat Reference/receiver latitude for surface posn (opt)\n" "--lon Reference/receiver longitude for surface posn (opt)\n" "--fix Enable single-bits error correction using CRC\n" @@ -561,6 +564,8 @@ int main(int argc, char **argv) { Modes.net_http_port = atoi(argv[++j]); } else if (!strcmp(argv[j],"--net-sbs-port") && more) { Modes.net_output_sbs_port = atoi(argv[++j]); + } else if (!strcmp(argv[j],"--net-buffer") && more) { + Modes.net_sndbuf_size = atoi(argv[++j]); } else if (!strcmp(argv[j],"--onlyaddr")) { Modes.onlyaddr = 1; } else if (!strcmp(argv[j],"--metric")) { diff --git a/dump1090.exe b/dump1090.exe index cd4dcd0..3e0f87f 100644 Binary files a/dump1090.exe and b/dump1090.exe differ diff --git a/dump1090.h b/dump1090.h index 52b2933..ad74c26 100644 --- a/dump1090.h +++ b/dump1090.h @@ -37,7 +37,7 @@ // MinorVer changes when additional features are added, but not for bug fixes (range 00-99) // DayDate & Year changes for all changes, including for bug fixes. It represent the release date of the update // -#define MODES_DUMP1090_VERSION "1.08.0905.14" +#define MODES_DUMP1090_VERSION "1.08.2705.14" // ============================= Include files ========================== @@ -175,6 +175,7 @@ #define MODES_NET_HTTP_PORT 8080 #define MODES_CLIENT_BUF_SIZE 1024 #define MODES_NET_SNDBUF_SIZE (1024*64) +#define MODES_NET_SNDBUF_MAX (7) #ifndef HTMLPATH #define HTMLPATH "./public_html" // default path for gmap.html etc @@ -294,6 +295,7 @@ struct { // Internal state int net_output_beast_port; // Beast output TCP port int net_input_beast_port; // Beast input TCP port int net_http_port; // HTTP port + int net_sndbuf_size; // TCP output buffer size (64Kb * 2^n) int quiet; // Suppress stdout int interactive; // Interactive mode int interactive_rows; // Interactive mode: max number of rows diff --git a/net_io.c b/net_io.c index 9f430a7..9462154 100644 --- a/net_io.c +++ b/net_io.c @@ -119,7 +119,7 @@ struct client * modesAcceptClients(void) { c->fd = fd; c->buflen = 0; Modes.clients = c; - anetSetSendBuffer(Modes.aneterr,fd,MODES_NET_SNDBUF_SIZE); + anetSetSendBuffer(Modes.aneterr,fd, (MODES_NET_SNDBUF_SIZE << Modes.net_sndbuf_size)); if (services[j] == Modes.sbsos) Modes.stat_sbs_connections++; if (services[j] == Modes.ros) Modes.stat_raw_connections++;