diff -r 98f99d6291d4 django/conf/global_settings.py
      
        
          
        
        
          
            | a | b |  | 
        
        
          
            | 288 | 288 | # isExistingURL validator. | 
          
            | 289 | 289 | from django import get_version | 
          
            | 290 | 290 | URL_VALIDATOR_USER_AGENT = "Django/%s (http://www.djangoproject.com)" % get_version() | 
        
        
          
            |  | 291 | URL_VERIFY_EXIST_SOCKET_TIMEOUT = 10 | 
        
        
          
            | 291 | 292 |  | 
          
            | 292 | 293 | # The tablespaces to use for each model when not specified otherwise. | 
          
            | 293 | 294 | DEFAULT_TABLESPACE = '' | 
        
      
    
    
      
      diff -r 98f99d6291d4 django/forms/fields.py
      
        
          
        
        
          
            | a | b |  | 
        
        
          
            | 436 | 436 | try: | 
          
            | 437 | 437 | from django.conf import settings | 
          
            | 438 | 438 | URL_VALIDATOR_USER_AGENT = settings.URL_VALIDATOR_USER_AGENT | 
        
        
          
            |  | 439 | URL_VERIFY_EXIST_SOCKET_TIMEOUT = settings.URL_VERIFY_EXIST_SOCKET_TIMEOUT | 
        
        
          
            | 439 | 440 | except ImportError: | 
          
            | 440 | 441 | # It's OK if Django settings aren't configured. | 
          
            | 441 | 442 | URL_VALIDATOR_USER_AGENT = 'Django (http://www.djangoproject.com/)' | 
        
        
          
            |  | 443 | URL_VERIFY_EXIST_SOCKET_TIMEOUT = 10 | 
        
        
          
            | 442 | 444 |  | 
          
            | 443 | 445 |  | 
          
            | 444 | 446 | class FileField(Field): | 
        
        
          
            | … | … |  | 
        
        
          
            | 543 | 545 | default_error_messages = { | 
          
            | 544 | 546 | 'invalid': _(u'Enter a valid URL.'), | 
          
            | 545 | 547 | 'invalid_link': _(u'This URL appears to be a broken link.'), | 
        
        
          
            |  | 548 | 'invalid_timeout': _(u'This URL took to long to respond, appears to be broken.'), | 
        
        
          
            | 546 | 549 | } | 
          
            | 547 | 550 |  | 
          
            | 548 | 551 | def __init__(self, max_length=None, min_length=None, verify_exists=False, | 
        
        
          
            | … | … |  | 
        
        
          
            | 563 | 566 | if value == u'': | 
          
            | 564 | 567 | return value | 
          
            | 565 | 568 | if self.verify_exists: | 
        
        
          
            |  | 569 | import socket | 
        
        
          
            | 566 | 570 | import urllib2 | 
        
        
          
            |  | 571 | import sys | 
        
        
          
            | 567 | 572 | headers = { | 
          
            | 568 | 573 | "Accept": "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5", | 
          
            | 569 | 574 | "Accept-Language": "en-us,en;q=0.5", | 
        
        
          
            | … | … |  | 
        
        
          
            | 571 | 576 | "Connection": "close", | 
          
            | 572 | 577 | "User-Agent": self.user_agent, | 
          
            | 573 | 578 | } | 
        
        
          
            |  | 579 | if sys.version_info[:2]<(2,6): | 
          
            |  | 580 | def urlopen(req, timeout=None): | 
          
            |  | 581 | socket_default_timeout = socket.getdefaulttimeout() | 
          
            |  | 582 | socket.setdefaulttimeout(timeout) | 
          
            |  | 583 | try: | 
          
            |  | 584 | return urllib2.urlopen(req) | 
          
            |  | 585 | finally: | 
          
            |  | 586 | socket.setdefaulttimeout(socket_default_timeout) | 
          
            |  | 587 | else: | 
          
            |  | 588 | urlopen = urllib2.urlopen | 
          
            |  | 589 |  | 
        
        
          
            | 574 | 590 | try: | 
          
            | 575 | 591 | req = urllib2.Request(value, None, headers) | 
        
        
          
            | 576 |  | u = url lib2.urlopen(req) | 
          
            |  | 592 | u = urlopen(req, timeout=URL_VERIFY_EXIST_SOCKET_TIMEOUT) | 
        
        
          
            | 577 | 593 | except ValueError: | 
          
            | 578 | 594 | raise ValidationError(self.error_messages['invalid']) | 
        
        
          
            | 579 |  | except: # urllib2.URLError, httplib.InvalidURL, etc. | 
          
            |  | 595 | except Exception, e: # urllib2.URLError, httplib.InvalidURL, etc. | 
          
            |  | 596 | if e.args and isinstance(e.args[0], socket.timeout): | 
          
            |  | 597 | raise ValidationError(self.error_messages['invalid_timeout']) | 
        
        
          
            | 580 | 598 | raise ValidationError(self.error_messages['invalid_link']) | 
          
            | 581 | 599 | return value | 
          
            | 582 | 600 |  |