propagate from branch 'i2p.i2p.zzz.winfix095' (head 7d31b90b87adb2c0cfb837e5b66cc4c223766331)

to branch 'i2p.i2p' (head b004014ccfbca6241a090d5b47f1228702f4dfcc)
This commit is contained in:
zzz
2013-04-21 15:57:22 +00:00
138 changed files with 7799 additions and 1145 deletions

112
installer/c/i2pExe/I2P.rc Normal file
View File

@@ -0,0 +1,112 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource1.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 0,9,5,1
PRODUCTVERSION 0,9,5,1
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "Comments", "Anonymity for the masses"
VALUE "CompanyName", "The I2P Project"
VALUE "FileDescription", "I2P"
VALUE "FileVersion", "0, 9, 5, 1"
VALUE "InternalName", "I2P"
VALUE "LegalCopyright", "Public Domain"
VALUE "OriginalFilename", "I2P.exe"
VALUE "ProductName", " I2P"
VALUE "ProductVersion", "0, 9, 5, 1"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_ICON1 ICON "../../resources/start.ico"
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

View File

@@ -0,0 +1,22 @@
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "I2P", "I2P.vcproj", "{0A74F3D1-C70A-4CF0-9390-C676025ED12F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
Release-alpha|Win32 = Release-alpha|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{0A74F3D1-C70A-4CF0-9390-C676025ED12F}.Debug|Win32.ActiveCfg = Debug|Win32
{0A74F3D1-C70A-4CF0-9390-C676025ED12F}.Debug|Win32.Build.0 = Debug|Win32
{0A74F3D1-C70A-4CF0-9390-C676025ED12F}.Release|Win32.ActiveCfg = Release|Win32
{0A74F3D1-C70A-4CF0-9390-C676025ED12F}.Release|Win32.Build.0 = Release|Win32
{0A74F3D1-C70A-4CF0-9390-C676025ED12F}.Release-alpha|Win32.ActiveCfg = Release-alpha|Win32
{0A74F3D1-C70A-4CF0-9390-C676025ED12F}.Release-alpha|Win32.Build.0 = Release-alpha|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

BIN
installer/c/i2pExe/I2P.suo Normal file

Binary file not shown.

View File

@@ -0,0 +1,327 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="I2P"
ProjectGUID="{0A74F3D1-C70A-4CF0-9390-C676025ED12F}"
RootNamespace="I2P"
Keyword="Win32Proj"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="&quot;C:\Program Files\Java\jdk1.6.0\include\win32&quot;;&quot;C:\Program Files\Java\jdk1.6.0\include&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Shlwapi.lib"
OutputFile="$(OutDir)/I2P.exe"
LinkIncremental="2"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)/I2P.pdb"
SubSystem="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
AdditionalManifestFiles="I2P.exe.manifest"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="0"
AdditionalIncludeDirectories="&quot;C:\Program Files\Java\jdk1.6.0_13\include&quot;;&quot;C:\Program Files\Java\jdk1.6.0_13\include\win32&quot;"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="shlwapi.lib"
OutputFile="$(OutDir)/I2P.exe"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release-alpha|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/D&quot;ALPHA&quot;"
Optimization="2"
InlineFunctionExpansion="0"
AdditionalIncludeDirectories="&quot;C:\Program Files\Java\jdk1.6.0\include&quot;;&quot;C:\Program Files\Java\jdk1.6.0\include\win32&quot;"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="shlwapi.lib"
OutputFile="$(OutDir)/I2P.exe"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\i2p.c"
>
</File>
<File
RelativePath=".\java.c"
>
</File>
<File
RelativePath=".\java_md.c"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath=".\errors.h"
>
</File>
<File
RelativePath=".\java.h"
>
</File>
<File
RelativePath=".\java_md.h"
>
</File>
<File
RelativePath=".\jni.h"
>
</File>
<File
RelativePath=".\jni_md.h"
>
</File>
<File
RelativePath=".\resource.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
<File
RelativePath=".\I2P.rc"
>
</File>
<File
RelativePath="..\..\resources\start.ico"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@@ -0,0 +1,11 @@
#ifndef _I2P_ERRORS_H
#define _I2P_ERRORS_h
#define ERROR_COULDNT_LOAD_JVM 6
#define ERROR_COULDNT_PARSE_ARGUMENTS 7
#define ERROR_COULDNT_INITIALIZE_JVM 8
#define ERROR_STARTING_PROGRAM 9
#define ERROR_COULDNT_FIND_JVM 10
#endif /* _I2P_ERRORS_H */

255
installer/c/i2pExe/i2p.c Normal file
View File

@@ -0,0 +1,255 @@
/**
* Customized I2P launcher.
* Launches the JRE within the process, to allow Task Manager to show
* "I2P.exe" as the process, and firewalls to control access of
* "I2P.exe".
*/
#include "errors.h"
#ifdef _WIN32
#include <windows.h>
#endif
#include <stdio.h>
#include <malloc.h>
#include <sys/stat.h>
//BOOL MoveFontPropertiesFile(const char *path);
#ifdef _WIN32
void SetWorkingDirectory(char *path);
#endif
void readOptions(char***, int*);
//BOOL localJREExists(const char*);
//BOOL exist(const char*);
// defined in java.c
extern void* MemAlloc(size_t);
// defined in java.c
extern int launchJVM(int, char**);
int
main(int argc, char** argv) {
int read_options_size;
char** read_options;
int ret = 0;
//int current_argc = 0;
int new_argc;
char** new_argv;
int i;
#ifdef _WIN32
char currentDirectory[MAX_PATH+1];
#endif
// Set/get the correct working directory.
#ifdef _WIN32
SetWorkingDirectory(currentDirectory);
#endif
// If there are command-line arguments, just use them
if(argc > 1) {
ret = launchJVM(argc, argv);
} else {
// Read in options from disk (launch.properties)
// or the default ones (if no launch.properties existed)
readOptions(&read_options, &read_options_size);
// Construct a new argc & argv to pass to launchJVM
new_argc = read_options_size;
new_argv = (char**)MemAlloc(sizeof(char*) * (new_argc+1));
// copy process name
new_argv[0] = argv[0];
// copy arguments from properties file
for(i = 1; i <= read_options_size; i++)
new_argv[i] = read_options[i-1];
// copy argv arguments as arguments after the properties file
// (generally used as arguments for I2P)
//for(current_argc = 1; current_argc < argc; current_argc++)
// new_argv[i++] = argv[current_argc];
new_argv[i] = NULL;
// options are no longer necessary -- free them up.
if(read_options != 0)
free(read_options);
ret = launchJVM(new_argc, new_argv);
free(new_argv);
}
switch(ret) {
case ERROR_COULDNT_FIND_JVM:
case ERROR_COULDNT_INITIALIZE_JVM:
case ERROR_COULDNT_LOAD_JVM:
#ifdef _WIN32
if (MessageBox(NULL, "I2P needs the Java Runtime Environment 5.0 or above. Click OK to go to www.java.com, where you can install Java.",
"I2P Launcher Error",
MB_ICONWARNING | MB_OKCANCEL) == IDOK)
ShellExecute(NULL, NULL, "http://www.java.com/", "", "", SW_SHOWNORMAL);
#endif
break;
case ERROR_COULDNT_PARSE_ARGUMENTS:
#ifdef _WIN32
MessageBox(NULL, "I2P failed to parse the commandline arguments to Java.\n"
"Please download and install I2P again.",
"I2P Launcher Error", MB_OK);
#endif
break;
case ERROR_STARTING_PROGRAM:
#ifdef _WIN32
MessageBox(NULL, "I2P was unable to load.\n"
"Please download and install I2P again.",
"I2P Launcher Error", MB_OK);
#endif
break;
}
return ret;
}
#define MAX_OPTION_SIZE 100
#define MAX_OPTIONS 100
/**
* Read in the launch.properties file and generate psuedo-commandline arguments.
*/
void readOptions(char*** options, int* size) {
FILE* file;
char* buffer;
int i;
size_t currentlen;
char* command;
file = fopen("launch.properties", "r");
if(file == NULL) {
// default to certain values.
*size = 9;
*options = (char**)MemAlloc(sizeof(char*) * (*size));
i = 0;
(*options)[i++] = "-Xms64m";
(*options)[i++] = "-Xmx128m";
//(*options)[i++] = "-Djava.net.preferIPv6Addresses=false";
//(*options)[i++] = "-Djava.net.preferIPv4Stack=true";
(*options)[i++] = "-Djava.library.path=.;lib";
(*options)[i++] = "-DloggerFilenameOverride=logs/log-router-@.txt";
(*options)[i++] = "-Dorg.mortbay.http.Version.paranoid=true";
(*options)[i++] = "-Dorg.mortbay.util.FileResource.checkAliases=false";
(*options)[i++] = "-cp";
(*options)[i++] = "lib/i2p.jar:lib/router.jar:lib/jbigi.jar:lib/BOB.jar:lib/sam.jar:lib/mstreaming.jar:lib/streaming.jar:lib/routerconsole.jar:lib/i2ptunnel.jar:lib/org.mortbay.jetty.jar:lib/javax.servlet.jar:lib/jasper-compiler.jar:lib/jasper-runtime.jar:lib/commons-logging.jar:lib/commons-el.jar:lib/wrapper.jar:lib/systray.jar:lib/systray4j.jar:lib/desktopgui.jar:lib/i2psnark.jar:lib/jrobin.jar:lib/jstl.jar:lib/standard.jar:lib/jetty-i2p.jar:lib/jetty-java5-threadpool.jar:lib/jetty-rewrite-handler.jar:lib/jetty-sslengine.jar:lib/jetty-start.jar:lib/jetty-util.jar";
(*options)[i++] = "net.i2p.router.RouterLaunch";
#ifdef ALPHA
#pragma message ("\n\n!!!!!!!!!!!!!! building ALPHA !!!!!!!!!!!!!!\n\n")
(*options)[(*size) - 3] = "-agentlib:yjpagent=port=11111";
(*options)[(*size) - 2] = "-jar";
(*options)[(*size) - 1] = "I2P.jar";
#endif
return;
}
*options = (char**)MemAlloc(sizeof(char*) * MAX_OPTIONS);
*size = 0;
for(i = 0; i < MAX_OPTIONS && !feof(file); i++) {
buffer = (char*)MemAlloc(sizeof(char) * MAX_OPTION_SIZE);
// get the next option.
if(fgets(buffer, MAX_OPTION_SIZE - 1, file) == NULL)
break;
// strip off the \n if it exists.
currentlen = strlen(buffer);
if(currentlen > 0 && buffer[currentlen-1] == '\n') {
buffer[currentlen-1] = 0;
currentlen--;
}
// downsize the storage for the command.
currentlen++; // (include \0)
command = (char*)MemAlloc(sizeof(char) * currentlen);
strcpy(command, buffer);
free(buffer);
// set the option & increase the size
if(currentlen > 0) {
(*options)[i] = command;
(*size)++;
}
}
if(file != NULL)
fclose(file);
}
/*
* Sets the current working directory to wherever I2P.exe is located
*/
#ifdef _WIN32
static void
SetWorkingDirectory(char *path) {
GetModuleFileName(NULL, path, MAX_PATH + 1);
*strrchr(path, '\\') = '\0'; // remove the .exe
SetCurrentDirectory(path);
GetCurrentDirectory(MAX_PATH + 1, path);
}
#endif
/**
* Checks to see if an app-installed JRE exists.
*/
/*
BOOL localJREExists(const char* path) {
char localBuf[MAX_PATH + 1];
sprintf(localBuf, "%s\\jre\\bin\\hotspot\\jvm.dll\0", path);
return exist(localBuf);
}
*/
/**
* Copies the windows.font.properties file to the jre so that
* we use the proper fonts for international installs.
*/
/*
BOOL
MoveFontPropertiesFile(const char *path) {
char curFontFile[MAX_PATH + 1];
char newFontFile[MAX_PATH + 1];
BOOL copySucceeded;
sprintf(curFontFile, "%s\\windows.font.properties\0", path);
sprintf(newFontFile, "%s\\jre\\lib\\font.properties\0", path);
if(!exist(curFontFile))
return TRUE;
copySucceeded = CopyFile(curFontFile, newFontFile, FALSE);
if(copySucceeded)
DeleteFile(curFontFile);
return copySucceeded;
}
*/
/*
BOOL exist(const char *filename) {
struct stat s;
return stat(filename, &s) == 0 ? TRUE : FALSE;
}
*/
#ifdef _WIN32
__declspec(dllimport) char **__initenv;
int WINAPI
WinMain(HINSTANCE inst, HINSTANCE previnst, LPSTR cmdline, int cmdshow)
{
int ret;
/* It turns out, that Windows can set thread locale to default user locale
* instead of default system locale. We correct this by explicitely setting
* thread locale to system default.
*/
SetThreadLocale(GetSystemDefaultLCID());
__initenv = _environ;
ret = main(__argc, __argv);
return ret;
}
#endif

