Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 1 | // +build ignore |
| 2 | |
| 3 | package main |
| 4 | |
| 5 | import ( |
| 6 | "fmt" |
Cosmos Nicolaou | 66bc120 | 2014-09-30 20:42:43 -0700 | [diff] [blame] | 7 | "strings" |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 8 | |
Jiri Simsa | 764efb7 | 2014-12-25 20:57:03 -0800 | [diff] [blame] | 9 | "v.io/core/veyron2/config" |
| 10 | "v.io/core/veyron2/rt" |
| 11 | "v.io/core/veyron2/vlog" |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 12 | |
Jiri Simsa | 764efb7 | 2014-12-25 20:57:03 -0800 | [diff] [blame] | 13 | "v.io/core/veyron/lib/netstate" |
| 14 | "v.io/core/veyron/profiles/roaming" |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 15 | ) |
| 16 | |
| 17 | func main() { |
Matt Rosencrantz | 0610a23 | 2014-12-04 10:26:39 -0800 | [diff] [blame] | 18 | r, err := rt.New() |
| 19 | if err != nil { |
| 20 | vlog.Fatalf("Could not initialize runtime: %s", err) |
| 21 | } |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 22 | defer r.Cleanup() |
| 23 | |
| 24 | fmt.Println("Profile: ", r.Profile().Name()) |
| 25 | |
Cosmos Nicolaou | 66bc120 | 2014-09-30 20:42:43 -0700 | [diff] [blame] | 26 | accessible, err := netstate.GetAccessibleIPs() |
| 27 | routes := netstate.GetRoutes() |
| 28 | fmt.Printf("Routes:\n%s\n", strings.Replace(routes.String(), ")", ")\n", -1)) |
| 29 | |
| 30 | chooser := roaming.ListenSpec.AddressChooser |
| 31 | if chooser != nil { |
Cosmos Nicolaou | 767b62d | 2014-09-19 13:58:40 -0700 | [diff] [blame] | 32 | if gce, err := chooser("", nil); err == nil { |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 33 | fmt.Printf("%s: 1:1 NAT address is %s\n", r.Profile().Name(), gce) |
| 34 | } |
| 35 | } |
| 36 | |
Cosmos Nicolaou | 66bc120 | 2014-09-30 20:42:43 -0700 | [diff] [blame] | 37 | if chosen, err := roaming.ListenSpec.AddressChooser("tcp", accessible); err != nil { |
| 38 | fmt.Printf("Failed to chosen address %s\n", err) |
| 39 | } else { |
| 40 | al := netstate.AddrList(chosen) |
| 41 | fmt.Printf("Chosen:\n%s\n", strings.Replace(al.String(), ") ", ")\n", -1)) |
| 42 | } |
| 43 | |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 44 | ch := make(chan config.Setting, 10) |
| 45 | settings, err := r.Publisher().ForkStream(roaming.SettingsStreamName, ch) |
| 46 | if err != nil { |
| 47 | r.Logger().Infof("failed to fork stream: %s", err) |
| 48 | } |
| 49 | for _, setting := range settings.Latest { |
| 50 | fmt.Println("Setting: ", setting) |
| 51 | } |
| 52 | for setting := range ch { |
| 53 | fmt.Println("Setting: ", setting) |
| 54 | } |
| 55 | } |