On Feb 9, 2011, at 3:34 PM, David J. wrote:
> So then we would use scheme='https' for secure and forget the secure flag?
Right. It's a little more general, since 'secure' could also imply 'wss'.
>
>
>
> On 2/9/11 6:26 PM, Jonathan Lundell wrote:
>>
>> On Feb 9, 2011, at 2:54 PM, Jonathan Lundell wrote:
>>> On Feb 9, 2011, at 2:24 PM, Anthony wrote:
>>>> Do we want to handle websocket URLs as well (i.e., ws and wss schemes
>>>> instead of http and https)?
>>>
>>> I don't know. Is there an RFC yet?
>>>
>>> I've sent Massimo a patch already, but I could redo it to directly specify
>>> scheme= instead of secure=, and allow an arbitrary string.
>>>
>>> Now would be the time...
>>
>> OK, I made the change. scheme='wss' (for example) works.
>>
>> scheme=True uses the scheme from request.env
>>
>>>
>>>>
>>>> On Wednesday, February 9, 2011 5:02:38 PM UTC-5, Jonathan Lundell wrote:
>>>> On Feb 9, 2011, at 1:24 PM, howesc wrote:
>>>> > good, bad, or indifferent, because of varied testing and deployment
>>>> > setups, and using multiple ports, i have the function below in my app.
>>>> > note that i have database configuration for HTTPS scheme and port. It's
>>>> > my hack not not run internal test and development servers on port 443. :)
>>>> Thanks. I'd forgotten about port; I'll add that as well.
>>>>
>>>> >
>>>> > def full_url(scheme="http",
>>>> > a=None,
>>>> > c=None,
>>>> > f=None,
>>>> > r=None,
>>>> > args=[],
>>>> > vars={},
>>>> > anchor='',
>>>> > path = None
>>>> > ):
>>>> > """
>>>> > Create a fully qualified URL. The URL will use the same host as the
>>>> > request was made from, but will use the specified scheme. Calls
>>>> > C{gluon.html.URL()} to construct the relative path to the host.
>>>> >
>>>> > if <scheme>_port is set in the settings table, append the port to the
>>>> > domain of the created URL
>>>> >
>>>> > @param scheme: scheme to use for the fully-qualified URL.
>>>> > (default to 'http')
>>>> > @param a: application (default to current if r is given)
>>>> > @param c: controller (default to current if r is given)
>>>> > @param f: function (default to current if r is given)
>>>> > @param r: request
>>>> > @param args: any arguments (optional)
>>>> > @param vars: any variables (optional)
>>>> > @param anchor: anchorname, without # (optional)
>>>> > @param path: the relative path to use. if used overrides
>>>> > a,c,f,args, and
>>>> > vars (optional)
>>>> > """
>>>> > port = ''
>>>> > if sitesettings.has_key(scheme+"_port") and
>>>> > sitesettings[scheme+"_port"]:
>>>> > port = ":" + sitesettings[scheme+"_port"]
>>>> > if scheme == 'https' and sitesettings.has_key("https_scheme"):
>>>> > scheme = sitesettings.https_scheme
>>>> > url = scheme +'://' + \
>>>> > r.env.http_host.split(':')[0] + port
>>>> > if path:
>>>> > url = url + path
>>>> > else:
>>>> > url = url+URL(a=a, c=c, f=f, r=r, args=args, vars=vars,
>>>> > anchor=anchor)
>>>> > return url
>>>> >
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>