1042
installer/c/i2pExe/java.c Normal file

File diff suppressed because it is too large Load Diff

76
installer/c/i2pExe/java.h Normal file
View File

@@ -0,0 +1,76 @@
/*
* @(#)java.h 1.23 04/04/24
*
* Copyright 2004 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
/* Backported from Tiger (1.5) java.h 1.26 04/01/12 */
#ifndef _JAVA_H_
#define _JAVA_H_
/*
* Get system specific defines.
*/
#include "jni.h"
#include "java_md.h"
/*
* Pointers to the needed JNI invocation API, initialized by LoadJavaVM.
*/
typedef jint (JNICALL *CreateJavaVM_t)(JavaVM **pvm, void **env, void *args);
typedef jint (JNICALL *GetDefaultJavaVMInitArgs_t)(void *args);
typedef struct {
CreateJavaVM_t CreateJavaVM;
GetDefaultJavaVMInitArgs_t GetDefaultJavaVMInitArgs;
} InvocationFunctions;
/*
* Prototypes for launcher functions in the system specific java_md.c.
*/
jboolean
LoadJavaVM(const char *jvmpath, InvocationFunctions *ifn);
jboolean
GetApplicationHome(char *buf, jint bufsize);
const char *
GetArch();
int CreateExecutionEnvironment(int *_argc,
char ***_argv,
char jrepath[],
jint so_jrepath,
char jvmpath[],
jint so_jvmpath,
char **original_argv);
/*
* Report an error message to stderr or a window as appropriate. The
* flag always is set to JNI_TRUE if message is to be reported to both
* strerr and windows and set to JNI_FALSE if the message should only
* be sent to a window.
*/
void ReportErrorMessage(char * message, jboolean always);
void ReportErrorMessage2(char * format, char * string, jboolean always);
/*
* Report an exception which terminates the vm to stderr or a window
* as appropriate.
*/
void ReportExceptionDescription(JNIEnv * env);
jboolean RemovableMachineDependentOption(char * option);
void PrintMachineDependentOptions();
/*
* Functions defined in java.c and used in java_md.c.
*/
jint ReadKnownVMs(const char *jrepath, char * arch, jboolean speculative);
char *CheckJvmType(int *argc, char ***argv, jboolean speculative);
void* MemAlloc(size_t size);
#endif /* _JAVA_H_ */

View File

