mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-11-27 13:19:24 +01:00
Add support for authentication scheme.
This commit closes http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=690879 Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
This commit is contained in:
parent
7d87d422e1
commit
db3746d122
@ -29,6 +29,7 @@
|
|||||||
###
|
###
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
import base64
|
||||||
import socket
|
import socket
|
||||||
import urllib
|
import urllib
|
||||||
import urllib2
|
import urllib2
|
||||||
@ -58,10 +59,11 @@ _ipAddr = r'%s(?:\.%s){3}' % (_octet, _octet)
|
|||||||
# Base domain regex off RFC 1034 and 1738
|
# Base domain regex off RFC 1034 and 1738
|
||||||
_label = r'[0-9a-z][-0-9a-z]*[0-9a-z]?'
|
_label = r'[0-9a-z][-0-9a-z]*[0-9a-z]?'
|
||||||
_domain = r'%s(?:\.%s)*\.[0-9a-z][-0-9a-z]+' % (_label, _label)
|
_domain = r'%s(?:\.%s)*\.[0-9a-z][-0-9a-z]+' % (_label, _label)
|
||||||
_urlRe = r'(\w+://(?:%s|%s)(?::\d+)?(?:/[^\])>\s]*)?)' % (_domain, _ipAddr)
|
_urlRe = r'(\w+://(?:\S+@)?(?:%s|%s)(?::\d+)?(?:/[^\])>\s]*)?)' % (_domain,
|
||||||
|
_ipAddr)
|
||||||
urlRe = re.compile(_urlRe, re.I)
|
urlRe = re.compile(_urlRe, re.I)
|
||||||
_httpUrlRe = r'(https?://(?:%s|%s)(?::\d+)?(?:/[^\])>\s]*)?)' % (_domain,
|
_httpUrlRe = r'(https?://(?:\S+@)?(?:%s|%s)(?::\d+)?(?:/[^\])>\s]*)?)' % \
|
||||||
_ipAddr)
|
(_domain, _ipAddr)
|
||||||
httpUrlRe = re.compile(_httpUrlRe, re.I)
|
httpUrlRe = re.compile(_httpUrlRe, re.I)
|
||||||
|
|
||||||
REFUSED = 'Connection refused.'
|
REFUSED = 'Connection refused.'
|
||||||
@ -108,6 +110,12 @@ def getUrlFd(url, headers=None, data=None, timeout=None):
|
|||||||
if '#' in url:
|
if '#' in url:
|
||||||
url = url[:url.index('#')]
|
url = url[:url.index('#')]
|
||||||
request = urllib2.Request(url, headers=headers, data=data)
|
request = urllib2.Request(url, headers=headers, data=data)
|
||||||
|
if '@' in url:
|
||||||
|
scheme, url = url.split('://', 2)
|
||||||
|
auth, url = url.split('@')
|
||||||
|
url = scheme + '://' + url
|
||||||
|
request.add_header('Authorization',
|
||||||
|
'Basic ' + base64.b64encode(auth))
|
||||||
else:
|
else:
|
||||||
request = url
|
request = url
|
||||||
request.add_data(data)
|
request.add_data(data)
|
||||||
|
Loading…
Reference in New Issue
Block a user