===========================================================
                                      .___ __  __   
          _________________  __ __  __| _/|__|/  |_ 
         / ___\_` __ \__  \ |  |  \/ __ | | \\_  __\
        / /_/  >  | \// __ \|  |  / /_/ | |  ||  |  
        \___  /|__|  (____  /____/\____ | |__||__|  
       /_____/            \/           \/           
              grep rough audit - static analysis tool
                  v2.8 written by @Wireghoul
=================================[justanotherhacker.com]===
flannel-0.9.1~ds1/Documentation/building.md-14-    * On Fedora/Redhat, run `sudo yum install kernel-headers golang gcc`.
flannel-0.9.1~ds1/Documentation/building.md:15:2. Git clone the flannel repo. It MUST be placed in your GOPATH under `github.com/coreos/flannel`: `cd $GOPATH/src; git clone https://github.com/coreos/flannel.git`
flannel-0.9.1~ds1/Documentation/building.md-16-3. Run the build script, ensuring that `CGO_ENABLED=1`: `cd flannel; CGO_ENABLED=1 make dist/flanneld`
##############################################
flannel-0.9.1~ds1/Documentation/extension.md-54-    "PreStartupCommand": "export VNI=1; export IF_NAME=flannel-vxlan; ip link del $IF_NAME 2>/dev/null; ip link add $IF_NAME type vxlan id $VNI dstport 8472 && cat /sys/class/net/$IF_NAME/address",
flannel-0.9.1~ds1/Documentation/extension.md:55:    "PostStartupCommand": "export IF_NAME=flannel-vxlan; export SUBNET_IP=`echo $SUBNET | cut -d'/' -f 1`; ip addr add $SUBNET_IP/32 dev $IF_NAME && ip link set $IF_NAME up",
flannel-0.9.1~ds1/Documentation/extension.md:56:    "SubnetAddCommand": "export SUBNET_IP=`echo $SUBNET | cut -d'/' -f 1`; export IF_NAME=flannel-vxlan; read VTEP; ip route add $SUBNET nexthop via $SUBNET_IP dev $IF_NAME onlink && arp -s $SUBNET_IP $VTEP dev $IF_NAME && bridge fdb add $VTEP dev $IF_NAME self dst $PUBLIC_IP"
flannel-0.9.1~ds1/Documentation/extension.md-57-  }
##############################################
flannel-0.9.1~ds1/Documentation/running.md-113-
flannel-0.9.1~ds1/Documentation/running.md:114:If you're running on CoreOS, use `cloud-config` to set `coreos.flannel.interface` to `$public_ipv4`.
flannel-0.9.1~ds1/Documentation/running.md-115-
##############################################
flannel-0.9.1~ds1/backend/vxlan/device.go-141-
flannel-0.9.1~ds1/backend/vxlan/device.go:142:func (dev *vxlanDevice) MACAddr() net.HardwareAddr {
flannel-0.9.1~ds1/backend/vxlan/device.go-143-	return dev.link.HardwareAddr
##############################################
flannel-0.9.1~ds1/backend/vxlan/vxlan.go-90-func newSubnetAttrs(publicIP net.IP, mac net.HardwareAddr) (*subnet.LeaseAttrs, error) {
flannel-0.9.1~ds1/backend/vxlan/vxlan.go:91:	data, err := json.Marshal(&vxlanLeaseAttrs{hardwareAddr(mac)})
flannel-0.9.1~ds1/backend/vxlan/vxlan.go-92-	if err != nil {
##############################################
flannel-0.9.1~ds1/backend/vxlan/vxlan.go-135-
flannel-0.9.1~ds1/backend/vxlan/vxlan.go:136:	subnetAttrs, err := newSubnetAttrs(be.extIface.ExtAddr, dev.MACAddr())
flannel-0.9.1~ds1/backend/vxlan/vxlan.go-137-	if err != nil {
##############################################
flannel-0.9.1~ds1/backend/vxlan/vxlan.go-163-func (hw hardwareAddr) MarshalJSON() ([]byte, error) {
flannel-0.9.1~ds1/backend/vxlan/vxlan.go:164:	return []byte(fmt.Sprintf("%q", net.HardwareAddr(hw))), nil
flannel-0.9.1~ds1/backend/vxlan/vxlan.go-165-}
##############################################
flannel-0.9.1~ds1/backend/vxlan/vxlan.go-178-
flannel-0.9.1~ds1/backend/vxlan/vxlan.go:179:	*hw = hardwareAddr(mac)
flannel-0.9.1~ds1/backend/vxlan/vxlan.go-180-	return nil
##############################################
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go-137-			} else {
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go:138:				log.V(2).Infof("adding subnet: %s PublicIP: %s VtepMAC: %s", sn, attrs.PublicIP, net.HardwareAddr(vxlanAttrs.VtepMAC))
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go:139:				if err := nw.dev.AddARP(neighbor{IP: sn.IP, MAC: net.HardwareAddr(vxlanAttrs.VtepMAC)}); err != nil {
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go-140-					log.Error("AddARP failed: ", err)
##############################################
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go-143-
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go:144:				if err := nw.dev.AddFDB(neighbor{IP: attrs.PublicIP, MAC: net.HardwareAddr(vxlanAttrs.VtepMAC)}); err != nil {
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go-145-					log.Error("AddFDB failed: ", err)
##############################################
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go-147-					// Try to clean up the ARP entry then continue
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go:148:					if err := nw.dev.DelARP(neighbor{IP: event.Lease.Subnet.IP, MAC: net.HardwareAddr(vxlanAttrs.VtepMAC)}); err != nil {
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go-149-						log.Error("DelARP failed: ", err)
##############################################
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go-160-					// Try to clean up both the ARP and FDB entries then continue
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go:161:					if err := nw.dev.DelARP(neighbor{IP: event.Lease.Subnet.IP, MAC: net.HardwareAddr(vxlanAttrs.VtepMAC)}); err != nil {
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go-162-						log.Error("DelARP failed: ", err)
##############################################
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go-164-
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go:165:					if err := nw.dev.DelFDB(neighbor{IP: event.Lease.Attrs.PublicIP, MAC: net.HardwareAddr(vxlanAttrs.VtepMAC)}); err != nil {
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go-166-						log.Error("DelFDB failed: ", err)
##############################################
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go-178-			} else {
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go:179:				log.V(2).Infof("removing subnet: %s PublicIP: %s VtepMAC: %s", sn, attrs.PublicIP, net.HardwareAddr(vxlanAttrs.VtepMAC))
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go-180-
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go-181-				// Try to remove all entries - don't bail out if one of them fails.
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go:182:				if err := nw.dev.DelARP(neighbor{IP: sn.IP, MAC: net.HardwareAddr(vxlanAttrs.VtepMAC)}); err != nil {
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go-183-					log.Error("DelARP failed: ", err)
##############################################
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go-185-
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go:186:				if err := nw.dev.DelFDB(neighbor{IP: attrs.PublicIP, MAC: net.HardwareAddr(vxlanAttrs.VtepMAC)}); err != nil {
flannel-0.9.1~ds1/backend/vxlan/vxlan_network.go-187-					log.Error("DelFDB failed: ", err)
##############################################
flannel-0.9.1~ds1/dist/extension-vxlan-5-    "PreStartupCommand": "export VNI=1; export IF_NAME=flannel-vxlan; ip link del $IF_NAME 2>/dev/null; ip link add $IF_NAME type vxlan id $VNI dstport 8472 nolearning && ip link set mtu 1450 dev $IF_NAME && cat /sys/class/net/$IF_NAME/address",
flannel-0.9.1~ds1/dist/extension-vxlan:6:    "PostStartupCommand": "export IF_NAME=flannel-vxlan; export SUBNET_IP=`echo $SUBNET | cut -d'/' -f 1`; ip addr add $SUBNET_IP/32 dev $IF_NAME && ip link set $IF_NAME up",
flannel-0.9.1~ds1/dist/extension-vxlan-7-    "ShutdownCommand": "export IF_NAME=flannel-vxlan; ip link del $IF_NAME",
flannel-0.9.1~ds1/dist/extension-vxlan:8:    "SubnetAddCommand": "export SUBNET_IP=`echo $SUBNET | cut -d'/' -f 1`; export IF_NAME=flannel-vxlan; read VTEP; ip route add $SUBNET nexthop via $SUBNET_IP dev $IF_NAME onlink && arp -s $SUBNET_IP $VTEP dev $IF_NAME && bridge fdb add $VTEP dev $IF_NAME self dst $PUBLIC_IP"
flannel-0.9.1~ds1/dist/extension-vxlan-9-  }
##############################################
flannel-0.9.1~ds1/dist/functional-test.sh-43-        echo "Reading custom conf from $backend"
flannel-0.9.1~ds1/dist/functional-test.sh:44:        flannel_conf=`cat "$backend"`
flannel-0.9.1~ds1/dist/functional-test.sh-45-    else
##############################################
flannel-0.9.1~ds1/main.go-435-		for _, ifaceToMatch := range ifaces {
flannel-0.9.1~ds1/main.go:436:			ifaceIP, err := ip.GetIfaceIP4Addr(&ifaceToMatch)
flannel-0.9.1~ds1/main.go-437-			if err != nil {
##############################################
flannel-0.9.1~ds1/main.go-480-	if ifaceAddr == nil {
flannel-0.9.1~ds1/main.go:481:		ifaceAddr, err = ip.GetIfaceIP4Addr(iface)
flannel-0.9.1~ds1/main.go-482-		if err != nil {
##############################################
flannel-0.9.1~ds1/pkg/ip/iface.go-34-
flannel-0.9.1~ds1/pkg/ip/iface.go:35:func GetIfaceIP4Addr(iface *net.Interface) (net.IP, error) {
flannel-0.9.1~ds1/pkg/ip/iface.go-36-	addrs, err := getIfaceAddrs(iface)
##############################################
flannel-0.9.1~ds1/vendor/github.com/aws/aws-sdk-go/aws/awsutil/path_value.go-204-	if !srcVal.IsValid() { // src is literal nil
flannel-0.9.1~ds1/vendor/github.com/aws/aws-sdk-go/aws/awsutil/path_value.go:205:		if dstVal.CanAddr() {
flannel-0.9.1~ds1/vendor/github.com/aws/aws-sdk-go/aws/awsutil/path_value.go-206-			// Convert to pointer so that pointer's value can be nil'ed
flannel-0.9.1~ds1/vendor/github.com/aws/aws-sdk-go/aws/awsutil/path_value.go:207:			//                     dstVal = dstVal.Addr()
flannel-0.9.1~ds1/vendor/github.com/aws/aws-sdk-go/aws/awsutil/path_value.go-208-		}
##############################################
flannel-0.9.1~ds1/vendor/github.com/emicklei/go-restful/swagger/swagger.go-9-	Type         *string  `json:"type,omitempty"` // if Ref not used
flannel-0.9.1~ds1/vendor/github.com/emicklei/go-restful/swagger/swagger.go:10:	Ref          *string  `json:"$ref,omitempty"` // if Type not used
flannel-0.9.1~ds1/vendor/github.com/emicklei/go-restful/swagger/swagger.go-11-	Format       string   `json:"format,omitempty"`
##############################################
flannel-0.9.1~ds1/vendor/github.com/emicklei/go-restful/swagger/swagger.go-24-	Type   *string `json:"type,omitempty"`
flannel-0.9.1~ds1/vendor/github.com/emicklei/go-restful/swagger/swagger.go:25:	Ref    *string `json:"$ref,omitempty"`
flannel-0.9.1~ds1/vendor/github.com/emicklei/go-restful/swagger/swagger.go-26-	Format string  `json:"format,omitempty"`
##############################################
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/api/meta/help.go-60-	case reflect.Slice:
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/api/meta/help.go:61:		return items.Addr().Interface(), nil
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/api/meta/help.go-62-	default:
##############################################
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/api/meta/help.go-84-	if elemType := items.Type().Elem(); elemType.Kind() != reflect.Ptr && elemType.Kind() != reflect.Interface {
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/api/meta/help.go:85:		if !items.Index(0).CanAddr() {
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/api/meta/help.go-86-			return fmt.Errorf("unable to take address of items in %T for EachListItem", obj)
##############################################
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/api/meta/help.go-93-		if takeAddr {
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/api/meta/help.go:94:			raw = raw.Addr()
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/api/meta/help.go-95-		}
##############################################
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/api/meta/help.go-146-			var found bool
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/api/meta/help.go:147:			if list[i], found = raw.Addr().Interface().(runtime.Object); !found {
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/api/meta/help.go-148-				return nil, fmt.Errorf("%v: item[%v]: Expected object, got %#v(%s)", obj, i, raw.Interface(), raw.Kind())
##############################################
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types.go-629-	// For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types.go:630:	// Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types.go-631-	ServerAddressByClientCIDRs []ServerAddressByClientCIDR `json:"serverAddressByClientCIDRs" protobuf:"bytes,2,rep,name=serverAddressByClientCIDRs"`
##############################################
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types.go-659-	// For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types.go:660:	// Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types.go-661-	ServerAddressByClientCIDRs []ServerAddressByClientCIDR `json:"serverAddressByClientCIDRs" protobuf:"bytes,4,rep,name=serverAddressByClientCIDRs"`
##############################################
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types_swagger_doc_generated.go-34-	"preferredVersion":           "preferredVersion is the version preferred by the API server, which probably is the storage version.",
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types_swagger_doc_generated.go:35:	"serverAddressByClientCIDRs": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.",
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types_swagger_doc_generated.go-36-}
##############################################
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types_swagger_doc_generated.go-76-	"versions":                   "versions are the api versions that are available.",
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types_swagger_doc_generated.go:77:	"serverAddressByClientCIDRs": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.",
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types_swagger_doc_generated.go-78-}
##############################################
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/conversion/converter.go-547-	}
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/conversion/converter.go:548:	if !dv.CanAddr() && !dv.CanSet() {
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/conversion/converter.go-549-		return fmt.Errorf("can't write to dest")
##############################################
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/conversion/converter.go-567-func (c *Converter) callCustom(sv, dv, custom reflect.Value, scope *scope) error {
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/conversion/converter.go:568:	if !sv.CanAddr() {
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/conversion/converter.go-569-		sv2 := reflect.New(sv.Type())
##############################################
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/conversion/converter.go-572-	} else {
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/conversion/converter.go:573:		sv = sv.Addr()
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/conversion/converter.go-574-	}
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/conversion/converter.go:575:	if !dv.CanAddr() {
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/conversion/converter.go-576-		if !dv.CanSet() {
##############################################
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/conversion/converter.go-582-	} else {
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/conversion/converter.go:583:		dv = dv.Addr()
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/conversion/converter.go-584-	}
##############################################
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/conversion/converter.go-603-		}
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/conversion/converter.go:604:		args := []reflect.Value{sv.Addr()}
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/conversion/converter.go-605-		fv.Call(args)
##############################################
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/conversion/converter.go-716-			scope.setKeys(sk.Interface(), dk.Interface())
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/conversion/converter.go:717:			// TODO:  sv.MapIndex(sk) may return a value with CanAddr() == false,
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/conversion/converter.go-718-			// because a map[string]struct{} does not allow a pointer reference.
##############################################
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/runtime/helper.go-101-	}
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/runtime/helper.go:102:	field = field.Addr()
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/pkg/runtime/helper.go-103-	if field.Type().AssignableTo(v.Type()) {
##############################################
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/third_party/forked/golang/reflect/deep_equal.go-123-
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/third_party/forked/golang/reflect/deep_equal.go:124:	if v1.CanAddr() && v2.CanAddr() && hard(v1.Kind()) {
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/third_party/forked/golang/reflect/deep_equal.go:125:		addr1 := v1.UnsafeAddr()
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/third_party/forked/golang/reflect/deep_equal.go:126:		addr2 := v2.UnsafeAddr()
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/third_party/forked/golang/reflect/deep_equal.go-127-		if addr1 > addr2 {
##############################################
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/third_party/forked/golang/reflect/deep_equal.go-266-
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/third_party/forked/golang/reflect/deep_equal.go:267:	if v1.CanAddr() && v2.CanAddr() && hard(v1.Kind()) {
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/third_party/forked/golang/reflect/deep_equal.go:268:		addr1 := v1.UnsafeAddr()
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/third_party/forked/golang/reflect/deep_equal.go:269:		addr2 := v2.UnsafeAddr()
flannel-0.9.1~ds1/vendor/k8s.io/apimachinery/third_party/forked/golang/reflect/deep_equal.go-270-		if addr1 > addr2 {