From 4fd8da804127177d2308dd6fef6fb19a747eefb5 Mon Sep 17 00:00:00 2001
From: kytv <kytv@mail.i2p>
Date: Tue, 24 May 2011 22:33:28 +0000
Subject: [PATCH] Fix errors that tests/scripts/checkxml.sh found

---
 core/java/src/net/i2p/client/package.html     |  4 +-
 .../resources/eepsite.help/help/index.html    |  2 +-
 .../resources/eepsite.help/help/index_de.html |  4 +-
 .../resources/eepsite.help/help/index_fr.html |  2 +-
 .../resources/eepsite.help/help/index_nl.html |  2 +-
 .../resources/eepsite.help/help/index_ru.html |  2 +-
 .../java/src/net/i2p/data/i2np/package.html   | 39 +++++++++----------
 7 files changed, 27 insertions(+), 28 deletions(-)

diff --git a/core/java/src/net/i2p/client/package.html b/core/java/src/net/i2p/client/package.html
index 000a5584db..8d71490a29 100644
--- a/core/java/src/net/i2p/client/package.html
+++ b/core/java/src/net/i2p/client/package.html
@@ -19,7 +19,7 @@ ATalk application.  It isn't really useful, but it is
 heavily documented code.</p>
 
 <p>This client package provides the basic necessity for communicating over I2P,
-but there are three other subpackages that are helpful.  Specifically:<ul>
+but there are three other subpackages that are helpful.  Specifically:</p><ul>
 <li>{@link net.i2p.client.datagram} - for applications that want their messages
     to be both authenticated and repliable</li>
 <li>{@link net.i2p.client.naming} - for applications that want to resolve 
@@ -28,7 +28,7 @@ but there are three other subpackages that are helpful.  Specifically:<ul>
     a streaming API to provide reliable in order message delivery (<b>note</b>:
     the streaming library is packaged seperate from the main SDK - in the 
     mstreaming.jar and streaming.jar)</li>
-</ul></p>
+</ul>
 
 <p>The {@link net.i2p.client.I2PSession} implementation itself communicates with
 the I2P router by the I2CP (the client protocol).</p>
diff --git a/installer/resources/eepsite.help/help/index.html b/installer/resources/eepsite.help/help/index.html
index 96be7d6d30..9c0abd8c5a 100644
--- a/installer/resources/eepsite.help/help/index.html
+++ b/installer/resources/eepsite.help/help/index.html
@@ -45,7 +45,7 @@
  <ul>
  <li>Pick a name for your eepsite (<i>something</i>.i2p). Use all lower-case.
      You may wish to check first in your own router's address book
-     <a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=router&filter=none">here</a>,
+     <a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=router&amp;filter=none">here</a>,
      or the file <code>i2p/hosts.txt</code> to see if your name is already taken.
      Enter the new name for your eepsite on the
      <a href="http://127.0.0.1:7657/i2ptunnel/edit.jsp?tunnel=3">eepsite i2ptunnel configuration page</a>
diff --git a/installer/resources/eepsite.help/help/index_de.html b/installer/resources/eepsite.help/help/index_de.html
index 3760830e50..9d7336234a 100644
--- a/installer/resources/eepsite.help/help/index_de.html
+++ b/installer/resources/eepsite.help/help/index_de.html
@@ -113,7 +113,7 @@ Verzeichnis <code>~/.i2p/eepsite/docroot/</code> (Linux) oder <code>%APPDATA%\I2
 und benennen Sie dieses Dokument von <em>„index.html“</em> in <em>„hilfe.html“</em> um, so können Sie später darauf zurückgreifen. Erstellen Sie Ihre eigene <em>„index.html“</em> und füllen diese mit Inhalten, Bildern oder was auch immer Sie anderen mitteilen wollen.</li>
 </ol>
 
-<h4><a name="AnkerDEOeA" id="AnkerDEOeA"></a>3. Die Eepseite öffentlich ankündigen</h4>
+<h4><a name="AnkerDEOeA"></a>3. Die Eepseite öffentlich ankündigen</h4>
 
 <ul>
 <li>Nun ist es an der Zeit, Ihre Eepsite in einem globalen I2P-Adressbuch, wie beispielsweise bei <a href="http://stats.i2p/i2p/addkey.html">stats.i2p</a>,
