blob: 022f88c96e5c1ff21605f5f506bf9e38ba17d189 [file] [log] [blame]
Cosmos Nicolaouef323db2014-09-07 22:13:28 -07001// +build ignore
2
3package main
4
5import (
6 "fmt"
Cosmos Nicolaou66bc1202014-09-30 20:42:43 -07007 "strings"
Cosmos Nicolaouef323db2014-09-07 22:13:28 -07008
Jiri Simsa764efb72014-12-25 20:57:03 -08009 "v.io/core/veyron2/config"
10 "v.io/core/veyron2/rt"
11 "v.io/core/veyron2/vlog"
Cosmos Nicolaouef323db2014-09-07 22:13:28 -070012
Jiri Simsa764efb72014-12-25 20:57:03 -080013 "v.io/core/veyron/lib/netstate"
14 "v.io/core/veyron/profiles/roaming"
Cosmos Nicolaouef323db2014-09-07 22:13:28 -070015)
16
17func main() {
Matt Rosencrantz0610a232014-12-04 10:26:39 -080018 r, err := rt.New()
19 if err != nil {
20 vlog.Fatalf("Could not initialize runtime: %s", err)
21 }
Cosmos Nicolaouef323db2014-09-07 22:13:28 -070022 defer r.Cleanup()
23
24 fmt.Println("Profile: ", r.Profile().Name())
25
Cosmos Nicolaou66bc1202014-09-30 20:42:43 -070026 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 Nicolaou767b62d2014-09-19 13:58:40 -070032 if gce, err := chooser("", nil); err == nil {
Cosmos Nicolaouef323db2014-09-07 22:13:28 -070033 fmt.Printf("%s: 1:1 NAT address is %s\n", r.Profile().Name(), gce)
34 }
35 }
36
Cosmos Nicolaou66bc1202014-09-30 20:42:43 -070037 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 Nicolaouef323db2014-09-07 22:13:28 -070044 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}