@@ -16,7 +16,9 @@ import (
1616 "github.com/shadowy-pycoder/mshark/mpcapng"
1717)
1818
19- const usagePrefix = `
19+ const app string = "mshark"
20+
21+ const usagePrefix string = `
2022 ______ __ __
2123 / \ | \ | \
2224 ______ ____ | $$$$$$\| $$____ ______ ______ | $$ __
@@ -38,6 +40,12 @@ Options:
3840
3941var supportedFormats = []string {"txt" , "pcap" , "pcapng" }
4042
43+ var (
44+ _ ms.PacketWriter = & ms.Writer {}
45+ _ ms.PacketWriter = & mpcap.Writer {}
46+ _ ms.PacketWriter = & mpcapng.Writer {}
47+ )
48+
4149type ExtFlag []string
4250
4351func (f * ExtFlag ) MarshalText () ([]byte , error ) {
@@ -70,8 +78,8 @@ func displayInterfaces() error {
7078 return w .Flush ()
7179}
7280
73- func createFile (ext string ) (* os.File , error ) {
74- path := fmt .Sprintf ("./mshark_% s.%s" , time .Now ().UTC ().Format ("20060102_150405" ), ext )
81+ func createFile (app , ext string ) (* os.File , error ) {
82+ path := fmt .Sprintf ("./%s_% s.%s" , app , time .Now ().UTC ().Format ("20060102_150405" ), ext )
7583 f , err := os .OpenFile (filepath .FromSlash (path ), os .O_CREATE | os .O_WRONLY , 0644 )
7684 if err != nil {
7785 return nil , fmt .Errorf ("failed to open file: %v" , err )
@@ -82,7 +90,7 @@ func createFile(ext string) (*os.File, error) {
8290func root (args []string ) error {
8391 conf := ms.Config {}
8492
85- flags := flag .NewFlagSet ("mshark" , flag .ExitOnError )
93+ flags := flag .NewFlagSet (app , flag .ExitOnError )
8694 iface := flags .String ("i" , "any" , "The name of the network interface. Example: eth0" )
8795 snaplen := flags .Int ("s" , 0 , "The maximum length of each packet snapshot. Defaults to 65535." )
8896 flags .BoolFunc ("p" , `Promiscuous mode. This setting is ignored for "any" interface. Defaults to false.` , func (flagValue string ) error {
@@ -94,7 +102,7 @@ func root(args []string) error {
94102 flags .StringVar (& conf .Expr , "e" , "" , `BPF filter expression. Example: "ip proto tcp"` )
95103 flags .BoolFunc ("D" , "Display list of interfaces and exit." , func (flagValue string ) error {
96104 if err := displayInterfaces (); err != nil {
97- fmt .Fprintf (os .Stderr , "mshark : %v\n " , err )
105+ fmt .Fprintf (os .Stderr , "%s : %v\n " , app , err )
98106 os .Exit (2 )
99107 }
100108 os .Exit (0 )
@@ -131,7 +139,7 @@ func root(args []string) error {
131139 for _ , ext := range exts {
132140 switch ext {
133141 case "txt" :
134- f , err := createFile (ext )
142+ f , err := createFile (app , ext )
135143 if err != nil {
136144 return err
137145 }
@@ -142,7 +150,7 @@ func root(args []string) error {
142150 }
143151 pw = append (pw , w )
144152 case "pcap" :
145- f , err := createFile (ext )
153+ f , err := createFile (app , ext )
146154 if err != nil {
147155 return err
148156 }
@@ -153,13 +161,13 @@ func root(args []string) error {
153161 }
154162 pw = append (pw , w )
155163 case "pcapng" :
156- f , err := createFile (ext )
164+ f , err := createFile (app , ext )
157165 if err != nil {
158166 return err
159167 }
160168 defer f .Close ()
161169 w := mpcapng .NewWriter (f )
162- if err := w .WriteHeader ("mshark" , conf .Device , conf .Expr , conf .Snaplen ); err != nil {
170+ if err := w .WriteHeader (app , conf .Device , conf .Expr , conf .Snaplen ); err != nil {
163171 return err
164172 }
165173 pw = append (pw , w )
0 commit comments