diff -ur mtr-0.37/AUTHORS mtr-0.38/AUTHORS
--- mtr-0.37/AUTHORS Mon Apr 12 15:57:22 1999
+++ mtr-0.38/AUTHORS Tue Apr 13 23:38:14 1999
@@ -17,10 +17,10 @@
Andrew Stesin,
Aaron Scarisbrick,
Craig Milo Rogers (Rogers@ISI.EDU),
- Russell Nelson,
- Alexander V. Lukyanov,
- Charles Levert,
- Bertrand Leconte,
+ Russell Nelson (rn-mtr@crynwr.com),
+ Alexander V. Lukyanov (lav@yars.free.net),
+ Charles Levert (charles@comm.polymtl.ca),
+ Bertrand Leconte (B.Leconte@mail.dotcom.fr),
Anand Kumria,
Adam Kramer (l3zqc@qcunix1.acc.qc.edu),
Philip Kizer (pckizer@nostrum.com),
@@ -31,7 +31,7 @@
Brian Casey,
Bill Bogstad (bogstad@pobox.com),
Moritz Barsnick (barsnick@gmx.net)
- R??? Sparks (rjsparks@nostrum.com)
+ Robert Sparks (rjsparks@nostrum.com)
and anyone who has slipped through the cracks of my mail file.
diff -ur mtr-0.37/Makefile.in mtr-0.38/Makefile.in
--- mtr-0.37/Makefile.in Mon Apr 12 20:30:07 1999
+++ mtr-0.38/Makefile.in Mon Apr 12 20:34:20 1999
@@ -113,8 +113,8 @@
NROFF = nroff
DIST_COMMON = README AUTHORS COPYING INSTALL Makefile.am Makefile.in \
-NEWS TODO acconfig.h aclocal.m4 config.h.in configure configure.in \
-install-sh missing mkinstalldirs stamp-h.in
+NEWS TODO acconfig.h aclocal.m4 config.h.in configure.in install-sh \
+missing mkinstalldirs stamp-h.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
diff -ur mtr-0.37/TODO mtr-0.38/TODO
--- mtr-0.37/TODO Sun Apr 11 15:48:01 1999
+++ mtr-0.38/TODO Fri Apr 16 11:05:19 1999
@@ -3,7 +3,8 @@
- Allow mtr to log the return packets, for later analysis.
Done: 0.25 . Todo: allow the userinterface(s) to work while
- still logging to a file.
+ still logging to a file. Write a "logfile displaying" mode to
+ mtr.
- Request timestamping at the remote site.
Andreas Fasbender has an algorithm that will allow us to
@@ -31,11 +32,14 @@
- Bugs to fix?
- Do something useful if host couldn't be resolved.
+ -- Done.
- Revert to curses mode even if DISPLAY is set, but a problem
prevents us from running in X11 mode.
--> The problem is that gtk_init simply calls exit for us if
it finds a problem. Tricky! Suggestions welcome.
+ --> Call "gtk_check_init" when available. (i.e. new enough
+ (1.2?) GTK version).
- Nice to have:
@@ -44,9 +48,6 @@
- Show state ("looking up host") while doing the DNS lookup for a new
host.
- - Check why it still tries to go for X11 display if DISPLAY is unset.
- (I saw code to handle this)
-
- Read environment variable "MTR_DEFAULTS" as a commandline before
parsing the commandline. -- DONE. (ok it's MTR_OPTIONS.)
@@ -58,5 +59,9 @@
At the moment (march 1999) autoconf 2.13 is still too new to require
everyone to upgrade. About a year from now we can put this in....
+
+ - Allow a toggle between hostname/IP number display. (for example a
+ click on the hostname could revert to ip number display in gtk version.
+ curses: "n" key toggles hostnames/ipnumbers?
diff -ur mtr-0.37/configure mtr-0.38/configure
--- mtr-0.37/configure Mon Apr 12 20:30:09 1999
+++ mtr-0.38/configure Mon Apr 12 20:34:23 1999
@@ -700,7 +700,7 @@
PACKAGE=mtr
-VERSION=0.37
+VERSION=0.38
if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
{ echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
diff -ur mtr-0.37/configure.in mtr-0.38/configure.in
--- mtr-0.37/configure.in Sun Apr 11 15:48:01 1999
+++ mtr-0.38/configure.in Mon Apr 12 20:34:19 1999
@@ -1,5 +1,5 @@
AC_INIT(mtr.c)
-AM_INIT_AUTOMAKE(mtr, 0.37)
+AM_INIT_AUTOMAKE(mtr, 0.38)
AC_SUBST(GTK_OBJ)
AC_SUBST(CURSES_OBJ)
diff -ur mtr-0.37/curses.c mtr-0.38/curses.c
--- mtr-0.37/curses.c Mon Apr 12 15:52:54 1999
+++ mtr-0.38/curses.c Wed Apr 14 20:48:42 1999
@@ -238,11 +238,10 @@
move(0, 0);
pwcenter("Matt's traceroute [v" VERSION "]");
printw("\n");
+ attroff(A_BOLD);
printw(LocalHostname);
- move(1, maxx - 24);
time(&t);
- printw(ctime(&t));
- attroff(A_BOLD);
+ mvprintw(1, maxx-25, ctime(&t));
printw("Keys: ");
attron(A_BOLD); printw("D"); attroff(A_BOLD);
diff -ur mtr-0.37/dns.c mtr-0.38/dns.c
--- mtr-0.37/dns.c Sun Apr 11 15:48:01 1999
+++ mtr-0.38/dns.c Wed Jun 9 17:40:55 1999
@@ -208,10 +208,25 @@
#define getheader_pr(x) ((x->databyte_b >> 6) & 1)
#define getheader_ra(x) (x->databyte_b >> 7)
+#if 0
+
+/* The execution order inside an expression is undefined! That means that
+ this might work, but then again, it might not... Sun Lint pointed this
+ one out...*/
+
#define sucknetword(x) (((word)*(x) << 8) | (((x)+= 2)[-1]))
#define sucknetshort(x) (((short)*(x) << 8) | (((x)+= 2)[-1]))
#define sucknetdword(x) (((dword)*(x) << 24) | ((x)[1] << 16) | ((x)[2] << 8) | (((x)+= 4)[-1]))
#define sucknetlong(x) (((long)*(x) << 24) | ((x)[1] << 16) | ((x)[2] << 8) | (((x)+= 4)[-1]))
+#else
+
+#define sucknetword(x) ((word) (((x)[0] << 8) | ((x)[1] << 0))),(x)+=2
+#define sucknetshort(x) ((short) (((x)[0] << 8) | ((x)[1] << 0))),(x)+=2
+#define sucknetdword(x) ((dword) (((x)[0] << 24) | ((x)[1] << 16) | \
+ ((x)[2] << 8) | ((x)[3] << 0))),(x)+=4
+#define sucknetlong(x) ((long) (((x)[0] << 24) | ((x)[1] << 16) | \
+ ((x)[2] << 8) | ((x)[3] << 0))),(x)+=4
+#endif
enum {
STATE_FINISHED,
@@ -736,7 +751,7 @@
void dorequest(char *s,int type,word id){
packetheader *hp;
int r,i;
- byte buf[MaxPacketsize+1];
+ int buf[(MaxPacketsize/4)+1];
r = res_mkquery(QUERY,s,C_IN,type,NULL,0,NULL,buf,MaxPacketsize);
if (r == -1){
restell("Resolver error: Query too large.");
diff -ur mtr-0.37/gtk.c mtr-0.38/gtk.c
--- mtr-0.37/gtk.c Sun Apr 11 15:48:01 1999
+++ mtr-0.38/gtk.c Wed Apr 14 20:48:53 1999
@@ -165,8 +165,10 @@
GTK_SIGNAL_FUNC(Pause_clicked), NULL);
gtk_widget_show(Pause_Button);
+ /* allow root only to set zero delay */
Adjustment = (GtkAdjustment *)gtk_adjustment_new(WaitTime,
- 0.00, 999.99,
+ getuid()==0 ? 0.00:1.00,
+ 999.99,
1.0, 10.0,
0.0);
Button = gtk_spin_button_new(Adjustment, 0.5, 2);
diff -ur mtr-0.37/mtr.c mtr-0.38/mtr.c
--- mtr-0.37/mtr.c Mon Apr 12 07:56:02 1999
+++ mtr-0.38/mtr.c Thu Apr 15 14:06:24 1999
@@ -96,6 +96,8 @@
fprintf (stderr, "mtr: wait time must be positive\n");
exit (1);
}
+ if (getuid() != 0 && WaitTime < 1.0)
+ WaitTime = 1.0;
break;
}
}
@@ -129,10 +131,6 @@
parse_arg (argc, argv);
optind = 0;
}
-
-
-
-
int main(int argc, char **argv) {
diff -ur mtr-0.37/net.c mtr-0.38/net.c
--- mtr-0.37/net.c Mon Apr 12 15:52:54 1999
+++ mtr-0.38/net.c Tue May 11 08:31:14 1999
@@ -326,7 +326,7 @@
int max;
max = 0;
- for(at = 0; at < MaxHost; at++) {
+ for(at = 0; at < MaxHost-2; at++) {
if(host[at].addr == remoteaddress.sin_addr.s_addr) {
return at + 1;
} else if(host[at].addr != 0) {
@@ -374,7 +374,8 @@
}
if ((host[batch_at].addr == remoteaddress.sin_addr.s_addr) ||
- (n_unknown > MAX_UNKNOWN_HOSTS)) {
+ (n_unknown > MAX_UNKNOWN_HOSTS) ||
+ (batch_at >= MaxHost-2)) {
numhosts = batch_at+1;
batch_at = 0;
return 1;
.