diff --git a/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java index 013216ad32..e65f9ec905 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java @@ -30,7 +30,8 @@ public class CSSHelper extends HelperBase { /** change default language for the router but don't save it */ public void setLang(String lang) { - if (lang != null && lang.length() > 0) + // TODO: Protect with nonce or require POST + if (lang != null && lang.length() == 2) _context.router().setConfigSetting(Messages.PROP_LANG, lang); } diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ContentHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ContentHelper.java index 7a9d947934..1853ff2464 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ContentHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ContentHelper.java @@ -22,15 +22,22 @@ public class ContentHelper extends HelperBase { if((_lang == null || !_lang.equals(l)) && (l != null)) { //Set language for router console _lang = l; - +/***** + TODO - Temporary for 0.8.4 + Needed for desktopgui. But there's no nonce protection. + Move the following to CSSHelper setLang(), or disable completely, + See comments in CSSHelper +*****/ if(_context == null) { setContextId(null); } - //Set language persistently throughout I2P - _context.router().setConfigSetting(Messages.PROP_LANG, _lang); - _context.router().saveConfig(); - _context.setProperty(Messages.PROP_LANG, _lang); + if (_context.getBooleanProperty("desktopgui.enabled")) { + //Set language persistently throughout I2P + _context.router().setConfigSetting(Messages.PROP_LANG, _lang); + _context.router().saveConfig(); + _context.setProperty(Messages.PROP_LANG, _lang); + } } } diff --git a/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java b/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java index c50eb96cba..be46bdca0c 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java @@ -11,9 +11,10 @@ import java.util.Properties; import java.util.StringTokenizer; import net.i2p.I2PAppContext; -import net.i2p.desktopgui.Main; +import net.i2p.apps.systray.SysTray; import net.i2p.data.Base32; import net.i2p.data.DataHelper; +import net.i2p.desktopgui.Main; import net.i2p.router.RouterContext; import net.i2p.util.FileUtil; import net.i2p.util.I2PAppThread; @@ -58,15 +59,6 @@ public class RouterConsoleRunner { static { System.setProperty("org.mortbay.http.Version.paranoid", "true"); - - //Check if we are in a headless environment, set properties accordingly - String headless = "java.awt.headless"; - if(GraphicsEnvironment.isHeadless()) { - System.setProperty(headless, "true"); - } - else { - System.setProperty(headless, "false"); - } } /** @@ -137,10 +129,34 @@ public class RouterConsoleRunner { } public static void main(String args[]) { + startTrayApp(); RouterConsoleRunner runner = new RouterConsoleRunner(args); runner.startConsole(); } + private static void startTrayApp() { + try { + //TODO: move away from routerconsole into a separate application. + //ApplicationManager? + VersionComparator v = new VersionComparator(); + boolean recentJava = v.compare(System.getProperty("java.runtime.version"), "1.6") >= 0; + // default false for now + boolean desktopguiEnabled = I2PAppContext.getGlobalContext().getBooleanProperty("desktopgui.enabled"); + if (recentJava && desktopguiEnabled) { + //Check if we are in a headless environment, set properties accordingly + System.setProperty("java.awt.headless", Boolean.toString(GraphicsEnvironment.isHeadless())); + String[] args = new String[0]; + net.i2p.desktopgui.Main.beginStartup(args); + } else { + // required true for jrobin to work + System.setProperty("java.awt.headless", "true"); + SysTray.getInstance(); + } + } catch (Throwable t) { + t.printStackTrace(); + } + } + public void startConsole() { File workDir = new SecureDirectory(I2PAppContext.getGlobalContext().getTempDir(), "jetty-work"); boolean workDirRemoved = FileUtil.rmdir(workDir, false); @@ -325,20 +341,6 @@ public class RouterConsoleRunner { } } - try { - //TODO: move away from routerconsole into a separate application. - //ApplicationManager? - VersionComparator v = new VersionComparator(); - String desktopguiEnabled = I2PAppContext.getGlobalContext().getProperty("desktopgui.enabled"); - int recentJava = v.compare(System.getProperty("java.runtime.version"), "1.6"); - if(recentJava >= 0 && (desktopguiEnabled == null || desktopguiEnabled.equalsIgnoreCase("true"))) { - String[] args = new String[0]; - net.i2p.desktopgui.Main.beginStartup(args); - } - } catch (Throwable t) { - t.printStackTrace(); - } - NewsFetcher fetcher = NewsFetcher.getInstance(I2PAppContext.getGlobalContext()); Thread t = new I2PAppThread(fetcher, "NewsFetcher", true); t.start(); diff --git a/apps/routerconsole/jsp/configservice.jsp b/apps/routerconsole/jsp/configservice.jsp index cfbd4ece12..d6864e5fb4 100644 --- a/apps/routerconsole/jsp/configservice.jsp +++ b/apps/routerconsole/jsp/configservice.jsp @@ -42,6 +42,14 @@ <% } %> <% if ( (System.getProperty("os.name") != null) && (System.getProperty("os.name").startsWith("Win")) ) { %> +
<%=intl._("On the windows platform, there is a small application to sit in the system tray, allowing you to view the router's status")%> + <%=intl._("(later on, I2P client applications will be able to integrate their own functionality into the system tray as well).")%> + <%=intl._("If you are on windows, you can either enable or disable that icon here.")%>
+<%=intl._("You can control whether I2P is run on startup or not by selecting one of the following options - I2P will install (or remove) a service accordingly.")%>
<%=intl._("If you prefer the command line, you can also run the ")%> install_i2p_service_winnt.bat
(<%=intl._("or")%>
diff --git a/history.txt b/history.txt
index cb0b395fff..590cd5457d 100644
--- a/history.txt
+++ b/history.txt
@@ -1,3 +1,14 @@
+2011-02-27 zzz
+ * Console:
+ - Fix numerous readme HTML errors
+ - Fix flag locations in readmes
+ - desktopgui.enable now defaults to false; run systray if false
+ - Start icon app before console
+ - Restore systray form in configservice.jsp
+ - Only save lang when clicking on flags if desktopgui is running
+ - Only allow two-letter lang code from cgi parameter
+ * Reseed: Disable HTTPS until we have enough working hosts again
+
2011-02-24 zzz
* i2psnark:
- Fix delete and remove buttons for Opera and w3m
diff --git a/installer/resources/readme/readme.html b/installer/resources/readme/readme.html
index 8aa1d9577f..680a6c52b1 100644
--- a/installer/resources/readme/readme.html
+++ b/installer/resources/readme/readme.html
@@ -1,6 +1,6 @@
127.0.0.1 port 4444
, then browse to an eepsite or a normal, unencrypted http://
address. For a pre-configured browser, you may wish to try I2PFox, a custom build of Firefox security hardened and tailored especially for I2P. If you wish to disable or change outproxy access to the normal internet, remove or modify the outproxy entry for false.i2p
under the Outproxies option in the I2P HTTP Proxy Tunnel Editor. In the "Sites of Interest" section below, we list a few of the sites hosted on I2P.127.0.0.1 port 6668
. You do not need to configure a proxy in your IRC client; I2P provides you with a local IRC tunnel (configured in your IRC client as an IRC server or remote host). Your local I2P IRC tunnel on localhost:6668
will direct you to one of two IRC servers hosted on I2P by Postman and Badger, but neither you nor they know where the other is, and your mom, ISP or government is unable to intercept your conversation! Once you're there, #i2p-help
,#i2p
,#i2p-chat
and #i2p-dev
are just a few of the available channels you may wish to /join. There's also an I2P-based Instant Messenger for unmonitorable and uncensorable anonymous chat, as well as alternative IRC servers, Jabber servers, website-based chat, and more. And of course you're entirely free to run your own servers over I2P in whatever flavor you choose, or if you're a developer write your own I2P applications (both UDP and TCP protocols are provisioned), and realtime streaming is also possible. We also provide full access to the java-based api.127.0.0.1 port 6668
. You do not need to configure a proxy in your IRC client; I2P provides you with a local IRC tunnel (configured in your IRC client as an IRC server or remote host).
+ Your local I2P IRC tunnel on localhost:6668
will direct you to one of two IRC servers hosted on I2P by Postman and Badger, but neither you nor they know where the other is, and your mom, ISP or government is unable to intercept your conversation!
+ Once you're there, #i2p-help
,#i2p
,#i2p-chat
and #i2p-dev
are just a few of the available channels you may wish to /join.
+ There's also an I2P-based Instant Messenger for unmonitorable and uncensorable anonymous chat, as well as alternative IRC servers, Jabber servers, website-based chat, and more.
+ And of course you're entirely free to run your own servers over I2P in whatever flavor you choose, or if you're a developer write your own I2P applications (both UDP and TCP protocols are provisioned), and realtime streaming is also possible.
+ We also provide full access to the Java API.eepsite/webapps
,
or standard CGI scripts under eepsite/cgi-bin
) and they'll show
up. You can also run any alternative web server platform over I2P and replace the built-in server, or run it on another tunnel.
- i2p/i2prouter start
try the runplain.sh
script in the same directory. Root privileges are usually not required to run I2P. If you need to compile the jBigi library (which is necessary in rare cases), consult appropriate documentation, visit the forums, or come pay a visit to our IRC developer channel.
@@ -125,4 +140,5 @@ your eepsite will be visible (but not discoverable) to others. Detailed instruct
-عندما تقوم بتشغيل I2P ستبدأ الأرقام على يسار الشاشة في الازدياد خلال الدقائق التالية وستظهر عبارة Shared Clients (ان لم تظهر، انظر التعليمات اسفله). عندها يمكنك الحصول على عدة خدمات مثل تورنت، البريد الإلكتروني السري، وخدمات أخرى:
Wenn Du I2P gerade gestartet hast, sollten die "Aktiv:"-Zahlen links in den nächsten Minuten anwachsen. Du siehst dann dort ein als "versch. Klienten" bezeichnetes lokales Ziel gelistet (falls nicht, siehe unten). Sobald dieses erscheint, kannst Du:
Si acabas de iniciar I2P, al observar el menú de la izquierda, deberías notar que los números al lado de "Activos:" subirán en los próximos minutos y luego verás allí un Destino llamado "clientes diferentes" (si no, ¡mira abajo!)
Apenas aparezca esto, puedes:
Si vous venez juste de lancer I2P, les chiffres sur la gauche à coté de Active devraient commencer à augmenter dans les prochaines minutes et vous verrez un "Shared client" en destination locale listés sur la gauche (si non, voir plus bas). Une fois qu'ils apparaissent, vous pouvez:
Soyez patient - i2p peut s'avérer lent à démarrer la première fois car il recherche des pairs. Si, après 30 minutes, votre Actives: connecté/récent compte moins de 10 pairs connectés, vous devez ouvrir le port 8887 sur votre pare-feu pour avoir une meilleure connection. Si vous ne pouvez accéder à aucun eepsite (même www.i2p2.i2p), soyez sûr que votre navigateur utilise bien le proxy 127.0.0.1 sur le port 4444. Vous pouvez aussi faire part de votre démarche sur le site web I2P, poster des message sur le forum de discussion, ou passer par #i2p-help, #i2p-fr, #i2p ou #i2p-chat - sur IRC sur le serveur irc.freenode.net, irc.postman.i2p ou irc.freshcoffee.i2p (ils sont liés).
Forums & Blogging
Als je opzoek bent om je eigen blog of forum te draaien ben je misschien geïnteresseerd in Syndie, een distributed forum en blogging platform voor I2P [Ontwikkelaars gezocht!]. Er is ook een I2P plugin van het op Java gebaseerde pebble blogging platform geport naar I2P door zzz, beschikbaar op i2plugins.i2p. En, natuurlijk zullen alle normale blogging, forum en CMS software werken op I2P, wel word je geadviseerd extra veiligheidsmaatregelen te nemen bij het opzetten en alle gerelateerde software (bijv. PHP, MySQL, Python, Apache) up-to-date te houden en goed beveiligd! Ook zijn er reeds een aantal forums op I2P in verschillende talen; zie hier onder voor enkele suggesties.
-Plugins voor I2P
Breid de gebruiks mogelijkheden van I2P uit door het installeren van plugins … blogging, chatting, file sharing en andere plugins zijn al geschreven of geport en wachten op installatie! Surf naar de plugins en gerelateerde info op i2plugins.i2p. Als je een ontwikkelaar bent is er een compleet taal-agnostisch framework beschikbaar voor het schrijven van eigen plugins, geleverd met documentatie; I2P plugins kunnen geprogrammeerd worden in elke taal.
+Plugins voor I2P
Breid de gebruiks mogelijkheden van I2P uit door het installeren van plugins … blogging, chatting, file sharing en andere plugins zijn al geschreven of geport en wachten op installatie! Surf naar de plugins en gerelateerde info op i2plugins.i2p. Als je een ontwikkelaar bent is er een compleet taal-agnostisch framework beschikbaar voor het schrijven van eigen plugins, geleverd met documentatie; I2P plugins kunnen geprogrammeerd worden in elke taal.
Anoniem en versleutelde Web Hosting op I2P
@@ -84,7 +87,7 @@ Als je achter een verbiedende firewall zit maar wel onbeperkt uitgaande toegang,
zorg er dan voor dat je browser's proxy is ingesteld op http proxy (niet https, niet socks) via 127.0.0.1 poort 4444
. Als je hulp nodig hebt is er een handleiding voor het configureren van je browser voor gebruik met I2P, ook beschikbaar op het normale Internet.
Controleer je Logs
Logs kunnen je helpen met problemen oplossen. Je kan mogelijk fragmenten in een forum posten voor hulp, of misschien plakken en als referentie link laten zien op IRC voor hulp.
- Verifieer dat Java up-to-date is
Zorg er voor dat Java up-to-date is [versie 1.6 aanbevolen en vereist voor sommige functies]. Als je geen Java geinstalleerd hebt wil je waarschijnlijk een implementatie van de JRE (Java Runtime Engine); als je een ontwikkelaar bent is de SDK mogelijk ook interessant, en misschien Apache Ant die we gebruiken om de I2P Java binaries te compileren.
+ Verifieer dat Java up-to-date is
Zorg er voor dat Java up-to-date is [versie 1.6 aanbevolen en vereist voor sommige functies]. Als je geen Java geinstalleerd hebt wil je waarschijnlijk een implementatie van de JRE (Java Runtime Environment); als je een ontwikkelaar bent is de SDK mogelijk ook interessant, en misschien Apache Ant die we gebruiken om de I2P Java binaries te compileren.
Problemen met draaien op verouderde hardware
[Linux/Unix/Solaris] Als je de router niet kan starten met i2p/i2prouter start
probeer het runplain.sh
script in de zelfde directory. Root rechten zijn normaliter niet vereist voor het draaien van I2P. Als je de jBigi library moet compileren (welke in zeldzame gevallen nodig is), raadpleeg de bijhorende documentatie, bezoek het forum of kom eens langs op ons IRC developer kanaal.
@@ -103,4 +106,5 @@ Als je achter een verbiedende firewall zit maar wel onbeperkt uitgaande toegang,
Raak betrokken!
I2P word ontwikkeld en onderhouden door hoofdzakelijk ongefinancierde en vrijwillige community leden. We accepteren graag donaties, welke zullen besteed aan essentiele hosting en administratie kosten. We hebben contante beloningen voor aspecten van I2P voor ontwikkelaars welke graag mee willen ontwikkelen, we zijn altijd opzoek naar meer Java coders, vertalers, promoters en gebruikers om I2P te helpen groeien. Hoe groter het I2P netwerk, hoe meer iedereen van de voordelen profiteert, simpelweg al je vrienden vertellen over I2P en ze helpen het te installeren is al een grote hulp. Voor meer informatie over hoe je betrokken kan raken, bezoek de vrijwilligers pagina op de website.
-
Document geupdate: December 2010.
+
Document geupdate: December 2010
+
Se você acaba de iniciar I2P, os números à esquerda ao lado de "Active:" deberiam subir nos seguintes minutos e logo lá verá uma Destinação chamada "shared clients". (se não, veija embaixo!)
Assim que apareça isto, você pode:
i2p/i2prouter start
, попробуйте воспользоваться скриптом runplain.sh
, который находится в той же директории. Root-привилегии обычно не требуются для запуска I2P. Если вам нужно скомпилировать библиотеку jBigi (что необходимо в редких случаях), изучите соответствующую документацию, посетите форумы, или приходите на наш IRC-канал для разработчиков.
@@ -109,3 +111,4 @@
Om du just har startat I2P kommer de "Aktiva: #/#" börja öka inom
några få minuter och du kommer se en destination kallad "delade
klienter" på den vänstra listan (om inte se
@@ -39,7 +42,7 @@ Freenet proxy
Det finns många fler eepsidor - följ bara länkarna från dom du ser,
- spara dina favoriter och besök dom ofta!
+ spara dina favoriter och besök dom ofta!
I2P 运行后的几分钟里控制台左侧的【活动节点】数量会逐渐增加, 在【本地目标】中出现【共享客户端】后,表示I2P已建立连接(没有出现?见 疑难解答)。 然后您可以:
@@ -25,7 +28,7 @@