svn commit: r438615 - in head/comms/hamlib: . files

Stephen Hurd shurd at FreeBSD.org
Sun Apr 16 03:12:09 UTC 2017


Author: shurd
Date: Sun Apr 16 03:12:08 2017
New Revision: 438615
URL: https://svnweb.freebsd.org/changeset/ports/438615

Log:
  Small fixes for rig type 2
  
  1) Disable Nagle on the socket since all queries are sent as a single
     string
  
  2) Stop using sizeof("\n") to get the length of the string "\n"
  
  These need to be submitted upstream as well.

Added:
  head/comms/hamlib/files/patch-dummy_netrigctl.c   (contents, props changed)
  head/comms/hamlib/files/patch-src_network.c   (contents, props changed)
Modified:
  head/comms/hamlib/Makefile

Modified: head/comms/hamlib/Makefile
==============================================================================
--- head/comms/hamlib/Makefile	Sun Apr 16 02:40:18 2017	(r438614)
+++ head/comms/hamlib/Makefile	Sun Apr 16 03:12:08 2017	(r438615)
@@ -3,6 +3,7 @@
 
 PORTNAME=	hamlib
 PORTVERSION=	3.1
+PORTREVISION=	1
 CATEGORIES=	comms hamradio
 MASTER_SITES=	SF
 

Added: head/comms/hamlib/files/patch-dummy_netrigctl.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/comms/hamlib/files/patch-dummy_netrigctl.c	Sun Apr 16 03:12:08 2017	(r438615)
@@ -0,0 +1,177 @@
+--- dummy/netrigctl.c.orig	2017-04-16 02:56:42 UTC
++++ dummy/netrigctl.c
+@@ -54,7 +54,7 @@ static int netrigctl_transaction(RIG *ri
+   if (ret != RIG_OK)
+ 	return ret;
+ 
+-  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", sizeof("\n"));
++  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1);
+   if (ret < 0)
+ 	return ret;
+ 
+@@ -87,18 +87,18 @@ static int netrigctl_open(RIG *rig)
+   if (prot_ver < RIGCTLD_PROT_VER)
+ 	  return -RIG_EPROTO;
+ 
+-  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", sizeof("\n"));
++  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1);
+   if (ret <= 0)
+ 	return (ret < 0) ? ret : -RIG_EPROTO;
+ 
+-  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", sizeof("\n"));
++  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1);
+   if (ret <= 0)
+ 	return (ret < 0) ? ret : -RIG_EPROTO;
+ 
+   rs->itu_region = atoi(buf);
+ 
+   for (i=0; i<FRQRANGESIZ; i++) {
+-	ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", sizeof("\n"));
++	ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1);
+ 	if (ret <= 0)
+ 		return (ret < 0) ? ret : -RIG_EPROTO;
+ 
+@@ -117,7 +117,7 @@ static int netrigctl_open(RIG *rig)
+ 		break;
+   }
+   for (i=0; i<FRQRANGESIZ; i++) {
+-	ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", sizeof("\n"));
++	ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1);
+ 	if (ret <= 0)
+ 		return (ret < 0) ? ret : -RIG_EPROTO;
+ 
+@@ -136,7 +136,7 @@ static int netrigctl_open(RIG *rig)
+ 		break;
+   }
+   for (i=0; i<TSLSTSIZ; i++) {
+-	ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", sizeof("\n"));
++	ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1);
+   	if (ret <= 0)
+ 		return (ret < 0) ? ret : -RIG_EPROTO;
+ 
+@@ -150,7 +150,7 @@ static int netrigctl_open(RIG *rig)
+   }
+ 
+   for (i=0; i<FLTLSTSIZ; i++) {
+-	ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", sizeof("\n"));
++	ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1);
+   	if (ret <= 0)
+ 		return (ret < 0) ? ret : -RIG_EPROTO;
+ 
+@@ -168,31 +168,31 @@ static int netrigctl_open(RIG *rig)
+ chan_t chan_list[CHANLSTSIZ]; /*!< Channel list, zero ended */
+ #endif
+ 
+-  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", sizeof("\n"));
++  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1);
+   if (ret <= 0)
+ 	return (ret < 0) ? ret : -RIG_EPROTO;
+ 
+   rs->max_rit = atol(buf);
+ 
+-  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", sizeof("\n"));
++  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1);
+   if (ret <= 0)
+ 	return (ret < 0) ? ret : -RIG_EPROTO;
+ 
+   rs->max_xit = atol(buf);
+ 
+-  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", sizeof("\n"));
++  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1);
+   if (ret <= 0)
+ 	return (ret < 0) ? ret : -RIG_EPROTO;
+ 
+   rs->max_ifshift = atol(buf);
+ 
+-  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", sizeof("\n"));
++  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1);
+   if (ret <= 0)
+ 	return (ret < 0) ? ret : -RIG_EPROTO;
+ 
+   rs->announces = atoi(buf);
+ 
+-  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", sizeof("\n"));
++  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1);
+   if (ret <= 0)
+ 	return (ret < 0) ? ret : -RIG_EPROTO;
+ 
+@@ -205,7 +205,7 @@ chan_t chan_list[CHANLSTSIZ]; /*!< Chann
+ 	  ret = 0;
+   rs->preamp[ret] = RIG_DBLST_END;
+ 
+-  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", sizeof("\n"));
++  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1);
+   if (ret <= 0)
+ 	return (ret < 0) ? ret : -RIG_EPROTO;
+ 
+@@ -218,37 +218,37 @@ chan_t chan_list[CHANLSTSIZ]; /*!< Chann
+ 	  ret = 0;
+   rs->attenuator[ret] = RIG_DBLST_END;
+ 
+-  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", sizeof("\n"));
++  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1);
+   if (ret <= 0)
+ 	return (ret < 0) ? ret : -RIG_EPROTO;
+ 
+   rs->has_get_func = strtol(buf, NULL, 0);
+ 
+-  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", sizeof("\n"));
++  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1);
+   if (ret <= 0)
+ 	return (ret < 0) ? ret : -RIG_EPROTO;
+ 
+   rs->has_set_func = strtol(buf, NULL, 0);
+ 
+-  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", sizeof("\n"));
++  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1);
+   if (ret <= 0)
+ 	return (ret < 0) ? ret : -RIG_EPROTO;
+ 
+   rs->has_get_level = strtol(buf, NULL, 0);
+ 
+-  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", sizeof("\n"));
++  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1);
+   if (ret <= 0)
+ 	return (ret < 0) ? ret : -RIG_EPROTO;
+ 
+   rs->has_set_level = strtol(buf, NULL, 0);
+ 
+-  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", sizeof("\n"));
++  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1);
+   if (ret <= 0)
+ 	return (ret < 0) ? ret : -RIG_EPROTO;
+ 
+   rs->has_get_parm = strtol(buf, NULL, 0);
+ 
+-  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", sizeof("\n"));
++  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1);
+   if (ret <= 0)
+ 	return (ret < 0) ? ret : -RIG_EPROTO;
+ 
+@@ -354,7 +354,7 @@ static int netrigctl_get_mode(RIG *rig, 
+   if (ret > 0 && buf[ret-1]=='\n') buf[ret-1] = '\0';	/* chomp */
+   *mode = rig_parse_mode(buf);
+ 
+-  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", sizeof("\n"));
++  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1);
+   if (ret <= 0)
+ 	return (ret < 0) ? ret : -RIG_EPROTO;
+ 
+@@ -761,7 +761,7 @@ static int netrigctl_get_split_mode(RIG 
+   if (ret > 0 && buf[ret-1]=='\n') buf[ret-1] = '\0';	/* chomp */
+   *tx_mode = rig_parse_mode(buf);
+ 
+-  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", sizeof("\n"));
++  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1);
+   if (ret <= 0)
+ 	return (ret < 0) ? ret : -RIG_EPROTO;
+ 
+@@ -804,7 +804,7 @@ static int netrigctl_get_split_vfo(RIG *
+ 
+   *split = atoi(buf);
+ 
+-  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", sizeof("\n"));
++  ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1);
+   if (ret <= 0)
+ 	return (ret < 0) ? ret : -RIG_EPROTO;
+ 

