Commit graph

835 commits

Author SHA1 Message Date
rinpatch
6d66fadea7 Remove :auth, :enforce_oauth_admin_scope_usage
`admin` scope has been required by default for more than a year now
and all apps that use the API seems to request a proper scope by now.
2021-02-17 20:47:38 +03:00
Ivan Tashkinov
349b8b0f4f [#3213] rescue around potentially-raising Repo.insert_all/_ calls. Misc. improvements (docs etc.). 2021-02-13 22:01:11 +03:00
Ivan Tashkinov
5992382cf8 Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags-rework
# Conflicts:
#	CHANGELOG.md
#	lib/mix/tasks/pleroma/database.ex
#	lib/pleroma/web/templates/feed/feed/_activity.rss.eex
2021-02-11 19:31:57 +03:00
Ivan Tashkinov
a996ab46a5 [#3213] Reorganized hashtags cleanup. Transaction-wrapped Hashtag.get_or_create_by_names/1. Misc. improvements. 2021-02-11 19:30:21 +03:00
feld
008499f65a Merge branch 'develop' into 'fix/2412-filters'
# Conflicts:
#   CHANGELOG.md
2021-02-03 14:23:23 +00:00
Ivan Tashkinov
1b49b8efe5 Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags-rework
# Conflicts:
#	CHANGELOG.md
2021-01-31 20:38:58 +03:00
Ivan Tashkinov
9948ff3356 [#3213] Added HashtagsCleanupWorker periodic job. 2021-01-31 18:24:19 +03:00
feld
d7af0294e6 Merge branch 'service-worker-allowed-header' into 'develop'
Ability to set custom HTTP headers per each frontend

See merge request pleroma/pleroma!3247
2021-01-26 18:14:01 +00:00
Alexander Strizhakov
875fbaae35
support for expires_in/expires_at in filters 2021-01-26 08:27:45 +03:00
sadposter
3aa25b008d Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop 2021-01-23 22:38:07 +00:00
Mark Felder
003402df40 Add ability to invalidate cache entries for Apache 2021-01-21 14:20:13 -06:00
eugenijm
7fcaa188a0 Allow to define custom HTTP headers per each frontend 2021-01-21 21:55:23 +03:00
Alexander Strizhakov
5ade430e46
changed naming in changelog 2021-01-21 10:13:02 +03:00
Alexander Strizhakov
b4ff63d020
configurable limits for ConcurrentLimiter
Pleroma.Web.RichMedia.Helpers & Pleroma.Web.MediaProxy
2021-01-21 09:47:21 +03:00
feld
2926713fe5 Merge branch 'deprecate-public_endpoint' into 'develop'
Deprecate Uploaders.S3, :public_endpoint

See merge request pleroma/pleroma!3251
2021-01-20 22:48:48 +00:00
Mark Felder
086100e3b7 Consistent comment style for :ex_aws 2021-01-20 16:39:39 -06:00
Mark Felder
f9e0c05ca4 Only run one attachment cleanup job per node
The previous limit of 5 was probably causing massing performance issues due to concurrent full table scans.
2021-01-15 14:50:32 -06:00
Mark Felder
f0ab60189e truncated_namespace should default to nil 2021-01-13 11:54:00 -06:00
Mark Felder
8b28dce82a Deprecate Pleroma.Uploaders.S3, :public_endpoint 2021-01-12 16:31:35 -06:00
Alex Gleason
1438fd9583
Merge remote-tracking branch 'upstream/develop' into block-behavior 2021-01-06 15:22:35 -06:00
Mark Felder
d69c78ceb9 Remove configurability of upload proxy opts, simplify 2021-01-05 15:06:00 -06:00
sadposter
6cd0586ef9 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop 2020-12-29 13:16:14 +00:00
lain
e4f1d8f48c Merge branch 'cachex-test' into 'develop'
Test framework overhaul (speed, reliability)

See merge request pleroma/pleroma!3209
2020-12-26 10:26:35 +00:00
lain
9a744d49c8 Jason: Remove by now superfluous jason_types file 2020-12-18 17:44:19 +01:00
Ivan Tashkinov
62bf4a1292 [#2353] Virtually never-expiring OAuth tokens (new and already issued ones). 2020-12-17 20:49:00 +03:00
Alexander Strizhakov
cebe3c7def Fix for dropping posts/notifs in WS when mix task is executed
- start oban in mix tasks with empty queues, plugins and crontab
- fix for update_users_following_followers_counts
- fix for removed logo.png
- typo in resend confirmation emails mix task docs
- fix for uploads mix task (start Majic.Pool)
- fix for creating user mix task (start :fast_html app)
2020-12-14 11:02:32 -06:00
Ivan Tashkinov
7fff9c1bee Tweaks to OAuth entities expiration: changed default to 30 days, removed hardcoded values usage, fixed OAuthView (expires_in). 2020-12-09 21:14:39 +03:00
Alexander Strizhakov
94480c6607
removing fed sockets settings 2020-11-26 17:39:38 +03:00
lain
11e0d5f9ac Password Resets: Don't accept tokens above a certain age.
By default, one day
2020-11-19 12:27:06 +01:00
rinpatch
2c55f7d7cb Remove FedSockets
Current FedSocket implementation has a bunch of problems. It doesn't
have proper error handling (in case of an error the server just doesn't
respond until the connection is closed, while the client doesn't match
any error messages and just assumes there has been an error after 15s)
and the code is full of bad descisions (see: fetch registry which uses
uuids for no reason and waits for a response by recursively querying a
 ets table until the value changes, or double JSON encoding).

Sometime ago I almost completed rewriting fedsockets from scrach to
adress these issues. However, while doing so, I realized that fedsockets
 are just too overkill for what they were trying to accomplish, which is
 reduce the overhead of federation by not signing every message.
This could be done without reimplementing failure states and endpoint
 logic we already have with HTTP by, for example, using TLS cert auth,
or switching to a more performant signature algorithm. I opened
https://git.pleroma.social/pleroma/pleroma/-/issues/2262 for further
discussion on alternatives to fedsockets.

From discussions I had with other Pleroma developers it seems like they
 would approve the descision to remove them as well,
therefore I am submitting this patch.
2020-11-17 17:28:30 +03:00
sadposter
7947236575 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop 2020-11-15 19:40:23 +00:00
lain
294628d981 Merge branch 'feature/expire-mutes' into 'develop'
Expiring mutes for users and activities

Closes #1817

See merge request pleroma/pleroma!2971
2020-11-05 12:44:16 +00:00
lain
d8d4e96230 Merge branch 'default-mrf' into 'develop'
Add TagPolicy as default MRF

See merge request pleroma/pleroma!2834
2020-11-04 15:54:12 +00:00
lain
dd2b3a8da9 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into feature/expire-mutes 2020-11-04 16:51:42 +01:00
lain
bae48c98e3 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into alexgleason/pleroma-block-behavior 2020-11-04 16:18:11 +01:00
sadposter
ddf36b096e Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop 2020-11-01 12:22:28 +00:00
Egor Kislitsyn
4a2d7a7a5d
Merge remote-tracking branch 'origin/develop' into feature/account-export 2020-10-28 15:33:36 +04:00
feld
03a318af9a Merge branch 'develop' into 'feature/autofollowing'
# Conflicts:
#   CHANGELOG.md
2020-10-27 22:13:50 +00:00
Mark Felder
291189357b Merge branch 'develop' into feature/account-export 2020-10-27 12:54:33 -05:00
Mark Felder
9e54ef086b Merge branch 'develop' into feature/account-export 2020-10-27 12:51:31 -05:00
feld
5aff479951 Merge branch '1668-prometheus-access-restrictions' into 'develop'
[#1668] App metrics endpoint (Prometheus) access restrictions

Closes #1668

See merge request pleroma/pleroma!3093
2020-10-27 17:47:56 +00:00
feld
e062329a17 Merge branch 'develop' into 'feature/autofollowing'
# Conflicts:
#   CHANGELOG.md
2020-10-27 17:42:24 +00:00
lain
04b7505c75 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into alexgleason/pleroma-block-behavior 2020-10-26 17:50:34 +01:00
Egor Kislitsyn
ad605e3e16
Rename Pleroma.Backup to Pleroma.User.Backup 2020-10-20 17:16:58 +04:00
Ivan Tashkinov
524fb0e4c2 [#1668] Restricted access to app metrics endpoint by default. Added ability to configure IP whitelist for this endpoint.
Added tests and documentation.
2020-10-18 21:22:21 +03:00
Ivan Tashkinov
9ea31b373f Merge remote-tracking branch 'remotes/origin/develop' into chore/elixir-1.11 2020-10-17 17:53:47 +03:00
Mark Felder
1b8fd7e65a Adds feature to permit e.g., local admins and community moderators to automatically follow all newly registered accounts 2020-10-16 17:36:02 +00:00
Mark Felder
1fb9452131 Merge branch 'develop' into feature/account-export 2020-10-14 15:27:15 -05:00
Alex Gleason
b3d6cf9022
Merge remote-tracking branch 'upstream/develop' into block-behavior 2020-10-13 19:22:32 -05:00
Mark Felder
b738f70953 Merge branch 'develop' into feature/gen-magic 2020-10-13 10:08:38 -05:00
Mark Felder
64553ebae2 Merge branch 'develop' into chore/elixir-1.11 2020-10-13 09:54:53 -05:00
Alexander Strizhakov
3be8ab5103
RemoteIp module name 2020-10-13 16:43:50 +03:00
Alex Gleason
2fc7ce3e1e
Blocks: add blockers_visible config 2020-10-10 01:58:57 -05:00
Mark Felder
04b514c567 Merge branch 'develop' into feature/gen-magic 2020-10-09 11:26:10 -05:00
Mark Felder
87fc5a40f4 instrumenters has no effect in Endpoint anymore 2020-10-07 11:52:23 -05:00
Mark Felder
fddea9e3ce :pubsub is deprecated and replaced wit :pubsub_server 2020-10-07 10:34:24 -05:00
Egor Kislitsyn
e52dd62e14
Add configurable temporary directory 2020-10-07 18:34:30 +04:00
Egor Kislitsyn
3ad7492f9d
Add config for Pleroma.Backup 2020-10-07 18:34:29 +04:00
Egor Kislitsyn
a0ad9bd734
Add BackupWorker 2020-10-07 18:34:28 +04:00
Mark Felder
d43d05005a Move hardcoded default configuration into config.exs 2020-10-06 17:02:46 -05:00
sadposter
a9938611f7 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop 2020-10-02 15:09:47 +01:00
Alexander Strizhakov
cbdaabad34
web push http_client fix 2020-10-01 13:32:11 +03:00
Roman Chvanikov
4987ee6256 Merge branch 'develop' into feature/expire-mutes 2020-09-20 19:27:27 +03:00
feld
6c052bd5b6 Merge branch 'media-preview-proxy-nostream' into 'develop'
Media preview proxy

See merge request pleroma/pleroma!3001
2020-09-18 18:38:20 +00:00
lain
7e02f4ed3b Merge branch 'feature/2118-web-push-encryption-http' into 'develop'
Make WebPushEncryption use Pleroma.HTTP as an HTTP adapter

Closes #2118

See merge request pleroma/pleroma!3008
2020-09-18 12:25:10 +00:00
Steven Fuchs
f2ef9735c5 Federate data through persistent websocket connections 2020-09-18 11:58:22 +00:00
Sergey Suprunenko
226fa3e486
Make WebPushEncryption use Pleroma.HTTP as an HTTP adapter 2020-09-17 22:10:55 +02:00
Ivan Tashkinov
7cdbd91d83 [#2497] Configurability of :min_content_length (preview proxy). Refactoring, documentation, tests. 2020-09-17 17:13:40 +03:00
Roman Chvanikov
44e8b6037a Merge branch 'develop' into feature/expire-mutes 2020-09-17 14:54:00 +03:00
Ivan Tashkinov
2f155fb89f Merge remote-tracking branch 'remotes/origin/develop' into media-preview-proxy-nostream 2020-09-15 20:29:39 +03:00
sadposter
95a1e5bf5a Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop 2020-09-15 17:21:18 +01:00
rinpatch
0b5e72ecf0 Remove :managed_config option.
In practice, it was already removed half a year ago, but the description
 and cheatsheet entries were still there.

The migration intentionally does not use ConfigDB.get_by_params, since
this will break migration code as soon as we add a new field is added
 to ConfigDB.

Closes #2086
2020-09-14 18:04:16 +03:00
Roman Chvanikov
c5830ac037 Merge develop 2020-09-13 12:24:57 +03:00
Ivan Tashkinov
0bda85857e Merge remote-tracking branch 'remotes/origin/develop' into media-preview-proxy
# Conflicts:
#	lib/pleroma/instances/instance.ex
2020-09-11 17:19:58 +03:00
Mark Felder
55562ca936 Merge branch 'develop' into feature/gen-magic 2020-09-10 16:05:22 -05:00
Alexander Strizhakov
2c2094d4b2 configurable lifetime for ephemeral activities 2020-09-10 21:51:59 +03:00
Alexander Strizhakov
9bf1065a06 schedule activity expiration in Oban 2020-09-10 21:50:40 +03:00
Alexander Strizhakov
7dd986a563
expire mfa tokens through Oban 2020-09-10 16:01:19 +03:00
Alexander Strizhakov
3ce658b930
schedule expired oauth tokens deletion with Oban 2020-09-10 16:01:19 +03:00
Mark Felder
4ee99dafcc Merge branch 'develop' into media-preview-proxy 2020-09-09 11:11:36 -05:00
sadposter
d0ffefc270 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop 2020-09-09 09:35:48 +01:00
Mark Felder
14d07081fd Feed provider only generates a redirect, so always activate it.
Making this configurable is misleading.
2020-09-08 20:21:34 +03:00
Mark Felder
630444ee08 Do not make RelMe metadata provider optional.
There's really no sound reason to turn this off anyway.
2020-09-08 20:21:34 +03:00
Roman Chvanikov
880a92ccc7 Merge branch 'develop' into feature/expire-mutes 2020-09-08 15:16:43 +03:00
Roman Chvanikov
c56e3d4f3b Add expires_in param for account mutes 2020-09-08 13:26:44 +03:00
Alexander Strizhakov
a83916fdac
adapter options unification
not needed options deletion
2020-09-07 19:59:17 +03:00
Alexander Strizhakov
ee67c98e55
removing Stats worker from Oban cron jobs 2020-09-07 19:16:14 +03:00
sadposter
1c44d476e7 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop 2020-09-07 09:57:00 +01:00
Ivan Tashkinov
f170d47130 [#2497] Adjusted media proxy preview invalidation. Allowed client-side caching for media preview. Adjusted prewarmer to fetch only proxiable URIs.
Removed :preview pool in favor of existing :media one. Misc. refactoring.
2020-09-05 20:19:09 +03:00
Mark Felder
b529616e11 Increase pool and timeout for preview so it catches slow media pool responses 2020-09-03 15:08:12 -05:00
Mark Felder
6141eb94ab Fetch preview requests through the MediaProxy. Separate connection options are not needed.
Use a separate pool for preview requests
2020-09-03 14:42:11 -05:00
Mark Felder
85446cc30c Merge branch 'develop' into media-preview-proxy 2020-09-03 10:34:06 -05:00
rinpatch
19691389b9 Rich media: Add failure tracking 2020-09-02 14:59:52 +03:00
Alexander Strizhakov
c17d83cd73
improvements and fixes for http requests
- fix for gun worker termination in some circumstances
- pool for http clients (ex_aws, tzdata)
- default pool timeouts for gun
- gun retries on gun_down messages
- s3 upload timeout if streaming enabled
2020-09-02 09:04:23 +03:00
sadposter
7ac5f210ea Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop 2020-08-30 02:05:25 +01:00
Mark Felder
899ea2da3e Switch to imagemagick, only support videos 2020-08-25 17:18:22 -05:00
Mark Felder
479578b148 Merge branch 'develop' into feld-2168-media-preview-proxy 2020-08-25 11:57:23 -05:00
lain
c1d51944c7 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into frontend-bundles-downloads 2020-08-25 11:44:51 +02:00
sadposter
166db7a3b6 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop 2020-08-24 17:04:51 +01:00
Ivan Tashkinov
aa0a5ffb48 [#2497] Media preview proxy: added quality config setting, adjusted width/height defaults. 2020-08-21 08:59:08 +03:00
Ivan Tashkinov
4ee15e991e [#2497] Media preview proxy config refactoring & documentation. 2020-08-19 21:36:26 +03:00
Ivan Tashkinov
da116d81fb [#2497] Added video preview proxy. Switched from exexec to Port. 2020-08-18 18:23:27 +03:00
Ivan Tashkinov
27e7999a15 Merge remote-tracking branch 'remotes/origin/develop' into 2168-media-preview-proxy 2020-08-18 18:02:09 +03:00
lain
aabc26a573 Pleroma.Upload: Set default upload name / description based on config. 2020-08-18 13:21:30 +02:00
Ivan Tashkinov
95529ab709 [#2046] Defaulted pleroma/restrict_unauthenticated basing on instance privacy setting (i.e. restrict on private instances only by default). 2020-08-14 20:55:45 +03:00
sadposter
735ceb2115 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop 2020-08-13 20:03:33 +01:00
Ivan Tashkinov
2def3cbf41 Merge remote-tracking branch 'remotes/origin/develop' into 2168-media-preview-proxy
# Conflicts:
#	config/config.exs
#	mix.lock
2020-08-11 15:13:29 +03:00
lain
d0fc48ea67 Merge branch 'develop' into 'feat/floki-fast-html-2'
# Conflicts:
#   config/config.exs
2020-08-09 10:53:58 +00:00
Mark Felder
54e2af8293 Merge branch 'develop' into fix/ldap-auth-issues 2020-08-07 14:55:22 -05:00
rinpatch
325c7c924b Make Floki use fast_html 2020-08-07 16:45:33 +03:00
Ivan Tashkinov
1298a2ea2c Merge remote-tracking branch 'remotes/origin/develop' into 2168-media-preview-proxy
# Conflicts:
#	mix.lock
2020-08-07 09:38:05 +03:00
Alex Gleason
e639eee82e
restricted_nicknames: Add names from MastoAPI endpoints 2020-08-06 18:01:29 -05:00
Mark Felder
d5e4d8a6f3 Define default authenticator in the config 2020-08-05 09:41:17 -05:00
lain
532d6f94ae Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into frontend-bundles-downloads 2020-08-04 15:10:36 +02:00
lain
28584bb224 Merge branch 'email-blacklist' into 'develop'
Add email blacklist, fixes #1404

Closes #1404

See merge request pleroma/pleroma!2837
2020-08-04 11:00:30 +00:00
lain
e3953923ac Merge branch 'fixes_1957_add_option_to_send_user_chatmessage_instead_of_dm' into 'develop'
fixes 1957 Add option to send user chatmessage instead of dm

Closes #1957

See merge request pleroma/pleroma!2782
2020-08-03 21:01:56 +00:00
lain
56b5b9aa27 Merge branch 'follower-mrf-again' into 'develop'
Follower mrf again

See merge request pleroma/pleroma!2833
2020-08-03 14:22:11 +00:00
lain
66ebd88634 Merge branch 'config/default_ok_oldage' into 'develop'
config: :mrf, :policies default to ObjectAgePolicy

Closes #2000

See merge request pleroma/pleroma!2814
2020-08-03 12:50:29 +00:00
Alex Gleason
dc88b6f091
Add email blacklist, fixes #1404 2020-08-02 14:53:42 -05:00
Alex Gleason
e9cff69bce
Add TagPolicy as default MRF, #2010 2020-08-02 12:24:40 -05:00
Ilja
f671d7e68c Add welcome chatmessages
* I added the option in config/config.exs
* created a new module lib/pleroma/user/welcome_chat_message.ex
* Added it to the registration flow
* added to the cheatsheet
* added to the config/description.ex
* added to the Changelog.md
2020-08-02 15:54:59 +02:00
Alex Gleason
cb1e3893aa
SimpleMRF: Add missing :followers_only to config.exs 2020-08-01 16:08:29 -05:00
sadposter
992deaa09b Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop 2020-08-01 19:32:31 +01:00
Haelwenn (lanodan) Monnier
0309514656
Default MRF to ObjectAgePolicy, 7 days threshold 2020-07-31 12:13:08 +02:00
lain
7bcd2e948e Config: Default to Hackney again
Gun is still acting up.
2020-07-31 10:50:45 +02:00
lain
99bfdffb1d Config: Add kenoma as available frontend. 2020-07-30 14:17:58 +02:00
lain
4ce4d799fd Config: Add frontend information. 2020-07-30 14:14:58 +02:00
Alex Gleason
d8a01c9432
Merge remote-tracking branch 'upstream/develop' into hide-reactions 2020-07-29 12:43:39 -05:00
lain
dc36d6e9d2 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into frontend-bundles-admin 2020-07-29 16:24:22 +02:00
lain
79f9ddd8b7 Merge branch 'by-approval' into 'develop'
Registrations "by approval" mode

Closes #1931

See merge request pleroma/pleroma!2757
2020-07-29 11:27:26 +00:00
lain
e2f82968e8 Config: Update frontend config example 2020-07-29 13:04:29 +02:00
Alex Gleason
3b7c454418
Let favourites and emoji reactions optionally be hidden 2020-07-28 14:58:30 -05:00
Mark Felder
bee29f6610 Clarify location of frontends directory 2020-07-28 12:10:04 -05:00
lain
08732e8a03 Docs: Add frontend info to cheat sheet. 2020-07-28 17:46:37 +02:00
Alex Gleason
6f44a0ee84
Add configurable registration_reason limit 2020-07-27 15:13:34 -05:00
Alex Gleason
6747bf2e16
Merge remote-tracking branch 'upstream/develop' into by-approval 2020-07-27 12:29:18 -05:00
Alex Gleason
6931dbfa58
Merge remote-tracking branch 'upstream/develop' into by-approval 2020-07-26 15:46:14 -05:00
Maksim Pechnikov
67ab9a7928 Merge branch 'develop' into issue/1934-welcome-email 2020-07-23 16:36:27 +03:00
Maksim Pechnikov
5879d36854 fix sender for welcome email 2020-07-22 15:34:47 +03:00
lain
5b1eeb06d8 Revert "Merge branch 'revert-2b5d9eb1' into 'develop'"
This reverts merge request !2784
2020-07-21 22:18:17 +00:00
lain
696c13ce54 Revert "Merge branch 'linkify' into 'develop'"
This reverts merge request !2677
2020-07-21 22:17:34 +00:00
Maksim Pechnikov
3edaecae96 added welcome email 2020-07-21 09:25:53 +03:00
Ivan Tashkinov
bdf57b8ef4 Merge remote-tracking branch 'remotes/origin/develop' into 2168-media-preview-proxy
# Conflicts:
#	config/config.exs
#	lib/pleroma/web/media_proxy/media_proxy.ex
#	mix.lock
#	test/web/media_proxy/media_proxy_test.exs
2020-07-19 20:05:37 +03:00
Alex Gleason
38425ebdbf
Merge remote-tracking branch 'upstream/develop' into linkify 2020-07-16 14:51:36 -05:00
Mark Felder
b2d398b1d0 Merge branch 'develop' into refactor/gun-pool-registry 2020-07-15 13:34:27 -05:00
rinpatch
c413649a8d Bring back oban job pruning
Closes #1945
2020-07-15 16:20:17 +03:00
rinpatch
33747e9366 config.exs: set gun retries to 0
The new pooling code just removes the connection when it's down,
there is no need to reconnect a connection that is just sitting idle,
better just open a new one next time it's needed
2020-07-15 15:26:35 +03:00
rinpatch
9df5918974 config.exs: make gun the default again 2020-07-15 15:26:35 +03:00
rinpatch
4128e3a84a HTTP: Implement max request limits 2020-07-15 15:26:35 +03:00
rinpatch
58a4f350a8 Refactor gun pooling and simplify adapter option insertion
This patch refactors gun pooling to use Elixir process registry and
simplifies adapter option insertion.

Having the pool use process registry instead of a GenServer has a number of advantages:
- Simpler code: the initial implementation adds about half the lines of code it deletes
- Concurrency: unlike a GenServer, ETS-based registry can handle multiple checkout/checkin
requests at the same time
- Precise and easy idle connection clousure: current proposal for closing idle connections in
the GenServer-based pool needs to filter through all connections once a minute and compare their
last active time with closing time. With Elixir process registry this can be done
by just using `Process.send_after`/`Process.cancel_timer` in the worker process.
- Lower memory footprint: In my tests `gun-memory-leak` branch uses about 290mb on peak load (250 connections)
and 235mb on idle (5-10 connections). Registry-based pool uses 210mb on idle and 240mb on peak load
2020-07-15 15:17:27 +03:00