@@ -183,7 +183,7 @@ beschreibt ein Verfahren zur Kodierung von 8-Bit-Binärdaten in eine
 Zeichenfolge, die nur aus wenigen, Codepage-unabhängigen ASCII-Zeichen
 besteht.
 </p><p class="footnote"><a class="footnum" name="fn.2" href="#fnr.2">2.</a> Anmerkung: Wenn dieses Vorgehen mit der Fehlermeldung „Invalid nonce. Are you being spoofed?“ quittiert wird, müssen <em>Cookies</em> im Browser erlaubt werden. Ist dies nicht möglich, können Sie mit einem Editor die Datei <em>„i2p/userhosts.txt“</em> bearbeiten und so die Adressen einfügen. <a href="http://sperrbezirk.i2p/Konqueror_Susi.html">Konqueror</a> ist etwas eigenwillig.
-</p><p class="footnote"><a class="footnum" name="fn.3" href="#fnr.3">3.</a> Gleiches wie unter <sup><a class="footref" name="fnr.2" href="#fn.2">2</a></sup> gilt für <em>„i2p/addressbook/subscriptions.txt“</em>.</p>
+</p><p class="footnote"><a class="footnum" name="fn.3" href="#fnr.3">3.</a> Gleiches wie unter gilt für <em>„i2p/addressbook/subscriptions.txt“</em>.</p>
 
 <div class="notify">
 <b>Hinweis:</b> Diese Seite, die Weibseite sowie die Routerkonsole müssen alle in IHRE Sprache übersetzt werden, falls dies nicht bereits geschehen ist oder gerade stattfindet. Helfen Sie dem Projekt zu wachsen, indem Sie <a href="http://www.i2p2.i2p/getinvolved.html">helfen</a> (beispielsweise durch Übersetzungen)! Kontaktieren Sie uns über den oben erwähnten IRC-Kanal! Vielen Dank!</div>
diff --git a/installer/resources/eepsite.help/help/index_fr.html b/installer/resources/eepsite.help/help/index_fr.html
index 45ae4cc034..e03f591341 100644
--- a/installer/resources/eepsite.help/help/index_fr.html
+++ b/installer/resources/eepsite.help/help/index_fr.html
@@ -44,7 +44,7 @@
  <ul>
  <li>Choissisez un nom pour votre eepsite (<i>quelquechose</i>.i2p). Tout en minuscule.
      D'abord, vérifiez dans le carnet d'adresse de votre router
-     <a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=router&filter=none">ici</a>,
+     <a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=router&amp;filter=none">ici</a>,
      ou dans le fichier <code>i2p/hosts.txt</code> pour voir si le nom a déjà été pris.
      Entrez le nouveau nom de votre eepsite sur le 
      <a href="http://127.0.0.1:7657/i2ptunnel/edit.jsp?tunnel=3">eepsite i2ptunnel page de configuration</a>
diff --git a/installer/resources/eepsite.help/help/index_nl.html b/installer/resources/eepsite.help/help/index_nl.html
index 0ab8e2fbe4..e56017bb7d 100644
--- a/installer/resources/eepsite.help/help/index_nl.html
+++ b/installer/resources/eepsite.help/help/index_nl.html
@@ -46,7 +46,7 @@
  <ul>
  <li>Kies een naam voor je eepsite (<i>mijnsite</i>.i2p). Gebruik alleen kleine letters.
      Kijk eerst 
-     <a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=router&filter=none">hier</a>,
+     <a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=router&amp;filter=none">hier</a>,
      in het adresboek van je router of in het bestand <code>i2p/hosts.txt</code> of de naam nog beschikbaar is.
      Voer de nieuwe naam voor je eepsite in op de 
      <a href="http://127.0.0.1:7657/i2ptunnel/edit.jsp?tunnel=3">eepsite i2ptunnel configuratie pagina</a>
