-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.OpenVMS
146 lines (108 loc) · 4.58 KB
/
README.OpenVMS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
Wed May 22, 2002
Matt Muggeridge
The information contained in this document describes the OpenVMS port
of the tcptrace tool, written by Shawn Ostermann. Refer to the
"README" file for more information on tcptrace.
This document contains:
A) Running tcptrace
B) Build and Install
C) Code Changes to Support OpenVMS
A) Running tcptrace
-------------------
OpenVMS applications that parse command-line arguments, such as
tcptrace, must be invoked with a foreign command. A foreign command
can be manually created by declaring a DCL symbol, or automatically
created by defining the DCL$PATH logical to include the directory
path of your application. The examples below use a DCL symbol.
There is a name-space clash with "tcptrace". TCP/IP Services V5.0 and
later ship an application named TCPTRACE.EXE which is used to capture
trace information, similar to "tcpdump". To avoid this name-space
clash, it is recommended that this "tcptrace" program is invoked by a
different name. In the examples below, the name used is "tcpanal",
for TCP Analysis.
The steps for running tcpanal are as follows:
1) Creating the foreign command
This is created for you in the DCL command procedure MAKE_VMS.COM.
If desired, modify MAKE_VMS.COM to change the name of the foreign
command. By default, a command similar to the following is used in
MAKE_VMS.COM:
$ tcpanal :== $<directory path>tcptrace.exe
2) Execute the foreign command
$ tcpanal
B) Build and Install
--------------------
tcptrace on OpenVMS was built and tested using:
Compaq C V6.4-006 on OpenVMS Alpha V7.2-2 and OpenVMS Alpha V7.3,
Compaq C V6.2-009 on OpenVMS Alpha V7.2-2
No VAX testing has been attempted.
Step 1: Get pcap library
If you don't want to analyse dump files that were created using the
PCAP library, such as tcpdump, WinDump, Ethereal, then you should
comment out "GROK_TCPDUMP" from the MAKE_VMS.COM procedure and it
will be skipped in the compilation.
Step 2: Edit MAKE_VMS.COM
Only necessary if you want to change the file formats supported,
the modules compiled in, compiler flags, etc (it's commented)
Step 3: Run "$ @MAKE_VMS"
That should create tcptrace and define the foreign symbol for
invoking it. The foreign symbol is needed due to the name-space
clash (see README_VMS.TXT). It is suggested you use the name
"tcpanal".
To manually create a foreign command use syntax similar to:
$ tcpanal :== $<directory path>tcptrace.exe
For automatic foreign commands, copy tcptrace.exe to a directory
specified in the DCL$PATH logical. E.g. assuming DCL$PATH logical
has been created as:
$ define DCL$PATH disk$tools:[bin]
$ copy tcptrace.exe disk$tools:[bin]tcpanal.exe
C) Code Changes to Support OpenVMS
----------------------------------
New Files
====================================================================
readme.OpenVMS - this file
make_vms.com - DCL command procedure to build tcptrace
snprintf_vms.c - replacement for snprintf()
includes_vms.tlb - library of include files not shipped with OpenVMS
tcptrace.opt - linker options file
Missing Header Files - includes_vms.tlb
---------------------------------------
The following header files are not supplied with the current version
of OpenVMS compilers nor TCP/IP. They have been built into a text
library "includes_vms.tlb" which is referenced during compilation.
netinet/in_systm.h
machine/endian.h
netinet/if_ether.h
netinet/ip.h
netinet/udp.h
netinet/tcp.h (newer version needed than in tcpip$examples)
pcap.h (from PCAP distribution)
net/bpf.h
The command used to build this library was:
$ libr/create/text includes_vms in_systm.h, endian.h, -
if_ether.h, ip.h, udp.h, tcp.h, pcap.h, bpf.h
Missing snprintf() - snprintf_vms()
-----------------------------------
The current version of the CRTL does not support snprintf(). An
OpenVMS specific module was created "snprintf_vms.c" to resolve this.
The redefinition was made in tcptrace.h (see below).
Modified Files
====================================================================
compress.c
----------
The current release of OpenVMS does not support fork(). These
occurrences were changed to vfork().
filter_parser.c
---------------
OpenVMS uses a builtin function for alloca(). The necessary
redefinitions were made.
gcache.c
--------
Check if bzero or bcopy are defined before redefining them. On
OpenVMS bzero and bcopy are defined to use the C builtins which are
supposed to be higher performing.
tcptrace.h
----------
Define snprintf() to point to OpenVMS declaration snprintf_vms()
Matt.
--- end ---