diff --git a/api/funkwhale_api/federation/activity.py b/api/funkwhale_api/federation/activity.py index 7d20d7f9c..a674c70e3 100644 --- a/api/funkwhale_api/federation/activity.py +++ b/api/funkwhale_api/federation/activity.py @@ -73,6 +73,7 @@ def deliver(activity, on_behalf_of, to=[]): auth=auth, json=activity, url=recipient_actor.inbox_url, + timeout=5, headers={ 'Content-Type': 'application/activity+json' } diff --git a/api/funkwhale_api/federation/actors.py b/api/funkwhale_api/federation/actors.py index 2f6c04de0..d3a2093a9 100644 --- a/api/funkwhale_api/federation/actors.py +++ b/api/funkwhale_api/federation/actors.py @@ -31,6 +31,7 @@ def remove_tags(text): def get_actor_data(actor_url): response = session.get_session().get( actor_url, + timeout=5, headers={ 'Accept': 'application/activity+json', } @@ -42,6 +43,7 @@ def get_actor_data(actor_url): raise ValueError( 'Invalid actor payload: {}'.format(response.text)) + def get_actor(actor_url): data = get_actor_data(actor_url) serializer = serializers.ActorSerializer(data=data) diff --git a/api/funkwhale_api/federation/webfinger.py b/api/funkwhale_api/federation/webfinger.py index 011dcf576..444998b94 100644 --- a/api/funkwhale_api/federation/webfinger.py +++ b/api/funkwhale_api/federation/webfinger.py @@ -47,7 +47,7 @@ def get_resource(resource_string): username, hostname = clean_acct(resource, ensure_local=False) url = 'https://{}/.well-known/webfinger?resource={}'.format( hostname, resource_string) - response = session.get_session().get(url) + response = session.get_session().get(url, timeout=5) response.raise_for_status() serializer = serializers.ActorWebfingerSerializer(data=response.json()) serializer.is_valid(raise_exception=True) diff --git a/api/funkwhale_api/music/views.py b/api/funkwhale_api/music/views.py index 0870d9816..6bbc21db7 100644 --- a/api/funkwhale_api/music/views.py +++ b/api/funkwhale_api/music/views.py @@ -218,6 +218,7 @@ class TrackFileViewSet(viewsets.ReadOnlyModelViewSet): library_track.audio_url, auth=auth, stream=True, + timeout=20, headers={ 'Content-Type': 'application/activity+json' })