@@ -0,0 +1,388 @@
/**
* Derived from the shared source for the 'java' commandline tool.
*/
/* Backported from Tiger (1.5) java_md.c 1.40 04/01/12 */
/* AMD64 support removed */
#include <windows.h>
#include <process.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include "jni.h"
#include "java.h"
#define JVM_DLL "jvm.dll"
#define JAVA_DLL "java.dll"
/*
* Prototypes.
*/
static jboolean GetPublicJREHome(char *path, jint pathsize);
static jboolean GetJVMPath(const char *jrepath, const char *jvmtype,
char *jvmpath, jint jvmpathsize);
static jboolean GetJREPath(char *path, jint pathsize);
const char *
GetArch()
{
#ifdef _WIN64
return "ia64";
#else
return "i386";
#endif
}
/*
*
*/
int
CreateExecutionEnvironment(int *_argc,
char ***_argv,
char jrepath[],
jint so_jrepath,
char jvmpath[],
jint so_jvmpath,
char **original_argv) {
char * jvmtype;
/* Find out where the JRE is that we will be using. */
if (!GetJREPath(jrepath, so_jrepath)) {
ReportErrorMessage("Could not find a suitable Java 2 Runtime Environment.",
JNI_TRUE);
return 1;
}
/* Find the specified JVM type */
if (ReadKnownVMs(jrepath, (char*)GetArch(), JNI_FALSE) < 1) {
ReportErrorMessage("Error: no known VMs. (check for corrupt jvm.cfg file)",
JNI_TRUE);
return 1;
}
jvmtype = CheckJvmType(_argc, _argv, JNI_FALSE);
jvmpath[0] = '\0';
if (!GetJVMPath(jrepath, jvmtype, jvmpath, so_jvmpath)) {
char * message=NULL;
const char * format = "Error: no `%s' JVM at `%s'.";
message = (char *)MemAlloc((strlen(format)+strlen(jvmtype)+
strlen(jvmpath)) * sizeof(char));
sprintf(message,format, jvmtype, jvmpath);
ReportErrorMessage(message, JNI_TRUE);
return 1;
}
/* If we got here, jvmpath has been correctly initialized. */
return 0;
}
/*
* Find path to JRE based on .exe's location or registry settings.
*/
jboolean
GetJREPath(char *path, jint pathsize)
{
char javadll[MAXPATHLEN];
struct stat s;
//
// if (GetApplicationHome(path, pathsize)) {
// /* Is JRE co-located with the application? */
// sprintf(javadll, "%s\\bin\\" JAVA_DLL, path);
// if (stat(javadll, &s) == 0) {
// goto found;
// }
// /* Does this app ship a private JRE in <apphome>\jre directory? */
// sprintf(javadll, "%s\\jre\\bin\\" JAVA_DLL, path);
// if (stat(javadll, &s) == 0) {
// strcat(path, "\\jre");
// goto found;
// }
// }
/* Look for a public JRE on this machine. */
if (GetPublicJREHome(path, pathsize))
goto found;
fprintf(stderr, "Error: could not find " JAVA_DLL "\n");
return JNI_FALSE;
found:
{
// trick into thinking that the jre/bin path is in the PATH
char *oldPath = getenv("PATH");
char *newPath;
if(oldPath != NULL) {
newPath = MemAlloc(strlen(oldPath) + strlen(path) + 6 + 6 + 1); // PATH=<new>\bin;<old>
sprintf(newPath, "PATH=%s\\bin;%s", path, oldPath);
} else {
newPath = MemAlloc(strlen(path) + 6 + 1);
sprintf(newPath, "PATH=%s\\bin", path);
}
_putenv(newPath);
free(newPath);
}
return JNI_TRUE;
}
/*
* Given a JRE location and a JVM type, construct what the name the
* JVM shared library will be. Return true, if such a library
* exists, false otherwise.
*/
static jboolean
GetJVMPath(const char *jrepath, const char *jvmtype,
char *jvmpath, jint jvmpathsize)
{
struct stat s;
if (strchr(jvmtype, '/') || strchr(jvmtype, '\\')) {
sprintf(jvmpath, "%s\\" JVM_DLL, jvmtype);
} else {
sprintf(jvmpath, "%s\\bin\\%s\\" JVM_DLL, jrepath, jvmtype);
}
if (stat(jvmpath, &s) == 0) {
return JNI_TRUE;
} else {
return JNI_FALSE;
}
}
/*
* Load a jvm from "jvmpath" and initialize the invocation functions.
*/
jboolean
LoadJavaVM(const char *jvmpath, InvocationFunctions *ifn)
{
HINSTANCE handle;
/* Load the Java VM DLL */
if ((handle = LoadLibrary(jvmpath)) == 0) {
ReportErrorMessage2("Error loading: %s", (char *)jvmpath, JNI_TRUE);
return JNI_FALSE;
}
/* Now get the function addresses */
ifn->CreateJavaVM =
(void *)GetProcAddress(handle, "JNI_CreateJavaVM");
ifn->GetDefaultJavaVMInitArgs =
(void *)GetProcAddress(handle, "JNI_GetDefaultJavaVMInitArgs");
if (ifn->CreateJavaVM == 0 || ifn->GetDefaultJavaVMInitArgs == 0) {
ReportErrorMessage2("Error: can't find JNI interfaces in: %s",
(char *)jvmpath, JNI_TRUE);
return JNI_FALSE;
}
return JNI_TRUE;
}
/*
* If app is "c:\foo\bin\javac", then put "c:\foo" into buf.
*/
jboolean
GetApplicationHome(char *buf, jint bufsize)
{
char *cp;
GetModuleFileName(0, buf, bufsize);
*strrchr(buf, '\\') = '\0'; /* remove .exe file name */
if ((cp = strrchr(buf, '\\')) == 0) {
/* This happens if the application is in a drive root, and
* there is no bin directory. */
buf[0] = '\0';
return JNI_FALSE;
}
if(strcmp(cp, "\\bin") == 0)
*cp = '\0'; /* remove the bin\ part */
// else c:\foo\something\javac
return JNI_TRUE;
}
/*
* Helpers to look in the registry for a public JRE.
*/
/* Same for 1.5.0, 1.5.1, 1.5.2 etc. */
#define DOTRELEASE JDK_MAJOR_VERSION "." JDK_MINOR_VERSION
#define JRE_KEY "Software\\JavaSoft\\Java Runtime Environment"
static jboolean
GetStringFromRegistry(HKEY key, const char *name, char *buf, jint bufsize)
{
DWORD type, size;
if (RegQueryValueEx(key, name, 0, &type, 0, &size) == 0
&& type == REG_SZ
&& (size < (unsigned int)bufsize)) {
if (RegQueryValueEx(key, name, 0, 0, buf, &size) == 0) {
return JNI_TRUE;
}
}
return JNI_FALSE;
}
static BOOL versionOk(char *version)
{
char *major;
int major_version;
int minor_version;
char *minor_start;
// 1. find the .
minor_start = strstr(version,".");
if (minor_start == NULL) // no . found.
return FALSE;
major = (char *)malloc(minor_start - version + 1);
strncpy(major,version,minor_start - version);
major[minor_start - version]='\0';
major_version = atoi(major);
free(major);
if (minor_start[1] == '\0') // "x." ?
return FALSE;
// anything less than 1.6 is not supported
minor_version = atoi(++minor_start);
if (major_version <1 || (major_version < 2 && minor_version < 6))
return FALSE;
return TRUE;
}
static jboolean
GetPublicJREHome(char *buf, jint bufsize)
{
HKEY key, subkey;
char version[MAXPATHLEN];
/* Find the current version of the JRE */
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, JRE_KEY, 0, KEY_READ, &key) != 0) {
fprintf(stderr, "Error opening registry key '" JRE_KEY "'\n");
return JNI_FALSE;
}
if (!GetStringFromRegistry(key, "CurrentVersion",
version, sizeof(version))) {
fprintf(stderr, "Failed reading value of registry key:\n\t"
JRE_KEY "\\CurrentVersion\n");
RegCloseKey(key);
return JNI_FALSE;
}
/* Check if the version is good */
if (!versionOk(version))
{
RegCloseKey(key);
return JNI_FALSE;
}
/* Find directory where the current version is installed. */
if (RegOpenKeyEx(key, version, 0, KEY_READ, &subkey) != 0) {
fprintf(stderr, "Error opening registry key '"
JRE_KEY "\\%s'\n", version);
RegCloseKey(key);
return JNI_FALSE;
}
if (!GetStringFromRegistry(subkey, "JavaHome", buf, bufsize)) {
fprintf(stderr, "Failed reading value of registry key:\n\t"
JRE_KEY "\\%s\\JavaHome\n", version);
RegCloseKey(key);
RegCloseKey(subkey);
return JNI_FALSE;
}
RegCloseKey(key);
RegCloseKey(subkey);
return JNI_TRUE;
}
void ReportErrorMessage(char * message, jboolean always) {
if (message != NULL) {
// MessageBox(NULL, message, "Java Virtual Machine Launcher",
// (MB_OK|MB_ICONSTOP|MB_APPLMODAL));
}
}
void ReportErrorMessage2(char * format, char * string, jboolean always) {
/*
* The format argument must be a printf format string with one %s
* argument, which is passed the string argument.
*/
size_t size;
char * message;
size = strlen(format) + strlen(string);
message = (char*)MemAlloc(size*sizeof(char));
sprintf(message, (const char *)format, string);
if (message != NULL) {
// MessageBox(NULL, message, "Java Virtual Machine Launcher",
// (MB_OK|MB_ICONSTOP|MB_APPLMODAL));
}
}
void ReportExceptionDescription(JNIEnv * env) {
/*
* This code should be replaced by code which opens a window with
* the exception detail message.
*/
(*env)->ExceptionDescribe(env);
}
/*
* Return JNI_TRUE for an option string that has no effect but should
* _not_ be passed on to the vm; return JNI_FALSE otherwise. On
* windows, there are no options that should be screened in this
* manner.
*/
jboolean RemovableMachineDependentOption(char * option) {
return JNI_FALSE;
}
void PrintMachineDependentOptions() {
return;
}
jboolean
ServerClassMachine() {
jboolean result = JNI_FALSE;
return result;
}
/*
* Wrapper for platform dependent unsetenv function.
*/
int
UnsetEnv(char *name)
{
int ret;
char *buf = MemAlloc(strlen(name) + 2);
buf = strcat(strcpy(buf, name), "=");
ret = _putenv(buf);
free(buf);
return (ret);
}
/*
* The following just map the common UNIX name to the Windows API name,
* so that the common UNIX name can be used in shared code.
*/
int
strcasecmp(const char *s1, const char *s2)
{
return (stricmp(s1, s2));
}
int
strncasecmp(const char *s1, const char *s2, size_t n)
{
return (strnicmp(s1, s2, n));
}

View File

@@ -0,0 +1,28 @@
/*
* @(#)java_md.h 1.10 04/04/24
*
* Copyright 2004 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
/* Backported from Tiger (1.5) java_md.h 1.13 04/01/12 */
#ifndef JAVA_MD_H
#define JAVA_MD_H
#include "jni.h"
#include <windows.h>
#include <io.h>
#define PATH_SEPARATOR ';'
#define FILESEP "\\"
#define FILE_SEPARATOR '\\'
#define MAXPATHLEN MAX_PATH
#define MAXNAMELEN MAX_PATH
int UnsetEnv(char *name);
int strcasecmp(const char *s1, const char *s2);
int strncasecmp(const char *s1, const char *s2, size_t n);
#endif

1944
installer/c/i2pExe/jni.h Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,19 @@
/*
* @(#)jni_md.h 1.15 05/11/17
*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
#ifndef _JAVASOFT_JNI_MD_H_
#define _JAVASOFT_JNI_MD_H_
#define JNIEXPORT __declspec(dllexport)
#define JNIIMPORT __declspec(dllimport)
#define JNICALL __stdcall
typedef long jint;
typedef __int64 jlong;
typedef signed char jbyte;
#endif /* !_JAVASOFT_JNI_MD_H_ */

View File

@@ -0,0 +1,16 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by I2P.rc
//
#define IDI_ICON1 111
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 113
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

View File

@@ -40,7 +40,7 @@ clientApp.2.args=i2ptunnel.config
clientApp.2.startOnLoad=true
# run our own eepsite with a seperate jetty instance
clientApp.3.main=org.mortbay.start.Main
clientApp.3.main=net.i2p.jetty.JettyStart
clientApp.3.name=I2P webserver (eepsite)
## To use the rewrite handler, edit jetty-rewrite.xml and use:
#clientApp.3.args="/path/to/jetty.xml" "/path/to/jetty-rewrite.xml"

View File

@@ -1,29 +1,23 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<!--
Configure a custom context for the eepsite.
This context contains only a Context with a default servlet
This context contains only a ServletContextHandler with a default servlet
to serve static html files and images.
-->
<Configure class="org.mortbay.jetty.servlet.Context">
<Configure class="org.eclipse.jetty.servlet.ServletContextHandler">
<Set name="contextPath">/</Set>
<Set name="resourceBase">./eepsite/docroot/</Set>
<Call name="setInitParams">
<Arg>
<Map>
<Entry>
<Item>org.mortbay.jetty.servlet.Default.cacheControl</Item>
<Item>max-age=3600,public</Item>
</Entry>
</Map>
</Arg>
<Call name="setInitParameter">
<Arg>cacheControl</Arg>
<Arg>max-age=3600,public</Arg>
</Call>
<Call name="setMimeTypes">
<Arg>
<New class="org.mortbay.jetty.MimeTypes">
<New class="org.eclipse.jetty.http.MimeTypes">
<Call name="addMimeMapping">
<Arg>sud</Arg>
<Arg>application/zip</Arg>
@@ -40,7 +34,7 @@ to serve static html files and images.
</Arg>
</Call>
<Call name="addServlet">
<Arg>org.mortbay.jetty.servlet.DefaultServlet</Arg>
<Arg>org.eclipse.jetty.servlet.DefaultServlet</Arg>
<Arg>/</Arg>
</Call>
</Configure>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<!--
Configure a custom context for the eepsite.
@@ -22,21 +22,15 @@ Configure a custom context for the eepsite.
* parameter value.
-->
<Configure class="org.mortbay.jetty.servlet.Context">
<Configure class="org.eclipse.jetty.servlet.ServletContextHandler">
<Set name="contextPath">/cgi-bin</Set>
<Set name="resourceBase">./eepsite/cgi-bin/</Set>
<Call name="setInitParams">
<Arg>
<Map>
<Entry>
<Item>Path</Item>
<Item>/usr/local/bin:/bin:/usr/bin</Item>
</Entry>
</Map>
</Arg>
<Call name="setInitParameter">
<Arg>Path</Arg>
<Arg>/usr/local/bin:/bin:/usr/bin</Arg>
</Call>
<Call name="addServlet">
<Arg>org.mortbay.servlet.CGI</Arg>
<Arg>org.eclipse.jetty.servlets.CGI</Arg>
<Arg>/</Arg>
</Call>
</Configure>