diff --git a/installer/resources/eepsite.help/help/index_ru.html b/installer/resources/eepsite.help/help/index_ru.html
index 4ab16a17da..0e307ecb54 100644
--- a/installer/resources/eepsite.help/help/index_ru.html
+++ b/installer/resources/eepsite.help/help/index_ru.html
@@ -40,7 +40,7 @@
 Ваш i2p-сайт по умолчанию остановлен. Хотя Вы его и запустили, другим людям трудно его найти, ведь у сайта пока нет имени, а Ваш очень-длинный-Base64-ключ никому не известен. Вы, конечно, можете просто выдавать людям этот очень-длинный-Base64-ключ, но, к счастью, в I2P есть механизм адресных книг и несколько простых способов для сообщения людям о своем сайте. Далее подробные инструкции.
  
 <ul>
-<li>Выберите имя для своего сайта (<i>something</i>.i2p). Используйте только символы в нижнем регистре. Загляните в <a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=router&filter=none">адресную книгу</a> Вашего маршрутизатора или в файл <code>i2p/hosts.txt</code> для проверки, возможно такое имя уже кто-то занял. Введите новое имя Вашего сайта на <a href="http://127.0.0.1:7657/i2ptunnel/edit.jsp?tunnel=3">странице настроек туннеля для i2p-сайта</a> в поле «Имя веб-сайта». Это заменит имя сайта по умолчанию «mysite.i2p». Поставьте галочку «Автозапуск». Ваш сайт будет доступен извне всегда, когда запущен Ваш маршрутизатор. Не забудьте нажать «Сохранить».
+<li>Выберите имя для своего сайта (<i>something</i>.i2p). Используйте только символы в нижнем регистре. Загляните в <a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=router&amp;filter=none">адресную книгу</a> Вашего маршрутизатора или в файл <code>i2p/hosts.txt</code> для проверки, возможно такое имя уже кто-то занял. Введите новое имя Вашего сайта на <a href="http://127.0.0.1:7657/i2ptunnel/edit.jsp?tunnel=3">странице настроек туннеля для i2p-сайта</a> в поле «Имя веб-сайта». Это заменит имя сайта по умолчанию «mysite.i2p». Поставьте галочку «Автозапуск». Ваш сайт будет доступен извне всегда, когда запущен Ваш маршрутизатор. Не забудьте нажать «Сохранить».
 
 <li>Кликните <a href="http://127.0.0.1:7657/i2ptunnel/index.jsp">в менеджере туннелей</a> на кнопке запуска вашего сайта. Вы должны увидеть запись «i2p-сайт» в списке «Локальные туннели» в левой части <a href="http://127.0.0.1:7657/index.jsp">консоли маршрутизатора</a>. С этого момента Ваш сайт запущен.
      
diff --git a/router/java/src/net/i2p/data/i2np/package.html b/router/java/src/net/i2p/data/i2np/package.html
index 666c5bf224..02de465c4c 100644
--- a/router/java/src/net/i2p/data/i2np/package.html
+++ b/router/java/src/net/i2p/data/i2np/package.html
@@ -7,31 +7,30 @@ communicate with the network routers. In addition, various transport protocols d
 the specifics of how data is passed from one router to another over the network. I2NP
 does not specify or require any particular transport layer, allowing transport protocols
 to work over TCP, Polling HTTP, SMTP+POP3/IMAP, UDP, among anything else
-that can pass data. I2NP merely requires that they:
+that can pass data. I2NP merely requires that they:</p>
 <ul>
 <li>
 Register a unique identifier for use in RouterAddress structures consisting of no
-more than 32 UTF-8 characters.
+more than 32 UTF-8 characters.</li>
 <li>
 Define standard text based options that uniquely define a contact method (for
 example .hostname. and .port. or .email address.) as usable in the
-RouterAddress structure's set of options.
+RouterAddress structure's set of options.</li>
 <li>
 Provide a means to reliably deliver a chunk of data, where the contents of any
 particular chunk is delivered in order. However, different chunks of data do not
-need to be delivered in order.
+need to be delivered in order.</li>
 <li>
 Secure the chunks of data from alteration or disclosure (e.g. encrypt them and use
-checksums).
+checksums).</li>
 <li>
