summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-07-24fix: #3 handle domains without A-recordAzul
If a domain only has an mx record but no A record it will trigger a ConnectionError when attempting the nicknym key lookup. We need to detect and handle this in the http adapter already because once the exception is handled by Celluloid our actor will be terminated. So now we allow for handing a rescue option to the adapter with a string that is checked for inclusion in the error message. If the string is found the exception will be caught and the adapter returns nil. We only make use of this when checking the availability of nicknym so far. That should be the only http request going out.
2017-07-24Merge branch 'test/fd-count-tweak' into 'master'azul
minor: tweak file descriptor count test See merge request !14
2017-07-24minor: tweak file descriptor count testAzul
2017-07-24Merge branch 'upgrade/bundle' into 'master'azul
Upgrade/bundle See merge request !12
2017-07-24Merge branch 'fix/fd-leak' into 'master'azul
fix: filedescriptor leak from http_adapters See merge request !13
2017-07-21fix: filedescriptor leak from http_adaptersAzul
Now we reuse a single adapter for all requests triggered by an incoming request. Then we .terminate the adapter. Includes a regression test.
2017-07-21upgrade: bundleAzul
2017-07-21ci: test bundle is up to dateAzul
2017-07-20Merge branch 'upgrade' into 'master'azul
upgrade dependencies See merge request !11
2017-05-11upgrade dependenciesAzul
2017-02-21gitignore: bundle dirAzul
2017-01-17Restart nickserver automatically from systemdvarac
2017-01-16Add systemd service unit filevarac
2016-12-05bugfix: send empty json object on 404 rather than nilversion/0.9Azul
sending nothing was keeping the connection alive.
2016-12-02bugfix: remote nicknym is on port 6425Azul
We may use a different port in the config that is then mapped somehow. But this should not affect where we try to contact remote nicknym servers.
2016-12-02Merge branch 'bugfix/couch-auth' into 'master' azul
bugfix: use user:password@ prefix in http basic auth See merge request !9
2016-12-02debug: raise error on 401Azul
This will get us more debug info in the logs if it happens again
2016-12-02bugfix: use user:password@ prefix in http basic authAzul
http.rb does not do this on its own.
2016-12-02cleanup: old empty adapters and testsAzul
2016-12-02Merge branch 'test/debug-failures' into 'master' azul
test: more meaningful error messages in case of failures See merge request !8
2016-11-30test: more meaningful error messages in case of failuresAzul
2016-10-17Merge branch 'release/0.9' into 'master' azul
Release 0.9 Version 0.9.0 Allow queries by fingerprint (using keyservers to reply) and support key lookup from other nickservers. This is a major rewrite both in terms of our dependencies and our architecture. We moved the server and http_client from eventmachine to Celluloid based libraries. This allows for a more concise syntax and proper https handling. In addition we now support ruby 2.3, use a Logger instead of stdout and handle network errors properly See merge request !7
2016-10-17Version 0.9.00.9.0Azul
Allow queries by fingerprint (using keyservers to reply) and support key lookup from other nickservers. This is a major rewrite both in terms of our dependencies and our architecture. We moved the server and http_client from eventmachine to Celluloid based libraries. This allows for a more concise syntax and proper https handling. In addition we now support ruby 2.3, use a Logger instead of stdout and handle network errors properly
2016-10-17Merge branch 'feature/log-requests-and-errors' into 'master' azul
Log requests and errors proper logging See merge request !6
2016-10-02doc: prepara CHANGES.md for 0.9.0Azul
2016-10-02minor: gitignore byebug_historyAzul
2016-10-02minor: include Gemfile.lockAzul
2016-10-02doc: add sequence diagrams for high level overviewAzul
2016-10-02silence Celluloid.logger in testsAzul
Introduced CelluloidTest as a test class for all tests that depend on Celluloid being up and running.
2016-09-30change default adapter to CelluloidHttpAzul
Turns out without this nickserver will not respond to multiple concurrent requests.
2016-09-30logger: log celluloid errors to default logAzul
2016-09-30minor: test: fix * interpreted as arg prefix warningAzul
2016-09-30logger: log to STDOUT when run in foregroundAzul
2016-09-30logging: use proper loggerAzul
This way the logs do not interfere with test output
2016-09-29use stderr for errorsAzul
2016-09-29skip tests with ConnectionErrorsAzul
We handle these errors nicely in the dispatcher and have tests for that. Tests should fail or err out when running into exceptions we are not handling yet. But for these it's better to just skip.
2016-09-24log HTTP::ConnectionErrors, respond with json bodyAzul
2016-09-24use plain http.rb rather than celluloid i/oAzul
Turns out http.rb does not support celluloid i/o andymore and we were not making use of it anyway. Here's what https://github.com/httprb/http/wiki/Thread-Safety says: (NOTE: this gem previously supported Celluloid::IO, but that support was removed to add the current timeout backend. It may be added back in a future version) So now we have a plain http.rb adapter and use that as the default. This prevents actors from crashing in the adapter (as we don't have any).
2016-09-24test: rename so no name is duplicatedAzul
2016-09-23basic logging and recovery from exceptions raisedAzul
2016-09-23test: some very basic functional testsAzul
2016-09-23Merge branch 'feature/deal-with-network-failures' into 'master' azul
Feature/deal with network failures Also activates the new nicknym lookup. See merge request !5
2016-09-22return nil on 404 in hkp sourceAzul
This way the other RequestHandlers can give it a try. If none handles it we'll get a 404 anyway. But maybe there's been an exception before so a 502 should be send.
2016-09-22hand on connection errors to dispatcher so it can handle itAzul
2016-09-22feature: 502 on ConnectionErrorsAzul
If one source raises a 502 and no other handler has any result we'll respond with a 502 - bad gateway.
2016-09-21doc: explain the purpose of different integration testsAzul
2016-09-21feature: activate nicknym lookupAzul
2016-09-21rescue and track exceptions in handler chainAzul
2016-09-19refactor: separate handler chain from dispatcherAzul
Handler Chain is of handlers that respond to call. Invoking handle(*args) on the chain will call the handlers with the given args until one of them returns a result that is truethy (i.e. not false or nil). Extracted from the dispatcher so we can also handle exceptions there in the future. (So that if one of the network connections to the request_handlers fails we can continue while still tracking the failed exception.)
2016-09-16gitignore: vendorAzul