func procGetNetworks(c libnetwork.NetworkController, vars map[string]string, body []byte) (interface{}, *responseStatus) { var list []*networkResource // Look for query filters and validate name, queryByName := vars[urlNwName] shortID, queryByPid := vars[urlNwPID] if queryByName && queryByPid { return nil, &badQueryResponse } if queryByName { if nw, errRsp := findNetwork(c, name, byName); errRsp.isOK() { list = append(list, buildNetworkResource(nw)) } } else if queryByPid { // Return all the prefix-matching networks l := func(nw libnetwork.Network) bool { if strings.HasPrefix(nw.ID(), shortID) { list = append(list, buildNetworkResource(nw)) } return false } c.WalkNetworks(l) } else { for _, nw := range c.Networks() { list = append(list, buildNetworkResource(nw)) } } return list, &successResponse }