-Enable the router to control the transport's bandwidth usage.
+Enable the router to control the transport's bandwidth usage.</li>
 <li>
 Provide estimates for the latency and bandwidth associated with passing a chunk of
-data.
+data.</li>
 <li>
-Provide a programmable interface suitable for integration with various routers.
+Provide a programmable interface suitable for integration with various routers.</li>
 </ul>
-</p>
 <p>
 Transports themselves can implement advanced features, such as steganography,
 constant rate delivery, dummy message delivery, and may even run on top of existing
@@ -56,12 +55,12 @@ message to be sent. The router then determines where to send it, delivers it thr
 outbound tunnels, instructing the end point to pass it along to the appropriate inbound
 tunnel, where it is passed along again to that tunnel's end point and made available to
 the target for reception. To understand fully, each step in the process must be
-explained in detail.
+explained in detail.</p>
 <ul>
 <li>
 First, once the originating router receives the message and the Destination, it
 attempts to find the LeaseSet associated with it as stored in the Network Database
-under the key calculated by SHA256 of the Destination.
+under the key calculated by SHA256 of the Destination.</li>
 <li>
 The router then builds a GarlicMessage addressed to the SHA256 of the
 PublicKey from the LeaseSet with the real data to be delivered. This
@@ -71,48 +70,48 @@ and in fact, if the source router desires guaranteed delivery, it will include a
 requesting source route delivery of a DeliveryStatusMessage back to itself. The
 body of the GarlicMessage with all enclosed GarlicCloves is encrypted to the key
 specified on the LeaseSet using the ElGamal+AES256 algorithm described in the
-data structure spec.
+data structure spec.</li>
 <li>
 The router then selects one or more outbound tunnels through which the
-GarlicMessage will be delivered.
+GarlicMessage will be delivered.</li>
 <li>
 Then the router selects one or more of those Lease structures from the LeaseSet
 and constructs a TunnelMessage along with DeliveryInstructions for the
 outbound tunnel's end point to deliver the GarlicMessage to the inbound tunnel's
-gateway router.
+gateway router.</li>
 <li>
 The source router then passes the various TunnelMessages down the outbound
 tunnel to that tunnel's end point, where the instructions are decrypted, specifying
-where the message should be delivered.
+where the message should be delivered.</li>
 <li>
 At this point, the end point must determine how to contact the router specified in
 the decrypted DeliveryInstructions, perhaps looking up RouterInfo or
 LeaseSet structures in the Network Database, and maybe even delaying a
-requested period of time before passing on the message.
+requested period of time before passing on the message.</li>
 <li>
 Once the tunnel end point has the data it needs to contact the inbound tunnel's
 gateway router, it then attempts to contact it either directly through one of its public
 RouterAddress or source routed through one of its published trusted peers. Over
 this medium the tunnel end point delivers the GarlicMessage as it was wrapped by
-the source router, along with the TunnelId.
+the source router, along with the TunnelId.</li>
 <li>
 Once delivered to the inbound tunnel's gateway, the gateway builds a
 TunnelMessage wrapping the GarlicMessage, encrypting a
 DeliveryInstructions to specify local delivery upon arrival at the tunnel's end
-point.
+point.</li>
 <li>
 Once the TunnelMessage is passed down to the end point in inbound tunnel, the
 router opens the DeliveryInstructions, notes the request to deliver it locally,
 and then proceeds to review the contents of the TunnelMessage's payload, which in
 this case is a GarlicMessage addressed to the SHA256 of a LeaseSet that it has
-published. It then decrypts the payload of the message with ElGamal + AES256.
+published. It then decrypts the payload of the message with ElGamal + AES256.</li>
 <li>
 After opening up the GarlicMessage, it reviews each of the GarlicCloves and
 processes them each. Cloves with DeliveryInstructions addressed to a local
 Destination are delivered to the associated client application, other cloves asking
 for local processing (e.g. Network Database messages or DeliveryStatusMessages)
 are processed, and cloves asking for forwarding to other routers are passed off for
-delivery.
+delivery.</li>
 </ul>
 <p>
 There are several important points of note in this scenario. First, the source router
-- 
GitLab