Hi,
I haven't written programs in C for many years and most of the ones at
the end of the era of C did not have Makefiles. Back when I started in
the late '70s/early '80s if we had makefiles they were extremely
simple.

So, with some trepidation I set about adding ping6 and traceroute6
commands to bgplg. Not the simplest re-introduction to C and the
OpenBSD build process for hackers, but easily the simplest from a code
point of view. No C really!

I don't have a clue as to how one can add a directory to a branch of
the tree and add a file to it so I'm just listing the two cases where I
did that. I'll give the paths and the file contents as text herein.

First the diffs for the amended files:
1/

Index: src/usr.bin/bgplg/Makefile
===================================================================
RCS file: /cvs/src/usr.bin/bgplg/Makefile,v
retrieving revision 1.1
diff -u -p src/usr.bin/bgplg/Makefile
--- src/usr.bin/bgplg/Makefile  11 Dec 2006 23:10:10 -0000      1.1
+++ src/usr.bin/bgplg/Makefile  2 Apr 2010 06:28:12 -0000
@@ -2,7 +2,7 @@

 .include <bsd.own.mk>

-SUBDIR=                bgplg bgplgsh bgpctl ping traceroute
+SUBDIR=                bgplg bgplgsh bgpctl ping traceroute ping6
traceroute6

 INCFILES=      bgplg.head \
                bgplg.foot \

2/

Index: src/usr.bin/bgplg/bgplg.c
===================================================================
RCS file: /cvs/src/usr.bin/bgplg/bgplg.c,v
retrieving revision 1.8
diff -u -p src/usr.bin/bgplg/bgplg.c
--- src/usr.bin/bgplg/bgplg.c   9 Jan 2010 02:37:32 -0000       1.8
+++ src/usr.bin/bgplg/bgplg.c   2 Apr 2010 06:30:51 -0000
@@ -39,6 +39,8 @@
 #define BGPCTL         "/bin/bgpctl", "-s", BGPDSOCK
 #define PING           "/bin/ping"
 #define TRACEROUTE     "/bin/traceroute"
+#define PING6          "/bin/ping6"
+#define TRACEROUTE6    "/bin/traceroute6"
 #define CONTENT_TYPE   "text/html"

 static struct cmd cmds[] = CMDS;

3/

Index: src/usr.bin/bgplg/bgplg.h
===================================================================
RCS file: /cvs/src/usr.bin/bgplg/bgplg.h,v
retrieving revision 1.5
diff -u -p src/usr.bin/bgplg/bgplg.h
--- src/usr.bin/bgplg/bgplg.h   20 May 2009 09:45:59 -0000      1.5
+++ src/usr.bin/bgplg/bgplg.h   2 Apr 2010 06:31:40 -0000
@@ -64,6 +64,10 @@ struct cmd {
            { TRACEROUTE, "-Sl", NULL } },                             
\
        { "ping", 1, 1, "&lt;address&gt;",                             
\
            { PING, "-c4", "-w2", NULL } },                            
\
+       { "traceroute6", 1, 1, "&lt;address&gt;",                      
\
+           { TRACEROUTE6, "-l", NULL } },                             
\
+       { "ping6", 1, 1, "&lt;address&gt;",                            
\
+           { PING6, "-c4", "-i2", NULL } },                           
\
        { "help", 0, 0, NULL, { NULL }, lg_help },                     
\
        { NULL }                                                       
\
 }

4/

Index: src/usr.bin/bgplg/bgplgsh.c
===================================================================
RCS file: /cvs/src/usr.bin/bgplg/bgplgsh.c,v
retrieving revision 1.2
diff -u -p src/usr.bin/bgplg/bgplgsh.c
--- src/usr.bin/bgplg/bgplgsh.c 12 Dec 2006 11:43:50 -0000      1.2
+++ src/usr.bin/bgplg/bgplgsh.c 2 Apr 2010 06:33:44 -0000
@@ -38,6 +38,8 @@
 #define BGPCTL         "/usr/sbin/bgpctl", "-s", BGPDSOCK
 #define PING           "/sbin/ping"
 #define TRACEROUTE     "/usr/sbin/traceroute"
+#define PING6          "/sbin/ping6"
+#define TRACEROUTE6    "/usr/sbin/traceroute6"

 static volatile int quit;

Now for the added dirs and contents:

mkdir /usr/src/usr.bin/bgplg/ping6
add Makefile to it containing:

#       $OpenBSD: Makefile,v 0.0 2010/04/02 20:00:09 rodw Exp $

PROGDIR=        ${.CURDIR}/../../../sbin/ping6

LDSTATIC=       -static
CFLAGS+=        -I${PROGDIR}
NOMAN=          yes

.include "${PROGDIR}/Makefile"

BINDIR=         /var/www/bin
BINMODE=        000

.PATH:          ${PROGDIR}

mkdir /usr/src/usr.bin/bgplg/traceroute6

add Makefile to it containing:

#       $OpenBSD: Makefile,v 0.0 2010/04/02 20:00:09 rodw Exp $

PROGDIR=        ${.CURDIR}/../../../usr.sbin/traceroute6

LDSTATIC=       -static
CFLAGS+=        -I${PROGDIR}
NOMAN=          yes

.include "${PROGDIR}/Makefile"

BINDIR=         /var/www/bin
BINMODE=        000

.PATH:          ${PROGDIR}

There, I think I have given all the details. Not exactly high tech but
a good learning exercise for me and I'm sure there will be some added
clues as a result of this posting.

I haven't done any of the manpage mods yet and I haven't finished
testing because I need to get it running on a remote box so that I have
real IPv6 access. The static v6 commands do run so that is encouraging.

Comments and constructive criticism welcome.

Thanks,
Rod

I need to get some sleep now. I've been standing on the shoulders of
giants most of the day.



*** NOTE *** Please DO NOT CC me. I <am> subscribed to the list.
Mail to the sender address that does not originate at the list server is 
tarpitted. The reply-to: address is provided for those who feel compelled to 
reply off list. Thankyou.

Rod/
/earth: write failed, file system is full
cp: /earth/creatures: No space left on device

Reply via email to