// MyIP returns the MyIP value or tries to figure it out.
func (vc *VascoClient) MyIP() (string, error) {
	// first see if we've been given it in the config
	if ip := vc.myIP; ip != "" {
		return ip, nil
	}
	return util.ExternalIP()
}
func (st *Status) FillStatus() {
	if ip, err := util.ExternalIP(); err != nil {
		st.IP = err.Error()
	} else {
		st.IP = ip
	}
	st.Uptime = time.Since(st.StartTime).String()
	st.Revision = getRevision()
	st.DeployTag = getDeployTag()
	st.DeployType = getDeployType()
	st.ConfigVersion = getConfigVersion()
	st.RequestsLast5Min = st.reqlast5m.N()
	st.RequestsLastHour = st.reqlasthr.N()
	st.PID = os.Getpid()
}