main.go 629 B

123456789101112131415161718192021222324252627282930313233
  1. package main
  2. import (
  3. "context"
  4. "log"
  5. "os"
  6. "douglasthrift.net/presence"
  7. "douglasthrift.net/presence/neighbors"
  8. )
  9. func main() {
  10. ifs := neighbors.Interfaces{os.Args[1]: true}
  11. hws := make(neighbors.HardwareAddrStates, len(os.Args[2:]))
  12. for _, hw := range os.Args[2:] {
  13. hws[hw] = presence.NewState()
  14. }
  15. ctx := context.Background()
  16. a, err := neighbors.NewARP(1)
  17. if err != nil {
  18. log.Fatal(err)
  19. }
  20. ok, err := a.Present(ctx, ifs, hws)
  21. if err != nil {
  22. log.Fatal(err)
  23. }
  24. log.Printf("present=%v", ok)
  25. for hw, state := range hws {
  26. log.Printf("%v present=%v changed=%v", hw, state.Present(), state.Changed())
  27. }
  28. }