merge of '72a53ef8f6e506e3cccdc80aa2c9c3e36b6ce7c4'

and '8069e772737ff9399b789029c351ecc4a6f3ebf4'
This commit is contained in:
slumlord
2018-04-08 04:05:26 +00:00
3 changed files with 95 additions and 1 deletions

View File

@@ -0,0 +1,66 @@
{% trans -%}
==============
0.9.34 Release
==============
{%- endtrans %}
.. meta::
:author: zzz
:date: 2018-04-10
:category: release
:excerpt: {% trans %}0.9.34 with Bug Fixes{% endtrans %}
{% trans -%}
Update details
==============
{%- endtrans %}
{% trans -%}
0.9.34 contains a lot of bug fixes!
It also has improvements in SusiMail, IPv6 handling, and tunnel peer selection.
We add support for IGD2 schemas in UPnP.
There's also preparation for more improvements you will see in future releases.
{%- endtrans %}
{% trans -%}
As usual, we recommend that you update to this release. The best way to
maintain security and help the network is to run the latest release.
{%- endtrans %}
**{% trans %}RELEASE DETAILS{% endtrans %}**
**{% trans %}Changes{% endtrans %}**
- {% trans %}SusiMail: Improved startup and memory management{% endtrans %}
- {% trans %}UPnP: Support IGD 2{% endtrans %}
**{% trans %}Bug Fixes{% endtrans %}**
- {% trans %}Console: Numerous fixes{% endtrans %}
- {% trans %}i2ptunnel: Fix servers not accepting after router restart{% endtrans %}
- {% trans %}Router: Improved tunnel peer selection for hidden and IPv6-only modes{% endtrans %}
- {% trans %}SusiMail: Numerous fixes{% endtrans %}
- {% trans %}Transport: Better selection of IPv6 addresses{% endtrans %}
**{% trans %}Other{% endtrans %}**
- {% trans %}Prep for HTTPS console and eepsite{% endtrans %}
- {% trans %}Prep for splitting up Debian package{% endtrans %}
- {% trans %}Streaming: Return HTTP response when limits exceeded{% endtrans %}
- {% trans %}Console: Number formatting changes{% endtrans %}
- {% trans %}EdDSA cleanups{% endtrans %}
- {% trans %}Translation updates{% endtrans %}
- {% trans %}Update GeoIP data (new installs and PPA only){% endtrans %}
`Full list of fixed bugs`_
.. _{% trans %}`Full list of fixed bugs`{% endtrans %}: http://{{ i2pconv('trac.i2p2.i2p') }}/query?resolution=fixed&milestone=0.9.34
**{% trans %}SHA256 Checksums:{% endtrans %}**
::

View File

@@ -19,7 +19,7 @@
<dt>Created</dt>
<dd><time datetime="{{ meta.created }}">{{ meta.created }}</time></dd>
<dt>Thread</dt>
<dd><a href="{{ meta.thread }}">{{ meta.thread }}</a></dd>
<dd><a href="{{ i2pclr(meta.thread) }}">{{ i2pclr(meta.thread) }}</a></dd>
<dt>Last updated</dt>
<dd><time datetime="{{ meta.lastupdated }}">{{ meta.lastupdated }}</time></dd>
<dt>Status</dt><dd>{{ meta.status }}</dd>

View File

@@ -1,6 +1,7 @@
import ctags
from flask import g, request, safe_join, url_for
import os.path
from urlparse import urlsplit, urlunsplit
from i2p2www import (
CANONICAL_DOMAIN,
@@ -27,6 +28,11 @@ I2P_TO_CLEAR = {
'zzz.i2p': 'zzz.i2p', # Inproxy disabled at request of site owner
}
CLEAR_HTTP = [
'stats.i2p',
'zzz.i2p',
]
####################
# Template functions
@@ -137,6 +143,27 @@ def utility_processor():
# The I2P site has no known clearnet address, so use an inproxy
return value + INPROXY
# Convert an I2P url to an equivalent clearnet one, including HTTPS if necessary
def convert_url_to_clearnet_inc_https(value):
parts = urlsplit(value)
if not parts[1].endswith('.i2p'):
# The url being passed in isn't an I2P url, so just return it
return value
if request.headers.get('X-I2P-Desthash') and not request.headers.get('X-Forwarded-Server'):
# The request is from within I2P, so use I2P url
return value
# The request is either directly from clearnet or through an inproxy
try:
# Return the known clearnet url corresponding to the I2P url
scheme = parts[0]
host = I2P_TO_CLEAR[parts[1]]
if scheme == 'http' and host not in CLEAR_HTTP:
scheme = 'https'
return urlunsplit([scheme, host] + list(parts[2:]))
except KeyError:
# The I2P site has no known clearnet address, so use an inproxy
return urlunsplit([parts[0], parts[1] + INPROXY] + list(parts[2:]))
# Convert a paginated URL to that of another page
def url_for_other_page(page):
args = request.view_args.copy()
@@ -169,6 +196,7 @@ def utility_processor():
return CURRENT_I2P_VERSION
return dict(i2pconv=convert_url_to_clearnet,
i2pclr=convert_url_to_clearnet_inc_https,
url_for_other_page=url_for_other_page,
change_theme=change_theme,
logo_url=get_logo_for_theme,