forked from I2P_Developers/i2p.i2p
propagate from branch 'i2p.i2p.zzz.winfix095' (head 7d31b90b87adb2c0cfb837e5b66cc4c223766331)
to branch 'i2p.i2p' (head b004014ccfbca6241a090d5b47f1228702f4dfcc)
This commit is contained in:
112
installer/c/i2pExe/I2P.rc
Normal file
112
installer/c/i2pExe/I2P.rc
Normal 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
|
||||
|
||||
22
installer/c/i2pExe/I2P.sln
Normal file
22
installer/c/i2pExe/I2P.sln
Normal 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
BIN
installer/c/i2pExe/I2P.suo
Normal file
Binary file not shown.
327
installer/c/i2pExe/I2P.vcproj
Normal file
327
installer/c/i2pExe/I2P.vcproj
Normal 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=""C:\Program Files\Java\jdk1.6.0\include\win32";"C:\Program Files\Java\jdk1.6.0\include""
|
||||
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=""C:\Program Files\Java\jdk1.6.0_13\include";"C:\Program Files\Java\jdk1.6.0_13\include\win32""
|
||||
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"ALPHA""
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="0"
|
||||
AdditionalIncludeDirectories=""C:\Program Files\Java\jdk1.6.0\include";"C:\Program Files\Java\jdk1.6.0\include\win32""
|
||||
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>
|
||||
11
installer/c/i2pExe/errors.h
Normal file
11
installer/c/i2pExe/errors.h
Normal 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
255
installer/c/i2pExe/i2p.c
Normal 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
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
76
installer/c/i2pExe/java.h
Normal 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_ */
|
||||
388
installer/c/i2pExe/java_md.c
Normal file
388
installer/c/i2pExe/java_md.c
Normal 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));
|
||||
}
|
||||
28
installer/c/i2pExe/java_md.h
Normal file
28
installer/c/i2pExe/java_md.h
Normal 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
1944
installer/c/i2pExe/jni.h
Normal file
File diff suppressed because it is too large
Load Diff
19
installer/c/i2pExe/jni_md.h
Normal file
19
installer/c/i2pExe/jni_md.h
Normal 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_ */
|
||||
16
installer/c/i2pExe/resource.h
Normal file
16
installer/c/i2pExe/resource.h
Normal 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
|
||||
@@ -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"
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>.
|
||||
|
||||
@@ -8,6 +8,12 @@ Hab noch <b>etwas Geduld</b>, wä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ü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>
|
||||
|
||||
@@ -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
|
||||
|
||||
24
installer/resources/proxy/baduri-header.ht
Normal file
24
installer/resources/proxy/baduri-header.ht
Normal 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>
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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> на адреса новых сайтов.
|
||||
|
||||
@@ -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 |
Reference in New Issue
Block a user