lib/go-atscfg/parentdotconfig.go (26 lines): - line 46: // TODO: Replace instances of "parent.config" in t3c with this constant. - line 236: // TODO: determine/describe how these work. - line 251: // TODO: remove this? - line 744: // TODO determine if this is necessary. It's super-dangerous, and moreover ignores Server Capabilitites. - line 983: // TODO change, this is terrible practice, using a hard-coded key. What if there were a delivery service named "all_parents" (transliterated Perl). - line 1262: pasvc.SecondaryMode = secondaryModeStr // TODO convert - line 1280: // TODO convert - line 1297: // TODO ensure value is always !goDirect, and determine what to do if not - line 1300: // TODO convert - line 1379: // TODO make consts - line 1503: // TODO warn if parsing fails? - line 1518: // TODO deduplicate with atstccfg/parentdotconfig.go - line 1558: // TODO get service interface here - line 1570: // TODO warn? error? - line 1599: orgURI, orgWarns, err := getOriginURI(*ds.OrgServerFQDN) // TODO pass, instead of calling again - line 1750: orgURI, err := url.Parse(fqdn) // TODO verify origin is always a host:port - line 1780: for _, parent := range parentInfos { // TODO fix magic key - line 1798: // TODO remove duplicate code with top level if block - line 1799: seen := map[string]struct{}{} // TODO change to host+port? host isn't unique - line 1811: // TODO the abstract->text needs to take this into account - line 1834: // TODO determine why MSO is different, and if possible, combine with getParentAndSecondaryParentStrs. - line 1860: secondaryParentInfo = []*ParentAbstractionServiceParent{} // TODO should this be '= secondary'? Currently emulates Perl - line 1863: // TODO benchmark, verify this isn't slow. if it is, it could easily be made faster - line 1864: seen := map[string]struct{}{} // TODO change to host+port? host isn't unique - line 1883: // TODO add this logic to the abstraction->text converter - line 2045: // warnings = append(warnings, fmt.Sprintf(("ds %v has no origins! Skipping!\n", dsID) // TODO determine if this is normal traffic_monitor/ds/stat.go (18 lines): - line 37: // TODO remove 'ds' and 'stat' from names - line 72: continue // TODO log warning? Error? - line 81: cacheGroupStats = &dsdata.StatCacheStats{} // TODO sync.Pool? - line 88: typeStats = &dsdata.StatCacheStats{} // TODO sync.Pool? - line 95: // TODO fix nested ifs - line 108: // TODO move to its own func? - line 113: continue // TODO log warning? Error? - line 131: return nil // TODO fix callers to not pass the same stat twice - line 289: states.SetDeliveryService(dsName, dsState) // TODO sync.Map? Determine if slow. - line 292: // TODO sync.Pool? - line 307: events.Add(getEvent(eventDesc)) // TODO change events.Add to not allocate new memory, after the limit is reached. - line 351: // TODO handle ATS byte rolling (when the `out_bytes` overflows back to 0) - line 368: dsStats := dsdata.NewStats(len(toData.DeliveryServiceServers)) // TODO sync.Pool? - line 374: dsStats.DeliveryService[deliveryService] = dsdata.NewStat() // TODO sync.Pool? - line 377: addAvailableData(dsStats, crStates, toData.ServerCachegroups, toData.ServerDeliveryServices, toData.ServerTypes, precomputed) // TODO move after stat summarisation - line 392: // TODO check result.PrecomputedData.Errors - line 401: httpDsStat = dsdata.NewStat() // TODO sync.Pool? - line 427: httpDsStat.CommonStats = dsStats.DeliveryService[tc.DeliveryServiceName(ds)].CommonStats // TODO verify whether this should be a sum tc-health-client/tmagent/parenthealth.go (16 lines): - line 60: UnhealthyReason string `json:"unhealthy_reason,omitempty"` // TODO rename to HealthChangeReason? - line 61: // TODO add poll type (L4 vs L7)? - line 128: // TODO dynamically get pollInterval every loop - line 145: // const numParentHealthPollWorkers = 10 // TODO make configurable? - line 157: workCh := make(chan func(), 10) // TODO make buffer configurable? - line 192: // TODO add config option? - line 193: // TODO add event log to config - line 224: var timeout = 2 * time.Second // TODO make configurable. - line 225: const parentPort = 80 // TODO make configurable - line 231: resultCh := make(chan ParentHealthPollResultAndFQDN) // TODO buffer? - line 254: // TODO add service port, instead of assuming 80/443 - line 255: // TODO reuse http.Client - line 260: // TODO more granular timeout options? - line 269: // TODO log? - line 310: timeout := 2 * time.Second // TODO make configurable. - line 311: parentPort := 80 // TODO make configurable lib/go-atscfg/atscfg.go (15 lines): - line 42: // TODO: unexport this? It's highly specific to this package, and isn't used - line 49: // TODO: Emulates Perl; change to 6? ATC no longer officially supports ATS 5. - line 54: // TODO: Remove this, it's unused. - line 60: // TODO: Move to lib/go-rfc package? - line 66: // TODO: Unexport? This is only used, it seems, to group multiple usages into a - line 77: // TODO: Unexport? This is only used by the header rewrite configuration file - line 92: // TODO: Unexport? This isn't used outside of this package. Alternatively: - line 99: // TODO: Unexport? This isn't used outside of this package. Alternatively: - line 106: // TODO: Unexport? This isn't used outside of this package. Alternatively: - line 125: // TODO: Unexport? This isn't used outside of this package. Alternatively: - line 521: // TODO extra safety: check other parents, and warn if parents have different types? - line 623: // TODO filter only DSes on this server's CDN? Does anything ever needs DSS cross-CDN? Surely not. - line 714: continue // TODO log? Not a CIDR or IP, keep looking - line 757: continue // TODO log error? Not an IP or CIDR - line 953: // TODO add warning/error feature? tc-health-client/tmagent/parentservicehealth.go (15 lines): - line 113: // TODO share HTTP client, which should reuse connections - line 115: // TODO dynamically get pollInterval every loop - line 132: workCh := make(chan func(), 10) // TODO make buffer configurable? - line 146: // TODO add config to not poll at all - line 166: // // TODO add config option? - line 167: // // TODO add event log to config - line 184: // TODO make configurable. - line 189: // TODO delete - line 194: UnhealthyReason string // TODO rename to HealthChangeReason? - line 195: // TODO add poll type (L4 vs L7)? - line 211: resultCh := make(chan ParentServiceHealthErrFQDN) // TODO buffer? - line 222: const scheme = "http" // TODO always https and support client certs? Or make configurable? - line 249: // TODO reuse http.Client - line 254: // TODO more granular timeout options? - line 263: // TODO log? cache-config/t3cutil/getdatacfg.go (12 lines): - line 260: // TODO TOAPI add /servers?cdn=1 query param - line 354: // TODO uncomment when MSO Origins are changed to not use DSS, to avoid the DSS call if it isn't necessary - line 399: continue // TODO warn? - line 401: // TODO read meta config gen, and only include servers which are included in the meta (assigned to edge or all for mids? read the meta gen to find out) - line 441: continue // TODO warn? - line 443: // TODO read meta config gen, and only include servers which are included in the meta (assigned to edge or all for mids? read the meta gen to find out) - line 481: if !revalOnly { // TODO when MSO Origins are changed to not use DSS, we can add `&& !allDSesHaveTopologies` here, to avoid the DSS call if it isn't necessary - line 489: // TODO use a single func/request, when TO has an endpoint to get all params on multiple profiles with a single request, e.g. `/parameters?profiles=a,b,c` - line 613: caps, reqInf, err := toClient.GetServerCapabilitiesByID(nil, reqHdr) // TODO change to not take a param; it doesn't use it to request TO anyway. - line 744: parentConfigParams, reqInf, err := toClient.GetConfigFileParameters("parent.config", reqHdr) // TODO make const in lib/go-atscfg - line 872: // TODO filter only DSes on this server's CDN? Does anything ever needs DSS cross-CDN? Surely not. - line 877: continue // TODO warn? lib/go-rfc/caching.go (11 lines): - line 155: // TODO verify Header/CacheControl are properly CanonicalCase/lowercase. Put cache-control text in constants? - line 192: c[key] = value // TODO trim - line 200: c[key] = value // TODO trim - line 269: // TODO: ensure RFC7234§3.2 requirements that max-age=0, must-revlaidate, s-maxage=0 are revalidated. - line 293: // TODO add options to ignore/violate request Cache-Control (to protect origins). - line 310: // TODO: smarter and configurable heuristics. - line 435: // TODO: change caching to key on URL+headers, so multiple requests for the same URL with different vary headers can be cached? - line 470: // TODO return ReuseMustRevalidate where permitted - line 478: return ReuseCannot // TODO verify RFC doesn't allow revalidate here - line 487: return ReuseMustRevalidate // TODO verify RFC allows - line 503: // TODO: remove allowed_stale, check in cache manager after revalidate fails? (since RFC7234§4.2.4 prohibits serving stale response unless disconnected). lib/go-atscfg/ipallowdotconfig.go (11 lines): - line 47: // TODO: replace instances of "purge_allow_ip" with this currently-unused - line 49: // TODO: unexport? This is only used in this package. - line 56: // TODO: unexport? This is only used in this package. - line 63: // TODO: unexport? This is only used in this package. - line 70: // TODO: unexport? This is only used in this package. - line 77: // TODO: unexport? This is only used in this package. - line 84: // TODO: unexport? This is only used in this package. - line 91: // TODO: unexport? This is only used in this package. - line 98: // TODO: unexport? This is only used in this package. - line 105: // TODO: unexport? This is only used in this package. - line 294: // allow RFC 1918 server space - TODO JvD: parameterize traffic_monitor/manager/monitorconfig.go (10 lines): - line 162: // TODO change Traffic Ops Client API to a time.Duration - line 168: // TODO change Traffic Ops Client API to a time.Duration - line 174: // TODO change Traffic Ops Client API to a time.Duration - line 180: // TODO change Traffic Ops Client API to a time.Duration - line 186: // TODO change Traffic Ops Client API to a time.Duration - line 192: const PollIntervalRatio = float64(0.97) // TODO make config? - line 194: // TODO timing, and determine if the case, or its internal `for`, should be put in a goroutine - line 195: // TODO determine if subscribers take action on change, and change to mutexed objects if not. - line 325: // TODO: the URL should be config driven. -jse - line 367: // TODO because there are multiple writers to localStates.DeliveryService, there is a race condition, where MonitorConfig (this func) and HealthResultManager could write at the same time, and the HealthResultManager could overwrite a delivery service addition or deletion here. Probably the simplest and most performant fix would be a lock-free algorithm using atomic compare-and-swaps. traffic_monitor/dsdata/stat.go (10 lines): - line 34: // TODO combine with cache.Filter? - line 48: Span int `json:"span,omitempty"` // TODO set? remove? - line 49: Index int `json:"index,omitempty"` // TODO set? remove? - line 248: // TODO sync.Pool. Better yet, remove copy usage - line 314: // TODO fix to be the time calculated, not the time requested - line 339: // TODO rename to just 'New'? - line 352: // TODO add map size params? - line 369: // TODO figure a way to associate this type with StatHTTP, with which its members correspond. - line 400: // TODO sync.Pool? - line 451: // TODO abstract this? Or deprecate and remove it? tc-health-client/tmagent/markdownservice.go (9 lines): - line 111: // TODO: add signal to callers when shutdown has finished. - line 157: // TODO use hostname:port? Parents can be healthy on one port/service but not another. - line 166: // TODO make decision algorithm/pessimism/ratio/etc configurable - line 197: // TODO wait for all polls to have results, before marking down? - line 222: // TODO get direct vs final parent data from strategies.yaml and parent.config - line 227: // TODO make configurable - line 232: // TODO this is currently pessimistic: if any health mechanism is unhealthy, consider unhealthy. - line 312: const HealthSafetyRatio = 0.3 // TODO make configurable? - line 348: continue // TODO warn? error? is this normal? tc-health-client/tmagent/tmagent.go (9 lines): - line 167: // TODO warn/err if parent is in parentHealth but not parentServiceHealth? And the reverse? - line 201: // TODO make this smarter. - line 327: // TODO remove old parents no longer in parent.config, strategies.yaml, or traffic_ctl host status - line 330: // TODO track how many elements are in the map? - line 372: // TODO track map len - line 383: // TODO track map len - line 430: // TODO make deterministic. Hash of hostname? - line 654: // TODO can we use the t3c cache here? - line 817: // TODO count parentStatus len? grove/grovetccfg/grovetccfg.go (8 lines): - line 232: // TODO remove this once converted to 1.3 API - line 297: rules, err = createRulesOldAPI(toc, *host, *certDir, servers) // TODO remove once 1.3 / traffic_ops_golang is deployed to production. - line 322: // TODO add app/option to print config to stdout - line 622: // // TODO get from TO? - line 776: // TODO add port? - line 787: // // TODO add port? - line 1010: // TODO get from TO? - line 1117: fmt.Println(time.Now().Format(time.RFC3339Nano)+" DEBUG base: ", startAddrStr, " end:", endAddrStr, " maskBits:", maskBits) // TODO remove? traffic_monitor/tools/testcaches/fakesrvr/server.go (6 lines): - line 37: // TODO config? - line 63: // TODO cast to System, if query string `application=system` - line 68: b, err = json.MarshalIndent(&system, "", " ") // TODO debug, change to Marshal - line 70: b, err = json.MarshalIndent(&srvr, "", " ") // TODO debug, change to Marshal - line 74: w.Write([]byte(`{"error": "marshalling: ` + err.Error() + `"}`)) // TODO escape error for JSON - line 111: // TODO pass the error somewhere, somehow? tc-health-client/sar/sar.go (6 lines): - line 49: // TODO add optional local addr param - line 81: // TODO implement Initial Sequence Number ISN per RFC9293§3.4.1 - line 202: // TODO handle IPv6 - line 234: // TODO should this ListenPacket, to let Go automatically choose the port for us? - line 291: return readTime, nil // TODO should this return an error? We were expecting a syn-ack, not a reset - line 323: window := 43690 // TODO change lib/go-tc/parameters.go (6 lines): - line 153: // TODO: This probably shouldn't exist, or at least not be in the lib. - line 256: // TODO: Figure out why this is taking a db transaction - should this be moved? - line 299: // TODO: Figure out why this is taking a db transaction - should this be moved? - line 334: // TODO move to helper package. - line 344: // TODO move to helper package. - line 376: // TODO: This is only used internally in a v3 client method (not its call traffic_monitor/todata/todata.go (6 lines): - line 122: // TODO change strings to type? - line 160: // TODO: remove the fallback behavior on the CRConfig in ATC 8.0 (https://github.com/apache/trafficcontrol/issues/6627) - line 163: // TODO: remove the fallback behavior on the CRConfig in ATC 8.0 (https://github.com/apache/trafficcontrol/issues/6627) - line 169: // TODO: remove the fallback behavior on the CRConfig in ATC 8.0 (https://github.com/apache/trafficcontrol/issues/6627) - line 282: // TODO precompute, move to TOData; call when we get new delivery services, instead of every time we create new stats - line 309: // TODO warn? regex matches are unusual lib/go-atscfg/remapdotconfig.go (6 lines): - line 381: warnings = append(warnings, "ds '"+ds.XMLID+"' has no origin fqdn, skipping!") // TODO confirm - Perl uses without checking! - line 947: if param.ConfigFile != "package" { // TODO put in const - line 950: if param.Name == "location" { // TODO put in const - line 961: paramValue = server.HostName + "." + server.DomainName // TODO strings.Replace to replace all anywhere, instead of just an exact match? - line 994: // TODO log error? - line 1069: continue // TODO log lib/go-tc/traffic_monitor.go (6 lines): - line 319: json := jsoniter.ConfigFastest // TODO make configurable - line 330: json := jsoniter.ConfigFastest // TODO make configurable - line 496: // TODO change TO to return this struct, so a custom UnmarshalJSON isn't - line 538: Comparator string // TODO change to enum? - line 622: vStr := fmt.Sprintf("%v", v) // allows string or numeric JSON types. TODO check if a type switch is faster. - line 742: // TODO uncomment this, when TO is fixed to include DeliveryServices. traffic_monitor/threadsafe/resultstathistory.go (5 lines): - line 1: // TODO rename - line 89: // TODO change to use sync.Pool? - line 366: // TODO in 1.0, stats are divided into 'location', 'cache', and 'type'. 'cache' are hidden by default. - line 477: json := jsoniter.ConfigFastest // TODO make configurable - line 503: json := jsoniter.ConfigFastest // TODO make configurable experimental/traffic_router_golang/quadtree/quadtree.go (5 lines): - line 61: // TODO add CreateAndInsert func, for optimisation? - line 115: // Allow multiple objects at the same location - the first one inserted will be returned. TODO warn? - line 173: // TODO add NearestN - n nearest objs, e.g. in case no cache in the nearest cachegroup is available. - line 174: // TODO add NearestAll - all nearest objs with the same coords, e.g. so multiple cachegroups at the same coordinate can be round-robined - line 227: bestDist := math.MaxFloat64 // TODO memoize by returning? grove/memcache/memcache.go (5 lines): - line 30: cache map[string]*cacheobj.CacheObj // mutexed: MUST NOT access without locking cacheM. TODO test performance of sync.Map - line 31: cacheM sync.RWMutex // TODO test performance of one mutex for lru+cache - line 54: c.lru.Add(key, obj.Size) // TODO directly call c.ll.MoveToFront - line 82: return false // TODO remove eviction from interface; it's unnecessary and expensive - line 107: key, sizeBytes, exists := c.lru.RemoveOldest() // TODO change lru to use strings grove/grove.go (5 lines): - line 133: // TODO pass total size for all file groups? - line 165: // TODO add config to not serve HTTP (only HTTPS). If port is not set? - line 189: // TODO add cache file reloading - line 222: stats = stat.New(remapper.Rules(), caches, uint64(cfg.CacheSizeBytes), httpConns, httpsConns, Version) // TODO copy stats from old stats object? - line 341: // TODO configurable H2 timeouts and buffer sizes grove/remap/remap.go (5 lines): - line 64: // TODO test - line 114: // TODO rename? interface? - line 130: // TODO verify To is not allowed to be constructed with < 1 element - line 137: return "NONE" // TODO const? - line 226: // TODO change to use a prefix tree, for speed traffic_ops/traffic_ops_golang/deliveryservice/deliveryservices.go (5 lines): - line 396: // TODO change DeepCachingType to implement sql.Valuer and sql.Scanner, so sqlx struct scan can be used. - line 1059: // TODO change DeepCachingType to implement sql.Valuer and sql.Scanner, so sqlx struct scan can be used. - line 1428: // TODO: is this necessary? - line 1851: // TODO combine with getOldDetails, to only make one query? - line 2165: // TODO move somewhere generic grove/plugin/http_stats.go (5 lines): - line 51: // TODO access log? Stats byte count? - line 64: log.Debugln("statHandler.ServeHTTP IP " + ip.String() + " FORBIDDEN") // TODO event? - line 68: // TODO gzip - line 69: system := LoadSystemStats(d.Stats, d.InterfaceName) // TODO goroutine on a timer? - line 112: continue // TODO warn? tc-health-client/tc-health-client.go (5 lines): - line 54: rand.Seed(time.Now().UnixNano()) // TODO make deterministic. Seed hostname? - line 88: // TODO: make configurable - line 159: const parentHealthServiceTimeout = time.Second * 30 // TODO make configurable - line 168: parentHealthSvc.Shutdown(context.Background()) // TODO timeout context? - line 215: // TODO this was calling a custom copy func that wasn't copying: tc-health-client/sar/tcphdr.go (5 lines): - line 37: // For a more convenient but slower implementation, use TCPHdrDecoded (TODO implement) - line 198: // TODO handle IPv6 - line 200: // TODO validate sourceIP and destIP are either 4 or 16 len? - line 201: // TODO handle IPv6 - line 213: // TODO pad pseudoHdr? experimental/traffic_router_golang/httpsrvr/httpsrvr.go (5 lines): - line 41: // TODO config - line 45: // TODO config - line 58: // TODO parse subdomains more efficiently - line 130: w.WriteHeader(http.StatusInternalServerError) // TODO better code? - line 139: w.WriteHeader(http.StatusInternalServerError) // TODO better code? cache-config/t3cutil/toreq/torequtil/torequtil.go (4 lines): - line 86: time.Sleep(time.Second * time.Duration(sleepSeconds)) // TODO make backoff configurable? - line 94: // TODO make configurable? - line 152: // TODO move somewhere generic - line 165: // TODO error here? Perl doesn't. tc-health-client/sar/tcphdrnative.go (4 lines): - line 90: // TODO add bounds checking, for malformed options - line 122: // TODO pre-calculate and allocate options size - line 130: // TODO write a single uint32 for offset+reserved+control+window? Should be faster - line 134: // TODO this is terribly inefficient. Go has no way to convert bool to int without a conditional. cache-config/t3c-generate/cfgfile/wrappers.go (4 lines): - line 149: VerboseComments: true, // TODO add a CLI flag - line 171: VerboseComments: true, // TODO add a CLI flag - line 202: AddComments: cfg.ParentComments, // TODO add a CLI flag? - line 333: VerboseComments: cfg.ParentComments, // TODO add a CLI flag? cache-config/t3cutil/toreq/clientfuncs.go (4 lines): - line 262: queryParams.Set("limit", "999999") // TODO add "no limit" param to DSS endpoint - line 304: continue // TODO warn? error? - line 622: // TODO add list of IDs to API+Client - line 664: // TODO add list of IDs to API+Client experimental/traffic-portal/src/app/core/servers/capabilities/capabilities.component.ts (4 lines): - line 81: // TODO: implement - line 88: // TODO: implement - line 95: // TODO: implement - line 102: // TODO: implement cache-config/t3cutil/toreq/toreqold/clientfuncs.go (4 lines): - line 189: queryParams.Set("limit", "999999") // TODO add "no limit" param to DSS endpoint - line 227: continue // TODO warn? error? - line 471: // TODO add list of IDs to API+Client - line 509: // TODO add list of IDs to API+Client tc-health-client/sar/multisar.go (4 lines): - line 78: // TODO implement Initial Sequence Number ISN per RFC9293§3.4.1? It might be faster to use the same seq num for all packets - line 133: // TODO handle IPv6 - line 256: // TODO should this ListenPacket, to let Go automatically choose the port for us? - line 263: // TODO listen on "sent everything" chan, and don't set timeout until everything was sent, traffic_monitor/tools/testto/testto.go (4 lines): - line 52: // TODO handle sighup to die - line 63: // TODO make timeouts configurable? - line 69: // TODO add HTTPS - line 216: // TODO write content type cache-config/t3c-apply/torequest/torequest.go (4 lines): - line 775: // TODO should reval really not sleep? - line 1109: // TODO verify? This is for revalidating after a syncds, so we probably do want to wait for parents here, and users probably don't for the main syncds run. But, this feels surprising. - line 1171: // TODO try to reload/restart anyway? To allow non-RPM installs? - line 1293: // TODO: The boolean flags/representation can be removed after ATC (v7.0+) lib/go-tc/steeringtarget.go (4 lines): - line 41: Type string `json:"type" db:"type"` // TODO enum? - line 42: TypeID int `json:"typeId" db:"type_id"` // TODO enum? - line 53: Type *string `json:"type" db:"type_name"` // TODO enum? - line 54: TypeID *int `json:"typeId" db:"type_id"` // TODO enum? lib/go-atscfg/sslservernamedotyaml.go (4 lines): - line 39: // TODO: Move this into lib/go-rfc? - line 65: // TODO: consolidate with the lib/go-tc TLS version constants. - line 98: // TODO: could this be a String method to make TLSVersion a fmt.Stringer and - line 244: // TODO let active DSes take precedence? grove/plugin/http_memstats.go (4 lines): - line 45: // TODO access log? Stats byte count? - line 58: log.Debugln("statHandler.ServeHTTP IP " + ip.String() + " FORBIDDEN") // TODO event? - line 62: // TODO gzip - line 63: // TODO cache for 1 second grove/web/util.go (4 lines): - line 84: return r.RemoteAddr, port // TODO log? - line 124: // TODO determine if respTime should go here - line 135: // TODO move connectionClose to modhdr plugin - line 144: // bytesWritten = int(WriteStats(stats, w, conn, reqFQDN, remoteAddr, code, uint64(bytesWritten))) // TODO write err to stats? experimental/traffic_router_golang/coveragezone/coveragezone.go (4 lines): - line 32: // TODO put in lib/go-tc - line 36: Revision string `json:"revision"` // TODO change to Time with Marshal func? - line 40: Coordinates tc.CRConfigLatitudeLongitude // TODO rename CRConfigLatitudeLongitude - line 41: Network []string // TODO change to IPNet with Unmarshal func experimental/traffic_ops_auth/traffic_ops_auth.go (4 lines): - line 93: // TODO change to POST - line 119: // TODO return 400 if the error is that the user exists - line 201: //Secure: true, // TODO uncomment when https is implemented - line 268: // TODO prepare query cache-config/t3c-apply/util/gitutil.go (3 lines): - line 159: // TODO git config author? - line 197: now := time.Now() // TODO get a single consistent time when ORT starts? - line 218: // TODO use full args string literal instead? lib/go-tc/profiles.go (3 lines): - line 263: // TODO move to helper package. - line 273: // TODO move to helper package. - line 283: // TODO move to helper package. experimental/traffic_router_golang/crstatespoller/crstatespoller.go (3 lines): - line 63: // TODO implement HTTP poller - line 91: updateAvailableServers(crc, thsCrs, availableServers) // TODO update AvailableServers when CRStates OR CRConfig is update, via channel and manager goroutine? - line 94: // TODO update AvailableServers traffic_monitor/datareq/datareq.go (3 lines): - line 230: // TODO split params and path into 2 separate wrappers? - line 231: // TODO change to simply take the http.Request? - line 379: // TODO this could be made more efficient by wrapping ResponseWriter with the GzipWriter, and letting callers writer directly to it - but then we'd have to deal with Closing the gzip.Writer. experimental/traffic_router_golang/crconfigregex/crconfigregex.go (3 lines): - line 31: // TODO remove duplication with Traffic Monitor - line 92: // TODO precompute, move to TOData; call when we get new delivery services, instead of every time we create new stats - line 115: // TODO warn? regex matches are unusual traffic_monitor/manager/opsconfig.go (3 lines): - line 86: // TODO remove change subscribers, give Threadsafes directly to the things that need them. If they only set vars, and don't actually do work on change. - line 94: json := jsoniter.ConfigFastest // TODO make configurable? - line 158: // TODO config? parameter? traffic_ops/traffic_ops_golang/deliveryservice/dnssec.go (3 lines): - line 47: // TODO warn and continue? - line 164: // TODO change ttl to time.Duration - line 167: // TODO move somewhere generic traffic_ops/traffic_ops_golang/cachegroup/cachegroups.go (3 lines): - line 311: // TODO: A lot of database operations here either swallow their errors or return - line 796: // TODO: Find references that talk about longitude and latidude as required fields - line 800: // TODO: In the meantime should an error be returned for partial coordinate information? lib/go-atscfg/loggingdotconfig.go (3 lines): - line 58: // TODO: Is this true? According to the ATS docs, the contents of logging.config - line 107: // TODO determine if the line should be excluded. Perl includes it anyway, without checking. - line 126: // TODO determine if the line should be excluded. Perl includes it anyway, without checking. lib/go-atscfg/parentabstraction.go (3 lines): - line 353: // TODO add DS name - line 354: // TODO don't error? No single delivery service should be able to break others. - line 388: // TODO add quotes tc-health-client/tmagent/tmhealthservice.go (3 lines): - line 96: // TODO move reading ATS config files to its own poller service - line 101: // TODO track map len - line 133: // TODO move to its own TO poller traffic_monitor/config/config.go (3 lines): - line 221: json := jsoniter.ConfigFastest // TODO make configurable? - line 258: json := jsoniter.ConfigFastest // TODO make configurable? - line 312: json := jsoniter.ConfigFastest // TODO make configurable? traffic_ops/traffic_ops_golang/deliveryservice/health.go (3 lines): - line 79: return tc.HealthData{}, nil // TODO emulates old Perl behavior; change to return error? - line 147: continue // TODO warn? - line 161: continue // TODO warn? traffic_monitor/manager/stat.go (3 lines): - line 208: case <-bufferTimer.C: // TODO protect against bufferTimer starvation - line 277: // TODO determine if we want to add results with errors, or just print the errors now and don't add them. - line 279: health.GetVitals(&result, &lastResult, &mc) // TODO precompute traffic_monitor/tools/testcaches/fakesrvrdata/run.go (3 lines): - line 28: type BytesPerSec struct { // TODO change to PerMin? PerHour? (to allow, e.g. one 5xx per hour) - line 67: // TODO add increments for Rcv,SndPackets, ProcLoadAvg variance, ConfigReloads - line 69: // TODO seed rand? Param? lib/go-atscfg/ipallowdotyaml.go (3 lines): - line 36: // TODO: Replace instances of 'ip_allow.yaml' with this currently unused - line 128: // allow RFC 1918 server space - TODO JvD: parameterize - line 136: // start with a deny for PUSH and PURGE - TODO CDL: parameterize lib/go-atscfg/strategiesdotconfig.go (3 lines): - line 107: }, // TODO change MakeParentDotConfigData to its own opt? - line 238: // TODO make strategies for both? add to parent? - line 341: // txt += "\n" + ` - scheme: http` // TODO fix? experimental/traffic_router_golang/ipmap/ipmap.go (3 lines): - line 32: // TODO implement, with Coverage Zone File + Maxmind DB - line 42: // TODO remove when real geo lookup is implemented - line 59: // TODO: get IP via req.RemoteAddr => net.SplitHostPort => net.ParseIP traffic_ops/traffic_ops_golang/cachesstats/cachesstats.go (3 lines): - line 113: // TODO in the next API version, add totals in their own JSON objects, not amidst the cachegroup keys. - line 141: return cacheData // TODO warn? - line 177: return cacheData // TODO warn? grove/plugin/http_cacheinspector.go (3 lines): - line 76: // TODO access log? Stats byte count? - line 89: log.Debugln("statHandler.ServeHTTP IP " + ip.String() + " FORBIDDEN") // TODO event? - line 194: // TODO add eventId? lib/go-atscfg/regexrevalidatedotconfig.go (3 lines): - line 55: // TODO: replace instances of "remap.config" with this constant. - line 77: // TODO: Figure out if this can be deprecated/removed, along with the check for - line 164: // TODO: add cdn, startTime query params to /jobs endpoint traffic_ops/traffic_ops_golang/role/roles.go (2 lines): - line 197: // TODO verify expected row count shouldn't be checked? - line 252: // TODO cascade delete, to automatically do this in SQL? cache-config/t3c-apply/util/util.go (2 lines): - line 332: // TODO remove check? Let people run as any user, if it succeeds? Warn? - line 341: // TODO remove? Why would reval be ok, but not other files? grove/diskcache/diskcache.go (2 lines): - line 125: key, sizeBytes, exists := c.lru.RemoveOldest() // TODO change lru to use strings - line 155: c.lru.Add(key, val.Size) // TODO directly call c.ll.MoveToFront traffic_ops/traffic_ops_golang/api/api.go (2 lines): - line 476: // TODO: Rework validation to be able to return system-level errors - line 485: // TODO: change to take data loaded from db, to remove sql from tc package. traffic_ops/traffic_ops_golang/routing/middleware/wrappers.go (2 lines): - line 279: // TODO: drichardson - refactor these to a generic area - line 281: // TODO this could be made more efficient by wrapping ResponseWriter with the GzipWriter, and letting callers writer directly to it - but then we'd have to deal with Closing the gzip.Writer. experimental/traffic-portal/src/app/api/testing/delivery-service.service.ts (2 lines): - line 484: // TODO: these percentiles should technically be accurate - line 533: // TODO: these percentiles should technically be accurate traffic_monitor/datareq/cachestate.go (2 lines): - line 132: localCacheStatus := localCacheStatusThreadsafe.Get().Copy() // TODO test whether copy is necessary - line 316: return true // TODO log warning? error? traffic_ops/traffic_ops_golang/monitoring/monitoring.go (2 lines): - line 513: // TODO remove 'like' in query? Slow? - line 571: return nil, fmt.Errorf("null name") // TODO continue and warn? cache-config/t3c-apply/torequest/cmd.go (2 lines): - line 278: // TODO: Do these override the values set above? These appear to be the same, dups? - line 561: // TODO support /opt traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/SignatureManager.java (2 lines): - line 477: // TODO: do we really need to fully sign the apex keyset? should the digest be config driven? - line 552: // TODO: make adding zsk to parent zone configurable? traffic_ops/traffic_ops_golang/server/servers.go (2 lines): - line 1096: // TODO: include secondary parent? - line 1983: // TODO: Use returned values from SQL insert to ensure inserted values match cache-config/t3c-update/config/config.go (2 lines): - line 107: (!getopt.IsSet(setConfigApplyBoolFlagName) && !getopt.IsSet(setRevalApplyBoolFlagName)) { // TODO: Remove once ATC (v7.0+) is deployed - line 129: // TODO: Remove once ATC (v7.0+) is deployed traffic_ops/traffic_ops_golang/routing/routing.go (2 lines): - line 52: const RoutePrefix = "^api" // TODO config? - line 185: // TODO strong types for method, path cache-config/t3c-check-reload/t3c-check-reload.go (2 lines): - line 45: // TODO remove? The blueprint says t3c/ORT will no longer install packages - line 88: // TODO add && ssl keys install cache-config/t3cutil/getdata.go (2 lines): - line 241: // TODO need to move to toreq, add fallback - line 252: // TODO need to move to toreq, add fallback traffic_monitor/datareq/peerstatefilter.go (2 lines): - line 89: // TODO change legacy `stats` and `hosts` to `caches` and `monitors` (or `peers`). - line 109: // TODO rename 'stats' to 'caches' infrastructure/cdn-in-a-box/enroller/enroller.go (2 lines): - line 55: // TODO: s.GetParameterByxxx() does not seem to work with values with spaces -- - line 462: // TODO: handle other errors? lib/go-atscfg/hostingdotconfig.go (2 lines): - line 32: // TODO: Remove? This is unused, even internally in this package. - line 147: // some DSes have nil origins. I think MSO? TODO: verify traffic_ops/traffic_ops_golang/crconfig/edgelocations.go (2 lines): - line 71: // TODO test whether it's faster to do a single query, joining lat/lon into servers - line 84: // TODO pass edge type prefix, router type name grove/plugin/http_callgc.go (2 lines): - line 45: // TODO access log? Stats byte count? - line 58: log.Debugln("statHandler.ServeHTTP IP " + ip.String() + " FORBIDDEN") // TODO event? cache-config/t3c-generate/cfgfile/varnish.go (2 lines): - line 32: // TODO: add varnishncsa and hitch configs - line 39: // TODO: should be parameterized and generated from varnishcfg traffic_ops/traffic_ops_golang/trafficvault/backends/riaksvc/dsutil.go (2 lines): - line 280: // TODO move to ats config directory/file - line 343: const cdnSSLKeysLimit = 1000 // TODO: emulates Perl; reevaluate? traffic_monitor/health/cache.go (2 lines): - line 114: // TODO JvD: Should we really be running this code every second for every cache polled????? I don't think so. - line 162: // TODO change to return a `cache.AvailableStatus` traffic_ops/traffic_ops_golang/deliveryservice/request/requests.go (2 lines): - line 115: // TODO: figure out how to modify 'AddTenancyCheck' so this isn't necessary. - line 201: // TODO: add this functionality to the query builder in dbhelpers traffic_ops/traffic_ops_golang/trafficstats/deliveryservice.go (2 lines): - line 52: // TODO: Pretty sure all of this could actually be calculated using the fetched data (assuming an - line 182: // TODO: as above, this could be done on TO itself, thus sending only one synchronous request lib/go-atscfg/snidotyaml.go (2 lines): - line 32: // TODO: replace instances of sni.yaml with this constant. - line 119: // TODO let active DSes take precedence? lib/go-atscfg/loggingdotyaml.go (2 lines): - line 117: // TODO determine if the line should be excluded. Perl includes it anyway, without checking. - line 134: // TODO determine if the line should be excluded. Perl includes it anyway, without checking. traffic_ops/traffic_ops_golang/auth/certificate.go (2 lines): - line 40: // TODO: Parse client headers as alternative to TLS in the request - line 87: // TODO: This will prevent rolling cert renewals at runtime and will require a TO restart traffic_monitor/poller/cache.go (2 lines): - line 128: // TODO iterationCount and/or p.TickChan? - line 176: rdr = bytes.NewReader(bts) // TODO change handler to take bytes? Benchmark? cache-config/t3c-generate/cfgfile/sslkeys.go (2 lines): - line 74: keyFile.Path = "/opt/trafficserver/etc/trafficserver/ssl/" // TODO read config, don't hard code - line 82: certFile.Path = "/opt/trafficserver/etc/trafficserver/ssl/" // TODO read config, don't hard code lib/go-atscfg/setdscpdotconfig.go (2 lines): - line 60: // TODO verify prefix, suffix, and that it's a number? Perl doesn't. - line 68: // TODO warn? We don't generally warn for client errors, because it can be an attack vector. Provide a more informative error return? Return a 404? lib/go-atscfg/servercachedotconfig.go (2 lines): - line 55: // TODO orgserverfqdn is nil for some DSes - MSO? Verify. - line 97: // TODO unit test. experimental/traffic_router_golang/fetch/http.go (2 lines): - line 46: // TODO round-robin retry on error? - line 54: // TODO round-robin retry on error? traffic_ops/traffic_ops_golang/crconfig/deliveryservice.go (2 lines): - line 231: // TODO prevent (lat XOR lon) in the Tx and UI - line 275: // TODO change to omit Valid check, default to the default DeepCachingType (NEVER). I'm pretty sure that's what should happen, but the Valid check emulates the old Perl CRConfig generation traffic_ops/traffic_ops_golang/origin/origins.go (2 lines): - line 293: // TODO: enhance tenancy framework to handle this in isTenantAuthorized() - line 378: // TODO: enhance tenancy framework to handle this in isTenantAuthorized() tc-health-client/config/config.go (2 lines): - line 44: // TODO dynamically add Version from RPM build. - line 77: // TODO fix to not take CDN name, so it can't be wrong. grove/chash/atsorderedmap.go (2 lines): - line 30: // TODO move Weighted to a separate struct, `ATSWeightedHashRing` - line 122: // TODO change to binary search tc-health-client/tmagent/parenthealthservice.go (2 lines): - line 77: // TODO implement io.Reader/+io.WriterTo? - line 78: // TODO add 1s cache traffic_ops/traffic_ops_golang/cdn/dnssecrefresh.go (2 lines): - line 158: // TODO change to return a slice, map is slow and unnecessary - line 191: keys, ok, err := tv.GetDNSSECKeys(string(cdnInf.CDNName), tx, context.Background()) // TODO get all in a map beforehand traffic_ops/traffic_ops_golang/user/current.go (2 lines): - line 387: // TODO: check for valid password via bad password list like Perl did? User creation doesn't... - line 472: // TODO users are tenanted, so theoretically I should be hiding the existence of the grove/remapdata/remapdata.go (2 lines): - line 192: // TODO don't cache on `to`, since it's affected by Parent Selection - line 193: // TODO add parent selection traffic_monitor/build/traffic_monitor.spec (2 lines): - line 53: # TODO: The /opt/traffic_monitor/var/log symlink is deprecated and should be removed for ATC 9.0.0. - line 130: # TODO: The /opt/traffic_monitor/var/log symlink is deprecated and should be removed for ATC 9.0.0. traffic_stats/build/traffic_stats.spec (2 lines): - line 68: # TODO: The /opt/traffic_stats/var/log symlink is deprecated and should be removed for ATC 9.0.0. - line 150: # TODO: The /opt/traffic_stats/var/log symlink is deprecated and should be removed for ATC 9.0.0. traffic_ops/app/db/create_tables.sql (2 lines): - line 1134: port bigint, -- TODO: port numbers have a max of 65535 - this could be just an integer - line 1135: ip_address text, -- TODO: these should be inet type, not text lib/go-tc/types.go (2 lines): - line 78: // TODO: Move this to the DB helpers package. - line 99: // TODO: Move this to the DB helpers package. traffic_ops/traffic_ops_golang/login/login.go (2 lines): - line 352: // TODO: afaik, Perl never clears these tokens. They should be reset to NULL on login, I think. - line 686: // TODO: consider concealing database state from unauthenticated parties; lib/go-atscfg/headerrewritedotconfig.go (2 lines): - line 61: // TODO: Remove this? It's not used anywhere, not even internally in this - line 165: // TODO verify prefix and suffix? Perl doesn't experimental/traffic_router_golang/cgsrch/cgsrch.go (1 line): - line 40: // TODO change to Searcher interface? grove/plugin/ats_log.go (1 line): - line 134: // TODO escape quotes within useragent, moneytrace cache-config/t3c-generate/update-to-client/update-to-client.go (1 line): - line 165: // TODO is this really an error? Skip and continue? lib/go-util/num.go (1 line): - line 40: // TODO try to parse string stats as numbers? Also, JSON numbers are defined by experimental/traffic_router_golang/crconfigdsservers/crconfigdsservers.go (1 line): - line 30: // TODO handle Steering traffic_ops/traffic_ops_golang/server/servers_assignment.go (1 line): - line 372: //TODO: DylanVolz this may need to be extended refactored, there are potentially other parameters that need this like urlSigKeys... traffic_ops/traffic_ops_golang/cdnfederation/cdnfederations.go (1 line): - line 388: // TODO: use IsResourceAuthorizedToUserTx instead experimental/traffic-portal/src/app/api/testing/invalidation-job.service.ts (1 line): - line 66: // TODO: implement this cache-config/t3c-apply/config/config.go (1 line): - line 769: // TODO add new flags traffic_ops/traffic_ops_golang/division/divisions.go (1 line): - line 115: // TODO move to router, and do for all endpoints grove/config/config.go (1 line): - line 53: ReqTimeoutMS int `json:"parent_request_timeout_ms"` // TODO rename "parent_request" to distinguish from client requests traffic_ops/traffic_ops_golang/crconfig/config.go (1 line): - line 94: // TODO change to []struct{string,string} ? Speed might matter. traffic_ops/traffic_ops_golang/profile/profiles.go (1 line): - line 150: // TODO add generic where clause to api.GenericRead lib/go-atscfg/regexremapdotconfig.go (1 line): - line 80: continue // TODO log? traffic_ops/traffic_ops_golang/api/shared_handlers.go (1 line): - line 287: return // TODO verify? experimental/traffic_router_golang/crconfigpoller/crconfigpoller.go (1 line): - line 85: // TODO implement HTTP poller cache-config/t3c-check/t3c-check.go (1 line): - line 26: "syscall" // TODO change to x/unix ? traffic_monitor/datareq/cachecount.go (1 line): - line 28: // TODO determine if this should use peerStates traffic_monitor/poller/peer.go (1 line): - line 163: rdr = bytes.NewReader(bts) // TODO change handler to take bytes? Benchmark? traffic_ops/v3-client/deliveryserviceserver.go (1 line): - line 80: // TODO: page and limit should be integers not strings grove/diskcache/multi.go (1 line): - line 84: // TODO Fix this - each cache is an independent LRU, and the below doesn't make sense. traffic_ops/traffic_ops_golang/cdn/health.go (1 line): - line 142: continue // TODO warn? traffic_ops/traffic_ops_golang/federations/allfederations.go (1 line): - line 180: // TODO improve query to be CDN-specific traffic_ops/traffic_ops_golang/crconfig/servers.go (1 line): - line 113: // TODO select deliveryservices as array? traffic_ops/traffic_ops_golang/traffic_ops_golang.go (1 line): - line 154: // TODO combine traffic_monitor/tools/testcaches/testcaches.go (1 line): - line 62: // TODO handle sighup to die cache-config/t3c-check-refs/t3c-check-refs.go (1 line): - line 219: // TODO smarter path checking. This would wrongly succeed if a file was being created but in a different path. traffic_monitor/health/event.go (1 line): - line 95: o.m.Lock() // TODO test removing traffic_monitor/datareq/dsstatfilter.go (1 line): - line 128: // TODO rename 'hosts' to 'names' for consistency traffic_monitor/traffic_monitor.go (1 line): - line 68: // TODO add hot reloading (like opsConfigFile)? grove/cacheobj/cacheobj.go (1 line): - line 42: // TODO include headers size traffic_control/clients/python/trafficops/tosession.py (1 line): - line 1434: #TODO: this currently doesn't work, as /isos wasn't rewritten yet traffic_monitor/threadsafe/polledcaches.go (1 line): - line 129: // TODO fix "whether a cache has ever been polled" to be generic somehow. The result.System.NotAvailable check is duplicated in health.EvalCache, and is fragile. What if another "successfully polled but unavailable" flag were added? traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/ds/SteeringGeolocationComparator.java (1 line): - line 66: // TODO: if the difference is smaller than a certain threshold/ratio, still prefer the closer edge even though distance is greater? grove/stat/stats.go (1 line): - line 99: bytesRead := 0 // TODO get somehow? Count body? Sum header? traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/Fetcher.java (1 line): - line 57: // TODO: make disabling self signed certificates configurable traffic_monitor/peer/peer.go (1 line): - line 70: json := jsoniter.ConfigFastest // TODO make configurable? lib/go-tc/totestv4/federations.go (1 line): - line 31: // TODO fix/remove globals experimental/traffic-portal/src/app/app.module.ts (1 line): - line 37: // TODO: Figure out the actual typing here. experimental/traffic-portal/src/app/shared/charts/linechart.directive.ts (1 line): - line 16: import { Chart } from "chart.js"; // TODO: use plotly instead for WebGL-capabale browsers? grove/icache/icache.go (1 line): - line 21: // TODO change to return errors experimental/traffic_router_golang/fetch/file.go (1 line): - line 39: // TODO round-robin retry on error? lib/go-tc/deliveryservices.go (1 line): - line 78: // TODO: Move these into the respective clients? cache-config/t3c-preprocess/t3c-preprocess.go (1 line): - line 140: // TODO read log location arguments traffic_monitor/tools/testcaches/fakesrvrdata/ths.go (1 line): - line 56: IncrementChan: make(chan IncrementChanT, 10), // arbitrarily allow 10 writes before blocking. TODO document? config? experimental/traffic-portal/src/app/utils/date.ts (1 line): - line 69: // TODO: figure out a way to do this that doesn't involve recalculating on every cache-config/t3c/t3c.go (1 line): - line 26: "syscall" // TODO change to x/unix ? lib/go-atscfg/sslmulticertdotconfig.go (1 line): - line 155: continue // TODO warn? error? Perl doesn't traffic_monitor/poller/monitorconfig.go (1 line): - line 29: "github.com/apache/trafficcontrol/v8/traffic_monitor/towrap" // TODO move to common grove/web/listener.go (1 line): - line 92: log.Errorf("Accept err: %v\n", err) // TODO stats? traffic_monitor/datareq/stat.go (1 line): - line 86: s.TotalMemoryMB = memStats.Alloc / (1024 * 1024) // TODO rename to "used memory" if/when nothing is using the JSON entry traffic_ops/traffic_ops_golang/apitenant/tenant.go (1 line): - line 284: // TODO fix this to check for other Postgres errors besides key violations traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/NetworkNode.java (1 line): - line 143: final CacheLocation deepLoc = new CacheLocation( "deep." + loc, geolocation != null ? geolocation : new Geolocation(0.0, 0.0)); // TODO JvD traffic_portal/app/src/common/modules/table/servers/TableServersController.js (1 line): - line 486: // TODO: use template strings once the build can handle them. experimental/traffic_router_golang/traffic_router_golang.go (1 line): - line 93: monitors, err := toutil.GetMonitorURIs(toClient, cfg.CDN) // TODO re-fetch monitors on interval lib/go-atscfg/astatsdotconfig.go (1 line): - line 53: // TODO: Rename to 'MakeAstatsDotConfig' for consistency with other exported traffic_monitor/tools/testcaches/fakesrvr/fakesrvr.go (1 line): - line 37: // TODO stop all servers already created? traffic_ops/traffic_ops_golang/server/update.go (1 line): - line 357: // TODO parse JSON body to trump Query Params? misc/release.pl (1 line): - line 84: #TODO: drichardson - Preflight check for commands 'git', 's3cmd' , ' lib/go-tc/deliveryservice_requests.go (1 line): - line 418: DeliveryService DeliveryService `json:"deliveryService"` // TODO version DeliveryServiceRequest traffic_ops/traffic_ops_golang/deliveryservice/servers/servers.go (1 line): - line 307: // TODO refactor to use dbhelpers.AddTenancyCheck lib/go-tc/invalidationjobs.go (1 line): - line 258: // TODO: This doesn't belong in the lib, and it swallows errors because it traffic_ops/traffic_ops_golang/tenant/tenancy.go (1 line): - line 217: // TODO move somewhere generic lib/go-tc/totest/federations.go (1 line): - line 31: // TODO fix/remove globals lib/go-atscfg/meta.go (1 line): - line 347: // TODO verify? lib/go-atscfg/chkconfig.go (1 line): - line 57: // TODO: rename/rework? We systemd now, after all. Also, this may be unused as traffic_ops/traffic_ops_golang/deliveryservice/request/comment/comments.go (1 line): - line 156: // TODO determine if users should be able to delete sub-tenant users' comments? Else, a deleted user's comments can never be removed. traffic_monitor/static/index.html (1 line): - line 66: lib/varnishcfg/hitch.go (1 line): - line 39: // TODO: change root user traffic_router/connector/src/main/java/org/apache/traffic_control/traffic_router/protocol/LanguidNioProtocol.java (1 line): - line 35: //TODO: Figure out if we can convert from PKCS1 to PKCS8 with out BC experimental/webfront/webfront.go (1 line): - line 285: // req.URL.Path = "/boo1" // TODO JvD - regex to change path here traffic_ops/v3-client/parameter.go (1 line): - line 142: // TODO: API should support all 3, but does not support filter by value traffic_ops/traffic_ops_golang/deliveryservice/capacity.go (1 line): - line 105: return CapacityResp{}, nil // TODO emulates perl; change to error? traffic_ops/v3-client/server.go (1 line): - line 235: // TODO fix to only request one server lib/go-tc/traffic_stats.go (1 line): - line 150: // TODO: Don't log in library function - return error if there is one. infrastructure/cdn-in-a-box/varnish/vstats.go (1 line): - line 39: // TODO: stats traffic_monitor/threadsafe/uint.go (1 line): - line 48: // TODO make sure everything using this uses the value it returns, not a separate Get traffic_monitor/threadsafe/resulthistory.go (1 line): - line 30: // TODO add separate locks for Caches and Deliveryservice maps? traffic_ops/traffic_ops_golang/deliveryservice/request/validate.go (1 line): - line 182: // TODO: allow ParseValidators to return system errors? experimental/traffic_router_golang/fetch/roundrobin.go (1 line): - line 42: return fetcher.Fetch() // TODO round-robin retry on error? experimental/certificate_auth/certs/generate_certs.go (1 line): - line 59: // useEcdsa = false //TODO: Enable and refactor lib/go-tc/cdns.go (1 line): - line 187: // TODO move to helper package. experimental/traffic_router_golang/availableservers/availableservers.go (1 line): - line 66: // TODO put in _test.go file traffic_monitor/config/staticappdata.go (1 line): - line 52: d.FreeMemoryMB = math.MaxUint64 // TODO remove if/when nothing needs this lib/go-atscfg/atsdotrules.go (1 line): - line 30: // TODO: This isn't actually correct. This is just the ConfigFile value that a traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/router/TrafficRouter.java (1 line): - line 561: // TODO: getHostname or getName -- !ds.getRoutingName().equalsIgnoreCase(request.getHostname().split("\\.")[0])) traffic_ops/traffic_ops_golang/steeringtargets/steeringtargets.go (1 line): - line 251: // TODO determine if the CRUDer automatically does this traffic_monitor/peer/crstates.go (1 line): - line 33: // TODO add separate locks for Caches and DeliveryService maps? traffic_ops/traffic_ops_golang/cdn/dnssec.go (1 line): - line 153: // TODO emulates Perl; change to error, 404?