[Midnightbsd-cvs] src [11934] trunk/tools/tools/netrate/netblast: update netblast
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Sat Jul 21 12:54:18 EDT 2018
Revision: 11934
http://svnweb.midnightbsd.org/src/?rev=11934
Author: laffer1
Date: 2018-07-21 12:54:16 -0400 (Sat, 21 Jul 2018)
Log Message:
-----------
update netblast
Modified Paths:
--------------
trunk/tools/tools/netrate/netblast/Makefile
trunk/tools/tools/netrate/netblast/netblast.c
Modified: trunk/tools/tools/netrate/netblast/Makefile
===================================================================
--- trunk/tools/tools/netrate/netblast/Makefile 2018-07-21 15:13:24 UTC (rev 11933)
+++ trunk/tools/tools/netrate/netblast/Makefile 2018-07-21 16:54:16 UTC (rev 11934)
@@ -1,8 +1,9 @@
+# $MidnightBSD$
#
-# $FreeBSD: src/tools/tools/netrate/netblast/Makefile,v 1.3 2004/12/21 08:47:27 ru Exp $
+# $FreeBSD: stable/10/tools/tools/netrate/netblast/Makefile 276486 2014-12-31 23:25:37Z ngie $
#
PROG= netblast
-NO_MAN=
+MAN=
.include <bsd.prog.mk>
Modified: trunk/tools/tools/netrate/netblast/netblast.c
===================================================================
--- trunk/tools/tools/netrate/netblast/netblast.c 2018-07-21 15:13:24 UTC (rev 11933)
+++ trunk/tools/tools/netrate/netblast/netblast.c 2018-07-21 16:54:16 UTC (rev 11934)
@@ -1,3 +1,4 @@
+/* $MidnightBSD$ */
/*-
* Copyright (c) 2004 Robert N. M. Watson
* All rights reserved.
@@ -23,21 +24,22 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/tools/tools/netrate/netblast/netblast.c,v 1.2 2005/02/12 20:03:30 rwatson Exp $
+ * $FreeBSD: stable/10/tools/tools/netrate/netblast/netblast.c 227345 2011-11-08 17:23:43Z cognet $
*/
+#include <sys/endian.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/time.h>
#include <netinet/in.h>
+#include <netdb.h> /* getaddrinfo */
-#include <arpa/inet.h>
-
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <unistd.h> /* close */
static void
usage(void)
@@ -108,11 +110,9 @@
* previous send, the error will turn up the current send
* operation, causing the current sequence number also to be
* skipped.
- *
- * XXXRW: Note alignment assumption.
*/
if (packet_len >= 4) {
- *((u_int32_t *)packet) = htonl(counter);
+ be32enc(packet, counter);
counter++;
}
if (send(s, packet, packet_len, 0) < 0)
@@ -126,9 +126,9 @@
}
printf("\n");
- printf("start: %d.%09lu\n", starttime.tv_sec,
+ printf("start: %zd.%09lu\n", starttime.tv_sec,
starttime.tv_nsec);
- printf("finish: %d.%09lu\n", tmptime.tv_sec,
+ printf("finish: %zd.%09lu\n", tmptime.tv_sec,
tmptime.tv_nsec);
printf("send calls: %d\n", send_calls);
printf("send errors: %d\n", send_errors);
@@ -142,26 +142,25 @@
int
main(int argc, char *argv[])
{
- long payloadsize, port, duration;
- struct sockaddr_in sin;
+ long payloadsize, duration;
+ struct addrinfo hints, *res, *res0;
char *dummy, *packet;
- int s;
+ int port, s, error;
+ const char *cause = NULL;
if (argc != 5)
usage();
- bzero(&sin, sizeof(sin));
- sin.sin_len = sizeof(sin);
- sin.sin_family = AF_INET;
- if (inet_aton(argv[1], &sin.sin_addr) == 0) {
- perror(argv[1]);
- return (-1);
- }
+ memset(&hints, 0, sizeof(hints));
+ hints.ai_family = PF_UNSPEC;
+ hints.ai_socktype = SOCK_DGRAM;
port = strtoul(argv[2], &dummy, 10);
- if (port < 1 || port > 65535 || *dummy != '\0')
+ if (port < 1 || port > 65535 || *dummy != '\0') {
+ fprintf(stderr, "Invalid port number: %s\n", argv[2]);
usage();
- sin.sin_port = htons(port);
+ /*NOTREACHED*/
+ }
payloadsize = strtoul(argv[3], &dummy, 10);
if (payloadsize < 0 || *dummy != '\0')
@@ -169,29 +168,55 @@
if (payloadsize > 32768) {
fprintf(stderr, "payloadsize > 32768\n");
return (-1);
+ /*NOTREACHED*/
}
duration = strtoul(argv[4], &dummy, 10);
- if (duration < 0 || *dummy != '\0')
+ if (duration < 0 || *dummy != '\0') {
+ fprintf(stderr, "Invalid duration time: %s\n", argv[4]);
usage();
+ /*NOTREACHED*/
+ }
packet = malloc(payloadsize);
if (packet == NULL) {
perror("malloc");
return (-1);
+ /*NOTREACHED*/
}
+
bzero(packet, payloadsize);
-
- s = socket(PF_INET, SOCK_DGRAM, 0);
- if (s == -1) {
- perror("socket");
+ error = getaddrinfo(argv[1],argv[2], &hints, &res0);
+ if (error) {
+ perror(gai_strerror(error));
return (-1);
+ /*NOTREACHED*/
}
+ s = -1;
+ for (res = res0; res; res = res->ai_next) {
+ s = socket(res->ai_family, res->ai_socktype, 0);
+ if (s < 0) {
+ cause = "socket";
+ continue;
+ }
- if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) {
- perror("connect");
+ if (connect(s, res->ai_addr, res->ai_addrlen) < 0) {
+ cause = "connect";
+ close(s);
+ s = -1;
+ continue;
+ }
+
+ break; /* okay we got one */
+ }
+ if (s < 0) {
+ perror(cause);
return (-1);
+ /*NOTREACHED*/
}
+ freeaddrinfo(res0);
+
return (blast_loop(s, duration, packet, payloadsize));
+
}
More information about the Midnightbsd-cvs
mailing list