()
| 262 | } |
| 263 | |
| 264 | func ExampleBPF() { |
| 265 | handle, err := OpenOffline("test_ethernet.pcap") |
| 266 | if err != nil { |
| 267 | log.Fatal(err) |
| 268 | } |
| 269 | synack, err := handle.NewBPF("tcp[tcpflags] & (tcp-syn|tcp-ack) == (tcp-syn|tcp-ack)") |
| 270 | if err != nil { |
| 271 | log.Fatal(err) |
| 272 | } |
| 273 | syn, err := handle.NewBPF("tcp[tcpflags] & (tcp-syn|tcp-ack) == tcp-syn") |
| 274 | if err != nil { |
| 275 | log.Fatal(err) |
| 276 | } |
| 277 | for { |
| 278 | data, ci, err := handle.ReadPacketData() |
| 279 | switch { |
| 280 | case err == io.EOF: |
| 281 | return |
| 282 | case err != nil: |
| 283 | log.Fatal(err) |
| 284 | case synack.Matches(ci, data): |
| 285 | fmt.Println("SYN/ACK packet") |
| 286 | case syn.Matches(ci, data): |
| 287 | fmt.Println("SYN packet") |
| 288 | default: |
| 289 | fmt.Println("SYN flag not set") |
| 290 | } |
| 291 | } |
| 292 | // Output: |
| 293 | // SYN packet |
| 294 | // SYN/ACK packet |
| 295 | // SYN flag not set |
| 296 | // SYN flag not set |
| 297 | // SYN flag not set |
| 298 | // SYN flag not set |
| 299 | // SYN flag not set |
| 300 | // SYN flag not set |
| 301 | // SYN flag not set |
| 302 | // SYN flag not set |
| 303 | } |
nothing calls this directly
no test coverage detected
searching dependent graphs…