func main()

in example_grpc/goclient/src/katranc/main/main.go [71:127]


func main() {
	flag.Parse()
	var service string
	var proto int
	if *tcpService != "" {
		service = *tcpService
		proto = IPPROTO_TCP
	} else if *udpService != "" {
		service = *udpService
		proto = IPPROTO_UDP
	}
	var kc katranc.KatranClient
	kc.Init(*katranServer)
	if *changeMac != "" {
		kc.ChangeMac(*changeMac)
	} else if *listMac {
		kc.GetMac()
	} else if *addService {
		kc.AddOrModifyService(service, *vipChangeFlags, proto, false, true)
	} else if *listServices {
		// TODO(tehnerd): print only specified tcp/udp service
		kc.List("", 0)
	} else if *delService {
		kc.DelService(service, proto)
	} else if *editService {
		kc.AddOrModifyService(service, *vipChangeFlags, proto, true, !*unsetFlags)
	} else if *addServer || *editServer {
		kc.UpdateServerForVip(service, proto, *realServer, *realWeight, *realChangeFlags, false)
	} else if *delServer {
		kc.UpdateServerForVip(service, proto, *realServer, *realWeight, *realChangeFlags, true)
	} else if *delQuicMapping {
		kc.ModifyQuicMappings(*quicMapping, true)
	} else if *quicMapping != "" {
		kc.ModifyQuicMappings(*quicMapping, false)
	} else if *listQuicMapping {
		kc.ListQm()
	} else if *clearAll {
		kc.ClearAll()
	} else if *newHc != "" {
		kc.AddHc(*newHc, *somark)
	} else if *delHc {
		kc.DelHc(*somark)
	} else if *listHc {
		kc.ListHc()
	} else if *showStats {
		if *showSumStats {
			kc.ShowSumStats()
		} else if *showLruStats {
			kc.ShowLruStats()
		} else if *showIcmpStats {
			kc.ShowIcmpStats()
		} else {
			kc.ShowPerVipStats()
		}
	}
	fmt.Printf("exiting\n")
}