View File

@@ -35,23 +35,23 @@
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- UNCOMMENT TO ACTIVATE
<context-param>
<param-name>org.mortbay.jetty.servlet.SessionDomain</param-name>
<param-name>org.eclipse.jetty.servlet.SessionDomain</param-name>
<param-value>127.0.0.1</param-value>
</context-param>
<context-param>
<param-name>org.mortbay.jetty.servlet.SessionPath</param-name>
<param-name>org.eclipse.jetty.servlet.SessionPath</param-name>
<param-value>/</param-value>
</context-param>
<context-param>
<param-name>org.mortbay.jetty.servlet.MaxAge</param-name>
<param-name>org.eclipse.jetty.servlet.MaxAge</param-name>
<param-value>-1</param-value>
</context-param>
-->
<context-param>
<param-name>org.mortbay.jetty.webapp.NoTLDJarPattern</param-name>
<param-name>org.eclipse.jetty.webapp.NoTLDJarPattern</param-name>
<param-value>start.jar|ant-.*\.jar|dojo-.*\.jar|jetty-.*\.jar|jsp-api-.*\.jar|junit-.*\.jar|servlet-api-.*\.jar|dnsns\.jar|rt\.jar|jsse\.jar|tools\.jar|sunpkcs11\.jar|sunjce_provider\.jar|xerces.*\.jar</param-value>
</context-param>
@@ -112,7 +112,7 @@
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.mortbay.jetty.servlet.DefaultServlet</servlet-class>
<servlet-class>org.eclipse.jetty.servlet.DefaultServlet</servlet-class>
<init-param>
<param-name>acceptRanges</param-name>
<param-value>true</param-value>
@@ -306,7 +306,7 @@
<!-- Uncomment for dynamic invocation
<servlet>
<servlet-name>invoker</servlet-name>
<servlet-class>org.mortbay.jetty.servlet.Invoker</servlet-class>
<servlet-class>org.eclipse.jetty.servlet.Invoker</servlet-class>
<init-param>
<param-name>verbose</param-name>
<param-value>false</param-value>

View File

