Commit graph

41 commits

Author SHA1 Message Date
elotreum
77a52f9f30 http: allow for customized routes
Update to allow arrays of routes to be passed to the http frontend.
This also supports named parameters as permitted by the
router.

To avoid external dependencies in the middleware, a RouteParam and
RouteParams type was added to the bittorrent package.

Note: this eliminates the need for "enable_legacy_php_urls", as
the the additional route could be added to the route array. However,
this may be considered a breaking change.
2020-01-14 16:35:28 -07:00
elotreum
5082146ae9 http: explicitly set Content-Type header
Since Content-Type is not explicitly set, golang sniffs the responses
and attempts a guess. With announce responses, this usually means it
guesses application/octet-stream.

According to the godoc at
https://golang.org/pkg/net/http/#ResponseWriter

// If WriteHeader has not yet been called, Write calls
// WriteHeader(http.StatusOK) before writing the data. If the Header
// does not contain a Content-Type line, Write adds a Content-Type set
// to the result of passing the initial 512 bytes of written data to
// DetectContentType. Additionally, if the total size of all written
// data is under a few KB and there are no Flush calls, the
// Content-Length header is added automatically.
2020-01-14 13:31:25 -07:00
Leo Balduf
cb88a11d6a frontend: add defaults for parser options 2019-10-12 12:52:16 +09:00
Cenk Alti
d0fc3a4634
split listen&serve for http 2018-12-30 13:36:32 +03:00
Justin Li
1cb16ddb0c Add https_addr config, required to run HTTPS 2018-09-11 17:17:09 -04:00
Justin Li
1a4e4c833b
Merge pull request #413 from chihaya/recursive-stop-groups
Return []error from Stop() channel, allow recursive stop groups
2018-09-11 17:14:41 -04:00
Justin Li
d95120c817 Return []error from Stop() channel, allow recursive stop groups 2018-09-09 11:30:15 -04:00
Justin Li
20edf7a136 Add config to enable keepalive/persistent connections 2018-09-09 09:01:53 -04:00
Leo Balduf
8095657735 http: fix TLS 2018-09-04 12:45:06 +02:00
Jimmy Zelinskie
f0780ad9cc frontend: isolate prometheus logic to one file 2018-06-15 13:33:26 -04:00
Leo Balduf
2f58e98832 http: add option for legacy PHP URLs 2017-12-05 10:41:43 +01:00
Jimmy Zelinskie
ca823e0e5f frontend: update to use non-object sanization 2017-10-17 22:02:45 -04:00
Jimmy Zelinskie
6dee48ce17 frontend/http: add request sanitization 2017-10-08 18:02:33 -04:00
Leo Balduf
7d9166e003 http: add default ReadTimeout, WriteTimeout 2017-09-30 14:26:02 +02:00
Leo Balduf
8ed171b0ea pkg/log: create wrapper around logrus 2017-06-26 20:46:40 +02:00
Cedric Charly
f7becf952b frontend: TrackerLogic interface returns modified context
HandleAnnounce and HandleScrape must return the modified context changed
by the hooks. These contexts are passed to AfterAnnounce and AfterScrape
for further use.

Closes #304
2017-06-07 19:25:12 -05:00
Leo Balduf
f61e7a9281 frontend: make request timing optional 2017-05-12 20:27:31 +02:00
Jimmy Zelinskie
cb55019ab8 *: add structured logging 2017-05-07 04:30:22 -04:00
Jimmy Zelinskie
ea0dba3a3d cmd/chihaya: refactor root run command
This change refactors a bunch of the state of execution into its own
object. It also attempts to simplify stopping and adjusts some other
packages to integrate with the stopper interface.

Fixes #309.
2017-05-01 15:56:38 -04:00
Leo Balduf
2e625af44d http: fix HTTP shutdown panicking 2017-04-04 22:34:53 +02:00
Leo Balduf
300b9c12ab http: use go1.8 graceful shutdown 2017-02-18 13:08:12 +01:00
Jimmy Zelinskie
215f33d862 frontend/*: only record ClientErrors to Prometheus
All ClientErrors are constant and should not cause Prometheus streams to
be generated for all possible failure scenarios in the program.

Fixes #294.
2017-02-16 01:01:38 -05:00
Leo Balduf
fdf4ed8169 frontend: fix recording of address family 2017-02-05 17:24:53 +01:00
Jimmy Zelinskie
0e07b33827 prometheus: record IP AddressFamily 2017-02-02 19:19:33 -05:00
Jimmy Zelinskie
6884a8f527 frontend/http: add TLS support
Fixes #283.
2017-02-02 02:01:51 -05:00
Jimmy Zelinskie
8b1ab73894 Merge pull request #275 from jzelinskie/rmaction
frontend/udp: rm copypasta metric recording
2017-01-23 14:30:42 -05:00
Jimmy Zelinskie
acc051bcc4 frontend: rm copypasta metric recording
Fixes #271.
2017-01-23 14:06:32 -05:00
Leo Balduf
0702755d0b http: fix prometheus timings
Fixes #272.
2017-01-23 16:24:29 +01:00
Leo Balduf
3ae3843944 bittorrent: add AddressField to ScrapeRequest 2017-01-20 20:34:39 +01:00
Leo Balduf
3c098c0703 middleware: add sanitization hook 2017-01-20 20:29:59 +01:00
Leo Balduf
e4e6ef4bfd http: fix godoc 2016-11-27 10:56:51 +01:00
Jimmy Zelinskie
fcfe5a2c2d frontend: add yaml tags to UDP and HTTP configs
This change also adds the missing fields to the example config.

Fixes #228.
2016-09-29 13:25:17 -04:00
Leo Balduf
331dbe34d7 http: add scrape address length to context 2016-09-08 16:02:03 -04:00
Jimmy Zelinskie
093a748457 frontend: s/ctx.TODO/ctx.Background 2016-09-05 12:25:11 -04:00
Jimmy Zelinskie
fc13031d96 move to std context package 2016-08-16 22:34:05 -04:00
Jimmy Zelinskie
cc6614c474 rename back to chihaya 2016-08-16 22:17:10 -04:00
Jimmy Zelinskie
778773cb81 rm copyright 2016-08-16 22:17:10 -04:00
Jimmy Zelinskie
c9fe95b103 s/backend/middleware 2016-08-16 22:17:10 -04:00
Jimmy Zelinskie
11d90b088c s/trackerfuncs/trackerlogic 2016-08-16 22:17:10 -04:00
Leo Balduf
9a8cdccc6c make frontend.TrackerFuncs an interface 2016-08-16 22:17:10 -04:00
Leo Balduf
ae18d89627 rename frontends to frontend 2016-08-16 22:17:10 -04:00
Renamed from frontends/http/frontend.go (Browse further)