[BusyBox-cvs] svn commit: trunk/busybox/networking
pgf at busybox.net
pgf at busybox.net
Wed Jul 20 11:55:09 UTC 2005
Author: pgf
Date: 2005-07-20 05:55:08 -0600 (Wed, 20 Jul 2005)
New Revision: 10870
Log:
much more concise fix for bug #45. just align the packet...
Modified:
trunk/busybox/networking/traceroute.c
Changeset:
Modified: trunk/busybox/networking/traceroute.c
===================================================================
--- trunk/busybox/networking/traceroute.c 2005-07-20 07:20:27 UTC (rev 10869)
+++ trunk/busybox/networking/traceroute.c 2005-07-20 11:55:08 UTC (rev 10870)
@@ -77,7 +77,6 @@
#define MAXPACKET 65535 /* max ip packet size */
-#define MAXPACKET_ICMP 512
#ifndef MAXHOSTNAMELEN
#define MAXHOSTNAMELEN 64
#endif
@@ -102,6 +101,8 @@
#include "busybox.h"
+ /* last inbound (icmp) packet */
+static u_char packet[512] __attribute__ ((aligned));
static struct opacket *outpacket; /* last output (udp) packet */
static int s; /* receive (icmp) socket file descriptor */
@@ -185,7 +186,7 @@
}
static inline int
-wait_for_reply(int sock, struct sockaddr_in *from, int reset_timer, u_char *packet, int size)
+wait_for_reply(int sock, struct sockaddr_in *from, int reset_timer)
{
fd_set fds;
static struct timeval wait;
@@ -212,7 +213,7 @@
}
if (select(sock+1, &fds, (fd_set *)0, (fd_set *)0, &wait) > 0)
- cc=recvfrom(s, (char *)packet, size, 0,
+ cc=recvfrom(s, (char *)packet, sizeof(packet), 0,
(struct sockaddr *)from, &fromlen);
return(cc);
@@ -339,12 +340,10 @@
struct hostent *hp;
struct sockaddr_in from, *to;
int ch, i, on, probe, seq, tos, ttl;
- u_char *packet;
int options = 0; /* socket options */
char *source = 0;
int nprobes = 3;
- packet = xmalloc (MAXPACKET_ICMP);
on = 1;
seq = tos = 0;
@@ -496,7 +495,7 @@
(void) gettimeofday(&t1, &tz);
send_probe(++seq, ttl);
reset_timer = 1;
- while ((cc = wait_for_reply(s, &from, reset_timer, packet, MAXPACKET_ICMP)) != 0) {
+ while ((cc = wait_for_reply(s, &from, reset_timer)) != 0) {
(void) gettimeofday(&t2, &tz);
if ((i = packet_ok(packet, cc, &from, seq))) {
reset_timer = 1;
More information about the busybox-cvs
mailing list