If we have pcap_open, call it instead of pcap_open_live, otherwise we might
[obnox/wireshark/wip.git] / print.ps
index b47eb64b397197140ba50443e020090f1a10dd5d..9ffb825d7a4be6470f0f9f73bb245e2e63dcd2d1 100644 (file)
--- a/print.ps
+++ b/print.ps
@@ -3,20 +3,44 @@
 % Code between start/end remarks is put into ps.c
 % Anything else is thrown away, and is for testing only.
 %
-% ---- ethereal preamble start ---- %
+% ---- wireshark preamble start ---- %
 %!
 %!PS-Adobe-2.0
 %
-% Ethereal - Network traffic analyzer
-% By Gerald Combs <gerald@ethereal.com>
+% Wireshark - Network traffic analyzer
+% By Gerald Combs <gerald@wireshark.org>
 % Copyright 1998 Gerald Combs
 %
-%%Creator: Ethereal
-%%Title: ethereal.ps
+%%Creator: Wireshark
+%%Title: wireshark.ps
 %%DocumentFonts: Helvetica Courier
 %%EndComments
 %!
 
+%
+% Ghostscript http://ghostscript.com/ can convert postscript to pdf files.
+%
+% To convert this postscript file to pdf, type (for US letter format):
+% ps2pdf filename.ps
+%
+% or (for A4 format):
+% ps2pdf -sPAPERSIZE=a4 filename.ps
+%
+% ... and of course replace filename.ps by your current filename.
+%
+% The pdfmark's below will help converting to a pdf file, and have no
+% effect when printing the postscript directly.
+% 
+
+%   This line is necessary if the file should be printable, and not just used
+%   for distilling into PDF:
+%
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+%
+%   This tells PDF viewers to display bookmarks when the document is opened:
+%
+[/PageMode /UseOutlines /DOCVIEW pdfmark
+
 % Get the Imagable Area of the page
 clippath pathbbox
 
@@ -33,10 +57,10 @@ pop pop             % junk
 %/pagenumtab hmax 72 sub def
 
 % 1/2-inch margins
-/lmargin 36 def
-/tmargin vmax 56 sub def
-/bmargin 36 def
-/pagenumtab hmax 36 sub def
+/lmargin 36 def                                        % left margin
+/tmargin vmax 56 sub def               % top margin
+/bmargin 36 def                                        % bottom margin
+/pagenumtab hmax 36 sub def    % right margin
 
 % Counters
 /vpos vmax 40 sub def
@@ -46,6 +70,17 @@ pop pop              % junk
 /pagenostr 7 string def
 
 
+/formfeed {
+       printpagedecorations
+       showpage
+       
+       % we need a new current point after showpage is done
+       lmargin         % X
+       vpos            % Y
+       moveto
+       /vpos tmargin def
+} def
+
 % Prints text with possible indenting
 /putline_single {
        exch 10 mul lmargin add         % X
@@ -57,9 +92,7 @@ pop pop               % junk
 
        vpos bmargin le                         % is vpos <= bottom margin?
        {
-               printpageheader
-               showpage
-               /vpos tmargin def
+               formfeed
        }
        if                                                      % then formfeed and start at top
 } def
@@ -89,7 +122,7 @@ pop pop              % junk
 
 
 % Prints the page number at the top right
-/printpageheader {
+/printpagedecorations {
        gsave
                % Set the font to 8 point
                /Helvetica findfont 8 scalefont setfont
@@ -109,21 +142,52 @@ pop pop           % junk
 
                % thispagenum++
                /thispagenum thispagenum 1 add def
+               
+               % line at top of page
+               lmargin                                         % X
+               vmax 38 sub                                     % Y
+               moveto
+               
+               pagenumtab                                      % X
+               vmax 38 sub                                     % Y
+               lineto
+               stroke
+               
+               % line at bottom of page
+               lmargin                                         % X
+               bmargin                                         % Y
+               moveto
+               
+               % title
+               pagenumtab                                      % X
+               bmargin                                         % Y
+               lineto
+               stroke
+               
        grestore
 } def
        
 % Reset the vertical position
 /vpos tmargin def
 
-% ---- ethereal preamble end ---- %
+% ---- wireshark preamble end ---- %
 
 % Set the font to 8 point
 /Courier findfont 8 scalefont setfont
 
 % the page title
-/eth_pagetitle (Ethereal) def
+/eth_pagetitle (Wireshark) def
 
 % Display our output lines.
+
+% PDF bookmark link
+[/Dest /__frame1__ /Title (Frame 1)   /OUT pdfmark
+[/View [/XYZ -4 currentpoint matrix currentmatrix matrix defaultmatrix
+ matrix invertmatrix matrix concatmatrix transform exch pop 20 add null]
+ /Dest /__frame1__ /DEST pdfmark
+% packet data
+0 (Frame 1) putline
 0 (Ethernet II \(98 on wire, 68 captured\)) putline
 1 (Destination: 00:00:0c:36:00:2a) putline
 1 (Source: 00:c0:4f:c7:eb:c0) putline
@@ -146,14 +210,48 @@ pop pop           % junk
 0 (0090  01 04 c0 a8 42 ef 39 00 16 08 05 05 05 05 00 00   ....B.9......... ) putline
 0 (00a0  00 00 00 03 20 36 41 20 52 69 6e 67 00 00 00 00   .... 6A Ring.... ) putline
 0 (00b0  00 00 00 00 00 00                                 ......           ) putline
+formfeed
+
+
+% PDF bookmark link
+[/Dest /__frame2__ /Title (Frame 2)   /OUT pdfmark
+[/View [/XYZ -4 currentpoint matrix currentmatrix matrix defaultmatrix
+ matrix invertmatrix matrix concatmatrix transform exch pop 20 add null]
+ /Dest /__frame2__ /DEST pdfmark
+% packet data
+0 (Frame 2) putline
+0 (Ethernet II \(98 on wire, 68 captured\)) putline
+1 (Destination: 00:00:0c:36:00:2a) putline
+1 (Source: 00:c0:4f:c7:eb:c0) putline
+1 (Type: IP \(0x0800\)) putline
+0 (Ethernet II \(98 on wire, 68 captured\)) putline
+1 (Source: 00:c0:4f:c7:eb:c0) putline
+1 (Type: IP \(0x0800\)) putline
+0 (Source: 00:c0:4f:c7:eb:c0) putline
+
+0 () putline
+0 (0000  cc 00 00 00 00 00 07 02 00 00 00 00 00 00 00 00   ................ ) putline
+0 (0010  00 00 bd 0e fe 16 01 00 3e 00 03 08 58 4c 20 38   ........>...XL 8 ) putline
+0 (0020  30 20 49 4d 33 00 16 01 00 34 00 16 01 01 35 00   0 IM3....4....5. ) putline
+0 (0030  16 01 02 36 00 16 01 03 6e 00 16 01 ff 6f 00 16   ...6....n....o.. ) putline
+0 (0040  01 ff 70 00 16 01 ff 71 00 16 01 ff 48 00 01 04   ..p....q....H... ) putline
+0 (0050  ff 03 07 00 24 00 01 01 05 25 00 01 01 05 26 00   ....$....%....&. ) putline
+0 (0060  01 01 05 27 00 01 01 05 6a 00 01 01 00 6b 00 01   ...'....j....k.. ) putline
+0 (0070  01 00 6c 00 01 01 00 6d 00 01 01 00 3d 00 01 02   ..l....m....=... ) putline
+0 (0080  02 00 c0 00 03 08 80 00 00 00 00 00 00 00 b4 00   ................ ) putline
+0 (0090  01 04 c0 a8 42 ef 39 00 16 08 05 05 05 05 00 00   ....B.9......... ) putline
+0 (00a0  00 00 00 03 20 36 41 20 52 69 6e 67 00 00 00 00   .... 6A Ring.... ) putline
+0 (00b0  00 00 00 00 00 00                                 ......           ) putline
+
+% ---- wireshark finale start ---- %
 
-% ---- ethereal finale start ---- %
 % If this is not the first page, then print the page number
 thispagenum 1 gt                               % is thispagenum > 1 ?
 {
-       printpageheader
+       printpagedecorations
 }
 if
 
 showpage
-% ---- ethereal finale end ---- %
+% ---- wireshark finale end ---- %