# HG changeset patch # User Martin B. # Date 1418120677 -3600 # Tue Dec 09 11:24:37 2014 +0100 # Branch fix-empty-lease-seconds # Node ID bfbf2780ee1c43141db325236ea5be81b0a8fbd1 # Parent 93226503d5b6ad5d12a91e2cc09ca8ebba10f543 Catch invalid lease_seconds values supplied by GET diff --git a/djpubsubhubbub/views.py b/djpubsubhubbub/views.py --- a/djpubsubhubbub/views.py +++ b/djpubsubhubbub/views.py @@ -1,6 +1,5 @@ import urllib import feedparser -from datetime import datetime from django.http import HttpResponse, Http404 from django.shortcuts import get_object_or_404 @@ -18,10 +17,11 @@ mode = request.GET['hub.mode'] topic = request.GET['hub.topic'] challenge = request.GET['hub.challenge'] - lease_seconds = request.GET.get( - 'hub.lease_seconds', - DEFAULT_LEASE_SECONDS, - ) + lease_seconds = request.GET.get('hub.lease_seconds', '') + try: + lease_seconds = int(lease_seconds) + except ValueError: + lease_seconds = DEFAULT_LEASE_SECONDS verify_token = request.GET.get('hub.verify_token', '') except MultiValueDictKeyError: # Raise 404 instead of 500 error @@ -53,7 +53,7 @@ subscription.verified = True subscription.is_subscribed = True - subscription.set_expiration(int(lease_seconds)) + subscription.set_expiration(lease_seconds) verified.send(sender=subscription) elif mode == 'unsubscribe': if not verify_token.startswith('unsubscribe'): @@ -61,7 +61,7 @@ subscription.verified = False subscription.is_subscribed = False - subscription.set_expiration(int(lease_seconds)) + subscription.set_expiration(lease_seconds) return HttpResponse(challenge, content_type='text/plain') elif request.method == 'POST':