Added: head/comms/hamlib/files/patch-src_network.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/comms/hamlib/files/patch-src_network.c	Sun Apr 16 03:12:08 2017	(r438615)
@@ -0,0 +1,29 @@
+--- src/network.c.orig	2016-12-31 20:01:25 UTC
++++ src/network.c
+@@ -48,6 +48,7 @@
+ 
+ #ifdef HAVE_NETINET_IN_H
+ #include <netinet/in.h>
++#include <netinet/tcp.h>
+ #endif
+ #if HAVE_NETDB_H
+ #include <netdb.h>
+@@ -117,6 +118,7 @@ int network_open(hamlib_port_t *rp, int 
+ {
+ 	int fd;				/* File descriptor for the port */
+ 	int status;
++	int flag;
+ 	struct addrinfo hints, *res, *saved_res;
+ 	char *hoststr = NULL, *portstr = NULL, *bracketstr1, *bracketstr2;
+ 	char hostname[FILPATHLEN];
+@@ -202,6 +204,10 @@ int network_open(hamlib_port_t *rp, int 
+ 					return -RIG_EIO;
+ 				}
+ 
++			/* Disable Nagle */
++			flag = 1;
++			setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &flag, sizeof(flag));
++
+ 			if ((status = connect(fd, res->ai_addr, res->ai_addrlen)) == 0)
+ 				{
+ 					break;


More information about the svn-ports-head mailing list