@@ -1,89 +1,103 @@
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<!-- ============================================================================ -->
<!-- To correctly start Jetty with JMX module enabled, this configuration -->
<!-- file must appear first in the list of the configuration files. -->
<!-- The simplest way to achieve this is to add etc/jetty-jmx.xml as the -->
<!-- first file in configuration file list at the end of start.ini file. -->
<!-- ============================================================================ -->
<Configure id="Server" class="org.eclipse.jetty.server.Server">
<!-- =============================================================== -->
<!-- Configure the JVM JMX Server -->
<!-- this configuration file should be used in combination with -->
<!-- other configuration files. e.g. -->
<!-- java -jar start.jar etc/jetty-jmx.xml etc/jetty.xml -->
<!-- See jetty-jmx-mx4j.xml for a non JVM server solution -->
<!-- =============================================================== -->
<Configure id="Server" class="org.mortbay.jetty.Server">
<!-- =========================================================== -->
<!-- Set the java.rmi.server.hostname property in case you've -->
<!-- got a misconfigured /etc/hosts entry or the like. -->
<!-- =========================================================== -->
<!--
<Call class="java.lang.System" name="setProperty">
<Arg>java.rmi.server.hostname</Arg>
<Arg>127.0.0.1</Arg>
</Call>
-->
<!-- =========================================================== -->
<!-- Initialize an mbean server -->
<!-- =========================================================== -->
<Call id="MBeanServer" class="java.lang.management.ManagementFactory"
name="getPlatformMBeanServer" />
<!-- =========================================================== -->
<!-- Initialize an mbean server -->
<!-- =========================================================== -->
<!-- Use the jdk 1.5 platformMBeanServer -->
<Call id="MBeanServer" class="java.lang.management.ManagementFactory" name="getPlatformMBeanServer"/>
<!-- =========================================================== -->
<!-- Initialize the Jetty MBean container -->
<!-- =========================================================== -->
<New id="MBeanContainer" class="org.eclipse.jetty.jmx.MBeanContainer">
<Arg><Ref id="MBeanServer" /></Arg>
<Call name="start"/>
</New>
<!-- =========================================================== -->
<!-- Initialize the Jetty MBean container -->
<!-- =========================================================== -->
<Get id="Container" name="container">
<Call name="addEventListener">
<Arg>
<New class="org.mortbay.management.MBeanContainer">
<Arg><Ref id="MBeanServer"/></Arg>
<Call name="start" />
</New>
</Arg>
</Call>
</Get>
<!-- =========================================================== -->
<!-- Enable stats (why else are you using JMX? -->
<!-- Sneakily replace the top-level handler with a StatisticsHandler -->
<!-- Note we could use AtomicStatisticsHandler in jetty-java5-stats.jar (4KB) -->
<!-- but it really isn't worth bundling it. -->
<!-- http://blog.markfeeney.com/2010/10/jmx-statistics-in-jetty-6-6122.html -->
<!-- =========================================================== -->
<Get id="oldhandler" name="handler"/>
<Set name="handler">
<New id="StatsHandler" class="org.mortbay.jetty.handler.StatisticsHandler">
<Set name="handler"><Ref id="oldhandler"/></Set>
</New>
</Set>
<!--
When setting up the JMXConnectorServer via RMI, two TCP ports are used to communicate with
the remote server:
* the rmiregistry port (by default 1099) from where the RMI stub is downloaded
* the rmi server port (by default randomly chosen) where the actual RMI communication happens
The JMXServiceURL for the default configuration is therefore:
service:jmx:rmi:///jndi/rmi://<remotehost>:1099/jmxrmi
In case a firewall is restricting port access, you need to make sure that the rmi server port
is not chosen randomly, and this can be specified with the following JMXServiceURL:
service:jmx:rmi://<host>:2100/jndi/rmi://<host>:2099/jmxrmi
where 2099 is the rmiregistry port and 2100 is the rmi server port.
Make sure the firewall allow access to those ports.
When using the XML configuration below, you don't need to specify any of the JMX system properties
on the command line (see http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html).
-->
<!-- Setup the RMIRegistry on a specific port
<Call id="rmiRegistry" class="java.rmi.registry.LocateRegistry" name="createRegistry">
<Arg type="int">2099</Arg>
<!-- Add to the Server to listen for object events -->
<Get id="Container" name="container">
<Call name="addEventListener">
<Arg><Ref id="MBeanContainer" /></Arg>
</Call>
-->
<!-- Setup the JMXConnectorServer on a specific rmi server port
<Call id="jmxConnectorServer" class="javax.management.remote.JMXConnectorServerFactory" name="newJMXConnectorServer">
</Get>
<!-- Add to the Server as a managed lifecycle -->
<Call name="addBean">
<Arg><Ref id="MBeanContainer"/></Arg>
<Arg type="boolean">true</Arg>
</Call>
<!-- Add the static log -->
<Ref id="MBeanContainer">
<Call name="addBean">
<Arg>
<New class="javax.management.remote.JMXServiceURL">
<Arg>service:jmx:rmi://localhost:2100/jndi/rmi://localhost:2099/jmxrmi</Arg>
</New>
<New class="org.eclipse.jetty.util.log.Log"/>
</Arg>
<Arg/>
<Arg><Ref id="MBeanServer"/></Arg>
<Call name="start"/>
</Call>
-->
</Ref>
<!-- In order to connect to the JMX server remotely from a different
process, possibly running on a different host, Jetty JMX module
can create a remote JMX connector. It requires RMI registry to
be started prior to creating the connector server because the
JMX specification uses RMI to facilitate connections.
-->
<!-- Optionally start the RMI registry. Normally RMI registry runs on
port 1099. The argument below can be changed in order to comply
with the firewall requirements.
-->
<!--
<Call name="createRegistry" class="java.rmi.registry.LocateRegistry">
<Arg type="java.lang.Integer"><SystemProperty name="jetty.jmxrmiport" default="1099"/></Arg>
<Call name="sleep" class="java.lang.Thread">
<Arg type="java.lang.Integer">1000</Arg>
</Call>
</Call>
-->
<!-- Optionally add a remote JMX connector. The parameters of the constructor
below specify the JMX service URL, and the object name string for the
connector server bean. The parameters of the JMXServiceURL constructor
specify the protocol that clients will use to connect to the remote JMX
connector (RMI), the hostname of the server (local hostname), port number
(automatically assigned), and the URL path. Note that URL path contains
the RMI registry hostname and port number, that may need to be modified
in order to comply with the firewall requirements.
-->
<!--
<New id="ConnectorServer" class="org.eclipse.jetty.jmx.ConnectorServer">
<Arg>
<New class="javax.management.remote.JMXServiceURL">
<Arg type="java.lang.String">rmi</Arg>
<Arg type="java.lang.String" />
<Arg type="java.lang.Integer"><SystemProperty name="jetty.jmxrmiport" default="1099"/></Arg>
<Arg type="java.lang.String">/jndi/rmi://<SystemProperty name="jetty.jmxrmihost" default="localhost"/>:<SystemProperty name="jetty.jmxrmiport" default="1099"/>/jmxrmi</Arg>
</New>
</Arg>
<Arg>org.eclipse.jetty.jmx:name=rmiconnectorserver</Arg>
<Call name="start" />
</New>
-->
</Configure>

View File

@@ -1,149 +1,117 @@
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<!-- =============================================================== -->
<!-- Mixin the RewriteHandler -->
<!-- =============================================================== -->
<Configure id="Server" class="org.mortbay.jetty.Server">
<Configure id="Server" class="org.eclipse.jetty.server.Server">
<!-- =========================================================== -->
<!-- Configure Rewrite Handler -->
<!-- configure rewrite handler -->
<!-- =========================================================== -->
<Get id="oldhandler" name="handler"/>
<Set name="handler">
<New id="Rewrite" class="org.mortbay.jetty.handler.rewrite.RewriteHandler">
<New id="Rewrite" class="org.eclipse.jetty.rewrite.handler.RewriteHandler">
<Set name="handler"><Ref id="oldhandler"/></Set>
<Set name="rewriteRequestURI">true</Set>
<Set name="rewritePathInfo">false</Set>
<Set name="originalPathAttribute">requestedPath</Set>
<Set name="rules">
<Array type="org.mortbay.jetty.handler.rewrite.Rule">
<!-- Add rule to protect against IE ssl bug -->
<Call name="addRule">
<Arg>
<New class="org.eclipse.jetty.rewrite.handler.MsieSslRule"/>
</Arg>
</Call>
<!-- return an error message if low on threads; put this at the top so it will be processed first -->
<Item>
<New id="lowThreads" class="org.mortbay.jetty.handler.rewrite.LowThreadsRuleContainer">
<!-- set the trigger for low threads ridiculously low
uncomment the block below to see it in action -->
<!--Ref id="Server">
<Get id="serverThreadPool" name="threadPool">
<Set name="minThreads">3</Set>
<Set name="maxThreads">4</Set>
<Set name="lowThreads">0</Set>
</Get>
</Ref>
<!-- protect favicon handling -->
<Call name="addRule">
<Arg>
<New class="org.eclipse.jetty.rewrite.handler.HeaderPatternRule">
<Set name="pattern">/favicon.ico</Set>
<Set name="name">Cache-Control</Set>
<Set name="value">Max-Age=3600,public</Set>
<Set name="terminating">true</Set>
</New>
</Arg>
</Call>
<Set name="threadPool"><Ref id="serverThreadPool"/></Set-->
<Call name="addRule">
<Arg>
<New id="busyresponse" class="org.mortbay.jetty.handler.rewrite.ResponsePatternRule">
<Set name="pattern">/*</Set>
<Set name="code">500</Set>
<Set name="reason">Server busy</Set>
</New>
</Arg>
</Call>
</New>
</Item>
<!-- redirect from the welcome page to a specific page -->
<Call name="addRule">
<Arg>
<New class="org.eclipse.jetty.rewrite.handler.RewritePatternRule">
<Set name="pattern">/rewrite/</Set>
<Set name="replacement">/rewrite/info.html</Set>
</New>
</Arg>
</Call>
<!-- Add rule to protect against IE ssl bug -->
<Item>
<New class="org.mortbay.jetty.handler.rewrite.MsieSslRule"/>
</Item>
<!-- replace the entire request URI -->
<Call name="addRule">
<Arg>
<New class="org.eclipse.jetty.rewrite.handler.RewritePatternRule">
<Set name="pattern">/some/old/context</Set>
<Set name="replacement">/rewritten/newcontext</Set>
</New>
</Arg>
</Call>
<!-- protect favicon handling -->
<Item>
<New class="org.mortbay.jetty.handler.rewrite.HeaderPatternRule">
<Set name="pattern">/favicon.ico</Set>
<Set name="name">Cache-Control</Set>
<Set name="value">Max-Age=3600,public</Set>
<Set name="terminating">true</Set>
</New>
</Item>
<!-- replace the beginning of the request URI -->
<Call name="addRule">
<Arg>
<New class="org.eclipse.jetty.rewrite.handler.RewritePatternRule">
<Set name="pattern">/rewrite/for/*</Set>
<Set name="replacement">/rewritten/</Set>
</New>
</Arg>
</Call>
<!-- reverse the order of the path sections -->
<Call name="addRule">
<Arg>
<New class="org.eclipse.jetty.rewrite.handler.RewriteRegexRule">
<Set name="regex">(.*?)/reverse/([^/]*)/(.*)</Set>
<Set name="replacement">$1/reverse/$3/$2</Set>
</New>
</Arg>
</Call>
<!-- add a cookie to each path visited -->
<Call name="addRule">
<Arg>
<New class="org.eclipse.jetty.rewrite.handler.CookiePatternRule">
<Set name="pattern">/*</Set>
<Set name="name">visited</Set>
<Set name="value">yes</Set>
</New>
</Arg>
</Call>
<!-- actual redirect, instead of internal rewrite -->
<Call name="addRule">
<Arg>
<New class="org.eclipse.jetty.rewrite.handler.RedirectPatternRule">
<Set name="pattern">/redirect/*</Set>
<Set name="location">/redirected</Set>
</New>
</Arg>
</Call>
<!-- add a regex rule -->
<Item>
<New class="org.mortbay.jetty.handler.rewrite.RewriteRegexRule">
<Set name="regex">/rewrite/dump/regex/([^/]*)/(.*)</Set>
<Set name="replacement">/test/dump/$2/$1</Set>
</New>
</Item>
<!-- add a response rule -->
<Call name="addRule">
<Arg>
<New class="org.eclipse.jetty.rewrite.handler.ResponsePatternRule">
<Set name="pattern">/400Error</Set>
<Set name="code">400</Set>
<Set name="reason">ResponsePatternRule Demo</Set>
</New>
</Arg>
</Call>
<!-- add a rewrite rule -->
<Item>
<New id="" class="org.mortbay.jetty.handler.rewrite.RewritePatternRule">
<Set name="pattern">/rewrite</Set>
<Set name="replacement">/rewrittento</Set>
</New>
</Item>
<!-- add a response rule -->
<Item>
<New id="response" class="org.mortbay.jetty.handler.rewrite.ResponsePatternRule">
<Set name="pattern">/rewrite/session/</Set>
<Set name="code">401</Set>
<Set name="reason">Setting error code 401</Set>
</New>
</Item>
<!-- add a header pattern rule -->
<Item>
<New id="header" class="org.mortbay.jetty.handler.rewrite.HeaderPatternRule">
<Set name="pattern">*.jsp</Set>
<Set name="name">Server</Set>
<Set name="value">Server for JSP</Set>
</New>
</Item>
<!-- add a redirect -->
<Item>
<New id="redirect" class="org.mortbay.jetty.handler.rewrite.RedirectPatternRule">
<Set name="pattern">/rewrite/dispatch</Set>
<Set name="location">http://jetty.mortbay.org</Set>
</New>
</Item>
<Item>
<New id="forwardedHttps" class="org.mortbay.jetty.handler.rewrite.ForwardedSchemeHeaderRule">
<Set name="header">X-Forwarded-Scheme</Set>
<Set name="headerValue">https</Set>
<Set name="scheme">https</Set>
</New>
</Item>
<Item>
<New id="virtualHost" class="org.mortbay.jetty.handler.rewrite.VirtualHostRuleContainer">
<Set name="virtualHosts">
<Array type="java.lang.String">
<Item>mortbay.com</Item>
<Item>www.mortbay.com</Item>
<Item>mortbay.org</Item>
<Item>www.mortbay.org</Item>
</Array>
</Set>
<Call name="addRule">
<Arg>
<New class="org.mortbay.jetty.handler.rewrite.CookiePatternRule">
<Set name="pattern">/*</Set>
<Set name="name">CookiePatternRule</Set>
<Set name="value">1</Set>
</New>
</Arg>
</Call>
</New>
</Item>
</Array>
</Set>
</New>
</New>
</Set>
</Configure>

View File

@@ -1,35 +1,35 @@
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<!-- =============================================================== -->
<!-- Configure SSL for the Jetty Server -->
<!-- this configuration file should be used in combination with -->
<!-- other configuration files. e.g. -->
<!-- java -jar start.jar etc/jetty.xml etc/jetty-ssl.xml -->
<!-- java -jar start.jar etc/jetty-ssl.xml -->
<!-- -->
<!-- alternately, add to the start.ini for easier usage -->
<!-- =============================================================== -->
<Configure id="Server" class="org.mortbay.jetty.Server">
<Configure id="Server" class="org.eclipse.jetty.server.Server">
<!-- if NIO is not available, use org.eclipse.jetty.server.ssl.SslSocketConnector -->
<New id="sslContextFactory" class="org.eclipse.jetty.http.ssl.SslContextFactory">
<Set name="KeyStore">./eepsite/etc/keystore</Set>
<Set name="KeyStorePassword">OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4</Set>
<Set name="KeyManagerPassword">OBF:1u2u1wml1z7s1z7a1wnl1u2g</Set>
<Set name="TrustStore">./eepsite/etc/keystore</Set>
<Set name="TrustStorePassword">OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4</Set>
</New>
<Call name="addConnector">
<Arg>
<New class="org.mortbay.jetty.security.SslSocketConnector">
<New class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
<Arg><Ref id="sslContextFactory" /></Arg>
<Set name="Port">8443</Set>
<Set name="maxIdleTime">30000</Set>
<Set name="useDirectBuffers">false</Set>
<Set name="handshakeTimeout">2000</Set>
<Set name="keystore">./eepsite/etc/keystore.ks</Set>
<Set name="password">OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4</Set>
<Set name="keyPassword">OBF:1u2u1wml1z7s1z7a1wnl1u2g</Set>
<Set name="truststore">./eepsite/etc/keystore.ks</Set>
<Set name="trustPassword">OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4</Set>
<Set name="handshakeTimeout">2000</Set>
<!-- Set name="ThreadPool">
<New class="org.mortbay.thread.QueuedThreadPool">
<Set name="minThreads">0</Set>
<Set name="maxThreads">16</Set>
</New>
</Set -->
<Set name="Acceptors">2</Set>
<Set name="AcceptQueueSize">100</Set>
</New>
</Arg>
</Call>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure 1.2//EN" "http://jetty.mortbay.org/configure_1_2.dtd">
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<!-- ========================================================================= -->
<!-- This file configures the Jetty server. -->
@@ -18,14 +18,14 @@
<!-- war files placed in the webapps/ dir. -->
<!-- * Uncomment the line to allow Jetty to follow symlinks -->
<!-- -->
<!-- I2P uses Jetty 6.1.26. If you need web server features not found -->
<!-- in Jetty 6, you may install and run Jetty 7 or 8 in a different JVM -->
<!-- I2P uses Jetty 7. If you need web server features not found -->
<!-- in Jetty 7, you may install and run Jetty 7 or 8 in a different JVM -->
<!-- or run any other web server such as Apache. If you do run another web -->
<!-- server instead, be sure and disable the Jetty 6 server for your -->
<!-- eepsite on http://127.0.0.1:7657/configclients.jsp . -->
<!-- -->
<!-- Jetty now uses the I2P logging system rather than wrapper.log. -->
<!-- Use the log override org.mortbay.jetty.Server to adjust the log level. -->
<!-- Use the log override org.eclipse.jetty.server.Server to adjust the log level. -->
<!-- -->
<!-- Note that the XML encoding for this file is UTF-8. -->
<!-- -->
@@ -44,7 +44,7 @@
<!-- =============================================================== -->
<Configure id="Server" class="org.mortbay.jetty.Server">
<Configure id="Server" class="org.eclipse.jetty.server.Server">
<!-- =========================================================== -->
<!-- Server Thread Pool -->
@@ -57,7 +57,7 @@
Requests above the max will be queued
-->
<!--
<New class="org.mortbay.thread.QueuedThreadPool">
<New class="org.eclipse.jetty.util.thread.QueuedThreadPool">
<Set name="minThreads">1</Set>
<Set name="maxThreads">16</Set>
<Set name="lowThreads">2</Set>
@@ -67,16 +67,22 @@
<!-- Optional Java 5 bounded threadpool with job queue
Requests above the max will be rejected and logged.
High-traffic sites should increase maximumPoolSize.
TODO: would be nice to use the 5-arg constructor but
how do you use an Enum as the TimeUnit argument?
Alternatively, make a custom class where we can
set the thread name, set daemon, etc.
See RouterConsoleRunner.
-->
<New class="org.mortbay.thread.concurrent.ThreadPool">
<Arg type="int">0</Arg>
<Set name="corePoolSize">1</Set>
<Set name="maximumPoolSize">24</Set>
<New class="org.eclipse.jetty.util.thread.ExecutorThreadPool">
<!-- corePoolSize (should be at least 3) -->
<Arg type="int">3</Arg>
<!-- maximumPoolSize -->
<Arg type="int">20</Arg>
<!-- keepAliveTime (milliseconds) -->
<Arg type="long">60000</Arg>
<Arg>
<Call class="java.util.concurrent.TimeUnit" name="valueOf" >
<Arg>MILLISECONDS</Arg>
</Call>
</Arg>
<Arg>
<New class="java.util.concurrent.SynchronousQueue" />
</Arg>
</New>
</Set>
@@ -97,7 +103,7 @@
-->
<Call name="addConnector">
<Arg>
<New class="org.mortbay.jetty.nio.SelectChannelConnector">
<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
<Set name="host">127.0.0.1</Set>
<Set name="port">7658</Set>
<Set name="maxIdleTime">60000</Set>
@@ -106,7 +112,7 @@
<Set name="confidentialPort">8443</Set>
<Set name="lowResourcesConnections">5000</Set>
<Set name="lowResourcesMaxIdleTime">5000</Set>
<Set name="useDirectBuffers">false</Set>
<Set name="useDirectBuffers">false</Set>
</New>
</Arg>
</Call>
@@ -117,7 +123,7 @@
<!--
<Call name="addConnector">
<Arg>
<New class="org.mortbay.jetty.bio.SocketConnector">
<New class="org.eclipse.jetty.server.bio.SocketConnector">
<Set name="host">127.0.0.1</Set>
<Set name="port">7658</Set>
<Set name="maxIdleTime">60000</Set>
@@ -155,7 +161,7 @@
<!-- =========================================================== -->
<!--
<Set name="sessionIdManager">
<New class="org.mortbay.jetty.servlet.HashSessionIdManager">
<New class="org.eclipse.jetty.server.session.HashSessionIdManager">
<Set name="workerName">node1</Set>
</New>
</Set>
@@ -165,23 +171,48 @@
<!-- Set handler Collection Structure -->
<!-- =========================================================== -->
<Set name="handler">
<New id="Handlers" class="org.mortbay.jetty.handler.HandlerCollection">
<New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
<Set name="handlers">
<Array type="org.mortbay.jetty.Handler">
<Array type="org.eclipse.jetty.server.Handler">
<Item>
<New id="Contexts" class="org.mortbay.jetty.handler.ContextHandlerCollection"/>
<New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/>
</Item>
<Item>
<New id="DefaultHandler" class="org.mortbay.jetty.handler.DefaultHandler"/>
<New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/>
</Item>
<Item>
<New id="RequestLog" class="org.mortbay.jetty.handler.RequestLogHandler"/>
<New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler"/>
</Item>
</Array>
</Set>
</New>
</Set>
<!-- =============================================================== -->
<!-- Create the deployment manager -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- The deplyment manager handles the lifecycle of deploying web -->
<!-- applications. Apps are provided by instances of the -->
<!-- AppProvider interface. Typically these are provided by -->
<!-- one or more of: -->
<!-- jetty-webapps.xml - monitors webapps for wars and dirs -->
<!-- jetty-contexts.xml - monitors contexts for context xml -->
<!-- jetty-templates.xml - monitors contexts and templates -->
<!-- =============================================================== -->
<Call name="addBean">
<Arg>
<New id="DeploymentManager" class="org.eclipse.jetty.deploy.DeploymentManager">
<Set name="contexts">
<Ref id="Contexts" />
</Set>
<Call name="setContextAttribute">
<Arg>org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern</Arg>
<Arg>.*/.*jsp-api-[^/]*\.jar$|.*/.*jsp-[^/]*\.jar$|.*/.*taglibs[^/]*\.jar$</Arg>
</Call>
</New>
</Arg>
</Call>
<!-- =========================================================== -->
<!-- Configure the context deployer -->
<!-- A context deployer will deploy contexts described in -->
@@ -193,16 +224,16 @@
<!-- in the $JETTY_HOME/contexts directory -->
<!-- -->
<!-- =========================================================== -->
<Call name="addLifeCycle">
<Arg>
<New class="org.mortbay.jetty.deployer.ContextDeployer">
<Set name="contexts"><Ref id="Contexts"/></Set>
<Set name="configurationDir">./eepsite/contexts</Set>
<!-- set to 60 to have it check for changes once a minute -->
<Set name="scanInterval">0</Set>
</New>
</Arg>
</Call>
<Ref id="DeploymentManager">
<Call name="addAppProvider">
<Arg>
<New class="org.eclipse.jetty.deploy.providers.ContextProvider">
<Set name="monitoredDirName">./eepsite/contexts</Set>
<Set name="scanInterval">120</Set>
</New>
</Arg>
</Call>
</Ref>
<!-- =========================================================== -->
<!-- Configure the webapp deployer. -->
@@ -217,19 +248,18 @@
<!-- Normally only one type of deployer need be used. -->
<!-- -->
<!-- =========================================================== -->
<Call name="addLifeCycle">
<Arg>
<New class="org.mortbay.jetty.deployer.WebAppDeployer">
<Set name="contexts"><Ref id="Contexts"/></Set>
<Set name="webAppDir">./eepsite/webapps</Set>
<Set name="parentLoaderPriority">false</Set>
<!-- set to true if you have uncompiled jsps in your wars -->
<Set name="extract">false</Set>
<Set name="allowDuplicates">false</Set>
<Set name="defaultsDescriptor">./eepsite/etc/webdefault.xml</Set>
</New>
</Arg>
</Call>
<Ref id="DeploymentManager">
<Call id="webappprovider" name="addAppProvider">
<Arg>
<New class="org.eclipse.jetty.deploy.providers.WebAppProvider">
<Set name="monitoredDirName">./eepsite/webapps</Set>
<Set name="parentLoaderPriority">false</Set>
<Set name="extractWars">false</Set>
<Set name="defaultsDescriptor">./eepsite/etc/webdefault.xml</Set>
</New>
</Arg>
</Call>
</Ref>
<!-- =========================================================== -->
<!-- Configure Authentication Realms -->
@@ -240,9 +270,9 @@
<!-- =========================================================== -->
<!-- UNCOMMENT TO ACTIVATE
<Set name="UserRealms">
<Array type="org.mortbay.jetty.security.UserRealm">
<Array type="org.eclipse.jetty.security.LoginService">
<Item>
<New class="org.mortbay.jetty.security.HashUserRealm">
<New class="org.eclipse.jetty.security.HashLoginService">
<Set name="name">Test Realm</Set>
<Set name="config">./eepsite/etc/realm.properties</Set>
<Set name="refreshInterval">0</Set>

View File

@@ -343,3 +343,4 @@ push.git.repo.i2p=Mau9Jcsspec4cbDlrkt5zdxN-kq9SG9GxtvOQ6wBhgJKxRyEvZG4oqGs5N6oO6
irc.killyourtv.i2p=CnG0yQheyd67rl1nHuYZp1sVZxzXHe05UPrmT0B3Vxtd51K-Cq5E6v5~UTrU5lqj56ggvnRl0I8jg1vPn0Q50IH6ght~4ThkKlwDwTOMHmROz3sR6WLCOvD4ZFMDBYjBsxjF3383YSIlYrh~laTXSzD~lPhHLGD1jFQksqea-87sM-yfRzCbA7UyaHtURJ7A3GOb8Bm8W25mPOHpM~xT0TONvbi45IVmAeWkuZ5IhBsrzhWvY1-Riy6IW6KSRoQIZtr5o23cVHkjUh8J-~SWZR5wIgECefrVVCt556qDn35I2829Jlk26-iI9glMrr7funaOtp1wnDvNPTijlxwkeAx9GKPCX48nCyxIUeSTwGv0grDPn43V94tV0LSq8mkXZ1akDJUNf33z2Uao-nCi-ufb0Mt0rzgdRVW1i79GQHk4XbApzjYUjyaSY4cuR0yBRFHrOcrFt~XJABpt9DYklu6y3n54uOLZeXGnE5nKCSHLqyS3dxPTObIQvhz~ZjHRAAAA
www.syndie.i2p=DvyDrcY8se2M~qqp4qfZn-6UTFfS2Ieaye5QIhKoFQGktMbCK2MzhAMYvNm7n1k9O0hG86-nXPCP8rlFurPrCAKta~baUlCgbV4ft5zzu0Y4DFuhC6p-3V-03S5WF8JA5Pt4KEcKKEYiOkHzGVSKuWIjH11syZ434c0qarOFfynS1ZI2Ixlv2OXCEzs-r5NeMRy3tfwbLyPF46END1CyoWCNx-FUdOt5ueXVokYeJ00Pzqvhqb6ByqRh76N3Fz3GGIUjjSmSljDSN8B0K9943jKXCoH75YnC47cw~RwSD53pbLXiLWHqtIiqx8Zvq5LgIac9UVpIA9Ka27TWa5OhVhBKwuynPnfVaLv2xOR8dEDmVNnO8sNp4kP~MMTvJAUJfhAbPFbAs9i4Wx0IlLKN5gLnft-7Xd1pMivKZZaNWFicwr69VMub-ddl~vbhtueIvmkEdoLIw4xBb6nHmKy0gHi6TWjEmLXb8SsgDOkri7Nu9qRV8t6VF60wpjHPG33eAAAA
syndie-project.i2p=2~qacMy9FwwWCFm3JYRKSLIe8u6wEuinZPre0WoZC-M3IUSg8VhUp1QSPuaeFJdym69hjew6AOE-wnZ30mtzriXyvaYh7UNshTc9ZdEBWwhdn5cghMjf48HdBw3pKAiiw1gwv8WwsskbAxbSTkcQUmqGsterPyUqspSqddwUkcDxZHC7dUJsyyd4gcul40KljlIu9mMWXZLWQ7Zu8od~NcFNHVBE-UnTvDmHErpx7AWcN9VrD4j-OuVqsLYq1T9uhdLH-~H~9eE5RKekz6ehhGJRLlGB~2~MYVt4xrqbo4z18nFxdp9PorOO1wt5xiFSw4GEX5HAO2~pt97DVkcwogOEVCJbRbLiIJJDmehn5PB-56K4tjuUNFtzLAq7QQZEAAHGCUEaVPUObKS20vU~JN6GrAOAXKM2M-16frR0ddpJ4f55iuc~tVL3OFPAtha5aHP9xihP7i80rB5LsG0aT77Ey~mCWHrV2sQwhua40vP9TgpCi6Lg21DnVrR97S5tAAAA
lists.i2p2.i2p=iKMDu6cP~nt4vubwZOuXWDQS4zdhF9x2YjhcilOrRIHR7lkP6ErNgUHZb~ggwnRaPkj81JpmbwDJ1GR~LLS7DcN5ktSZ1WhjVfrm92AQ4-yDX5HEcPpCnTPBp11zsrh2WEDXSjWMqyBPbkYMzrJ33ZGxVMxccXLlV~W9ecPrpl7EmrIF1gPmbinG1oDA0wFLaJyXPZrCRhdX6xMDgvb0slHE0pxAM00TeAQK~aL~LZ5iwfA7WllYd9jaDdQ-kjaa6qEKSSQHf~bNycR~OFsxKurh1CIbrglo8vIHss-tjIfKzG2mgO8w8AE01uhlsRTxjq7TYhxTWKn4kTFyaljJCE-SL1XTYwfyEEZ90bH8Puk1zDnKIARXMPA1YM26StySLLoFyQu2SbNfJcgCqYFcGStvaG54QFCLVnHOxTKi-Z3D-PBMc9aRKSHJilN1kzExGKNZSW09wX7btyEUCHXJjbep6oFauwrtGmP9SjjZf-o3BHzvQlaLSzVFKuPJ-5tQAAAA

View File

@@ -9,6 +9,11 @@ While you are waiting, please <b>adjust your bandwidth settings</b> on the
<a href="config.jsp">configuration page</a>.
</p>
<p>
Also you can setup your browser to use the I2P proxy to reach eepsites. Just enter 127.0.0.1 (or localhost)
port 4444 as a http proxy into your browser settings. Do not use SOCKS for this. More information
can be found on <a href="https://www.i2p2.de/htproxyports.html">I2P browser proxy setup page</a>.
</p>
<p>
Once you have a "shared clients" destination listed on the left,
please <b>check out</b> our
<a href="http://www.i2p2.i2p/faq.html">FAQ</a>.

View File

@@ -8,6 +8,12 @@ Hab noch <b>etwas Geduld</b>, w&auml;hrend I2P startet und weitere I2P-Router fi
Passe bitte in der Zwischenzeit <b>deine Einstellungen zur Bandbreite</b> auf der
<a href="config.jsp">Einstellungsseite</a> an!
</p>
<p>
Auch kannst Du gleich deinen Browser f&uuml;r die Nutzung von I2P einrichten. Setze in den
Einstellungen zum Browser ein HTTP Proxy ein mit 127.0.0.1 (oder localhost) mit Port 4444 als Ziel.
Mehr Informationen gibt es auf der <a href="https://www.i2p2.de/htproxyports.html">I2P browser proxy Setup Seite</a>.
</p>
<p>
Sobald auf der linken Seite eine Verbindung namens "versch. Klienten" aufgelistet ist, kannst Du unsere <a href="http://www.i2p2.i2p/faq_de.html">FAQ</a> besuchen.
</p>

View File

@@ -1,72 +1,109 @@
com.acme
org.cometd.demo
org.cometd.oort
org.mortbay.cometd
org.mortbay.cometd.client
org.mortbay.cometd.client.ext
org.mortbay.cometd.continuation
org.mortbay.cometd.ext
org.mortbay.cometd.filter
org.mortbay.component
org.mortbay.html
org.mortbay.io
org.mortbay.io.bio
org.mortbay.io.nio
org.mortbay.jetty
org.mortbay.jetty.ajp
org.mortbay.jetty.annotations
org.mortbay.jetty.ant
org.mortbay.jetty.ant.types
org.mortbay.jetty.ant.utils
org.mortbay.jetty.bio
org.mortbay.jetty.client
org.mortbay.jetty.client.security
org.mortbay.jetty.client.webdav
org.mortbay.jetty.deployer
org.mortbay.jetty.example
org.mortbay.jetty.handler
org.mortbay.jetty.handler.management
org.mortbay.jetty.handler.rewrite
org.mortbay.jetty.jspc.plugin
org.mortbay.jetty.management
org.mortbay.jetty.nio
org.mortbay.jetty.plugin
org.mortbay.jetty.plugin.util
org.mortbay.jetty.plus.annotation
org.mortbay.jetty.plus.jaas
org.mortbay.jetty.plus.jaas.callback
org.mortbay.jetty.plus.jaas.ldap
org.mortbay.jetty.plus.jaas.spi
org.mortbay.jetty.plus.naming
org.mortbay.jetty.plus.servlet
org.mortbay.jetty.plus.webapp
org.mortbay.jetty.security
org.mortbay.jetty.servlet
org.mortbay.jetty.servlet.management
org.mortbay.jetty.spring
org.mortbay.jetty.spring.jee
org.mortbay.jetty.start.daemon
org.mortbay.jetty.testing
org.mortbay.jetty.webapp
org.mortbay.jetty.webapp.management
org.mortbay.jetty.win32service
org.mortbay.jetty.xbean
org.mortbay.log
org.mortbay.management
org.mortbay.naming
org.mortbay.naming.factories
org.mortbay.naming.java
org.mortbay.naming.local
org.mortbay.proxy
org.mortbay.resource
org.mortbay.servlet
org.mortbay.servlet.jetty
org.mortbay.setuid
org.mortbay.start
org.mortbay.terracotta.servlet
org.mortbay.thread
org.mortbay.thread.concurrent
org.mortbay.util
org.mortbay.util.ajax
org.mortbay.util.daemon
org.mortbay.xml
org.eclipse.jetty.ajp
org.eclipse.jetty.annotations
org.eclipse.jetty.client
org.eclipse.jetty.client.security
org.eclipse.jetty.client.webdav
org.eclipse.jetty.continuation
org.eclipse.jetty.continuation.test
org.eclipse.jetty.deploy
org.eclipse.jetty.deploy.bindings
org.eclipse.jetty.deploy.graph
org.eclipse.jetty.deploy.jmx
org.eclipse.jetty.deploy.providers
org.eclipse.jetty.deploy.util
org.eclipse.jetty.embedded
org.eclipse.jetty.http
org.eclipse.jetty.http.gzip
org.eclipse.jetty.http.spi
org.eclipse.jetty.http.ssl
org.eclipse.jetty.io
org.eclipse.jetty.io.bio
org.eclipse.jetty.io.nio
org.eclipse.jetty.jmx
org.eclipse.jetty.jndi
org.eclipse.jetty.jndi.factories
org.eclipse.jetty.jndi.java
org.eclipse.jetty.jndi.local
org.eclipse.jetty.monitor
org.eclipse.jetty.monitor.integration
org.eclipse.jetty.monitor.jmx
org.eclipse.jetty.monitor.thread
org.eclipse.jetty.monitor.triggers
org.eclipse.jetty.nested
org.eclipse.jetty.nosql
org.eclipse.jetty.nosql.mongodb
org.eclipse.jetty.nosql.mongodb.jmx
org.eclipse.jetty.osgi.boot
org.eclipse.jetty.osgi.boot.internal.jsp
org.eclipse.jetty.osgi.boot.internal.serverfactory
org.eclipse.jetty.osgi.boot.internal.webapp
org.eclipse.jetty.osgi.boot.jasper
org.eclipse.jetty.osgi.boot.jsp
org.eclipse.jetty.osgi.boot.logback
org.eclipse.jetty.osgi.boot.logback.internal
org.eclipse.jetty.osgi.boot.utils
org.eclipse.jetty.osgi.boot.utils.internal
org.eclipse.jetty.osgi.boot.warurl
org.eclipse.jetty.osgi.boot.warurl.internal
org.eclipse.jetty.osgi.equinoxtools
org.eclipse.jetty.osgi.equinoxtools.console
org.eclipse.jetty.osgi.httpservice
org.eclipse.jetty.osgi.nested
org.eclipse.jetty.overlays
org.eclipse.jetty.plus.annotation
org.eclipse.jetty.plus.jaas
org.eclipse.jetty.plus.jaas.callback
org.eclipse.jetty.plus.jaas.spi
org.eclipse.jetty.plus.jndi
org.eclipse.jetty.plus.security
org.eclipse.jetty.plus.servlet
org.eclipse.jetty.plus.webapp
org.eclipse.jetty.policy
org.eclipse.jetty.policy.entry
org.eclipse.jetty.policy.loader
org.eclipse.jetty.rewrite.handler
org.eclipse.jetty.security
org.eclipse.jetty.security.authentication
org.eclipse.jetty.security.jaspi
org.eclipse.jetty.security.jaspi.callback
org.eclipse.jetty.security.jaspi.modules
org.eclipse.jetty.server
org.eclipse.jetty.server.bio
org.eclipse.jetty.server.handler
org.eclipse.jetty.server.handler.jmx
org.eclipse.jetty.server.jmx
org.eclipse.jetty.server.nio
org.eclipse.jetty.server.session
org.eclipse.jetty.server.session.jmx
org.eclipse.jetty.server.ssl
org.eclipse.jetty.servlet
org.eclipse.jetty.servlet.api
org.eclipse.jetty.servlet.jmx
org.eclipse.jetty.servlet.listener
org.eclipse.jetty.servlets
org.eclipse.jetty.spdy
org.eclipse.jetty.spdy.api
org.eclipse.jetty.spdy.api.server
org.eclipse.jetty.spdy.frames
org.eclipse.jetty.spdy.generator
org.eclipse.jetty.spdy.http
org.eclipse.jetty.spdy.parser
org.eclipse.jetty.spdy.proxy
org.eclipse.jetty.start
org.eclipse.jetty.testing
org.eclipse.jetty.tests.webapp
org.eclipse.jetty.util
org.eclipse.jetty.util.ajax
org.eclipse.jetty.util.component
org.eclipse.jetty.util.log
org.eclipse.jetty.util.log.jmx
org.eclipse.jetty.util.preventers
org.eclipse.jetty.util.resource
org.eclipse.jetty.util.security
org.eclipse.jetty.util.ssl
org.eclipse.jetty.util.statistic
org.eclipse.jetty.util.thread
org.eclipse.jetty.webapp
org.eclipse.jetty.websocket
org.eclipse.jetty.xml

View File

@@ -0,0 +1,24 @@
HTTP/1.1 403 Bad URI
Content-Type: text/html; charset=UTF-8
Cache-control: no-cache
Connection: close
Proxy-Connection: close
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<title>I2P Warning: Invalid Request URI</title>
<link rel="shortcut icon" href="http://proxy.i2p/themes/console/images/favicon.ico">
<link href="http://proxy.i2p/themes/console/default/console.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="logo">
<a href="http://127.0.0.1:7657/" title="Router Console"><img src="http://proxy.i2p/themes/console/images/i2plogo.png" alt="I2P Router Console" border="0"></a><hr>
<a href="http://127.0.0.1:7657/config.jsp">Configuration</a> <a href="http://127.0.0.1:7657/help.jsp">Help</a> <a href="http://127.0.0.1:7657/susidns/">Addressbook</a>
</div>
<div class="warning" id="warning">
<h3>Warning: Invalid Request URI</h3>
<p>
The request URI is invalid, and probably contains illegal characters.
If you clicked e.g. a forum link, check the end of the URI for any characters the browser has mistakenly added on.
</p>
</div>

View File

@@ -19,10 +19,10 @@ Proxy-Connection: close
<h3>Warning: Eepsite Not Found in Addressbook</h3>
<p>
The eepsite was not found in your router's addressbook.
Check the link or find a BASE64 address.
If you have the BASE64 address, paste it into your userhosts.txt using
<a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=master">SusiDNS</a>,
use a BASE64 address helper, or use a jump service link below.
Check the link or find a Base 32 or Base 64 address.
If you have the Base 64 address,
<a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=router">add it to your addressbook</a>.
Otherwise, find a Base 32 or address helper link, or use a jump service link below.
</p>
<p>
Seeing this page often? See <a href="http://www.i2p2.i2p/faq.html#subscriptions">the FAQ</a>

View File

@@ -20,8 +20,8 @@ Proxy-Connection: close
<p>
Die Eepseite konnte nicht im Adressbuch des Routers gefunden werden.
Überprüfen Sie den Link oder finden Sie eine BASIS64-Adresse!
Wenn Sie eine BASIS64-Adresse haben, fügen Sie diese unter folgendem Link zu Ihrer userhosts.txt hinzu:
<a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=master">SusiDNS</a>,
Wenn Sie eine BASIS64-Adresse haben, fügen Sie diese unter folgendem Link zu Ihrer hosts.txt hinzu:
<a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=router">SusiDNS</a>,
benutzen Sie einen BASIS64-Adresshelfer oder einen der folgenden Sprungdienste:
</p>
<p>

View File

@@ -19,10 +19,10 @@ Proxy-Connection: close
<h3>Avertissement I2P: site eep non trouvé dans le carnet d'adresses</h3>
<p>
Le site eep n'était pas dans le carnet d'adresses de votre routeur.
Vérifiez le lien ou trouvez l'adresse BASE64.
Si vous avez l'adresse BASE64, reportez-la dans votre fichier userhosts.txt en passant par
<a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=master">SusiDNS</a>,
utilisez un lien d'adresse BASE64, ou un service de saut (jump) en lien ci-dessous.
Vérifiez le lien ou trouvez l'adresse Base 64.
Si vous avez l'adresse Base 64, reportez-la dans votre fichier hosts.txt en passant par
<a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=router">SusiDNS</a>,
utilisez un lien d'adresse Base 64, ou un service de saut (jump) en lien ci-dessous.
</p>
<p>
Si vous voyez cette page souvent: lisez la <a href="http://www.i2p2.i2p/faq_fr.html#subscriptions">faq</a> pour obtenir

View File

@@ -19,10 +19,10 @@ Proxy-Connection: close
<h3>Waarschuwing: Eepsite Niet Gevonden in Adresboek</h3>
<p>
De eepsite was niet gevonden in je router's adresboek.
Controlleer de link of zoek een BASE64 adres.
Indien je een BASE64 adres hebt, plak het in je userhosts.txt via
<a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=master">SusiDNS</a>,
gebruikt een BASE64 adres helper, of gebruik een jump service link hieronder.
Controlleer de link of zoek een Base 64 adres.
Indien je een Base 64 adres hebt, plak het in je hosts.txt via
<a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=router">SusiDNS</a>,
gebruikt een Base 64 adres helper, of gebruik een jump service link hieronder.
</p>
<p>
Zie je deze pagina vaak? Lees <a href="http://www.i2p2.i2p/faq.html#subscriptions">de FAQ</a>

View File

@@ -25,7 +25,7 @@ Proxy-Connection: close
Попробуйте воспользоваться jump-сервисами (блок ссылок в конце этой страницы). Если кто-то уже добавил этот сайт в jump-сервис, Вы получите addresshelper-ссылку, по которой сможете перейти на сайт.
</p>
<p>
Если ни один из jump-сервисов не помог, попробуйте найти BASE64-адрес этого сайта. Добавьте BASE64-адрес в Ваш файл userhosts.txt используя <a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=master">SusiDNS</a>.
Если ни один из jump-сервисов не помог, попробуйте найти Base 64-адрес этого сайта. Добавьте Base 64-адрес в Ваш файл hosts.txt используя <a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=router">SusiDNS</a>.
</p>
<p>
Часто видите эту страницу? Загляните в <a href="http://www.i2p2.i2p/faq.html#subscriptions">соответствующий раздел FAQ</a> за помощью по <a href="http://127.0.0.1:7657/susidns/config.jsp">настройке автоматической подписки</a> на адреса новых сайтов.

View File

@@ -19,10 +19,10 @@ Proxy-Connection: close
<h3>警告: 地址簿中的找不到此站点</h3>
<p>
您所访问的匿名站点(的目标密钥)不存在于您路由器的地址簿中。
检查链接或寻找对应的BASE64地址.
如果您知道对应的BASE64地址请通过
<a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=master">SusiDNS</a>
将其复制入您的 userhosts.txt 中,直接使用 BASE64 地址访问,或使用下面的跳转链接。<br><br>
检查链接或寻找对应的Base 64地址.
如果您知道对应的Base 64地址请通过
<a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=router">SusiDNS</a>
将其复制入您的 hosts.txt 中,直接使用 Base 64 地址访问,或使用下面的跳转链接。<br><br>
经常见到此页面? 请参见 <a href="http://www.i2p2.i2p/faq.html#subscriptions"> FAQ 常见问答</a>
中的 <a href="http://127.0.0.1:7657/susidns/config.jsp">添加更多订阅到地址簿中</a>。
</p>

Binary file not shown.

After

Width:  |  Height:  |  Size: 736 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 745 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 736 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 745 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 736 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 745 B