You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(120) |
Aug
(95) |
Sep
(95) |
Oct
(213) |
Nov
(114) |
Dec
(64) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(6) |
Feb
(134) |
Mar
(88) |
Apr
(28) |
May
(22) |
Jun
(15) |
Jul
(23) |
Aug
(2) |
Sep
(15) |
Oct
(2) |
Nov
(6) |
Dec
|
2005 |
Jan
(8) |
Feb
(6) |
Mar
|
Apr
(42) |
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
(84) |
Oct
|
Nov
|
Dec
|
2006 |
Jan
|
Feb
|
Mar
(84) |
Apr
(46) |
May
(40) |
Jun
(8) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <car...@us...> - 2006-03-13 21:53:14
|
Revision: 27 Author: carlosga_fb Date: 2006-03-13 13:53:07 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=27&view=rev Log Message: ----------- Modified Paths: -------------- pgsqlclient/source/PostgreSql.Data.PostgreSqlClient.suo Modified: pgsqlclient/source/PostgreSql.Data.PostgreSqlClient.suo =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-03-13 21:52:38
|
Revision: 26 Author: carlosga_fb Date: 2006-03-13 13:52:31 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=26&view=rev Log Message: ----------- Removed Paths: ------------- pgsqlclient/source/PostgreSql/Data/AssemblyInfo.cs Deleted: pgsqlclient/source/PostgreSql/Data/AssemblyInfo.cs =================================================================== --- pgsqlclient/source/PostgreSql/Data/AssemblyInfo.cs 2006-03-13 21:50:39 UTC (rev 25) +++ pgsqlclient/source/PostgreSql/Data/AssemblyInfo.cs 2006-03-13 21:52:31 UTC (rev 26) @@ -1,18 +0,0 @@ -using System; -using System.Runtime.CompilerServices; -using System.Resources; -using System.Reflection; - -[assembly: AssemblyTitle("ADO.NET Data provider for PostgreSQL 7.4+")] -[assembly: AssemblyDescription("ADO.NET Data provider for PostgreSQL 7.4+")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("PgSqlClient - ADO.NET Data provider for PostgreSQL 7.4+")] -[assembly: AssemblyCopyright("2003, 2005 - Carlos Guzm\xE1n \xC1lvarez")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("2.0.0.0")] -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("PostgreSql.Data.PostgreSqlClient.snk")] -[assembly: AssemblyKeyName("")] -[assembly: CLSCompliant(true)] \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-03-13 21:50:45
|
Revision: 25 Author: carlosga_fb Date: 2006-03-13 13:50:39 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=25&view=rev Log Message: ----------- Modified Paths: -------------- pgsqlclient/source/PostgreSql/Data/PostgreSql.Data.PostgreSqlClient.csproj pgsqlclient/source/PostgreSql/Data/PostgreSql.Data.PostgreSqlClient.csproj.user Modified: pgsqlclient/source/PostgreSql/Data/PostgreSql.Data.PostgreSqlClient.csproj =================================================================== --- pgsqlclient/source/PostgreSql/Data/PostgreSql.Data.PostgreSqlClient.csproj 2006-03-13 21:49:23 UTC (rev 24) +++ pgsqlclient/source/PostgreSql/Data/PostgreSql.Data.PostgreSqlClient.csproj 2006-03-13 21:50:39 UTC (rev 25) @@ -94,8 +94,8 @@ <Compile Include="Protocol\PgClientNotificationEventHandler.cs" /> <Compile Include="Protocol\PgCodes.cs" /> <Compile Include="Protocol\PgConnectionOptions.cs" /> + <Compile Include="Protocol\PgDatabase.cs" /> <Compile Include="Protocol\PgDataType.cs" /> - <Compile Include="Protocol\PgDbClient.cs" /> <Compile Include="Protocol\PgErrorCodes.cs" /> <Compile Include="Protocol\PgFieldDescriptor.cs" /> <Compile Include="Protocol\PgFrontEndCodes.cs" /> Modified: pgsqlclient/source/PostgreSql/Data/PostgreSql.Data.PostgreSqlClient.csproj.user =================================================================== --- pgsqlclient/source/PostgreSql/Data/PostgreSql.Data.PostgreSqlClient.csproj.user 2006-03-13 21:49:23 UTC (rev 24) +++ pgsqlclient/source/PostgreSql/Data/PostgreSql.Data.PostgreSqlClient.csproj.user 2006-03-13 21:50:39 UTC (rev 25) @@ -1,6 +1,6 @@ <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <LastOpenVersion>8.0.50215</LastOpenVersion> - <ProjectView>ProjectFiles</ProjectView> + <ProjectView>ShowAllFiles</ProjectView> </PropertyGroup> </Project> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-03-13 21:49:28
|
Revision: 24 Author: carlosga_fb Date: 2006-03-13 13:49:23 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=24&view=rev Log Message: ----------- Removed Paths: ------------- pgsqlclient/source/PostgreSql/Data/Schema/TextFile1.txt Deleted: pgsqlclient/source/PostgreSql/Data/Schema/TextFile1.txt =================================================================== --- pgsqlclient/source/PostgreSql/Data/Schema/TextFile1.txt 2006-03-13 21:45:11 UTC (rev 23) +++ pgsqlclient/source/PostgreSql/Data/Schema/TextFile1.txt 2006-03-13 21:49:23 UTC (rev 24) @@ -1,12 +0,0 @@ -checkconstraints :: SELECT pg_namespace.nspname AS CONSTRAINT_SCHEMA, pg_constraint.conname AS CONSTRAINT_NAME, pg_get_constraintdef(pg_constraint.oid) AS CHECK_CLAUSULE, pg_description.description AS DESCRIPTION FROM pg_constraint left join pg_namespace ON pg_constraint.connamespace = pg_namespace.oid left join pg_description ON pg_constraint.oid = pg_description.objoid WHERE pg_constraint.contype = 'c' ORDER BY pg_namespace.nspname, pg_constraint.conname -checkconstraintsbytable :: SELECT pg_namespace.nspname AS CONSTRAINT_SCHEMA, pg_constraint.conname AS CONSTRAINT_NAME, tbn.nspname AS TABLE_SCHEMA, pg_class.relname AS TABLE_NAME, pg_get_constraintdef(pg_constraint.oid) AS CHECK_CLAUSULE, pg_description.description AS DESCRIPTION FROM pg_constraint left join pg_class ON pg_class.oid = pg_constraint.conrelid left join pg_namespace tbn ON pg_class.relnamespace = tbn.oid left join pg_namespace ON pg_constraint.connamespace = pg_namespace.oid left join pg_description ON pg_constraint.oid = pg_description.objoid WHERE pg_constraint.contype = 'c' AND pg_class.relkind = 'r' ORDER BY pg_namespace.nspname, pg_class.relname, pg_constraint.conname -domains :: SELECT pg_namespace.nspname AS DOMAIN_SCHEMA, pg_type.typname AS DOMAIN_NAME, pg_type.oid AS DATA_TYPE, pg_type.typlen AS COLUMN_SIZE, pg_type.typnotnull AS IS_NOT_NULL, pg_type.typndims AS ARRAY_DIMENSIONS, pg_type.typelem AS ELEMENT_TYPE, pg_type.typbasetype AS BASE_TYPE, pg_type.typtypmod AS BASE_TYPE_MODIFIER, pg_description.description AS DESCRIPTION FROM pg_type left join pg_namespace ON pg_type.typnamespace = pg_namespace.oid left join pg_description ON pg_type.oid = pg_description.objoid WHERE pg_type.typtype = 'd' ORDER BY pg_namespace.nspname, pg_type.typname -foreignkeys :: SELECT pg_namespace.nspname AS PK_TABLE_SCHEMA, pk_table.relname AS PK_TABLE_NAME, pg_namespace.nspname AS FK_TABLE_SCHEMA, fk_table.relname AS FK_TABLE_NAME, pg_constraint.conkey AS PK_COLUMNS, pg_constraint.confkey AS FK_COLUMNS, case pg_constraint.confupdtype when 'a' THEN 'NO ACTION' when 'r' THEN 'RESTRICT' when 'c' THEN 'CASCADE' when 'd' THEN 'SET DEFAULT' when 'n' THEN 'SET NULL' END AS UPDATE_RULE, case pg_constraint.confdeltype when 'a' THEN 'NO ACTION' when 'r' THEN 'RESTRICT' when 'c' THEN 'CASCADE' when 'd' THEN 'SET DEFAULT' when 'n' THEN 'SET NULL' END AS DELETE_RULE, pg_constraint.conname AS FK_NAME, pg_constraint.condeferrable AS DEFERRABILITY, pg_constraint.condeferred AS IS_DEFERRED, pg_description.description AS DESCRIPTION FROM pg_constraint left join pg_namespace ON pg_constraint.connamespace = pg_namespace.oid left join pg_class as pk_table ON pg_constraint.conrelid = pk_table.oid right join pg_class as fk_table ON pg_constraint.confrelid = fk_table.oid left join pg_description ON pg_constraint.oid = pg_description.objoid WHERE pg_constraint.contype = 'f' ORDER BY pg_namespace.nspname, pk_table.relname, pg_constraint.conname -indexes :: SELECT pg_namespace.nspname AS TABLE_SCHEMA, pg_class.relname AS TABLE_NAME, pg_classidx.relname AS INDEX_NAME, Pgnamespidx.nspname AS INDEX_SCHEMA, pg_am.amname AS TYPE, pg_index.indkey AS INDEX_KEY, pg_index.indisclustered AS CLUSTERED, pg_index.indisunique AS UNIQUE, pg_index.indisprimary AS PRIMARY, pg_am.amindexnulls AS ALLOW_NULLS, pg_am.amcanmulticol AS MULTICOLUMN, pg_am.amconcurrent AS CONCURRENT, pg_description.description AS DESCRIPTION FROM pg_index left join pg_class ON pg_index.indrelid = pg_class.oid left join pg_class as pg_classidx ON pg_index.indexrelid = pg_classidx.oid left join pg_namespace ON pg_classidx.relnamespace = pg_namespace.oid left join pg_namespace as Pgnamespidx ON pg_classidx.relnamespace = Pgnamespidx.oid left join pg_am ON pg_classidx.relam = pg_am.oid left join pg_description ON pg_index.indexrelid = pg_description.objoid ORDER BY pg_namespace.nspname, pg_class.relname, pg_classidx.relname -functionprivileges :: SELECT pg_namespace.nspname AS FUNCTION_SCHEMA, pg_proc.proname AS FUNCTION_NAME, pg_proc.proacl AS PRIVILEGES FROM pg_proc left join pg_namespace ON pg_proc.pronamespace = pg_namespace.oid ORDER BY pg_namespace.nspname, pg_proc.proname -functions :: SELECT pg_namespace.nspname AS FUNCTION_SCHEMA, pg_proc.proname AS FUNCTION_NAME, pg_language.lanname AS PROCEDURE_LANGUAGE, pg_proc.proisagg AS IS_AGGREGATE, pg_proc.prosecdef AS IS_SECURITY_DEFINER, pg_proc.proisstrict AS IS_STRICT, case pg_proc.provolatile when 'i' THEN 'INMUTABLE' when 's' THEN 'STABLE' when 'v' THEN 'VOLATILE' END AS VOLATILE, pg_proc.proretset AS RETURNS_SET, pg_proc.prorettype AS RETURN_TYPE, pg_proc.pronargs AS ARGUMENT_NUMBER, pg_proc.proargtypes AS ARGUMENTS, pg_proc.prosrc AS SOURCE, pg_description.description AS DESCRIPTION FROM pg_proc left join pg_namespace ON pg_proc.pronamespace = pg_namespace.oid left join pg_language ON pg_proc.prolang = pg_language.oid left join pg_description ON pg_proc.oid = pg_description.objoid ORDER BY pg_namespace.nspname, pg_proc.proname -tableconstraint :: SELECT pg_schemacon.nspname AS CONSTRAINT_SCHEMA, pg_constraint.conname AS CONSTRAINT_NAME, pg_namespace.nspname AS TABLE_SCHEMA, pg_class.relname AS TABLE_NAME, case pg_constraint.contype when 'u' THEN 'UNIQUE' when 'p' THEN 'PRIMARY KEY' when 'f' THEN 'FOREIGN KEY' when 'c' THEN 'CHECK' END AS CONSTRAINT_TYPE, pg_constraint.condeferrable AS IS_DEFERRABLE, pg_constraint.condeferred AS INITIALLY_DEFERRED, pg_description.description AS DESCRIPTION FROM pg_constraint left join pg_class ON pg_class.oid = pg_constraint.conrelid left join pg_namespace ON pg_class.relnamespace = pg_namespace.oid left join pg_namespace as pg_schemacon ON pg_constraint.connamespace = pg_schemacon.oid left join pg_description ON pg_constraint.oid = pg_description.objoid ORDER BY pg_schemacon.nspname, pg_class.relname, pg_constraint.conname -tableprivileges :: SELECT pg_namespace.nspname AS TABLE_SCHEMA, pg_class.relname AS TABLE_NAME, pg_class.relacl AS PRIVILEGES FROM pg_class left join pg_namespace ON pg_class.relnamespace = pg_namespace.oid WHERE pg_class.relkind = 'r' ORDER BY pg_namespace.nspname, pg_class.relname -triggers :: SELECT pg_namespace.nspname AS TRIGGER_SCHEMA, pg_proc.proname AS TRIGGER_NAME, pg_class.relnamespace AS TABLE_SCHEMA, pg_class.relname AS TABLE_NAME, pg_language.lanname AS PROCEDURE_LANGUAGE, pg_proc.proisagg AS IS_AGGREGATE, pg_proc.prosecdef AS IS_SECURITY_DEFINER, pg_proc.proisstrict AS IS_STRICT, pg_proc.proretset AS RETURNS_SET FROM pg_trigger left join pg_class ON pg_trigger.tgconstrrelid = pg_class.oid left join pg_proc ON pg_trigger.tgfoid = pg_proc.oid left join pg_namespace ON pg_proc.pronamespace = pg_namespace.oid left join pg_language ON pg_proc.prolang = pg_language.oid ORDER BY pg_namespace.nspname, pg_proc.proname -views :: SELECT pg_namespace.nspname AS VIEW_SCHEMA, pg_class.relname AS VIEW_NAME, pg_get_ruledef(pg_rewrite.oid) AS DEFINITION, pg_description.description AS DESCRIPTION FROM pg_class left join pg_namespace ON pg_class.relnamespace = pg_namespace.oid left join pg_rewrite ON pg_class.oid = pg_rewrite.ev_class left join pg_description ON pg_class.oid = pg_description.objoid WHERE pg_class.relkind = 'v' ORDER BY pg_namespace.nspname, pg_class.relname -viewprivileges :: SELECT pg_namespace.nspname AS VIEW_SCHEMA, pg_class.relname AS VIEW_NAME, pg_class.relacl AS PRIVILEGES FROM pg_class left join pg_namespace ON pg_class.relnamespace = pg_namespace.oid left join pg_rewrite ON pg_class.oid = pg_rewrite.ev_class WHERE pg_class.relkind = 'v' ORDER BY pg_namespace.nspname, pg_class.relname This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-03-13 21:45:35
|
Revision: 23 Author: carlosga_fb Date: 2006-03-13 13:45:11 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=23&view=rev Log Message: ----------- Modified Paths: -------------- pgsqlclient/source/PostgreSql/Data/PostgreSql.Data.PostgreSqlClient.csproj pgsqlclient/source/PostgreSql/Data/PostgreSqlClient/PgConnection.cs pgsqlclient/source/PostgreSql/Data/PostgreSqlClient/PgConnectionInternal.cs pgsqlclient/source/PostgreSql/Data/Protocol/PgOutputPacket.cs pgsqlclient/source/PostgreSql/Data/Protocol/PgParameter.cs pgsqlclient/source/PostgreSql/Data/Protocol/PgResponsePacket.cs pgsqlclient/source/PostgreSql/Data/Protocol/PgStatement.cs pgsqlclient/source/PostgreSql/Data/Protocol/PgType.cs pgsqlclient/source/PostgreSql.Data.PostgreSqlClient.suo pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.csproj Added Paths: ----------- pgsqlclient/source/PostgreSql/Data/Protocol/PgDatabase.cs Removed Paths: ------------- pgsqlclient/source/PostgreSql/Data/Protocol/PgDbClient.cs Modified: pgsqlclient/source/PostgreSql/Data/PostgreSql.Data.PostgreSqlClient.csproj =================================================================== --- pgsqlclient/source/PostgreSql/Data/PostgreSql.Data.PostgreSqlClient.csproj 2006-03-13 21:42:55 UTC (rev 22) +++ pgsqlclient/source/PostgreSql/Data/PostgreSql.Data.PostgreSqlClient.csproj 2006-03-13 21:45:11 UTC (rev 23) @@ -12,13 +12,15 @@ <AssemblyName>PostgreSql.Data.PgSqlClient</AssemblyName> <StartupObject> </StartupObject> + <SignAssembly>true</SignAssembly> + <AssemblyOriginatorKeyFile>PostgreSql.Data.PostgreSqlClient.snk</AssemblyOriginatorKeyFile> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>bin\Debug\</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> + <DefineConstants>TRACE;DEBUG;CUSTOM_SSL</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> </PropertyGroup> @@ -32,7 +34,6 @@ </PropertyGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <ItemGroup> - <Compile Include="AssemblyInfo.cs" /> <Compile Include="Design\ParameterCollection\PgParameterCollectionEditor.cs" /> <Compile Include="Design\ParameterCollection\PgParameterConverter.cs" /> <Compile Include="PostgreSqlClient\PgCommand.cs"> @@ -67,6 +68,17 @@ <Compile Include="PostgreSqlClient\PgRowUpdatingEventHandler.cs" /> <Compile Include="PostgreSqlClient\PgTransaction.cs" /> <Compile Include="PostgreSqlClient\PostgreSqlClientFactory.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + <Compile Include="Properties\Resources.Designer.cs"> + <AutoGen>True</AutoGen> + <DesignTime>True</DesignTime> + <DependentUpon>Resources.resx</DependentUpon> + </Compile> + <Compile Include="Properties\Settings.Designer.cs"> + <AutoGen>True</AutoGen> + <DesignTimeSharedInput>True</DesignTimeSharedInput> + <DependentUpon>Settings.settings</DependentUpon> + </Compile> <Compile Include="Protocol\InfoMessageCallback.cs" /> <Compile Include="Protocol\NotificationCallback.cs" /> <Compile Include="Protocol\PgAuthMethods.cs" /> @@ -127,6 +139,11 @@ <Reference Include="System.Xml" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Include="Properties\Resources.resx"> + <SubType>Designer</SubType> + <Generator>ResXFileCodeGenerator</Generator> + <LastGenOutput>Resources.Designer.cs</LastGenOutput> + </EmbeddedResource> <EmbeddedResource Include="Schema\MetaData.xml" /> </ItemGroup> <ItemGroup> @@ -138,4 +155,11 @@ <Name>SecureSocketLayer</Name> </ProjectReference> </ItemGroup> + <ItemGroup> + <None Include="PostgreSql.Data.PostgreSqlClient.snk" /> + <None Include="Properties\Settings.settings"> + <Generator>SettingsSingleFileGenerator</Generator> + <LastGenOutput>Settings.Designer.cs</LastGenOutput> + </None> + </ItemGroup> </Project> \ No newline at end of file Modified: pgsqlclient/source/PostgreSql/Data/PostgreSqlClient/PgConnection.cs =================================================================== --- pgsqlclient/source/PostgreSql/Data/PostgreSqlClient/PgConnection.cs 2006-03-13 21:42:55 UTC (rev 22) +++ pgsqlclient/source/PostgreSql/Data/PostgreSqlClient/PgConnection.cs 2006-03-13 21:45:11 UTC (rev 23) @@ -353,7 +353,7 @@ { lock (this.connectionInternal) { - PgDbClient database = this.connectionInternal.Database; + PgDatabase database = this.connectionInternal.Database; // Remove info message callback this.connectionInternal.Database.InfoMessage = null; Modified: pgsqlclient/source/PostgreSql/Data/PostgreSqlClient/PgConnectionInternal.cs =================================================================== --- pgsqlclient/source/PostgreSql/Data/PostgreSqlClient/PgConnectionInternal.cs 2006-03-13 21:42:55 UTC (rev 22) +++ pgsqlclient/source/PostgreSql/Data/PostgreSqlClient/PgConnectionInternal.cs 2006-03-13 21:45:11 UTC (rev 23) @@ -28,7 +28,7 @@ #region \xB7 Fields \xB7 private PgConnection owningConnection; - private PgDbClient database; + private PgDatabase database; private PgConnectionOptions options; private PgTransaction activeTransaction; private ArrayList preparedCommands; @@ -39,7 +39,7 @@ #region \xB7 Properties \xB7 - public PgDbClient Database + public PgDatabase Database { get { return this.database; } } @@ -113,7 +113,7 @@ { try { - this.database = new PgDbClient(this.options); + this.database = new PgDatabase(this.options); this.database.Connect(); } catch (PgClientException ex) Copied: pgsqlclient/source/PostgreSql/Data/Protocol/PgDatabase.cs (from rev 11, pgsqlclient/source/PostgreSql/Data/Protocol/PgDbClient.cs) =================================================================== --- pgsqlclient/source/PostgreSql/Data/Protocol/PgDatabase.cs (rev 0) +++ pgsqlclient/source/PostgreSql/Data/Protocol/PgDatabase.cs 2006-03-13 21:45:11 UTC (rev 23) @@ -0,0 +1,863 @@ +/* + * PgSqlClient - ADO.NET Data Provider for PostgreSQL 7.4+ + * + * The contents of this file are subject to the Initial + * Developer's Public License Version 1.0 (the "License"); + * you may not use this file except in compliance with the + * License. + * + * Software distributed under the License is distributed on + * an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either + * express or implied. See the License for the specific + * language governing rights and limitations under the License. + * + * Copyright (c) 2003, 2005 Carlos Guzman Alvarez + * All Rights Reserved. + */ + +using System; +using System.Data; +using System.IO; +using System.Collections; +using System.Text; +using System.Net; +using System.Net.Sockets; + +#if (CUSTOM_SSL) +using SecureSocketLayer.Net.Security; +#else +using System.Net.Security; +#endif + +namespace PostgreSql.Data.Protocol +{ + internal class PgDatabase + { + #region \xB7 Static Properties \xB7 + + public static readonly PgTypeCollection DataTypes = new PgTypeCollection(); + public static readonly PgCharactersetCollection Charactersets = new PgCharactersetCollection(); + + #endregion + + #region \xB7 Static Methods \xB7 + + public static void InitializeTypes() + { + if (DataTypes.Count > 0) + { + return; + } + + DataTypes.Add(16 , "bool" , PgDataType.Boolean , 0, PgTypeFormat.Binary, 1); + DataTypes.Add(17 , "bytea" , PgDataType.Binary , 0, PgTypeFormat.Binary, 0); + DataTypes.Add(18 , "char" , PgDataType.Char , 0, PgTypeFormat.Text, 0); + DataTypes.Add(19 , "name" , PgDataType.VarChar , 0, PgTypeFormat.Text, 0); + DataTypes.Add(20 , "int8" , PgDataType.Int8 , 0, PgTypeFormat.Binary, 8); + DataTypes.Add(21 , "int2" , PgDataType.Int2 , 0, PgTypeFormat.Binary, 2); + DataTypes.Add(22 , "int2vector" , PgDataType.Vector , 21, PgTypeFormat.Binary, 2); + DataTypes.Add(23 , "int4" , PgDataType.Int4 , 0, PgTypeFormat.Binary, 4); + DataTypes.Add(24 , "regproc" , PgDataType.VarChar , 0, PgTypeFormat.Text, 0); + DataTypes.Add(25 , "text" , PgDataType.VarChar , 0, PgTypeFormat.Text, 0); + DataTypes.Add(26 , "oid" , PgDataType.Int4 , 0, PgTypeFormat.Binary, 4); + DataTypes.Add(30 , "oidvector" , PgDataType.Vector , 26, PgTypeFormat.Binary, 4); + DataTypes.Add(600 , "point" , PgDataType.Point , 701, PgTypeFormat.Binary, 16); + DataTypes.Add(601 , "lseg" , PgDataType.LSeg , 600, PgTypeFormat.Binary, 32); + DataTypes.Add(602 , "path" , PgDataType.Path , 0, PgTypeFormat.Binary, 16); + DataTypes.Add(603 , "box" , PgDataType.Box , 600, PgTypeFormat.Binary, 32); + DataTypes.Add(604 , "polygon" , PgDataType.Polygon , 0, PgTypeFormat.Binary, 16); + DataTypes.Add(628 , "line" , PgDataType.Line , 701, PgTypeFormat.Binary, 32); + DataTypes.Add(629 , "_line" , PgDataType.Array , 628, PgTypeFormat.Binary, 32); + DataTypes.Add(718 , "circle" , PgDataType.Circle , 0, PgTypeFormat.Binary, 24); + DataTypes.Add(719 , "_circle" , PgDataType.Array , 718, PgTypeFormat.Binary, 24); + DataTypes.Add(700 , "float4" , PgDataType.Float , 0, PgTypeFormat.Binary, 4); + DataTypes.Add(701 , "float8" , PgDataType.Double , 0, PgTypeFormat.Binary, 8); + DataTypes.Add(705 , "unknown" , PgDataType.Binary , 0, PgTypeFormat.Binary, 0); + DataTypes.Add(790 , "money" , PgDataType.Currency , 0, PgTypeFormat.Binary, 4); + DataTypes.Add(829 , "macaddr" , PgDataType.VarChar , 0, PgTypeFormat.Text, 6); + DataTypes.Add(869 , "inet" , PgDataType.VarChar , 0, PgTypeFormat.Text, 0); + DataTypes.Add(1000 , "_bool" , PgDataType.Array , 16, PgTypeFormat.Binary, 1); + DataTypes.Add(1005 , "_int2" , PgDataType.Array , 21, PgTypeFormat.Binary, 2); + DataTypes.Add(1007 , "_int4" , PgDataType.Array , 23, PgTypeFormat.Binary, 4); + DataTypes.Add(1009 , "_text" , PgDataType.Array , 25, PgTypeFormat.Binary, 0); + DataTypes.Add(1016 , "_int8" , PgDataType.Array , 20, PgTypeFormat.Binary, 8); + DataTypes.Add(1017 , "_point" , PgDataType.Array , 600, PgTypeFormat.Binary, 16); + DataTypes.Add(1018 , "_lseg" , PgDataType.Array , 601, PgTypeFormat.Binary, 32); + DataTypes.Add(1019 , "_path" , PgDataType.Array , 602, PgTypeFormat.Binary, -1); + DataTypes.Add(1020 , "_box" , PgDataType.Array , 603, PgTypeFormat.Binary, 32); + DataTypes.Add(1021 , "_float4" , PgDataType.Array , 700, PgTypeFormat.Binary, 4); + DataTypes.Add(1027 , "_polygon" , PgDataType.Array , 604, PgTypeFormat.Binary, 16); + DataTypes.Add(1033 , "aclitem" , PgDataType.VarChar , 0, PgTypeFormat.Text, 12); + DataTypes.Add(1034 , "_aclitem" , PgDataType.Array , 1033, PgTypeFormat.Text, 0); + DataTypes.Add(1042 , "bpchar" , PgDataType.VarChar , 0, PgTypeFormat.Text, 0); + DataTypes.Add(1043 , "varchar" , PgDataType.VarChar , 0, PgTypeFormat.Text, 0); + DataTypes.Add(1082 , "date" , PgDataType.Date , 0, PgTypeFormat.Binary, 4); + DataTypes.Add(1083 , "time" , PgDataType.Time , 0, PgTypeFormat.Text, 8); + DataTypes.Add(1114 , "timestamp" , PgDataType.Timestamp , 0, PgTypeFormat.Text, 8); + DataTypes.Add(1184 , "timestamptz" , PgDataType.TimestampWithTZ, 0, PgTypeFormat.Binary, 8); + DataTypes.Add(1186 , "interval" , PgDataType.Interval , 0, PgTypeFormat.Binary, 12); + DataTypes.Add(1266 , "timetz" , PgDataType.TimeWithTZ , 0, PgTypeFormat.Binary, 12); + DataTypes.Add(1560 , "bit" , PgDataType.Byte , 0, PgTypeFormat.Text, 1); + DataTypes.Add(1562 , "varbit" , PgDataType.Byte , 0, PgTypeFormat.Binary, 0); + DataTypes.Add(1700 , "numeric" , PgDataType.Decimal , 0, PgTypeFormat.Text, 8); + DataTypes.Add(1790 , "refcursor" , PgDataType.VarChar , 0, PgTypeFormat.Text, 0); + DataTypes.Add(2277 , "anyarray" , PgDataType.Array , 0, PgTypeFormat.Binary, 8); + } + + public static void InitializeCharSets() + { + if (Charactersets.Count > 0) + { + return; + } + + Charactersets.Add("SQL_ASCII" , "ascii"); // ASCII + Charactersets.Add("EUC_JP" , "euc-jp"); // Japanese EUC + Charactersets.Add("EUC_CN" , "euc-cn"); // Chinese EUC + Charactersets.Add("UNICODE" , "UTF-8"); // Unicode (UTF-8) + Charactersets.Add("LATIN1" , "iso-8859-1"); // ISO 8859-1/ECMA 94 (Latin alphabet no.1) + Charactersets.Add("LATIN2" , "iso-8859-2"); // ISO 8859-2/ECMA 94 (Latin alphabet no.2) + Charactersets.Add("LATIN4" , 1257); // ISO 8859-4/ECMA 94 (Latin alphabet no.4) + Charactersets.Add("ISO_8859_7" , 1253); // ISO 8859-7/ECMA 118 (Latin/Greek) + Charactersets.Add("LATIN9" , "iso-8859-15"); // ISO 8859-15 (Latin alphabet no.9) + Charactersets.Add("KOI8" , "koi8-r"); // KOI8-R(U) + Charactersets.Add("WIN" , "windows-1251"); // Windows CP1251 + Charactersets.Add("WIN1256" , "windows-1256"); // Windows CP1256 (Arabic) + Charactersets.Add("WIN1256" , "windows-1256"); // Windows CP1256 (Arabic) + Charactersets.Add("WIN1256" , "windows-1258"); // TCVN-5712/Windows CP1258 (Vietnamese) + Charactersets.Add("WIN1256" , "windows-874"); // Windows CP874 (Thai) + } + + #endregion + + #region \xB7 Callbacks \xB7 + + public NotificationCallback Notification + { + get { return this.notification; } + set { this.notification = value; } + } + + public InfoMessageCallback InfoMessage + { + get { return this.infoMessage; } + set { this.infoMessage = value; } + } + + #endregion + + #region \xB7 Fields \xB7 + + private NotificationCallback notification; + private InfoMessageCallback infoMessage; + + private int handle; + private int secretKey; + private Hashtable parameterStatus; + private Socket socket; + private NetworkStream networkStream; + private SslStream secureStream; + private BinaryReader receive; + private BinaryWriter send; + private PgConnectionOptions options; + private Encoding encoding; + private char transactionStatus; + + #endregion + + #region \xB7 Properties \xB7 + + public int Handle + { + get { return this.handle; } + } + + public int SecretKey + { + get { return this.secretKey; } + } + + public Hashtable ParameterStatus + { + get + { + if (this.parameterStatus == null) + { + this.parameterStatus = Hashtable.Synchronized(new Hashtable()); + } + return this.parameterStatus; + } + } + + public PgConnectionOptions Options + { + get { return this.options; } + } + + public Encoding Encoding + { + get { return this.encoding; } + } + + #endregion + + #region \xB7 Internal Properties \xB7 + + internal SslStream SecureStream + { + get { return this.secureStream; } + } + + internal BinaryReader Receive + { + get { return this.receive; } + } + + internal BinaryWriter Send + { + get { return this.send; } + } + + #endregion + + #region \xB7 Constructors \xB7 + + public PgDatabase(string connectionString) + : this(new PgConnectionOptions(connectionString)) + { + } + + public PgDatabase(PgConnectionOptions options) + { + this.options = options; + this.encoding = Encoding.Default; + + GC.SuppressFinalize(this); + } + + #endregion + + #region \xB7 Database Methods \xB7 + + public void Connect() + { + try + { + PgDatabase.InitializeTypes(); + PgDatabase.InitializeCharSets(); + + this.InitializeSocket(); + + lock (this) + { + if (this.options.SSL) + { + // Send SSL request message + if (this.SslRequest()) + { + this.secureStream = new SslStream(this.networkStream, false); + + this.SecureStream.AuthenticateAsClient(this.options.DataSource); + + this.receive = new BinaryReader(this.SecureStream); + this.send = new BinaryWriter(this.SecureStream); + } + } + + // Send Startup message + PgOutputPacket packet = new PgOutputPacket(this.Encoding); + + packet.Write(PgCodes.PROTOCOL_VERSION3); + packet.WriteNullString("user"); + packet.WriteNullString(this.options.UserID); + + if (this.options.Database != null && this.options.Database.Length > 0) + { + packet.WriteNullString("database"); + packet.WriteNullString(this.options.Database); + } + + packet.WriteNullString("DateStyle"); + packet.WriteNullString(PgCodes.DATE_STYLE); + packet.Write((byte)0); // Terminator + + this.SendSimplePacket(packet); + + PgResponsePacket response = null; + + do + { + response = this.ReceiveResponsePacket(); + this.ProcessResponsePacket(response); + } + while (!response.IsReadyForQuery); + } + } + catch (IOException ex) + { + this.Detach(); + throw new PgClientException(ex.Message); + } + catch (PgClientException) + { + this.Detach(); + throw; + } + } + + public void Disconnect() + { + try + { + // Send packet to the server + PgOutputPacket packet = new PgOutputPacket(); + this.SendPacket(packet, PgFrontEndCodes.TERMINATE); + + this.Detach(); + } + catch (IOException ex) + { + throw new PgClientException(ex.Message); + } + catch (PgClientException) + { + throw; + } + } + + #endregion + + #region \xB7 Send Methods \xB7 + + internal void SendPacket(PgOutputPacket packet, char type) + { + this.Write(packet.GetPacketBytes(type)); + } + + internal void SendSimplePacket(PgOutputPacket packet) + { + this.Write(packet.GetSimplePacketBytes()); + } + + private void Write(byte[] buffer) + { + this.Write(buffer, 0, buffer.Length); + } + + private void Write(byte[] buffer, int index, int count) + { + try + { + this.send.Write(buffer, index, count); + this.send.Flush(); + } + catch (IOException) + { + throw; + } + } + + #endregion + + #region \xB7 Response Methods \xB7 + + public PgResponsePacket ReceiveResponsePacket() + { + PgResponsePacket responsePacket = null; + + lock (this) + { + responsePacket = this.ReceiveStandardPacket(); + + switch (responsePacket.Message) + { + case PgBackendCodes.ERROR_RESPONSE: + // Read the error message and trow the exception + PgClientException ex = this.ProcessErrorPacket(responsePacket); + + // Perform a sync + this.Sync(); + + // Throw the PostgreSQL exception + throw ex; + + case PgBackendCodes.NOTICE_RESPONSE: + // Read the notice message and raise an InfoMessage event + this.InfoMessage(this.ProcessErrorPacket(responsePacket)); + break; + + case PgBackendCodes.NOTIFICATION_RESPONSE: + this.ProcessNotificationResponse(responsePacket); + break; + } + } + + return responsePacket; + } + + private PgResponsePacket ReceiveStandardPacket() + { + PgResponsePacket responsePacket = null; + + try + { + char type = this.receive.ReadChar(); + int length = IPAddress.HostToNetworkOrder(this.receive.ReadInt32()) - 4; + + // Read the message data + byte[] buffer = new byte[length]; + int received = 0; + + while (received < length) + { + received += this.receive.Read(buffer, received, length - received); + } + + responsePacket = new PgResponsePacket(type, this.Encoding, buffer); + } + catch (IOException) + { + throw; + } + + return responsePacket; + } + + private void ProcessResponsePacket(PgResponsePacket packet) + { + switch (packet.Message) + { + case PgBackendCodes.AUTHENTICATION: + this.ProcessAuthPacket(packet); + break; + + case PgBackendCodes.PARAMETER_STATUS: + this.ProcessParameterStatus(packet); + break; + + case PgBackendCodes.READY_FOR_QUERY: + this.transactionStatus = packet.ReadChar(); + break; + + case PgBackendCodes.BACKEND_KEY_DATA: + // BackendKeyData + this.handle = packet.ReadInt32(); + this.secretKey = packet.ReadInt32(); + break; + } + } + + private void ProcessParameterStatus(PgResponsePacket packet) + { + string parameterName = packet.ReadNullString(); + string parameterValue = packet.ReadNullString(); + + this.ParameterStatus.Add(parameterName, parameterValue); + + switch (parameterName) + { + case "client_encoding": + this.encoding = Charactersets[parameterValue].Encoding; + break; + } + } + + private void ProcessAuthPacket(PgResponsePacket packet) + { + // Authentication response + int authType = packet.ReadInt32(); + + PgOutputPacket outPacket = new PgOutputPacket(this.Encoding); + + switch (authType) + { + case PgCodes.AUTH_OK: + // Authentication successful + return; + + case PgCodes.AUTH_KERBEROS_V4: + // Kerberos V4 authentication is required + break; + + case PgCodes.AUTH_KERBEROS_V5: + // Kerberos V5 authentication is required + break; + + case PgCodes.AUTH_CLEARTEXT_PASSWORD: + // Cleartext password is required + outPacket.WriteNullString(this.options.Password); + break; + + case PgCodes.AUTH_CRYPT_PASSWORD: + // crypt()-encrypted password is required + break; + + case PgCodes.AUTH_MD5_PASSWORD: + // MD5-encrypted password is required + + // First read salt to use when encrypting the password + byte[] salt = packet.ReadBytes(4); + + // Second calculate md5 of password + user + string userHash = MD5Authentication.GetMD5Hash( + this.Encoding.GetBytes(this.options.UserID), this.options.Password); + + // Third calculate real MD5 hash + string hash = MD5Authentication.GetMD5Hash(salt, userHash); + + // Finally write the md5 hash to the packet + outPacket.WriteNullString(PgCodes.MD5_PREFIX + hash); + break; + + case PgCodes.AUTH_SCM_CREDENTIAL: + // SCM credentials message is required + break; + } + + // Send the packet to the server + this.SendPacket(outPacket, PgFrontEndCodes.PASSWORD_MESSAGE); + } + + private PgClientException ProcessErrorPacket(PgResponsePacket packet) + { + char type = ' '; + PgClientError error = new PgClientError(); + + while (type != PgErrorCodes.END) + { + type = packet.ReadChar(); + switch (type) + { + case PgErrorCodes.SEVERITY: + error.Severity = packet.ReadNullString(); + break; + + case PgErrorCodes.CODE: + error.Code = packet.ReadNullString(); + break; + + case PgErrorCodes.MESSAGE: + error.Message = packet.ReadNullString(); + break; + + case PgErrorCodes.DETAIL: + error.Detail = packet.ReadNullString(); + break; + + case PgErrorCodes.HINT: + error.Hint = packet.ReadNullString(); + break; + + case PgErrorCodes.POSITION: + error.Position = packet.ReadNullString(); + break; + + case PgErrorCodes.WHERE: + error.Where = packet.ReadNullString(); + break; + + case PgErrorCodes.FILE: + error.File = packet.ReadNullString(); + break; + + case PgErrorCodes.LINE: + error.Line = Convert.ToInt32(packet.ReadNullString()); + break; + + case PgErrorCodes.ROUTINE: + error.Routine = packet.ReadNullString(); + break; + } + } + + PgClientException exception = new PgClientException(error.Message); + + exception.Errors.Add(error); + + return exception; + } + + private void ProcessNotificationResponse(PgResponsePacket packet) + { + int processID = packet.ReadInt32(); + string condition = packet.ReadNullString(); + string additional = packet.ReadNullString(); + + if (this.Notification != null) + { + this.Notification(processID, condition, additional); + } + } + + #endregion + + #region \xB7 Transaction Methods \xB7 + + public void BeginTransaction(IsolationLevel isolationLevel) + { + string sql = "START TRANSACTION ISOLATION LEVEL "; + + switch (isolationLevel) + { + case IsolationLevel.ReadCommitted: + sql += "READ COMMITTED"; + break; + + case IsolationLevel.ReadUncommitted: + throw new NotSupportedException("Read uncommitted transaction isolation is not supported"); + + case IsolationLevel.RepeatableRead: + throw new NotSupportedException("Repeatable read transaction isolation is not supported"); + + case IsolationLevel.Serializable: + sql += "SERIALIZABLE"; + break; + } + + PgStatement stmt = CreateStatement(sql); + stmt.Query(); + + if (stmt.Tag != "START TRANSACTION") + { + throw new PgClientException("A transaction is currently active. Parallel transactions are not supported."); + } + + this.transactionStatus = stmt.TransactionStatus; + } + + public void CommitTransaction() + { + PgStatement stmt = CreateStatement("COMMIT TRANSACTION"); + stmt.Query(); + + if (stmt.Tag != "COMMIT") + { + throw new PgClientException("There are no transaction for commit."); + } + + this.transactionStatus = stmt.TransactionStatus; + } + + public void RollbackTransction() + { + PgStatement stmt = CreateStatement("ROLLBACK TRANSACTION"); + stmt.Query(); + + if (stmt.Tag != "ROLLBACK") + { + throw new PgClientException("There are no transaction for rollback."); + } + + this.transactionStatus = stmt.TransactionStatus; + } + + #endregion + + #region \xB7 Client Methods \xB7 + + public void Flush() + { + lock (this) + { + try + { + PgOutputPacket packet = new PgOutputPacket(this.Encoding); + + // Send packet to the server + this.SendPacket(packet, PgFrontEndCodes.FLUSH); + } + catch (Exception) + { + throw; + } + } + } + + public void Sync() + { + lock (this) + { + try + { + PgOutputPacket packet = new PgOutputPacket(this.Encoding); + + // Send packet to the server + this.SendPacket(packet, PgFrontEndCodes.SYNC); + + // Receive response + PgResponsePacket response = null; + + do + { + response = this.ReceiveResponsePacket(); + this.ProcessResponsePacket(response); + } + while (!response.IsReadyForQuery); + } + catch + { + PgResponsePacket response = null; + + do + { + response = this.ReceiveResponsePacket(); + this.ProcessResponsePacket(response); + } + while (!response.IsReadyForQuery); + + throw; + } + } + } + + public void CancelRequest() + { + lock (this) + { + try + { + PgOutputPacket packet = new PgOutputPacket(); + + packet.Write((int)16); + packet.Write(PgCodes.CANCEL_REQUEST); + packet.Write(this.Handle); + packet.Write(this.SecretKey); + + // Send packet to the server + this.SendSimplePacket(packet); + } + catch (Exception) + { + throw; + } + } + } + + public bool SslRequest() + { + bool sslAvailable = false; + + lock (this) + { + try + { + PgOutputPacket packet = new PgOutputPacket(); + + packet.Write(PgCodes.SSL_REQUEST); + + // Send packet to the server + this.SendSimplePacket(packet); + + // Receive server response + switch (Convert.ToChar(this.networkStream.ReadByte())) + { + case 'S': + sslAvailable = true; + break; + + default: + sslAvailable = false; + break; + } + } + catch + { + throw; + } + } + + return sslAvailable; + } + + #endregion + + #region \xB7 Methods \xB7 + + public void SendInfoMessage(PgClientException exception) + { + if (this.InfoMessage != null) + { + this.InfoMessage(exception); + } + } + + public PgStatement CreateStatement() + { + return new PgStatement(this); + } + + public PgStatement CreateStatement(string stmtText) + { + return new PgStatement(this, stmtText); + } + + public PgStatement CreateStatement(string parseName, string portalName) + { + return new PgStatement(this, parseName, portalName); + } + + public PgStatement CreateStatement(string parseName, string portalName, string stmtText) + { + return new PgStatement(this, parseName, portalName, stmtText); + } + + #endregion + + #region \xB7 Private Methods \xB7 + + private void InitializeSocket() + { + IPAddress hostadd = Dns.GetHostEntry(this.options.DataSource).AddressList[0]; + + this.socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + + // Set Receive Buffer size. + this.socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveBuffer, this.options.PacketSize); + + // Set Send Buffer size. + this.socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendBuffer, this.options.PacketSize); + + // Disables the Nagle algorithm for send coalescing. + this.socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.NoDelay, 1); + + // Make the socket to connect to the Server + this.socket.Connect(new IPEndPoint(hostadd, this.options.PortNumber)); + this.networkStream = new NetworkStream(socket, true); + + // Create objects for read & write + this.receive = new BinaryReader(new BufferedStream(this.networkStream)); + this.send = new BinaryWriter(new BufferedStream(this.networkStream)); + + // The socket and stream shouldn't be automatically collected by the GC + GC.SuppressFinalize(this.socket); + GC.SuppressFinalize(this.networkStream); + GC.SuppressFinalize(this.receive); + GC.SuppressFinalize(this.send); + } + + private void Detach() + { + // Close streams + if (this.secureStream != null) + { + try + { + this.secureStream.Close(); + } + catch + { + } + } + if (this.networkStream != null) + { + this.networkStream.Close(); + } + if (this.socket != null) + { + this.socket.Close(); + } + } + + #endregion + } +} Deleted: pgsqlclient/source/PostgreSql/Data/Protocol/PgDbClient.cs =================================================================== --- pgsqlclient/source/PostgreSql/Data/Protocol/PgDbClient.cs 2006-03-13 21:42:55 UTC (rev 22) +++ pgsqlclient/source/PostgreSql/Data/Protocol/PgDbClient.cs 2006-03-13 21:45:11 UTC (rev 23) @@ -1,858 +0,0 @@ -/* - * PgSqlClient - ADO.NET Data Provider for PostgreSQL 7.4+ - * - * The contents of this file are subject to the Initial - * Developer's Public License Version 1.0 (the "License"); - * you may not use this file except in compliance with the - * License. - * - * Software distributed under the License is distributed on - * an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either - * express or implied. See the License for the specific - * language governing rights and limitations under the License. - * - * Copyright (c) 2003, 2005 Carlos Guzman Alvarez - * All Rights Reserved. - */ - -using System; -using System.Data; -using System.IO; -using System.Collections; -using System.Text; -using System.Net; -using System.Net.Sockets; -using System.Net.Security; - -namespace PostgreSql.Data.Protocol -{ - internal class PgDbClient - { - #region \xB7 Static Properties \xB7 - - public static readonly PgTypeCollection DataTypes = new PgTypeCollection(); - public static readonly PgCharactersetCollection Charactersets = new PgCharactersetCollection(); - - #endregion - - #region \xB7 Static Methods \xB7 - - public static void InitializeTypes() - { - if (DataTypes.Count > 0) - { - return; - } - - DataTypes.Add(16 , "bool" , PgDataType.Boolean , 0, PgTypeFormat.Binary, 1); - DataTypes.Add(17 , "bytea" , PgDataType.Binary , 0, PgTypeFormat.Binary, 0); - DataTypes.Add(18 , "char" , PgDataType.Char , 0, PgTypeFormat.Text, 0); - DataTypes.Add(19 , "name" , PgDataType.VarChar , 0, PgTypeFormat.Text, 0); - DataTypes.Add(20 , "int8" , PgDataType.Int8 , 0, PgTypeFormat.Binary, 8); - DataTypes.Add(21 , "int2" , PgDataType.Int2 , 0, PgTypeFormat.Binary, 2); - DataTypes.Add(22 , "int2vector" , PgDataType.Vector , 21, PgTypeFormat.Binary, 2); - DataTypes.Add(23 , "int4" , PgDataType.Int4 , 0, PgTypeFormat.Binary, 4); - DataTypes.Add(24 , "regproc" , PgDataType.VarChar , 0, PgTypeFormat.Text, 0); - DataTypes.Add(25 , "text" , PgDataType.VarChar , 0, PgTypeFormat.Text, 0); - DataTypes.Add(26 , "oid" , PgDataType.Int4 , 0, PgTypeFormat.Binary, 4); - DataTypes.Add(30 , "oidvector" , PgDataType.Vector , 26, PgTypeFormat.Binary, 4); - DataTypes.Add(600 , "point" , PgDataType.Point , 701, PgTypeFormat.Binary, 16); - DataTypes.Add(601 , "lseg" , PgDataType.LSeg , 600, PgTypeFormat.Binary, 32); - DataTypes.Add(602 , "path" , PgDataType.Path , 0, PgTypeFormat.Binary, 16); - DataTypes.Add(603 , "box" , PgDataType.Box , 600, PgTypeFormat.Binary, 32); - DataTypes.Add(604 , "polygon" , PgDataType.Polygon , 0, PgTypeFormat.Binary, 16); - DataTypes.Add(628 , "line" , PgDataType.Line , 701, PgTypeFormat.Binary, 32); - DataTypes.Add(629 , "_line" , PgDataType.Array , 628, PgTypeFormat.Binary, 32); - DataTypes.Add(718 , "circle" , PgDataType.Circle , 0, PgTypeFormat.Binary, 24); - DataTypes.Add(719 , "_circle" , PgDataType.Array , 718, PgTypeFormat.Binary, 24); - DataTypes.Add(700 , "float4" , PgDataType.Float , 0, PgTypeFormat.Binary, 4); - DataTypes.Add(701 , "float8" , PgDataType.Double , 0, PgTypeFormat.Binary, 8); - DataTypes.Add(705 , "unknown" , PgDataType.Binary , 0, PgTypeFormat.Binary, 0); - DataTypes.Add(790 , "money" , PgDataType.Currency , 0, PgTypeFormat.Binary, 4); - DataTypes.Add(829 , "macaddr" , PgDataType.VarChar , 0, PgTypeFormat.Text, 6); - DataTypes.Add(869 , "inet" , PgDataType.VarChar , 0, PgTypeFormat.Text, 0); - DataTypes.Add(1000 , "_bool" , PgDataType.Array , 16, PgTypeFormat.Binary, 1); - DataTypes.Add(1005 , "_int2" , PgDataType.Array , 21, PgTypeFormat.Binary, 2); - DataTypes.Add(1007 , "_int4" , PgDataType.Array , 23, PgTypeFormat.Binary, 4); - DataTypes.Add(1009 , "_text" , PgDataType.Array , 25, PgTypeFormat.Binary, 0); - DataTypes.Add(1016 , "_int8" , PgDataType.Array , 20, PgTypeFormat.Binary, 8); - DataTypes.Add(1017 , "_point" , PgDataType.Array , 600, PgTypeFormat.Binary, 16); - DataTypes.Add(1018 , "_lseg" , PgDataType.Array , 601, PgTypeFormat.Binary, 32); - DataTypes.Add(1019 , "_path" , PgDataType.Array , 602, PgTypeFormat.Binary, -1); - DataTypes.Add(1020 , "_box" , PgDataType.Array , 603, PgTypeFormat.Binary, 32); - DataTypes.Add(1021 , "_float4" , PgDataType.Array , 700, PgTypeFormat.Binary, 4); - DataTypes.Add(1027 , "_polygon" , PgDataType.Array , 604, PgTypeFormat.Binary, 16); - DataTypes.Add(1033 , "aclitem" , PgDataType.VarChar , 0, PgTypeFormat.Text, 12); - DataTypes.Add(1034 , "_aclitem" , PgDataType.Array , 1033, PgTypeFormat.Text, 0); - DataTypes.Add(1042 , "bpchar" , PgDataType.VarChar , 0, PgTypeFormat.Text, 0); - DataTypes.Add(1043 , "varchar" , PgDataType.VarChar , 0, PgTypeFormat.Text, 0); - DataTypes.Add(1082 , "date" , PgDataType.Date , 0, PgTypeFormat.Binary, 4); - DataTypes.Add(1083 , "time" , PgDataType.Time , 0, PgTypeFormat.Text, 8); - DataTypes.Add(1114 , "timestamp" , PgDataType.Timestamp , 0, PgTypeFormat.Text, 8); - DataTypes.Add(1184 , "timestamptz" , PgDataType.TimestampWithTZ, 0, PgTypeFormat.Binary, 8); - DataTypes.Add(1186 , "interval" , PgDataType.Interval , 0, PgTypeFormat.Binary, 12); - DataTypes.Add(1266 , "timetz" , PgDataType.TimeWithTZ , 0, PgTypeFormat.Binary, 12); - DataTypes.Add(1560 , "bit" , PgDataType.Byte , 0, PgTypeFormat.Text, 1); - DataTypes.Add(1562 , "varbit" , PgDataType.Byte , 0, PgTypeFormat.Binary, 0); - DataTypes.Add(1700 , "numeric" , PgDataType.Decimal , 0, PgTypeFormat.Text, 8); - DataTypes.Add(1790 , "refcursor" , PgDataType.VarChar , 0, PgTypeFormat.Text, 0); - DataTypes.Add(2277 , "anyarray" , PgDataType.Array , 0, PgTypeFormat.Binary, 8); - } - - public static void InitializeCharSets() - { - if (Charactersets.Count > 0) - { - return; - } - - Charactersets.Add("SQL_ASCII" , "ascii"); // ASCII - Charactersets.Add("EUC_JP" , "euc-jp"); // Japanese EUC - Charactersets.Add("EUC_CN" , "euc-cn"); // Chinese EUC - Charactersets.Add("UNICODE" , "UTF-8"); // Unicode (UTF-8) - Charactersets.Add("LATIN1" , "iso-8859-1"); // ISO 8859-1/ECMA 94 (Latin alphabet no.1) - Charactersets.Add("LATIN2" , "iso-8859-2"); // ISO 8859-2/ECMA 94 (Latin alphabet no.2) - Charactersets.Add("LATIN4" , 1257); // ISO 8859-4/ECMA 94 (Latin alphabet no.4) - Charactersets.Add("ISO_8859_7" , 1253); // ISO 8859-7/ECMA 118 (Latin/Greek) - Charactersets.Add("LATIN9" , "iso-8859-15"); // ISO 8859-15 (Latin alphabet no.9) - Charactersets.Add("KOI8" , "koi8-r"); // KOI8-R(U) - Charactersets.Add("WIN" , "windows-1251"); // Windows CP1251 - Charactersets.Add("WIN1256" , "windows-1256"); // Windows CP1256 (Arabic) - Charactersets.Add("WIN1256" , "windows-1256"); // Windows CP1256 (Arabic) - Charactersets.Add("WIN1256" , "windows-1258"); // TCVN-5712/Windows CP1258 (Vietnamese) - Charactersets.Add("WIN1256" , "windows-874"); // Windows CP874 (Thai) - } - - #endregion - - #region \xB7 Callbacks \xB7 - - public NotificationCallback Notification - { - get { return this.notification; } - set { this.notification = value; } - } - - public InfoMessageCallback InfoMessage - { - get { return this.infoMessage; } - set { this.infoMessage = value; } - } - - #endregion - - #region \xB7 Fields \xB7 - - private NotificationCallback notification; - private InfoMessageCallback infoMessage; - - private int handle; - private int secretKey; - private Hashtable parameterStatus; - private Socket socket; - private NetworkStream networkStream; - private SslStream secureStream; - private BinaryReader receive; - private BinaryWriter send; - private PgConnectionOptions options; - private Encoding encoding; - private char transactionStatus; - - #endregion - - #region \xB7 Properties \xB7 - - public int Handle - { - get { return this.handle; } - } - - public int SecretKey - { - get { return this.secretKey; } - } - - public Hashtable ParameterStatus - { - get - { - if (this.parameterStatus == null) - { - this.parameterStatus = Hashtable.Synchronized(new Hashtable()); - } - return this.parameterStatus; - } - } - - public PgConnectionOptions Options - { - get { return this.options; } - } - - public Encoding Encoding - { - get { return this.encoding; } - } - - #endregion - - #region \xB7 Internal Properties \xB7 - - internal SslStream SecureStream - { - get { return this.secureStream; } - } - - internal BinaryReader Receive - { - get { return this.receive; } - } - - internal BinaryWriter Send - { - get { return this.send; } - } - - #endregion - - #region \xB7 Constructors \xB7 - - public PgDbClient(string connectionString) - : this(new PgConnectionOptions(connectionString)) - { - } - - public PgDbClient(PgConnectionOptions options) - { - this.options = options; - this.encoding = Encoding.Default; - - GC.SuppressFinalize(this); - } - - #endregion - - #region \xB7 Database Methods \xB7 - - public void Connect() - { - try - { - PgDbClient.InitializeTypes(); - PgDbClient.InitializeCharSets(); - - this.InitializeSocket(); - - lock (this) - { - if (this.options.SSL) - { - // Send SSL request message - if (this.SslRequest()) - { - this.secureStream = new SslStream(this.networkStream, false); - - this.SecureStream.AuthenticateAsClient(this.options.DataSource); - - this.receive = new BinaryReader(this.SecureStream); - this.send = new BinaryWriter(this.SecureStream); - } - } - - // Send Startup message - PgOutputPacket packet = new PgOutputPacket(this.Encoding); - - packet.Write(PgCodes.PROTOCOL_VERSION3); - packet.WriteNullString("user"); - packet.WriteNullString(this.options.UserID); - - if (this.options.Database != null && this.options.Database.Length > 0) - { - packet.WriteNullString("database"); - packet.WriteNullString(this.options.Database); - } - - packet.WriteNullString("DateStyle"); - packet.WriteNullString(PgCodes.DATE_STYLE); - packet.Write((byte)0); // Terminator - - this.SendSimplePacket(packet); - - PgResponsePacket response = null; - - do - { - response = this.ReceiveResponsePacket(); - this.ProcessResponsePacket(response); - } - while (!response.IsReadyForQuery); - } - } - catch (IOException ex) - { - this.Detach(); - throw new PgClientException(ex.Message); - } - catch (PgClientException) - { - this.Detach(); - throw; - } - } - - public void Disconnect() - { - try - { - // Send packet to the server - PgOutputPacket packet = new PgOutputPacket(); - this.SendPacket(packet, PgFrontEndCodes.TERMINATE); - - this.Detach(); - } - catch (IOException ex) - { - throw new PgClientException(ex.Message); - } - catch (PgClientException) - { - throw; - } - } - - #endregion - - #region \xB7 Send Methods \xB7 - - internal void SendPacket(PgOutputPacket packet, char type) - { - this.Write(packet.GetPacketBytes(type)); - } - - internal void SendSimplePacket(PgOutputPacket packet) - { - this.Write(packet.GetSimplePacketBytes()); - } - - private void Write(byte[] buffer) - { - this.Write(buffer, 0, buffer.Length); - } - - private void Write(byte[] buffer, int index, int count) - { - try - { - this.send.Write(buffer, index, count); - this.send.Flush(); - } - catch (IOException) - { - throw; - } - } - - #endregion - - #region \xB7 Response Methods \xB7 - - public PgResponsePacket ReceiveResponsePacket() - { - PgResponsePacket responsePacket = null; - - lock (this) - { - responsePacket = this.ReceiveStandardPacket(); - - switch (responsePacket.Message) - { - case PgBackendCodes.ERROR_RESPONSE: - // Read the error message and trow the exception - PgClientException ex = this.ProcessErrorPacket(responsePacket); - - // Perform a sync - this.Sync(); - - // Throw the PostgreSQL exception - throw ex; - - case PgBackendCodes.NOTICE_RESPONSE: - // Read the notice message and raise an InfoMessage event - this.InfoMessage(this.ProcessErrorPacket(responsePacket)); - break; - - case PgBackendCodes.NOTIFICATION_RESPONSE: - this.ProcessNotificationResponse(responsePacket); - break; - } - } - - return responsePacket; - } - - private PgResponsePacket ReceiveStandardPacket() - { - PgResponsePacket responsePacket = null; - - try - { - char type = this.receive.ReadChar(); - int length = IPAddress.HostToNetworkOrder(this.receive.ReadInt32()) - 4; - - // Read the message data - byte[] buffer = new byte[length]; - int received = 0; - - while (received < length) - { - received += this.receive.Read(buffer, received, length - received); - } - - responsePacket = new PgResponsePacket(type, this.Encoding, buffer); - } - catch (IOException) - { - throw; - } - - return responsePacket; - } - - private void ProcessResponsePacket(PgResponsePacket packet) - { - switch (packet.Message) - { - case PgBackendCodes.AUTHENTICATION: - this.ProcessAuthPacket(packet); - break; - - case PgBackendCodes.PARAMETER_STATUS: - this.ProcessParameterStatus(packet); - break; - - case PgBackendCodes.READY_FOR_QUERY: - this.transactionStatus = packet.ReadChar(); - break; - - case PgBackendCodes.BACKEND_KEY_DATA: - // BackendKeyData - this.handle = packet.ReadInt32(); - this.secretKey = packet.ReadInt32(); - break; - } - } - - private void ProcessParameterStatus(PgResponsePacket packet) - { - string parameterName = packet.ReadNullString(); - string parameterValue = packet.ReadNullString(); - - this.ParameterStatus.Add(parameterName, parameterValue); - - switch (parameterName) - { - case "client_encoding": - this.encoding = Charactersets[parameterValue].Encoding; - break; - } - } - - private void ProcessAuthPacket(PgResponsePacket packet) - { - // Authentication response - int authType = packet.ReadInt32(); - - PgOutputPacket outPacket = new PgOutputPacket(this.Encoding); - - switch (authType) - { - case PgCodes.AUTH_OK: - // Authentication successful - return; - - case PgCodes.AUTH_KERBEROS_V4: - // Kerberos V4 authentication is required - break; - - case PgCodes.AUTH_KERBEROS_V5: - // Kerberos V5 authentication is required - break; - - case PgCodes.AUTH_CLEARTEXT_PASSWORD: - // Cleartext password is required - outPacket.WriteNullString(this.options.Password); - break; - - case PgCodes.AUTH_CRYPT_PASSWORD: - // crypt()-encrypted password is required - break; - - case PgCodes.AUTH_MD5_PASSWORD: - // MD5-encrypted password is required - - // First read salt to use when encrypting the password - byte[] salt = packet.ReadBytes(4); - - // Second calculate md5 of password + user - string userHash = MD5Authentication.GetMD5Hash( - this.Encoding.GetBytes(this.options.UserID), this.options.Password); - - // Third calculate real MD5 hash - string hash = MD5Authentication.GetMD5Hash(salt, userHash); - - // Finally write the md5 hash to the packet - outPacket.WriteNullString(PgCodes.MD5_PREFIX + hash); - break; - - case PgCodes.AUTH_SCM_CREDENTIAL: - // SCM credentials message is required - break; - } - - // Send the packet to the server - this.SendPacket(outPacket, PgFrontEndCodes.PASSWORD_MESSAGE); - } - - private PgClientException ProcessErrorPacket(PgResponsePacket packet) - { - char type = ' '; - PgClientError error = new PgClientError(); - - while (type != PgErrorCodes.END) - { - type = packet.ReadChar(); - switch (type) - { - case PgErrorCodes.SEVERITY: - error.Severity = packet.ReadNullString(); - break; - - case PgErrorCodes.CODE: - error.Code = packet.ReadNullString(); - break; - - case PgErrorCodes.MESSAGE: - error.Message = packet.ReadNullString(); - break; - - case PgErrorCodes.DETAIL: - error.Detail = packet.ReadNullString(); - break; - - case PgErrorCodes.HINT: - error.Hint = packet.ReadNullString(); - break; - - case PgErrorCodes.POSITION: - error.Position = packet.ReadNullString(); - break; - - case PgErrorCodes.WHERE: - error.Where = packet.ReadNullString(); - break; - - case PgErrorCodes.FILE: - error.File = packet.ReadNullString(); - break; - - case PgErrorCodes.LINE: - error.Line = Convert.ToInt32(packet.ReadNullString()); - break; - - case PgErrorCodes.ROUTINE: - error.Routine = packet.ReadNullString(); - break; - } - } - - PgClientException exception = new PgClientException(error.Message); - - exception.Errors.Add(error); - - return exception; - } - - private void ProcessNotificationResponse(PgResponsePacket packet) - { - int processID = packet.ReadInt32(); - string condition = packet.ReadNullString(); - string additional = packet.ReadNullString(); - - if (this.Notification != null) - { - this.Notification(processID, condition, additional); - } - } - - #endregion - - #region \xB7 Transaction Methods \xB7 - - public void BeginTransaction(IsolationLevel isolationLevel) - { - string sql = "START TRANSACTION ISOLATION LEVEL "; - - switch (isolationLevel) - { - case IsolationLevel.ReadCommitted: - sql += "READ COMMITTED"; - break; - - case IsolationLevel.ReadUncommitted: - throw new NotSupportedException("Read uncommitted transaction isolation is not supported"); - - case IsolationLevel.RepeatableRead: - throw new NotSupportedException("Repeatable read transaction isolation is not supported"); - - case IsolationLevel.Serializable: - sql += "SERIALIZABLE"; - break; - } - - PgStatement stmt = CreateStatement(sql); - stmt.Query(); - - if (stmt.Tag != "START TRANSACTION") - { - throw new PgClientException("A transaction is currently active. Parallel transactions are not supported."); - } - - this.transactionStatus = stmt.TransactionStatus; - } - - public void CommitTransaction() - { - PgStatement stmt = CreateStatement("COMMIT TRANSACTION"); - stmt.Query(); - - if (stmt.Tag != "COMMIT") - { - throw new PgClientException("There are no transaction for commit."); - } - - this.transactionStatus = stmt.TransactionStatus; - } - - public void RollbackTransction() - { - PgStatement stmt = CreateStatement("ROLLBACK TRANSACTION"); - stmt.Query(); - - if (stmt.Tag != "ROLLBACK") - { - throw new PgClientException("There are no transaction for rollback."); - } - - this.transactionStatus = stmt.TransactionStatus; - } - - #endregion - - #region \xB7 Client Methods \xB7 - - public void Flush() - { - lock (this) - { - try - { - PgOutputPacket packet = new PgOutputPacket(this.Encoding); - - // Send packet to the server - this.SendPacket(packet, PgFrontEndCodes.FLUSH); - } - catch (Exception) - { - throw; - } - } - } - - public void Sync() - { - lock (this) - { - try - { - PgOutputPacket packet = new PgOutputPacket(this.Encoding); - - // Send packet to the server - this.SendPacket(packet, PgFrontEndCodes.SYNC); - - // Receive response - PgResponsePacket response = null; - - do - { - response = this.ReceiveResponsePacket(); - this.ProcessResponsePacket(response); - } - while (!response.IsReadyForQuery); - } - catch - { - PgResponsePacket response = null; - - do - { - response = this.ReceiveResponsePacket(); - this.ProcessResponsePacket(response); - } - while (!response.IsReadyForQuery); - - throw; - } - } - } - - public void CancelRequest() - { - lock (this) - { - try - { - PgOutputPacket packet = new PgOutputPacket(); - - packet.Write((int)16); - packet.Write(PgCodes.CANCEL_REQUEST); - packet.Write(this.Handle); - packet.Write(this.SecretKey); - - // Send packet to the server - this.SendSimplePacket(packet); - } - catch (Exception) - { - throw; - } - } - } - - public bool SslRequest() - { - bool sslAvailable = false; - - lock (this) - { - try - { - PgOutputPacket packet = new PgOutputPacket(); - - packet.Write(PgCodes.SSL_REQUEST); - - // Send packet to the server - this.SendSimplePacket(packet); - - // Receive server response - switch (Convert.ToChar(this.networkStream.ReadByte())) - { - case 'S': - sslAvailable = true; - break; - - default: - sslAvailable = false; - break; - } - } - catch - { - throw; - } - } - - return sslAvailable; - } - - #endregion - - #region \xB7 Methods \xB7 - - public void SendInfoMessage(PgClientException exception) - { - if (this.InfoMessage != null) - { - this.InfoMessage(exception); - } - } - - public PgStatement CreateStatement() - { - return new PgStatement(this); - } - - public PgStatement CreateStatement(string stmtText) - { - return new PgStatement(this, stmtText); - } - - public PgStatement CreateStatement(string parseName, string portalName) - { - return new PgStatement(this, parseName, portalName); - } - - public PgStatement CreateStatement(string parseName, string portalName, string stmtText) - { - return new PgStatement(this, parseName, portalName, stmtText); - } - - #endregion - - #region \xB7 Private Methods \xB7 - - private void InitializeSocket() - { - IPAddress hostadd = Dns.GetHostEntry(this.options.DataSource).AddressList[0]; - - this.socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); - - // Set Receive Buffer size. - this.socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveBuffer, this.options.PacketSize); - - // Set Send Buffer size. - this.socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendBuffer, this.options.PacketSize); - - // Disables the Nagle algorithm for send coalescing. - this.socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.NoDelay, 1); - - // Make the socket to connect to the Server - this.socket.Connect(new IPEndPoint(hostadd, this.options.PortNumber)); - this.networkStream = new NetworkStream(socket, true); - - // Create objects for read & write - this.receive = new BinaryReader(new BufferedStream(this.networkStream)); - this.send = new BinaryWriter(new BufferedStream(this.networkStream)); - - // The socket and stream shouldn't be automatically collected by the GC - GC.SuppressFinalize(this.socket); - GC.SuppressFinalize(this.networkStream); - GC.SuppressFinalize(this.receive); - GC.SuppressFinalize(this.send); - } - - private void Detach() - { - // Close streams - if (this.secureStream != null) - { - try - { - this.secureStream.Close(); - } - catch - { - } - } - if (this.networkStream != null) - { - this.networkStream.Close(); - } - if (this.socket != null) - { - this.socket.Close(); - } - } - - #endregion - } -} Modified: pgsqlclient/source/PostgreSql/Data/Protocol/PgOutputPacket.cs =================================================================== --- pgsqlclient/source/PostgreSql/Data/Protocol/PgOutputPacket.cs 2006-03-13 21:42:55 UTC (rev 22) +++ pgsqlclient/source/PostgreSql/Data/Protocol/PgOutputPacket.cs 2006-03-13 21:45:11 UTC (rev 23) @@ -271,7 +271,7 @@ System.Array array = (System.Array)parameter.Value; // Get array elements type info - PgType elementType = PgDbClient.DataTypes[parameter.DataType.ElementType]; + PgType elementType = PgDatabase.DataTypes[parameter.DataType.ElementType]; size = elementType.Size; // Create a new packet for write array parameter information Modified: pgsqlclient/source/PostgreSql/Data/Protocol/PgParameter.cs =================================================================== --- pgsqlclient/source/PostgreSql/Data/Protocol/PgParameter.cs 2006-03-13 21:42:55 UTC (rev 22) +++ pgsqlclient/source/PostgreSql/Data/Protocol/PgParameter.cs 2006-03-13 21:45:11 UTC (rev 23) @@ -52,7 +52,7 @@ public PgParameter(int dataType) { - this.dataType = PgDbClient.DataTypes[dataType]; + this.dataType = PgDatabase.DataTypes[dataType]; } public PgParameter(int dataType, object data) : this(dataType) Modified: pgsqlclient/source/PostgreSql/Data/Protocol/PgResponsePacket.cs =================================================================== --- pgsqlclient/source/PostgreSql/Data/Protocol/PgResponsePacket.cs 2006-03-13 21:42:55 UTC (rev 22) +++ pgsqlclient/source/PostgreSql/Data/Protocol/PgResponsePacket.cs 2006-03-13 21:45:11 UTC (rev 23) @@ -283,7 +283,7 @@ } // Read array element type - PgType elementType = PgDbClient.DataTypes[this.ReadInt32()]; + PgType elementType = PgDatabase.DataTypes[this.ReadInt32()]; // Read array lengths and lower bounds for (int i = 0; i < dimensions; i++) @@ -306,7 +306,7 @@ public Array ReadVector(PgType type, int length) { - PgType elementType = PgDbClient.DataTypes[type.ElementType]; + PgType elementType = PgDatabase.DataTypes[type.ElementType]; Array data = null; data = Array.CreateInstance(elementType.SystemType, PgCodes.INDEX_MAX_KEYS); @@ -592,7 +592,7 @@ private Array ReadStringArray(PgType type, int length) { - PgType elementType = PgDbClient.DataTypes[type.ElementType]; + PgType elementType = PgDatabase.DataTypes[type.ElementType]; Array data = null; string contents = ReadString(length); Modified: pgsqlclient/source/PostgreSql/Data/Protocol/PgStatement.cs =================================================================== --- pgsqlclient/source/PostgreSql/Data/Protocol/PgStatement.cs 2006-03-13 21:42:55 UTC (rev 22) +++ pgsqlclient/source/PostgreSql/Data/Protocol/PgStatement.cs 2006-03-13 21:45:11 UTC (rev 23) @@ -26,8 +26,7 @@ { #region \xB7 Fields \xB7 - private PgDbClient db; - + private PgDatabase db; private string stmtText; private bool hasRows; private string tag; @@ -49,7 +48,7 @@ #region \xB7 Properties \xB7 - public PgDbClient DbHandle + public PgDatabase DbHandle { get { return this.db; } set { this.db = value; } @@ -127,15 +126,18 @@ { } - public PgStatement(PgDbClient db) : this(db, null, null) + public PgStatement(PgDatabase db) + : this(db, null, null) { } - public PgStatement(PgDbClient db, string parseName, string portalName) : this(db, parseName, portalName, null) + public PgStatement(PgDatabase db, string parseName, string portalName) + : this(db, parseName, portalName, null) { } - public PgStatement(PgDbClient db, string stmtText) : this(db, null, null, stmtText) + public PgStatement(PgDatabase db, string stmtText) + : this(db, null, null, stmtText) { } @@ -143,7 +145,7 @@ { } - public PgStatement(PgDbClient db, string parseName, string portalName, string stmtText) + public PgStatement(PgDatabase db, string parseName, string portalName, string stmtText) { this.db = db; this.outParameter = new PgParameter(); @@ -698,7 +700,7 @@ this.rowDescriptor.Fields[i].FieldName = packet.ReadNullString(); this.rowDescriptor.Fields[i].OidTable = packet.ReadInt32(); this.rowDescriptor.Fields[i].OidNumber = packet.ReadInt16(); - this.rowDescriptor.Fields[i].DataType = PgDbClient.DataTypes[packet.ReadInt32()]; + this.rowDescriptor.Fields[i].DataType = PgDatabase.DataTypes[packet.ReadInt32()]; this.rowDescriptor.Fields[i].DataTypeSize = packet.ReadInt16(); this.rowDescriptor.Fields[i].TypeModifier = packet.ReadInt32(); this.rowDescriptor.Fields[i].FormatCode = (PgTypeFormat)packet.ReadInt16(); Modified: pgsqlclient/source/PostgreSql/Data/Protocol/PgType.cs =================================================================== --- pgsqlclient/source/PostgreSql/Data/Protocol/PgType.cs 2006-03-13 21:42:55 UTC (rev 22) +++ pgsqlclient/source/PostgreSql/Data/Protocol/PgType.cs 2006-03-13 21:45:11 UTC (rev 23) @@ -62,9 +62,9 @@ { int type = elementType; - while (PgDbClient.DataTypes[type].DataType == PgDataType.Array) + while (PgDatabase.DataTypes[type].DataType == PgDataType.Array) { - type = PgDbClient.DataTypes[type].ElementType; + type = PgDatabase.DataTypes[type].ElementType; } return type; Modified: pgsqlclient/source/PostgreSql.Data.PostgreSqlClient.suo =================================================================== (Binary files differ) Modified: pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.csproj =================================================================== --- pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.csproj 2006-03-13 21:42:55 UTC (rev 22) +++ pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.csproj 2006-03-13 21:45:11 UTC (rev 23) @@ -11,8 +11,7 @@ <AssemblyKeyContainerName> </AssemblyKeyContainerName> <AssemblyName>SecureSocketLayer</AssemblyName> - <AssemblyOriginatorKeyFile> - </AssemblyOriginatorKeyFile> + <AssemblyOriginatorKeyFile>SecureSocketLayer.snk</AssemblyOriginatorKeyFile> <DefaultClientScript>JScript</DefaultClientScript> <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout> <DefaultTargetSchema>IE50</DefaultTargetSchema> @@ -26,6 +25,7 @@ </FileUpgradeFlags> <UpgradeBackupLocation> </UpgradeBackupLocation> + <SignAssembly>true</SignAssembly> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <OutputPath>bin\Debug\</OutputPath>... [truncated message content] |
From: <car...@us...> - 2006-03-13 21:43:07
|
Revision: 22 Author: carlosga_fb Date: 2006-03-13 13:42:55 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=22&view=rev Log Message: ----------- Added Paths: ----------- pgsqlclient/source/PostgreSql/Data/Properties/ pgsqlclient/source/PostgreSql/Data/Properties/AssemblyInfo.cs pgsqlclient/source/PostgreSql/Data/Properties/Resources.Designer.cs pgsqlclient/source/PostgreSql/Data/Properties/Resources.resx pgsqlclient/source/PostgreSql/Data/Properties/Settings.Designer.cs pgsqlclient/source/PostgreSql/Data/Properties/Settings.settings Added: pgsqlclient/source/PostgreSql/Data/Properties/AssemblyInfo.cs =================================================================== --- pgsqlclient/source/PostgreSql/Data/Properties/AssemblyInfo.cs (rev 0) +++ pgsqlclient/source/PostgreSql/Data/Properties/AssemblyInfo.cs 2006-03-13 21:42:55 UTC (rev 22) @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("PgSqlClient")] +[assembly: AssemblyDescription("ADO.NET Data Provider for PostgreSql 7.4+")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany(".")] +[assembly: AssemblyProduct("PgSqlClient")] +[assembly: AssemblyCopyright("2003-2006, Carlos Guzmán Álvarez")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("34262d7b-11f5-46ab-9004-574a5c63e2ea")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("2")] +[assembly: AssemblyFileVersion("2")] Added: pgsqlclient/source/PostgreSql/Data/Properties/Resources.Designer.cs =================================================================== --- pgsqlclient/source/PostgreSql/Data/Properties/Resources.Designer.cs (rev 0) +++ pgsqlclient/source/PostgreSql/Data/Properties/Resources.Designer.cs 2006-03-13 21:42:55 UTC (rev 22) @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:2.0.50727.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace PostgreSql.Data.Properties { + using System; + + + /// <summary> + /// A strongly-typed resource class, for looking up localized strings, etc. + /// </summary> + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// <summary> + /// Returns the cached ResourceManager instance used by this class. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PostgreSql.Data.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// <summary> + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} Added: pgsqlclient/source/PostgreSql/Data/Properties/Resources.resx =================================================================== --- pgsqlclient/source/PostgreSql/Data/Properties/Resources.resx (rev 0) +++ pgsqlclient/source/PostgreSql/Data/Properties/Resources.resx 2006-03-13 21:42:55 UTC (rev 22) @@ -0,0 +1,101 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 1.3 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">1.3</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1">this is my long string</data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + [base64 mime encoded serialized .NET Framework object] + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + [base64 mime encoded string representing a byte array form of the .NET Framework object] + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>1.3</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> \ No newline at end of file Added: pgsqlclient/source/PostgreSql/Data/Properties/Settings.Designer.cs =================================================================== --- pgsqlclient/source/PostgreSql/Data/Properties/Settings.Designer.cs (rev 0) +++ pgsqlclient/source/PostgreSql/Data/Properties/Settings.Designer.cs 2006-03-13 21:42:55 UTC (rev 22) @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:2.0.50727.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace PostgreSql.Data.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} Added: pgsqlclient/source/PostgreSql/Data/Properties/Settings.settings =================================================================== --- pgsqlclient/source/PostgreSql/Data/Properties/Settings.settings (rev 0) +++ pgsqlclient/source/PostgreSql/Data/Properties/Settings.settings 2006-03-13 21:42:55 UTC (rev 22) @@ -0,0 +1,6 @@ +<?xml version='1.0' encoding='utf-8'?> +<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"> + <Profiles> + <Profile Name="(Default)" /> + </Profiles> +</SettingsFile> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-03-13 21:40:09
|
Revision: 21 Author: carlosga_fb Date: 2006-03-13 13:40:00 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=21&view=rev Log Message: ----------- Added keypair for the SecureSocketLayer assembly Added Paths: ----------- pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.snk Added: pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.snk =================================================================== (Binary files differ) Property changes on: pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.snk ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-03-13 21:39:25
|
Revision: 20 Author: carlosga_fb Date: 2006-03-13 13:39:12 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=20&view=rev Log Message: ----------- Added AssemblyInfo Added Paths: ----------- pgsqlclient/source/SecureSocketLayer/Properties/AssemblyInfo.cs Added: pgsqlclient/source/SecureSocketLayer/Properties/AssemblyInfo.cs =================================================================== --- pgsqlclient/source/SecureSocketLayer/Properties/AssemblyInfo.cs (rev 0) +++ pgsqlclient/source/SecureSocketLayer/Properties/AssemblyInfo.cs 2006-03-13 21:39:12 UTC (rev 20) @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("SecureSocketLayer")] +[assembly: AssemblyDescription("Native .NET SSL and TLS protocol Implementation")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany(".")] +[assembly: AssemblyProduct("SecureSocketLayer.Properties")] +[assembly: AssemblyCopyright("2005-2006, Carlos Guzmán Álvarez")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("7168a8f8-4621-40ae-bc10-63f73830f5d5")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("2")] +[assembly: AssemblyFileVersion("2")] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-03-13 15:33:40
|
Revision: 19 Author: carlosga_fb Date: 2006-03-13 07:33:13 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=19&view=rev Log Message: ----------- Changes on the Secure Socket Layer implementation for better handling of Server Certificates. Implementation of Server Certificate Validation Callback and Client Certificate Selection Callback Modified Paths: -------------- pgsqlclient/source/PostgreSql.Data.PostgreSqlClient.suo pgsqlclient/source/SecureSocketLayer/Net/Security/LocalCertificateSelectionCallback.cs pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Common/ISecureFactory.cs pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Common/IX509ChainValidator.cs pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Common/SecureSession.cs pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Common/X509ChainValidator.cs pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Ssl/Client/SslClientFactory.cs pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Tls/Client/TlsClientFactory.cs pgsqlclient/source/SecureSocketLayer/Net/Security/RemoteCertificateValidationCallback.cs pgsqlclient/source/SecureSocketLayer/Net/Security/SslStream.cs pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.csproj.user pgsqlclient/source/SecureSocketLayerTest/Program.cs Modified: pgsqlclient/source/PostgreSql.Data.PostgreSqlClient.suo =================================================================== (Binary files differ) Modified: pgsqlclient/source/SecureSocketLayer/Net/Security/LocalCertificateSelectionCallback.cs =================================================================== --- pgsqlclient/source/SecureSocketLayer/Net/Security/LocalCertificateSelectionCallback.cs 2006-03-13 13:25:41 UTC (rev 18) +++ pgsqlclient/source/SecureSocketLayer/Net/Security/LocalCertificateSelectionCallback.cs 2006-03-13 15:33:13 UTC (rev 19) @@ -32,8 +32,8 @@ public delegate X509Certificate LocalCertificateSelectionCallback( object sender, string targetHost, - X509CertificateCollection localCertificates, - X509Certificate localCertificate, + X509CertificateCollection localCertificates, + X509Certificate remoteCertificate, string[] acceptableIssuers); } Modified: pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Common/ISecureFactory.cs =================================================================== --- pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Common/ISecureFactory.cs 2006-03-13 13:25:41 UTC (rev 18) +++ pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Common/ISecureFactory.cs 2006-03-13 15:33:13 UTC (rev 19) @@ -25,6 +25,8 @@ #if NET_2_0 using System; +using System.Security.Authentication; +using System.Security.Cryptography.X509Certificates; namespace SecureSocketLayer.Net.Security.Providers.Common { @@ -48,7 +50,7 @@ IRecordEncryptor CreateRecordEncryptor(SecureSession session); IRecordDecryptor CreateRecordDecryptor(SecureSession session); IRecordMACManager CreateMACManager(SecureSession session); - IX509ChainValidator CreateX509ChainValidator(); + IX509ChainValidator CreateX509ChainValidator(X509Chain chain, ExchangeAlgorithmType exchangeAlgorithmType); #endregion } Modified: pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Common/IX509ChainValidator.cs =================================================================== --- pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Common/IX509ChainValidator.cs 2006-03-13 13:25:41 UTC (rev 18) +++ pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Common/IX509ChainValidator.cs 2006-03-13 15:33:13 UTC (rev 19) @@ -33,7 +33,7 @@ { #region \xB7 Methods \xB7 - SslPolicyErrors Validate(X509CertificateCollection certificates, CipherSuite cipherSuite, string targetHost); + SslPolicyErrors Validate(X509CertificateCollection certificates, string targetHost); #endregion } Modified: pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Common/SecureSession.cs =================================================================== --- pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Common/SecureSession.cs 2006-03-13 13:25:41 UTC (rev 18) +++ pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Common/SecureSession.cs 2006-03-13 15:33:13 UTC (rev 19) @@ -36,23 +36,23 @@ { #region \xB7 Callback Fields \xB7 - private RemoteCertificateValidationCallback serverCertValidation; - private LocalCertificateSelectionCallback clientCertSelection; + private RemoteCertificateValidationCallback userCertificateValidationCallback; + private LocalCertificateSelectionCallback userCertificateSelectionCallback; #endregion #region \xB7 Callback Properties \xB7 - public RemoteCertificateValidationCallback ServerCertValidation + public RemoteCertificateValidationCallback UserCertificateValidationCallback { - get { return this.serverCertValidation; } - set { this.serverCertValidation = value; } + get { return this.userCertificateValidationCallback; } + set { this.userCertificateValidationCallback = value; } } - public LocalCertificateSelectionCallback ClientCertSelection + public LocalCertificateSelectionCallback UserCertificateSelectionCallback { - get { return this.clientCertSelection; } - set { this.clientCertSelection = value; } + get { return this.userCertificateSelectionCallback; } + set { this.userCertificateSelectionCallback = value; } } #endregion @@ -81,7 +81,8 @@ private Stream outputStream; private X509CertificateCollection remoteCertificates; private X509CertificateCollection localCertificates; - private X509Certificate clientCertificate; + private X509Certificate clientCertificate; + private X509Chain remoteCertificateChain; private RSAParameters rsaParameters; private MemoryStreamEx handshakeMessages; @@ -503,33 +504,60 @@ private void RemoteCertificateReceived(X509Certificate certificate) { + if (this.remoteCertificateChain == null) + { + this.remoteCertificateChain = new X509Chain(); + + try + { + this.remoteCertificateChain.Build(new X509Certificate2(certificate)); + } + catch + { + this.remoteCertificateChain.Reset(); + } + } + this.RemoteCertificates.Add(certificate); } private void ReceivedRemoteCertificateChain() { - IX509ChainValidator validator = this.secureFactory.CreateX509ChainValidator(); + SslPolicyErrors errors = SslPolicyErrors.None; - SslPolicyErrors errors = validator.Validate(this.RemoteCertificates, this.CipherSuite, this.TargetHost); + if (this.remoteCertificateChain.ChainElements.Count > 0) + { + IX509ChainValidator validator = this.secureFactory.CreateX509ChainValidator( + this.remoteCertificateChain, + this.CipherSuite.ExchangeAlgorithmType); -#warning Build the X509Chain + errors |= validator.Validate(this.RemoteCertificates, this.TargetHost); + } + else + { + errors |= SslPolicyErrors.RemoteCertificateChainErrors; + } - if (!this.ServerCertValidation(this, this.RemoteCertificates[0], null, errors)) - { - throw new SecureException("Invalid certificate received form server."); - } + if (this.UserCertificateValidationCallback != null) + { + if (!this.UserCertificateValidationCallback(this, this.RemoteCertificates[0], this.remoteCertificateChain, errors)) + { + throw new SecureException("The remote certificate is invalid according to the validation procedure."); + } + } + else + { + if (errors != SslPolicyErrors.None) + { + throw new SecureException("The remote certificate is invalid according to the validation procedure."); + } + } } private void ClientCertificateSelected(X509Certificate certificate) - { - this.clientCertificate = certificate; - - this.clientCertificate = this.ClientCertSelection( - this, - this.TargetHost, - this.LocalCertificates, - this.ClientCertificate, - null); + { + this.clientCertificate = this.UserCertificateSelectionCallback( + this, this.TargetHost, this.LocalCertificates, this.RemoteCertificates[0], null); if (this.clientCertificate == null) { Modified: pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Common/X509ChainValidator.cs =================================================================== --- pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Common/X509ChainValidator.cs 2006-03-13 13:25:41 UTC (rev 18) +++ pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Common/X509ChainValidator.cs 2006-03-13 15:33:13 UTC (rev 19) @@ -33,18 +33,27 @@ namespace SecureSocketLayer.Net.Security.Providers.Common { internal sealed class X509ChainValidator : IX509ChainValidator - { - #region \xB7 Constructors \xB7 + { + #region \xB7 Fields \xB7 - public X509ChainValidator() + private X509Chain certificateChain; + private ExchangeAlgorithmType exchangeAlgorithmType; + + #endregion + + #region \xB7 Constructors \xB7 + + public X509ChainValidator(X509Chain certificateChain, ExchangeAlgorithmType exchangeAlgorithmType) { + this.certificateChain = certificateChain; + this.exchangeAlgorithmType = exchangeAlgorithmType; } #endregion #region \xB7 IX509ChainValidator Methods \xB7 - public SslPolicyErrors Validate(X509CertificateCollection certificates, CipherSuite cipherSuite, string targetHost) + public SslPolicyErrors Validate(X509CertificateCollection certificates, string targetHost) { SslPolicyErrors errors = SslPolicyErrors.None; @@ -54,7 +63,7 @@ // SSL specific check - not all certificates can be // used to server-side SSL some rules applies after // all ;-) - if (!this.CheckCertificateUsage(leaf, cipherSuite)) + if (!this.CheckCertificateUsage(leaf)) { // WinError.h CERT_E_PURPOSE 0x800B0106 errors |= SslPolicyErrors.RemoteCertificateChainErrors; @@ -68,36 +77,6 @@ errors |= SslPolicyErrors.RemoteCertificateNameMismatch; } - // Note: building and verifying a chain can take much time - // so we do it last(letting simple things fails first) - - // Note: In TLS the certificates MUST be in order(and - // optionally include the root certificate) so we're not - // building the chain using LoadCertificate(it's faster) - - // Note: IIS doesn't seem to send the whole certificate chain - // but only the server certificate :- ( it's assuming that you - // already have this chain installed on your computer. duh! - // http://groups.google.ca/groups?q=IIS+server+certificate+chain&hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=85058s%24avd%241%40nnrp1.deja.com&rnum=3 - - X509Chain certificateChain = new X509Chain(); - - bool result = false; - - try - { - certificateChain.Build(leaf); - } - catch (Exception) - { - result = false; - } - - if (!result) - { - errors |= SslPolicyErrors.RemoteCertificateChainErrors; - } - return errors; } @@ -107,7 +86,7 @@ // Note: this method only works for RSA certificates // DH certificates requires some changes - does anyone use one ? - private bool CheckCertificateUsage(X509Certificate2 cert, CipherSuite cipherSuite) + private bool CheckCertificateUsage(X509Certificate2 cert) { // certificate extensions are required for this // we "must" accept older certificates without proofs @@ -118,7 +97,7 @@ X509KeyUsageFlags ku = X509KeyUsageFlags.None; - switch (cipherSuite.ExchangeAlgorithmType) + switch (this.exchangeAlgorithmType) { case ExchangeAlgorithmType.RsaSign: ku = X509KeyUsageFlags.DigitalSignature; Modified: pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Ssl/Client/SslClientFactory.cs =================================================================== --- pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Ssl/Client/SslClientFactory.cs 2006-03-13 13:25:41 UTC (rev 18) +++ pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Ssl/Client/SslClientFactory.cs 2006-03-13 15:33:13 UTC (rev 19) @@ -25,9 +25,10 @@ #if NET_2_0 using System; +using System.Security.Authentication; +using System.Security.Cryptography.X509Certificates; using SecureSocketLayer.Net.Security.Providers.Common; using SecureSocketLayer.Net.Security.Providers.Common.Client; -using System.Security.Authentication; namespace SecureSocketLayer.Net.Security.Providers.Ssl.Client { @@ -120,9 +121,9 @@ return new SslClientRecordMACManager(session); } - public IX509ChainValidator CreateX509ChainValidator() + public IX509ChainValidator CreateX509ChainValidator(X509Chain cerficateChain, ExchangeAlgorithmType exchangeAlgorithmType) { - return new X509ChainValidator(); + return new X509ChainValidator(cerficateChain, exchangeAlgorithmType); } #endregion Modified: pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Tls/Client/TlsClientFactory.cs =================================================================== --- pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Tls/Client/TlsClientFactory.cs 2006-03-13 13:25:41 UTC (rev 18) +++ pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Tls/Client/TlsClientFactory.cs 2006-03-13 15:33:13 UTC (rev 19) @@ -25,9 +25,10 @@ #if NET_2_0 using System; +using System.Security.Authentication; +using System.Security.Cryptography.X509Certificates; using SecureSocketLayer.Net.Security.Providers.Common; using SecureSocketLayer.Net.Security.Providers.Common.Client; -using System.Security.Authentication; namespace SecureSocketLayer.Net.Security.Providers.Tls.Client { @@ -120,9 +121,9 @@ return new TlsClientRecordMACManager(session); } - public IX509ChainValidator CreateX509ChainValidator() + public IX509ChainValidator CreateX509ChainValidator(X509Chain cerficateChain, ExchangeAlgorithmType exchangeAlgorithmType) { - return new X509ChainValidator(); + return new X509ChainValidator(cerficateChain, exchangeAlgorithmType); } #endregion Modified: pgsqlclient/source/SecureSocketLayer/Net/Security/RemoteCertificateValidationCallback.cs =================================================================== --- pgsqlclient/source/SecureSocketLayer/Net/Security/RemoteCertificateValidationCallback.cs 2006-03-13 13:25:41 UTC (rev 18) +++ pgsqlclient/source/SecureSocketLayer/Net/Security/RemoteCertificateValidationCallback.cs 2006-03-13 15:33:13 UTC (rev 19) @@ -30,10 +30,7 @@ namespace SecureSocketLayer.Net.Security { public delegate bool RemoteCertificateValidationCallback( - object sender, - X509Certificate certificate, - System.Security.Cryptography.X509Certificates.X509Chain chain, - SslPolicyErrors sslPolicyErrors); + object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors); } #endif Modified: pgsqlclient/source/SecureSocketLayer/Net/Security/SslStream.cs =================================================================== --- pgsqlclient/source/SecureSocketLayer/Net/Security/SslStream.cs 2006-03-13 13:25:41 UTC (rev 18) +++ pgsqlclient/source/SecureSocketLayer/Net/Security/SslStream.cs 2006-03-13 15:33:13 UTC (rev 19) @@ -38,8 +38,8 @@ { #region · Callback Fields · - private RemoteCertificateValidationCallback certValidationCallback; - private LocalCertificateSelectionCallback certSelectionCallback; + private RemoteCertificateValidationCallback userCertificateValidationCallback; + private LocalCertificateSelectionCallback userCertificateSelectionCallback; #endregion @@ -51,7 +51,7 @@ private object read; private object write; private bool disposed; - private object negotiate; + private object syncObject; #endregion @@ -289,12 +289,19 @@ { } - public SslStream(Stream innerStream, bool leaveStreamOpen, RemoteCertificateValidationCallback certValidationCallback) - : this(innerStream, leaveStreamOpen, certValidationCallback, null) + public SslStream( + Stream innerStream, + bool leaveStreamOpen, + RemoteCertificateValidationCallback userCertificateValidationCallback) + : this(innerStream, leaveStreamOpen, userCertificateValidationCallback, null) { } - public SslStream(Stream innerStream, bool leaveStreamOpen, RemoteCertificateValidationCallback certValidationCallback, LocalCertificateSelectionCallback certSelectionCallback) + public SslStream( + Stream innerStream, + bool leaveStreamOpen, + RemoteCertificateValidationCallback userCertificateValidationCallback, + LocalCertificateSelectionCallback userCertificateSelectionCallback) : base(innerStream, leaveStreamOpen) { if (innerStream == null) @@ -307,11 +314,13 @@ throw new ArgumentNullException("stream is not both readable and writable."); } - this.innerStream = innerStream; - this.certValidationCallback = certValidationCallback; - this.certSelectionCallback = certSelectionCallback; - this.read = new object(); - this.write = new object(); + this.userCertificateValidationCallback = userCertificateValidationCallback; + this.userCertificateSelectionCallback = userCertificateSelectionCallback; + + this.innerStream = innerStream; + this.read = new object(); + this.write = new object(); + this.syncObject = new object(); } #endregion @@ -330,9 +339,11 @@ // Note: Async code may have problem if they can't ensure that // the Negotiate phase isn't done during a read operation. // System.Net.HttpWebRequest protects itself from that problem - lock (this.negotiate) + lock (this.syncObject) { this.session = new SecureSession(this.innerStream); + this.session.UserCertificateValidationCallback = this.userCertificateValidationCallback; + this.session.UserCertificateSelectionCallback = this.userCertificateSelectionCallback; this.session.AuthenticateAsClient( targetHost, clientCertificates, @@ -359,7 +370,7 @@ // Note: Async code may have problem if they can't ensure that // the Negotiate phase isn't done during a read operation. // System.Net.HttpWebRequest protects itself from that problem - lock (this.negotiate) + lock (this.syncObject) { this.session = new SecureSession(this.innerStream); this.session.AuthenticateAsServer( @@ -669,26 +680,6 @@ } #endregion - - #region · Event Handlers · - - private bool ServerCertificateValidation( - X509Certificate certificate, - int[] certificateErrors) - { - throw new NotImplementedException(); - } - - private X509Certificate ClientCertificateSelection( - X509CertificateCollection clientCertificates, - X509Certificate serverCertificate, - string targetHost, - X509CertificateCollection serverRequestedCertificates) - { - throw new NotImplementedException(); - } - - #endregion } } Modified: pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.csproj.user =================================================================== --- pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.csproj.user 2006-03-13 13:25:41 UTC (rev 18) +++ pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.csproj.user 2006-03-13 15:33:13 UTC (rev 19) @@ -12,6 +12,6 @@ <ApplicationRevision>0</ApplicationRevision> <FallbackCulture>en-US</FallbackCulture> <VerifyUploadedFiles>false</VerifyUploadedFiles> - <ProjectView>ShowAllFiles</ProjectView> + <ProjectView>ProjectFiles</ProjectView> </PropertyGroup> </Project> \ No newline at end of file Modified: pgsqlclient/source/SecureSocketLayerTest/Program.cs =================================================================== --- pgsqlclient/source/SecureSocketLayerTest/Program.cs 2006-03-13 13:25:41 UTC (rev 18) +++ pgsqlclient/source/SecureSocketLayerTest/Program.cs 2006-03-13 15:33:13 UTC (rev 19) @@ -1,8 +1,7 @@ using System; using System.Net; using System.Net.Sockets; -using System.Net.Security; -using System.Security.Authentication; +using System.Security.Cryptography.X509Certificates; namespace SecureSocketsLayer.Test { @@ -10,19 +9,62 @@ { static void Main(string[] args) { + try + { + // MicrosoftSslStreamTest(); + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + } + + try + { + CustomSslStreamTest(); + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + } + } + + static void MicrosoftSslStreamTest() + { IPAddress hostadd = Dns.GetHostEntry("localhost").AddressList[0]; IPEndPoint endPoint = new IPEndPoint(hostadd, 4433); - Socket socket = new Socket( - AddressFamily.InterNetwork, - SocketType.Stream, - ProtocolType.Tcp); + Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); socket.Connect(endPoint); - SslStream ssl = new SslStream(new NetworkStream(socket, true)); + System.Net.Security.SslStream ssl = new System.Net.Security.SslStream(new NetworkStream(socket, true)); ssl.AuthenticateAsClient("localhost"); ssl.Close(); } + + static void CustomSslStreamTest() + { + IPAddress hostadd = Dns.GetHostEntry("localhost").AddressList[0]; + IPEndPoint endPoint = new IPEndPoint(hostadd, 4433); + + Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + + socket.Connect(endPoint); + + SecureSocketLayer.Net.Security.RemoteCertificateValidationCallback serverCallback = new SecureSocketLayer.Net.Security.RemoteCertificateValidationCallback(CertificateValidation); + + SecureSocketLayer.Net.Security.SslStream ssl = new SecureSocketLayer.Net.Security.SslStream(new NetworkStream(socket, true), false, serverCallback); + ssl.AuthenticateAsClient("localhost"); + ssl.Close(); + } + + static bool CertificateValidation( + object sender, + X509Certificate certificate, + X509Chain chain, + SecureSocketLayer.Net.Security.SslPolicyErrors sslPolicyErrors) + { + return true; + } } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-03-13 13:25:53
|
Revision: 18 Author: carlosga_fb Date: 2006-03-13 05:25:41 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=18&view=rev Log Message: ----------- Modified Paths: -------------- pgsqlclient/source/PostgreSql.Data.PostgreSqlClient.suo Removed Paths: ------------- pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.sln Modified: pgsqlclient/source/PostgreSql.Data.PostgreSqlClient.suo =================================================================== (Binary files differ) Deleted: pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.sln =================================================================== --- pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.sln 2006-03-13 13:24:41 UTC (rev 17) +++ pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.sln 2006-03-13 13:25:41 UTC (rev 18) @@ -1,19 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SecureSocketLayer", "SecureSocketLayer.csproj", "{8CA6C4CF-1737-4680-8AC7-4D34E3CC35DE}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8CA6C4CF-1737-4680-8AC7-4D34E3CC35DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8CA6C4CF-1737-4680-8AC7-4D34E3CC35DE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8CA6C4CF-1737-4680-8AC7-4D34E3CC35DE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8CA6C4CF-1737-4680-8AC7-4D34E3CC35DE}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-03-13 13:24:58
|
Revision: 17 Author: carlosga_fb Date: 2006-03-13 05:24:41 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=17&view=rev Log Message: ----------- Modified Paths: -------------- pgsqlclient/source/PostgreSql.Data.PostgreSqlClient.suo pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.csproj pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.csproj.user Removed Paths: ------------- pgsqlclient/source/SecureSocketLayer/Mono/Security/X509/X509CRL.cs pgsqlclient/source/SecureSocketLayer/Mono/Security/X509/X509Store.cs pgsqlclient/source/SecureSocketLayer/Mono/Security/X509/X509StoreManager.cs pgsqlclient/source/SecureSocketLayer/Mono/Security/X509/X509Stores.cs Modified: pgsqlclient/source/PostgreSql.Data.PostgreSqlClient.suo =================================================================== (Binary files differ) Deleted: pgsqlclient/source/SecureSocketLayer/Mono/Security/X509/X509CRL.cs =================================================================== --- pgsqlclient/source/SecureSocketLayer/Mono/Security/X509/X509CRL.cs 2006-03-13 13:24:04 UTC (rev 16) +++ pgsqlclient/source/SecureSocketLayer/Mono/Security/X509/X509CRL.cs 2006-03-13 13:24:41 UTC (rev 17) @@ -1,405 +0,0 @@ -// -// X509CRL.cs: Handles X.509 certificates revocation lists. -// -// Author: -// Sebastien Pouliot <seb...@xi...> -// -// (C) 2004 Novell (http://www.novell.com) -// - -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// - -using System; -using System.Collections; -using System.Globalization; -using System.IO; -using System.Security.Cryptography; - -using Mono.Security.X509.Extensions; - -namespace Mono.Security.X509 { - /* - * CertificateList ::= SEQUENCE { - * tbsCertList TBSCertList, - * signatureAlgorithm AlgorithmIdentifier, - * signature BIT STRING - * } - * - * TBSCertList ::= SEQUENCE { - * version Version OPTIONAL, - * -- if present, MUST be v2 - * signature AlgorithmIdentifier, - * issuer Name, - * thisUpdate Time, - * nextUpdate Time OPTIONAL, - * revokedCertificates SEQUENCE OF SEQUENCE { - * userCertificate CertificateSerialNumber, - * revocationDate Time, - * crlEntryExtensions Extensions OPTIONAL - * -- if present, MUST be v2 - * } OPTIONAL, - * crlExtensions [0] Extensions OPTIONAL } - * -- if present, MUST be v2 - */ -#if INSIDE_CORLIB - internal -#else - public -#endif - class X509Crl { - - public class X509CrlEntry { - - private byte[] sn; - private DateTime revocationDate; - private X509ExtensionCollection extensions; - - internal X509CrlEntry (byte[] serialNumber, DateTime revocationDate, X509ExtensionCollection extensions) - { - sn = serialNumber; - this.revocationDate = revocationDate; - if (extensions == null) - this.extensions = new X509ExtensionCollection (); - else - this.extensions = extensions; - } - - internal X509CrlEntry (ASN1 entry) - { - sn = entry [0].Value; - Array.Reverse (sn); - revocationDate = ASN1Convert.ToDateTime (entry [1]); - extensions = new X509ExtensionCollection (entry [2]); - } - - public byte[] SerialNumber { - get { return (byte[]) sn.Clone (); } - } - - public DateTime RevocationDate { - get { return revocationDate; } - } - - public X509ExtensionCollection Extensions { - get { return extensions; } - } - - public byte[] GetBytes () - { - ASN1 sequence = new ASN1 (0x30); - sequence.Add (new ASN1 (0x02, sn)); - sequence.Add (ASN1Convert.FromDateTime (revocationDate)); - if (extensions.Count > 0) - sequence.Add (new ASN1 (extensions.GetBytes ())); - return sequence.GetBytes (); - } - } - - private string issuer; - private byte version; - private DateTime thisUpdate; - private DateTime nextUpdate; - private ArrayList entries; - private string signatureOID; - private byte[] signature; - private X509ExtensionCollection extensions; - private byte[] encoded; - - public X509Crl (byte[] crl) - { - if (crl == null) - throw new ArgumentNullException ("crl"); - encoded = (byte[]) crl.Clone (); - Parse (encoded); - } - - private void Parse (byte[] crl) - { - string e = "Input data cannot be coded as a valid CRL."; - try { - // CertificateList ::= SEQUENCE { - ASN1 encodedCRL = new ASN1 (encoded); - if ((encodedCRL.Tag != 0x30) || (encodedCRL.Count != 3)) - throw new CryptographicException (e); - - // CertificateList / TBSCertList, - ASN1 toBeSigned = encodedCRL [0]; - if ((toBeSigned.Tag != 0x30) || (toBeSigned.Count < 3)) - throw new CryptographicException (e); - - int n = 0; - // CertificateList / TBSCertList / Version OPTIONAL, -- if present, MUST be v2 - if (toBeSigned [n].Tag == 0x02) { - version = (byte) (toBeSigned [n++].Value [0] + 1); - } - else - version = 1; // DEFAULT - // CertificateList / TBSCertList / AlgorithmIdentifier, - signatureOID = ASN1Convert.ToOid (toBeSigned [n++][0]); - // CertificateList / TBSCertList / Name, - issuer = X501.ToString (toBeSigned [n++]); - // CertificateList / TBSCertList / Time, - thisUpdate = ASN1Convert.ToDateTime (toBeSigned [n++]); - // CertificateList / TBSCertList / Time OPTIONAL, - ASN1 next = toBeSigned [n++]; - if ((next.Tag == 0x17) || (next.Tag == 0x18)) { - nextUpdate = ASN1Convert.ToDateTime (next); - next = toBeSigned [n++]; - } - // CertificateList / TBSCertList / revokedCertificates SEQUENCE OF SEQUENCE { - entries = new ArrayList (); - ASN1 revokedCertificates = next; - for (int i=0; i < revokedCertificates.Count; i++) { - entries.Add (new X509CrlEntry (revokedCertificates [i])); - } - // CertificateList / TBSCertList / crlExtensions [0] Extensions OPTIONAL } - ASN1 extns = toBeSigned [n]; - if ((extns != null) && (extns.Tag == 0xA0) && (extns.Count == 1)) - extensions = new X509ExtensionCollection (extns [0]); - else - extensions = new X509ExtensionCollection (null); // result in a read only object - // CertificateList / AlgorithmIdentifier - string signatureAlgorithm = ASN1Convert.ToOid (encodedCRL [1][0]); - if (signatureOID != signatureAlgorithm) - throw new CryptographicException (e + " [Non-matching signature algorithms in CRL]"); - - // CertificateList / BIT STRING - byte[] bitstring = encodedCRL [2].Value; - // first byte contains unused bits in first byte - signature = new byte [bitstring.Length - 1]; - Buffer.BlockCopy (bitstring, 1, signature, 0, signature.Length); - } - catch { - throw new CryptographicException (e); - } - } - - public ArrayList Entries { - get { return ArrayList.ReadOnly (entries); } - } - - public X509CrlEntry this [int index] { - get { return (X509CrlEntry) entries [index]; } - } - - public X509CrlEntry this [byte[] serialNumber] { - get { return GetCrlEntry (serialNumber); } - } - - public X509ExtensionCollection Extensions { - get { return extensions; } - } - - public string IssuerName { - get { return issuer; } - } - - public DateTime NextUpdate { - get { return nextUpdate; } - } - - public DateTime ThisUpdate { - get { return thisUpdate; } - } - - public string SignatureAlgorithm { - get { return signatureOID; } - } - - public byte[] Signature { - get { - if (signature == null) - return null; - return (byte[]) signature.Clone (); - } - } - - public byte Version { - get { return version; } - } - - public bool IsCurrent { - get { return WasCurrent (DateTime.UtcNow); } - } - - public bool WasCurrent (DateTime instant) - { - if (nextUpdate == DateTime.MinValue) - return (instant >= thisUpdate); - else - return ((instant >= thisUpdate) && (instant <= nextUpdate)); - } - - public byte[] GetBytes () - { - return (byte[]) encoded.Clone (); - } - - private bool Compare (byte[] array1, byte[] array2) - { - if ((array1 == null) && (array2 == null)) - return true; - if ((array1 == null) || (array2 == null)) - return false; - if (array1.Length != array2.Length) - return false; - for (int i=0; i < array1.Length; i++) { - if (array1 [i] != array2 [i]) - return false; - } - return true; - } - - public X509CrlEntry GetCrlEntry (X509Certificate x509) - { - if (x509 == null) - throw new ArgumentNullException ("x509"); - - return GetCrlEntry (x509.SerialNumber); - } - - public X509CrlEntry GetCrlEntry (byte[] serialNumber) - { - if (serialNumber == null) - throw new ArgumentNullException ("serialNumber"); - - for (int i=0; i < entries.Count; i++) { - X509CrlEntry entry = (X509CrlEntry) entries [i]; - if (Compare (serialNumber, entry.SerialNumber)) - return entry; - } - return null; - } - - public bool VerifySignature (X509Certificate x509) - { - if (x509 == null) - throw new ArgumentNullException ("x509"); - - // 1. x509 certificate must be a CA certificate (unknown for v1 or v2 certs) - if (x509.Version >= 3) { - // 1.1. Check for "cRLSign" bit in KeyUsage extension - X509Extension ext = x509.Extensions ["2.5.29.15"]; - if (ext != null) { - KeyUsageExtension keyUsage = new KeyUsageExtension (ext); - if (!keyUsage.Support (KeyUsages.cRLSign)) - return false; - } - // 1.2. Check for ca = true in BasicConstraint - ext = x509.Extensions ["2.5.29.19"]; - if (ext != null) { - BasicConstraintsExtension basicConstraints = new BasicConstraintsExtension (ext); - if (!basicConstraints.CertificateAuthority) - return false; - } - } - // 2. CRL issuer must match CA subject name - if (issuer != x509.SubjectName) - return false; - // 3. Check the CRL signature with the CA certificate public key - switch (signatureOID) { - case "1.2.840.10040.4.3": - return VerifySignature (x509.DSA); - default: - return VerifySignature (x509.RSA); - } - } - - private byte[] GetHash (string hashName) - { - ASN1 encodedCRL = new ASN1 (encoded); - byte[] toBeSigned = encodedCRL [0].GetBytes (); - HashAlgorithm ha = HashAlgorithm.Create (hashName); - return ha.ComputeHash (toBeSigned); - } - - internal bool VerifySignature (DSA dsa) - { - if (signatureOID != "1.2.840.10040.4.3") - throw new CryptographicException ("Unsupported hash algorithm: " + signatureOID); - DSASignatureDeformatter v = new DSASignatureDeformatter (dsa); - // only SHA-1 is supported - string hashName = "SHA1"; - v.SetHashAlgorithm (hashName); - ASN1 sign = new ASN1 (signature); - if ((sign == null) || (sign.Count != 2)) - return false; - // parts may be less than 20 bytes (i.e. first bytes were 0x00) - byte[] part1 = sign [0].Value; - byte[] part2 = sign [1].Value; - byte[] sig = new byte [40]; - Buffer.BlockCopy (part1, 0, sig, (20 - part1.Length), part1.Length); - Buffer.BlockCopy (part2, 0, sig, (40 - part2.Length), part2.Length); - return v.VerifySignature (GetHash (hashName), sig); - } - - internal bool VerifySignature (RSA rsa) - { - RSAPKCS1SignatureDeformatter v = new RSAPKCS1SignatureDeformatter (rsa); - string hashName = null; - switch (signatureOID) { - // MD2 with RSA encryption - case "1.2.840.113549.1.1.2": - // maybe someone installed MD2 ? - hashName = "MD2"; - break; - // MD5 with RSA encryption - case "1.2.840.113549.1.1.4": - hashName = "MD5"; - break; - // SHA-1 with RSA Encryption - case "1.2.840.113549.1.1.5": - hashName = "SHA1"; - break; - default: - throw new CryptographicException ("Unsupported hash algorithm: " + signatureOID); - } - v.SetHashAlgorithm (hashName); - return v.VerifySignature (GetHash (hashName), signature); - } - - public bool VerifySignature (AsymmetricAlgorithm aa) - { - if (aa == null) - throw new ArgumentNullException ("aa"); - - // only validate the signature (in case we don't have the CA certificate) - if (aa is RSA) - return VerifySignature (aa as RSA); - else if (aa is DSA) - return VerifySignature (aa as DSA); - else - throw new NotSupportedException ("Unknown Asymmetric Algorithm " + aa.ToString ()); - } - - static public X509Crl CreateFromFile (string filename) - { - byte[] crl = null; - using (FileStream fs = File.Open (filename, FileMode.Open, FileAccess.Read, FileShare.Read)) { - crl = new byte [fs.Length]; - fs.Read (crl, 0, crl.Length); - fs.Close (); - } - return new X509Crl (crl); - } - } -} Deleted: pgsqlclient/source/SecureSocketLayer/Mono/Security/X509/X509Store.cs =================================================================== --- pgsqlclient/source/SecureSocketLayer/Mono/Security/X509/X509Store.cs 2006-03-13 13:24:04 UTC (rev 16) +++ pgsqlclient/source/SecureSocketLayer/Mono/Security/X509/X509Store.cs 2006-03-13 13:24:41 UTC (rev 17) @@ -1,244 +0,0 @@ -// -// X509Store.cs: Handles a X.509 certificates/CRLs store -// -// Author: -// Sebastien Pouliot <seb...@xi...> -// -// Copyright (C) 2004 Novell, Inc (http://www.novell.com) -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// - -using System; -using System.Collections; -using System.Globalization; -using System.IO; -using System.Text; - -using Mono.Security.X509.Extensions; - -namespace Mono.Security.X509 { - -#if INSIDE_CORLIB - internal -#else - public -#endif - class X509Store { - - private string _storePath; - private X509CertificateCollection _certificates; - private ArrayList _crls; - private bool _crl; - private string _name; - - internal X509Store (string path, bool crl) - { - _storePath = path; - _crl = crl; - } - - // properties - - public X509CertificateCollection Certificates { - get { - if (_certificates == null) { - _certificates = BuildCertificatesCollection (_storePath); - } - return _certificates; - } - } - - public ArrayList Crls { - get { - // CRL aren't applicable to all stores - // but returning null is a little rude - if (!_crl) { - _crls = new ArrayList (); - } - if (_crls == null) { - _crls = BuildCrlsCollection (_storePath); - } - return _crls; - } - } - - public string Name { - get { - if (_name == null) { - int n = _storePath.LastIndexOf (Path.DirectorySeparatorChar); - _name = _storePath.Substring (n+1); - } - return _name; - } - } - - // methods - - public void Clear () - { - if (_certificates != null) - _certificates.Clear (); - _certificates = null; - if (_crls != null) - _crls.Clear (); - _crls = null; - } - - public void Import (X509Certificate certificate) - { - CheckStore (_storePath, true); - - string filename = Path.Combine (_storePath, GetUniqueName (certificate)); - if (!File.Exists (filename)) { - using (FileStream fs = File.OpenWrite (filename)) { - byte[] data = certificate.RawData; - fs.Write (data, 0, data.Length); - fs.Close (); - } - } - } - - public void Remove (X509Certificate certificate) - { - string filename = Path.Combine (_storePath, GetUniqueName (certificate)); - if (File.Exists (filename)) { - File.Delete (filename); - } - } - - // private stuff - - private string GetUniqueName (X509Certificate certificate) - { - string method = null; - byte[] name = null; - - // We prefer Subject Key Identifier as the unique name - // as it will provide faster lookups - X509Extension ext = certificate.Extensions ["2.5.29.14"]; - if (ext != null) { - SubjectKeyIdentifierExtension ski = new SubjectKeyIdentifierExtension (ext); - name = ski.Identifier; - method = "ski"; - } - else { - method = "tbp"; // thumbprint - name = certificate.Hash; - } - - StringBuilder sb = new StringBuilder (method); - sb.Append ("-"); - foreach (byte b in name) { - sb.Append (b.ToString ("X2", CultureInfo.InvariantCulture)); - } - sb.Append (".cer"); - - return sb.ToString (); - } - - private byte[] Load (string filename) - { - byte[] data = null; - using (FileStream fs = File.OpenRead (filename)) { - data = new byte [fs.Length]; - fs.Read (data, 0, data.Length); - fs.Close (); - } - return data; - } - - private X509Certificate LoadCertificate (string filename) - { - byte[] data = Load (filename); - X509Certificate cert = new X509Certificate (data); - return cert; - } - - private X509Crl LoadCrl (string filename) - { - byte[] data = Load (filename); - X509Crl crl = new X509Crl (data); - return crl; - } - - private bool CheckStore (string path, bool throwException) - { - try { - if (Directory.Exists (path)) - return true; - Directory.CreateDirectory (path); - return Directory.Exists (path); - } - catch { - if (throwException) - throw; - return false; - } - } - - private X509CertificateCollection BuildCertificatesCollection (string storeName) - { - X509CertificateCollection coll = new X509CertificateCollection (); - string path = Path.Combine (_storePath, storeName); - if (!CheckStore (path, false)) - return coll; // empty collection - - string[] files = Directory.GetFiles (path, "*.cer"); - if ((files != null) && (files.Length > 0)) { - foreach (string file in files) { - try { - X509Certificate cert = LoadCertificate (file); - coll.Add (cert); - } - catch { - // in case someone is dumb enough - // (like me) to include a base64 - // encoded certs (or other junk - // into the store). - } - } - } - return coll; - } - - private ArrayList BuildCrlsCollection (string storeName) - { - ArrayList list = new ArrayList (); - string path = Path.Combine (_storePath, storeName); - if (!CheckStore (path, false)) - return list; // empty list - - string[] files = Directory.GetFiles (path, "*.crl"); - if ((files != null) && (files.Length > 0)) { - foreach (string file in files) { - try { - X509Crl crl = LoadCrl (file); - list.Add (crl); - } - catch { - // junk catcher - } - } - } - return list; - } - } -} Deleted: pgsqlclient/source/SecureSocketLayer/Mono/Security/X509/X509StoreManager.cs =================================================================== --- pgsqlclient/source/SecureSocketLayer/Mono/Security/X509/X509StoreManager.cs 2006-03-13 13:24:04 UTC (rev 16) +++ pgsqlclient/source/SecureSocketLayer/Mono/Security/X509/X509StoreManager.cs 2006-03-13 13:24:41 UTC (rev 17) @@ -1,130 +0,0 @@ -// -// X509StoreManager.cs: X.509 store manager. -// -// Author: -// Sebastien Pouliot <seb...@xi...> -// -// (C) 2004 Novell (http://www.novell.com) -// - -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// - -using System; -using System.Collections; -using System.IO; - -using Mono.Security.X509.Extensions; - -namespace Mono.Security.X509 { - -#if INSIDE_CORLIB - internal -#else - public -#endif - sealed class X509StoreManager { - - static private X509Stores _userStore; - static private X509Stores _machineStore; - - private X509StoreManager () - { - } - - static public X509Stores CurrentUser { - get { - if (_userStore == null) { - string _userPath = Path.Combine ( - Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData), - ".mono"); - _userPath = Path.Combine (_userPath, "certs"); - - _userStore = new X509Stores (_userPath); - } - return _userStore; - } - } - - static public X509Stores LocalMachine { - get { - if (_machineStore == null) { - string _machinePath = Path.Combine ( - Environment.GetFolderPath (Environment.SpecialFolder.CommonApplicationData), - ".mono"); - _machinePath = Path.Combine (_machinePath, "certs"); - - _machineStore = new X509Stores (_machinePath); - } - return _machineStore; - } - } - - // Merged stores collections - // we need to look at both the user and the machine (entreprise) - // certificates/CRLs when building/validating a chain - - static public X509CertificateCollection IntermediateCACertificates { - get { - X509CertificateCollection intermediateCerts = new X509CertificateCollection (); - intermediateCerts.AddRange (CurrentUser.IntermediateCA.Certificates); - intermediateCerts.AddRange (LocalMachine.IntermediateCA.Certificates); - return intermediateCerts; - } - } - - static public ArrayList IntermediateCACrls { - get { - ArrayList intermediateCRLs = new ArrayList (); - intermediateCRLs.AddRange (CurrentUser.IntermediateCA.Crls); - intermediateCRLs.AddRange (LocalMachine.IntermediateCA.Crls); - return intermediateCRLs; - } - } - - static public X509CertificateCollection TrustedRootCertificates { - get { - X509CertificateCollection trustedCerts = new X509CertificateCollection (); - trustedCerts.AddRange (CurrentUser.TrustedRoot.Certificates); - trustedCerts.AddRange (LocalMachine.TrustedRoot.Certificates); - return trustedCerts; - } - } - - static public ArrayList TrustedRootCACrls { - get { - ArrayList trustedCRLs = new ArrayList (); - trustedCRLs.AddRange (CurrentUser.TrustedRoot.Crls); - trustedCRLs.AddRange (LocalMachine.TrustedRoot.Crls); - return trustedCRLs; - } - } - - static public X509CertificateCollection UntrustedCertificates { - get { - X509CertificateCollection untrustedCerts = new X509CertificateCollection (); - untrustedCerts.AddRange (CurrentUser.Untrusted.Certificates); - untrustedCerts.AddRange (LocalMachine.Untrusted.Certificates); - return untrustedCerts; - } - } - } -} Deleted: pgsqlclient/source/SecureSocketLayer/Mono/Security/X509/X509Stores.cs =================================================================== --- pgsqlclient/source/SecureSocketLayer/Mono/Security/X509/X509Stores.cs 2006-03-13 13:24:04 UTC (rev 16) +++ pgsqlclient/source/SecureSocketLayer/Mono/Security/X509/X509Stores.cs 2006-03-13 13:24:41 UTC (rev 17) @@ -1,146 +0,0 @@ -// -// X509Stores.cs: Handles X.509 certificates/CRLs stores group. -// -// Author: -// Sebastien Pouliot <seb...@xi...> -// -// (C) 2004 Novell (http://www.novell.com) -// - -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// - -using System; -using System.Collections; -using System.IO; - -using Mono.Security.X509.Extensions; - -namespace Mono.Security.X509 { - -#if INSIDE_CORLIB - internal -#else - public -#endif - class X509Stores { - - private string _storePath; - private X509Store _personal; - private X509Store _other; - private X509Store _intermediate; - private X509Store _trusted; - private X509Store _untrusted; - - internal X509Stores (string path) - { - _storePath = path; - } - - // properties - - public X509Store Personal { - get { - if (_personal == null) { - string path = Path.Combine (_storePath, Names.Personal); - _personal = new X509Store (path, false); - } - return _personal; - } - } - - public X509Store OtherPeople { - get { - if (_other == null) { - string path = Path.Combine (_storePath, Names.OtherPeople); - _other = new X509Store (path, false); - } - return _other; - } - } - - public X509Store IntermediateCA { - get { - if (_intermediate == null) { - string path = Path.Combine (_storePath, Names.IntermediateCA); - _intermediate = new X509Store (path, true); - } - return _intermediate; - } - } - - public X509Store TrustedRoot { - get { - if (_trusted == null) { - string path = Path.Combine (_storePath, Names.TrustedRoot); - _trusted = new X509Store (path, true); - } - return _trusted; - } - } - - public X509Store Untrusted { - get { - if (_untrusted == null) { - string path = Path.Combine (_storePath, Names.Untrusted); - _untrusted = new X509Store (path, false); - } - return _untrusted; - } - } - - // methods - - public void Clear () - { - // this will force a reload of all stores - if (_personal != null) - _personal.Clear (); - _personal = null; - if (_other != null) - _other.Clear (); - _other = null; - if (_intermediate != null) - _intermediate.Clear (); - _intermediate = null; - if (_trusted != null) - _trusted.Clear (); - _trusted = null; - if (_untrusted != null) - _untrusted.Clear (); - _untrusted = null; - } - - // names - - public class Names { - - // do not translate - public const string Personal = "My"; - public const string OtherPeople = "AddressBook"; - public const string IntermediateCA = "CA"; - public const string TrustedRoot = "Trust"; - public const string Untrusted = "Disallowed"; - - public Names () {} - } - } -} Modified: pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.csproj =================================================================== --- pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.csproj 2006-03-13 13:24:04 UTC (rev 16) +++ pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.csproj 2006-03-13 13:24:41 UTC (rev 17) @@ -140,42 +140,6 @@ <SubType>Code</SubType> </Compile> <Compile Include="Mono\Security\StrongName.cs" /> - <Compile Include="Mono\Security\X509\Extensions\AuthorityKeyIdentifierExtension.cs"> - <SubType>Code</SubType> - </Compile> - <Compile Include="Mono\Security\X509\Extensions\BasicConstraintsExtension.cs"> - <SubType>Code</SubType> - </Compile> - <Compile Include="Mono\Security\X509\Extensions\CertificatePoliciesExtension.cs"> - <SubType>Code</SubType> - </Compile> - <Compile Include="Mono\Security\X509\Extensions\CRLDistributionPointsExtension.cs"> - <SubType>Code</SubType> - </Compile> - <Compile Include="Mono\Security\X509\Extensions\ExtendedKeyUsageExtension.cs"> - <SubType>Code</SubType> - </Compile> - <Compile Include="Mono\Security\X509\Extensions\GeneralNames.cs"> - <SubType>Code</SubType> - </Compile> - <Compile Include="Mono\Security\X509\Extensions\KeyAttributesExtension.cs"> - <SubType>Code</SubType> - </Compile> - <Compile Include="Mono\Security\X509\Extensions\KeyUsageExtension.cs"> - <SubType>Code</SubType> - </Compile> - <Compile Include="Mono\Security\X509\Extensions\NetscapeCertTypeExtension.cs"> - <SubType>Code</SubType> - </Compile> - <Compile Include="Mono\Security\X509\Extensions\PrivateKeyUsagePeriodExtension.cs"> - <SubType>Code</SubType> - </Compile> - <Compile Include="Mono\Security\X509\Extensions\SubjectAltNameExtension.cs"> - <SubType>Code</SubType> - </Compile> - <Compile Include="Mono\Security\X509\Extensions\SubjectKeyIdentifierExtension.cs"> - <SubType>Code</SubType> - </Compile> <Compile Include="Mono\Security\X509\ITrustAnchors.cs"> <SubType>Code</SubType> </Compile> @@ -200,24 +164,12 @@ <Compile Include="Mono\Security\X509\X509CertificateCollection.cs"> <SubType>Code</SubType> </Compile> - <Compile Include="Mono\Security\X509\X509CRL.cs"> - <SubType>Code</SubType> - </Compile> <Compile Include="Mono\Security\X509\X509Extension.cs"> <SubType>Code</SubType> </Compile> <Compile Include="Mono\Security\X509\X509Extensions.cs"> <SubType>Code</SubType> </Compile> - <Compile Include="Mono\Security\X509\X509Store.cs"> - <SubType>Code</SubType> - </Compile> - <Compile Include="Mono\Security\X509\X509StoreManager.cs"> - <SubType>Code</SubType> - </Compile> - <Compile Include="Mono\Security\X509\X509Stores.cs"> - <SubType>Code</SubType> - </Compile> <Compile Include="Mono\Security\X509\X520Attributes.cs"> <SubType>Code</SubType> </Compile> Modified: pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.csproj.user =================================================================== --- pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.csproj.user 2006-03-13 13:24:04 UTC (rev 16) +++ pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.csproj.user 2006-03-13 13:24:41 UTC (rev 17) @@ -12,5 +12,6 @@ <ApplicationRevision>0</ApplicationRevision> <FallbackCulture>en-US</FallbackCulture> <VerifyUploadedFiles>false</VerifyUploadedFiles> + <ProjectView>ShowAllFiles</ProjectView> </PropertyGroup> </Project> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-03-13 13:24:16
|
Revision: 16 Author: carlosga_fb Date: 2006-03-13 05:24:04 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=16&view=rev Log Message: ----------- Removed no more needed files Removed Paths: ------------- pgsqlclient/source/SecureSocketLayer/Mono/Security/X509/Extensions/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-03-13 13:22:56
|
Revision: 15 Author: carlosga_fb Date: 2006-03-13 05:22:49 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=15&view=rev Log Message: ----------- Removed no more needed files. Removed Paths: ------------- pgsqlclient/source/Mono.Security/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-03-13 13:11:49
|
Revision: 14 Author: carlosga_fb Date: 2006-03-13 05:11:23 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=14&view=rev Log Message: ----------- More changes to build correctly Modified Paths: -------------- pgsqlclient/source/PostgreSql/Data/PostgreSql.Data.PostgreSqlClient.csproj pgsqlclient/source/PostgreSql.Data.PostgreSqlClient.suo pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.csproj pgsqlclient/source/SecureSocketLayerTest/Program.cs pgsqlclient/source/SecureSocketLayerTest/SecureSocketLayerTest.csproj Modified: pgsqlclient/source/PostgreSql/Data/PostgreSql.Data.PostgreSqlClient.csproj =================================================================== --- pgsqlclient/source/PostgreSql/Data/PostgreSql.Data.PostgreSqlClient.csproj 2006-03-13 13:03:54 UTC (rev 13) +++ pgsqlclient/source/PostgreSql/Data/PostgreSql.Data.PostgreSqlClient.csproj 2006-03-13 13:11:23 UTC (rev 14) @@ -132,4 +132,10 @@ <ItemGroup> <Content Include="Schema\TextFile1.txt" /> </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\..\SecureSocketLayer\SecureSocketLayer.csproj"> + <Project>{8CA6C4CF-1737-4680-8AC7-4D34E3CC35DE}</Project> + <Name>SecureSocketLayer</Name> + </ProjectReference> + </ItemGroup> </Project> \ No newline at end of file Modified: pgsqlclient/source/PostgreSql.Data.PostgreSqlClient.suo =================================================================== (Binary files differ) Modified: pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.csproj =================================================================== --- pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.csproj 2006-03-13 13:03:54 UTC (rev 13) +++ pgsqlclient/source/SecureSocketLayer/SecureSocketLayer.csproj 2006-03-13 13:11:23 UTC (rev 14) @@ -17,7 +17,7 @@ <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout> <DefaultTargetSchema>IE50</DefaultTargetSchema> <DelaySign>false</DelaySign> - <OutputType>Exe</OutputType> + <OutputType>Library</OutputType> <RootNamespace>SecureSocketLayer</RootNamespace> <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent> <StartupObject> Modified: pgsqlclient/source/SecureSocketLayerTest/Program.cs =================================================================== --- pgsqlclient/source/SecureSocketLayerTest/Program.cs 2006-03-13 13:03:54 UTC (rev 13) +++ pgsqlclient/source/SecureSocketLayerTest/Program.cs 2006-03-13 13:11:23 UTC (rev 14) @@ -6,9 +6,8 @@ namespace SecureSocketsLayer.Test { - class Class1 + class Program { - [STAThread] static void Main(string[] args) { IPAddress hostadd = Dns.GetHostEntry("localhost").AddressList[0]; Modified: pgsqlclient/source/SecureSocketLayerTest/SecureSocketLayerTest.csproj =================================================================== --- pgsqlclient/source/SecureSocketLayerTest/SecureSocketLayerTest.csproj 2006-03-13 13:03:54 UTC (rev 13) +++ pgsqlclient/source/SecureSocketLayerTest/SecureSocketLayerTest.csproj 2006-03-13 13:11:23 UTC (rev 14) @@ -9,7 +9,7 @@ <AppDesignerFolder>Properties</AppDesignerFolder> <RootNamespace>SecureSocketLayerTest</RootNamespace> <AssemblyName>SecureSocketLayerTest</AssemblyName> - <StartupObject>SecureSocketsLayer.Test.Class1</StartupObject> + <StartupObject>SecureSocketsLayer.Test.Program</StartupObject> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <DebugSymbols>true</DebugSymbols> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-03-13 13:04:18
|
Revision: 13 Author: carlosga_fb Date: 2006-03-13 05:03:54 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=13&view=rev Log Message: ----------- Bring sources to a buildable state Modified Paths: -------------- pgsqlclient/source/PostgreSql.Data.PostgreSqlClient.suo pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Common/X509ChainValidator.cs pgsqlclient/source/SecureSocketLayer/Net/Security/SslStream.cs pgsqlclient/source/SecureSocketLayerTest/SecureSocketLayerTest.csproj Modified: pgsqlclient/source/PostgreSql.Data.PostgreSqlClient.suo =================================================================== (Binary files differ) Modified: pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Common/X509ChainValidator.cs =================================================================== --- pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Common/X509ChainValidator.cs 2006-03-13 12:39:07 UTC (rev 12) +++ pgsqlclient/source/SecureSocketLayer/Net/Security/Providers/Common/X509ChainValidator.cs 2006-03-13 13:03:54 UTC (rev 13) @@ -26,6 +26,7 @@ using System.Collections; using System.Globalization; using System.Security.Authentication; +using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; using System.Text.RegularExpressions; @@ -115,68 +116,84 @@ return true; } - KeyUsages ku = KeyUsages.none; + X509KeyUsageFlags ku = X509KeyUsageFlags.None; switch (cipherSuite.ExchangeAlgorithmType) { case ExchangeAlgorithmType.RsaSign: - ku = KeyUsages.digitalSignature; + ku = X509KeyUsageFlags.DigitalSignature; break; case ExchangeAlgorithmType.RsaKeyX: - ku = KeyUsages.keyEncipherment; + ku = X509KeyUsageFlags.KeyEncipherment; break; case ExchangeAlgorithmType.DiffieHellman: - ku = KeyUsages.keyAgreement; + ku = X509KeyUsageFlags.KeyAgreement; break; } - KeyUsageExtension kux = null; - ExtendedKeyUsageExtension eku = null; + X509KeyUsageExtension kux = null; + X509EnhancedKeyUsageExtension eku = null; - X509Extension xtn = cert.Extensions ["2.5.29.15"]; + X509Extension xtn = cert.Extensions["2.5.29.15"]; if (xtn != null) { - kux = new KeyUsageExtension(xtn); - } + kux = new X509KeyUsageExtension(xtn, xtn.Critical); + } - xtn = cert.Extensions ["2.5.29.37"]; + xtn = cert.Extensions["2.5.29.37"]; if (xtn != null) { - eku = new ExtendedKeyUsageExtension(xtn); + eku = new X509EnhancedKeyUsageExtension(xtn, xtn.Critical); } - if ((kux != null) && (eku != null)) + if (kux != null && eku != null) { // RFC3280 states that when both KeyUsageExtension and // ExtendedKeyUsageExtension are present then BOTH should // be valid - return(kux.Support(ku) && - eku.KeyPurpose.Contains("1.3.6.1.5.5.7.3.1")); + return ((kux.KeyUsages & ku) == ku && this.CheckEnhacedKeyUsage(eku, "1.3.6.1.5.5.7.3.1")); } else if (kux != null) { - return kux.Support(ku); + return ((kux.KeyUsages & ku) == ku); } else if (eku != null) { // Server Authentication(1.3.6.1.5.5.7.3.1) - return eku.KeyPurpose.Contains("1.3.6.1.5.5.7.3.1"); + // return eku.EnhancedKeyUsages.Contains("1.3.6.1.5.5.7.3.1"); + return this.CheckEnhacedKeyUsage(eku, "1.3.6.1.5.5.7.3.1"); } // last chance - try with older(deprecated) Netscape extensions xtn = cert.Extensions ["2.16.840.1.113730.1.1"]; if (xtn != null) { +#warning Change this + /* NetscapeCertTypeExtension ct = new NetscapeCertTypeExtension(xtn); return ct.Support(NetscapeCertTypeExtension.CertTypes.SslServer); + */ } // certificate isn't valid for SSL server usage return false; } + private bool CheckEnhacedKeyUsage(X509EnhancedKeyUsageExtension extension, string oid) + { + foreach (Oid keyUsage in extension.EnhancedKeyUsages) + { + if (keyUsage.FriendlyName == oid) + { + return true; + } + } + + return false; + } + // RFC2818 - HTTP Over TLS, Section 3.1 // http://www.ietf.org/rfc/rfc2818.txt // @@ -189,32 +206,42 @@ // 3.1 Existing practice but DEPRECATED private bool CheckServerIdentity(X509Certificate cert, string targetHost) { - X509Extension ext = cert.Extensions ["2.5.29.17"]; + X509Extension ext = ((X509Certificate2)cert).Extensions["2.5.29.17"]; // 1. subjectAltName if (ext != null) { - SubjectAltNameExtension subjectAltName = new SubjectAltNameExtension(ext); + X500DistinguishedName subjectName = new X500DistinguishedName(ext.RawData); + X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension(ext, ext.Critical); - // 1.1 - multiple dNSName - foreach (string dns in subjectAltName.DNSNames) +#warning Fix this + /* + SubjectAltNameExtension subjectAltName = new SubjectAltNameExtension(); + + // 1.1 - multiple DNSName + foreach (string dns in subjectName.DNSNames) { // 1.2 TODO - wildcard support - if (dns == targetHost) - return true; + if (dns == targetHost) + { + return true; + } } // 2. ipAddress foreach (string ip in subjectAltName.IPAddresses) { // 2.1. Exact match required - if (ip == targetHost) - return true; + if (ip == targetHost) + { + return true; + } } + */ } // 3. Common Name(CN=) - return this.CheckDomainName(cert.SubjectName, targetHost); + return this.CheckDomainName(cert.Subject, targetHost); } private bool CheckDomainName(string subjectName, string targetHost) Modified: pgsqlclient/source/SecureSocketLayer/Net/Security/SslStream.cs =================================================================== --- pgsqlclient/source/SecureSocketLayer/Net/Security/SslStream.cs 2006-03-13 12:39:07 UTC (rev 12) +++ pgsqlclient/source/SecureSocketLayer/Net/Security/SslStream.cs 2006-03-13 13:03:54 UTC (rev 13) @@ -367,7 +367,6 @@ clientCertificateRequired, sslProtocolType, checkCertificateRevocation); - this.session.InputStream = this.recordStream; } } @@ -474,6 +473,7 @@ { try { + /* // If actual buffer is full readed reset it if (this.inputBuffer.Position == this.inputBuffer.Length && this.inputBuffer.Length > 0) @@ -502,6 +502,7 @@ // return the record(s) to the caller asyncResult = rd.BeginInvoke(buffer, offset, count, callback, state); + */ } catch (SecureException) { @@ -584,11 +585,9 @@ throw new ArgumentNullException("asyncResult is null or was not obtained by calling BeginRead."); } - recordEvent.Reset(); + return this.InnerStream.EndRead(asyncResult); + } - return this.rd.EndInvoke(asyncResult); - } - public override void EndWrite(IAsyncResult asyncResult) { this.CheckDisposed(); @@ -598,7 +597,7 @@ throw new ArgumentNullException("asyncResult is null or was not obtained by calling BeginRead."); } - this.innerStream.EndWrite(asyncResult); + this.InnerStream.EndWrite(asyncResult); } #endregion Modified: pgsqlclient/source/SecureSocketLayerTest/SecureSocketLayerTest.csproj =================================================================== --- pgsqlclient/source/SecureSocketLayerTest/SecureSocketLayerTest.csproj 2006-03-13 12:39:07 UTC (rev 12) +++ pgsqlclient/source/SecureSocketLayerTest/SecureSocketLayerTest.csproj 2006-03-13 13:03:54 UTC (rev 13) @@ -9,6 +9,7 @@ <AppDesignerFolder>Properties</AppDesignerFolder> <RootNamespace>SecureSocketLayerTest</RootNamespace> <AssemblyName>SecureSocketLayerTest</AssemblyName> + <StartupObject>SecureSocketsLayer.Test.Class1</StartupObject> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <DebugSymbols>true</DebugSymbols> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-03-13 12:39:20
|
Revision: 12 Author: carlosga_fb Date: 2006-03-13 04:39:07 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=12&view=rev Log Message: ----------- Modified Paths: -------------- pgsqlclient/source/PostgreSql.Data.PostgreSqlClient.sln pgsqlclient/source/PostgreSql.Data.PostgreSqlClient.suo Modified: pgsqlclient/source/PostgreSql.Data.PostgreSqlClient.sln =================================================================== --- pgsqlclient/source/PostgreSql.Data.PostgreSqlClient.sln 2006-03-13 12:36:17 UTC (rev 11) +++ pgsqlclient/source/PostgreSql.Data.PostgreSqlClient.sln 2006-03-13 12:39:07 UTC (rev 12) @@ -3,8 +3,6 @@ # Visual Studio 2005 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PostgreSql.Data.PostgreSqlClient", "PostgreSql\Data\PostgreSql.Data.PostgreSqlClient.csproj", "{9E572C05-CC26-410B-9D2D-8ABCF0E359DA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApplication1", "ConsoleApplication1\ConsoleApplication1.csproj", "{69E10F35-093A-4969-A5AA-474ACCBDAD95}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SecureSocketLayer", "SecureSocketLayer\SecureSocketLayer.csproj", "{8CA6C4CF-1737-4680-8AC7-4D34E3CC35DE}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SecureSocketLayerTest", "SecureSocketLayerTest\SecureSocketLayerTest.csproj", "{7AFCAB88-9EA7-4263-B339-AB9A05C1C600}" @@ -19,10 +17,6 @@ {9E572C05-CC26-410B-9D2D-8ABCF0E359DA}.Debug|Any CPU.Build.0 = Debug|Any CPU {9E572C05-CC26-410B-9D2D-8ABCF0E359DA}.Release|Any CPU.ActiveCfg = Release|Any CPU {9E572C05-CC26-410B-9D2D-8ABCF0E359DA}.Release|Any CPU.Build.0 = Release|Any CPU - {69E10F35-093A-4969-A5AA-474ACCBDAD95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {69E10F35-093A-4969-A5AA-474ACCBDAD95}.Debug|Any CPU.Build.0 = Debug|Any CPU - {69E10F35-093A-4969-A5AA-474ACCBDAD95}.Release|Any CPU.ActiveCfg = Release|Any CPU - {69E10F35-093A-4969-A5AA-474ACCBDAD95}.Release|Any CPU.Build.0 = Release|Any CPU {8CA6C4CF-1737-4680-8AC7-4D34E3CC35DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8CA6C4CF-1737-4680-8AC7-4D34E3CC35DE}.Debug|Any CPU.Build.0 = Debug|Any CPU {8CA6C4CF-1737-4680-8AC7-4D34E3CC35DE}.Release|Any CPU.ActiveCfg = Release|Any CPU Modified: pgsqlclient/source/PostgreSql.Data.PostgreSqlClient.suo =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-03-13 12:36:30
|
Revision: 11 Author: carlosga_fb Date: 2006-03-13 04:36:17 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=11&view=rev Log Message: ----------- Moved remotely Added Paths: ----------- pgsqlclient/makefile Removed Paths: ------------- makefile Deleted: makefile =================================================================== --- makefile 2006-03-13 12:35:43 UTC (rev 10) +++ makefile 2006-03-13 12:36:17 UTC (rev 11) @@ -1,41 +0,0 @@ -LIBRARY = PostgreSql.Data.PgSqlClient.dll -NUNIT_SUITE = PostgreSql.Data.PgSqlClient.UnitTests.dll - -all: $(LIBRARY) $(NUNIT_SUITE) install clean - -CSC = mcs -COPY = cp - -# References to assemblies -LD_BASIC_FLAGS = -reference:System.dll -reference:System.Data.dll -reference:System.Drawing.dll -reference:System.Xml.dll -LD_FLAGS = -reference:System.dll -reference:System.Design.dll -reference:System.Data.dll -reference:System.Drawing.dll -reference:System.Xml.dll - -# Resources for the Toolbox -TOOL_RESOURCES = -resource:PostgreSql.Data.PgSqlClient/source/Resources/ToolBox/PgConnection.bmp,PostgreSql.Data.PgSqlClient.Resources.ToolBox.PgConnection.bmp -resource:PostgreSql.Data.PgSqlClient/source/Resources/ToolBox/PgCommand.bmp,PostgreSql.Data.PgSqlClient.Resources.ToolBox.PgCommand.bmp -resource:PostgreSql.Data.PgSqlClient/source/Resources/ToolBox/PgDataAdapter.bmp,PostgreSql.Data.PgSqlClient.Resources.ToolBox.PgDataAdapter.bmp - -# Source files -RECURSE_SOURCE = -recurse:./PostgreSql.Data.PgSqlClient/source/*.cs -RECURSE_TESTS = -recurse:./PostgreSql.Data.PgSqlClient.UnitTests/source/*.cs - -# Configuration files -NUNIT_CONFIG=./PostgreSql.Data.PgSqlClient.UnitTests/PostgreSql.Data.PgSqlClient.UnitTests.dll.config - -# Defines -DEFINE = -define:_DEBUG - -PostgreSql.Data.PgSqlClient.dll: - $(CSC) -target:library -out:$(LIBRARY) $(LD_FLAGS) -reference:Mono.Security.dll $(DEFINE) $(TOOL_RESOURCES) $(RECURSE_SOURCE) - -PostgreSql.Data.PgSqlClient.UnitTests.dll: - $(CSC) -target:library -out:$(NUNIT_SUITE) $(LD_BASIC_FLAGS) -reference:${LIBRARY} -reference:NUnit.Framework.dll $(DEFINE) $(TOOL_RESOURCES) $(RECURSE_TESTS) - -install: - rm -rf build - mkdir -p build - $(COPY) $(LIBRARY) ./build - $(COPY) $(NUNIT_SUITE) ./build - $(COPY) ${NUNIT_CONFIG} ./build - -clean: - rm $(LIBRARY) - rm ${NUNIT_SUITE} Copied: pgsqlclient/makefile (from rev 10, makefile) =================================================================== --- pgsqlclient/makefile (rev 0) +++ pgsqlclient/makefile 2006-03-13 12:36:17 UTC (rev 11) @@ -0,0 +1,41 @@ +LIBRARY = PostgreSql.Data.PgSqlClient.dll +NUNIT_SUITE = PostgreSql.Data.PgSqlClient.UnitTests.dll + +all: $(LIBRARY) $(NUNIT_SUITE) install clean + +CSC = mcs +COPY = cp + +# References to assemblies +LD_BASIC_FLAGS = -reference:System.dll -reference:System.Data.dll -reference:System.Drawing.dll -reference:System.Xml.dll +LD_FLAGS = -reference:System.dll -reference:System.Design.dll -reference:System.Data.dll -reference:System.Drawing.dll -reference:System.Xml.dll + +# Resources for the Toolbox +TOOL_RESOURCES = -resource:PostgreSql.Data.PgSqlClient/source/Resources/ToolBox/PgConnection.bmp,PostgreSql.Data.PgSqlClient.Resources.ToolBox.PgConnection.bmp -resource:PostgreSql.Data.PgSqlClient/source/Resources/ToolBox/PgCommand.bmp,PostgreSql.Data.PgSqlClient.Resources.ToolBox.PgCommand.bmp -resource:PostgreSql.Data.PgSqlClient/source/Resources/ToolBox/PgDataAdapter.bmp,PostgreSql.Data.PgSqlClient.Resources.ToolBox.PgDataAdapter.bmp + +# Source files +RECURSE_SOURCE = -recurse:./PostgreSql.Data.PgSqlClient/source/*.cs +RECURSE_TESTS = -recurse:./PostgreSql.Data.PgSqlClient.UnitTests/source/*.cs + +# Configuration files +NUNIT_CONFIG=./PostgreSql.Data.PgSqlClient.UnitTests/PostgreSql.Data.PgSqlClient.UnitTests.dll.config + +# Defines +DEFINE = -define:_DEBUG + +PostgreSql.Data.PgSqlClient.dll: + $(CSC) -target:library -out:$(LIBRARY) $(LD_FLAGS) -reference:Mono.Security.dll $(DEFINE) $(TOOL_RESOURCES) $(RECURSE_SOURCE) + +PostgreSql.Data.PgSqlClient.UnitTests.dll: + $(CSC) -target:library -out:$(NUNIT_SUITE) $(LD_BASIC_FLAGS) -reference:${LIBRARY} -reference:NUnit.Framework.dll $(DEFINE) $(TOOL_RESOURCES) $(RECURSE_TESTS) + +install: + rm -rf build + mkdir -p build + $(COPY) $(LIBRARY) ./build + $(COPY) $(NUNIT_SUITE) ./build + $(COPY) ${NUNIT_CONFIG} ./build + +clean: + rm $(LIBRARY) + rm ${NUNIT_SUITE} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-03-13 12:36:00
|
Revision: 10 Author: carlosga_fb Date: 2006-03-13 04:35:43 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=10&view=rev Log Message: ----------- Moved remotely Added Paths: ----------- pgsqlclient/readme.txt Removed Paths: ------------- readme.txt Copied: pgsqlclient/readme.txt (from rev 9, readme.txt) =================================================================== --- pgsqlclient/readme.txt (rev 0) +++ pgsqlclient/readme.txt 2006-03-13 12:35:43 UTC (rev 10) @@ -0,0 +1,72 @@ +PgSqlClient - ADO.NET Data Provider for PostgreSQL 7.4+ +------------------------------------------------------- + +Licenses +-------- + +PostgreSql.Data.PgSqlClient and PgSqlClient.Data.PgSqlClient.UnitTest +source code is released under the terms of the LGPL license +(http://www.opensource.org/licenses/lgpl-license.php). + +Mono.Security.Protocol.Tls source code is released under the terms of the +Mit/X11 license. +(http://www.opensource.org/licenses/mit-license.php) + +Copys of both licenses can be found with this package: + + PostgreSql.Data.PgSqlClient.License.txt (LGPL) + PostgreSql.Data.PgSqlClient.License.html(LGPL) + +and + + Mono.Security.Protocol.Tls.License.txt (MIT/X11) + + + +Developement list +----------------- + +You can subscribe to the developement list at: + + http://lists.sourceforge.net/lists/listinfo/pgsqlclient-devel + + +You can see the archives here: + + http://sourceforge.net/mailarchive/forum.php?forum=pgsqlclient-devel + + +Users support list +----------------- + +You can subscribe to the users support list at: + + http://lists.sourceforge.net/lists/listinfo/pgsqlclient-users + + +You can see the archives here: + + http://sourceforge.net/mailarchive/forum.php?forum=pgsqlclient-users + + +CVS access +--- ------ + +You can see instructions for CVS access here: + + https://sourceforge.net/cvs/?group_id=85397 + + + +Reporting Bugs +-------------- + +For bug reporting you can: + +1. Send it to the developement list. + +2. Send it to the user support list. + +3. Using the project bug tracker ( You need a Sourceforge ID ). + + https://sourceforge.net/tracker/?group_id=85397&atid=576060 Deleted: readme.txt =================================================================== --- readme.txt 2006-03-13 12:35:07 UTC (rev 9) +++ readme.txt 2006-03-13 12:35:43 UTC (rev 10) @@ -1,72 +0,0 @@ -PgSqlClient - ADO.NET Data Provider for PostgreSQL 7.4+ -------------------------------------------------------- - -Licenses --------- - -PostgreSql.Data.PgSqlClient and PgSqlClient.Data.PgSqlClient.UnitTest -source code is released under the terms of the LGPL license -(http://www.opensource.org/licenses/lgpl-license.php). - -Mono.Security.Protocol.Tls source code is released under the terms of the -Mit/X11 license. -(http://www.opensource.org/licenses/mit-license.php) - -Copys of both licenses can be found with this package: - - PostgreSql.Data.PgSqlClient.License.txt (LGPL) - PostgreSql.Data.PgSqlClient.License.html(LGPL) - -and - - Mono.Security.Protocol.Tls.License.txt (MIT/X11) - - - -Developement list ------------------ - -You can subscribe to the developement list at: - - http://lists.sourceforge.net/lists/listinfo/pgsqlclient-devel - - -You can see the archives here: - - http://sourceforge.net/mailarchive/forum.php?forum=pgsqlclient-devel - - -Users support list ------------------ - -You can subscribe to the users support list at: - - http://lists.sourceforge.net/lists/listinfo/pgsqlclient-users - - -You can see the archives here: - - http://sourceforge.net/mailarchive/forum.php?forum=pgsqlclient-users - - -CVS access ---- ------ - -You can see instructions for CVS access here: - - https://sourceforge.net/cvs/?group_id=85397 - - - -Reporting Bugs --------------- - -For bug reporting you can: - -1. Send it to the developement list. - -2. Send it to the user support list. - -3. Using the project bug tracker ( You need a Sourceforge ID ). - - https://sourceforge.net/tracker/?group_id=85397&atid=576060 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-03-13 12:35:29
|
Revision: 9 Author: carlosga_fb Date: 2006-03-13 04:35:07 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=9&view=rev Log Message: ----------- Moved remotely Added Paths: ----------- pgsqlclient/changes.txt Removed Paths: ------------- changes.txt Deleted: changes.txt =================================================================== --- changes.txt 2006-03-13 12:34:30 UTC (rev 8) +++ changes.txt 2006-03-13 12:35:07 UTC (rev 9) @@ -1,155 +0,0 @@ -PgSqlClient - ADO.NET Data Provider for PostgreSQL 7.4+ -------------------------------------------------------- - - -Beta 7 ( 21-07-2004 ) ----- - - -- -- ---- - - -* Bug fixes (please review the changelog for details) - -* Better fit to ADO.NET - -* Improved SSL/TLS support. - -* Time and timestamp data types are now handled as strings. - -* Improved named parameters support. - -* Improved Command Builder and Data Reader classes. - - -Beta 6 ( 08-03-2004 ) ----- - - -- -- ---- - - -- Buf fixes. - -- Improved named parameters support. - -- Improved TLS/SSL support. - - -Beta 5 ( 18-12-2003 ) ----- - - -- -- ---- - - -- Buf fixes. - -- Minor improvements in PostgreSQL 3.0 implementation. - - -Beta 4 ( 20-11-2003 ) ----- - - -- -- ---- - - -- Bug fixes. - -- Better fit to ADO.NET. - -- Improved handling of command parameters. - -- Restricted batch command execution to PgCommand.ExecuteReader calls. - -- Added correct handling of character sets. - -- Added support for Geometric types. - -- Added some improvements to the SSL/TLS library. - - -Beta 3 ( 16-10-2003 ) ----- - - -- -- ---- - - -- Bug fixes. - -- Better fit to ADO.NET. - -- Improved Command Builder implementation. - -- Improved design time support for PgParameterCollection class. - -- Implemented PgDataReader.NextResult method. - -- Added implementation for array data type parameters. - -- Added some improvements to the TLS library. - - -Beta 2 ( 18-09-2003 ) ----- - - -- -- ---- - - -* Improvements to TLS (Transport Layer Security support). - -NUnit test suite can now be executed using TLS connections -( tested on Windows + CygWin + PostgreSQL 7.4 Beta 1 ) - -See the Task Lisk at project page on sourceforge to know what -is pending of implement in the TLS library. - -(https://sourceforge.net/pm/task.php?group_project_id=30343&group_id=85397&func=browse) - - - -Beta 1 ( 12-09-2003 ) ----- - - -- -- ---- - - -* Better fit to ADO.NET. - -* Simple Transport Layer security ( TLS 1.0 ) implementation -It's usined yet for both TLS and non-TLS connetions but it's not finished yet. - -* Improved Command Builder implementation. - -* Improved PgDataReader.GetSchemaTable method using prepared statemets for retrieve -column and primary key information. - -* Added SQL Server like Stored Procedure calls. - -* Improved compatibility with mono:: (http://www.go-mono.com) - - - -Alpha 3 ( 05-08-2003 ) ------ - - -- -- ---- - - -* Bug fixes. - -* Improved NUnit test suite. - -* Improved PostgreSQL 3.0 protocol handling. - -* Improved PgCommandBuilder.DeriveParameters method. - -* Added initial implementation of PgConnection.Notification for asynchronous notification support ( task #82889 ). - -* Added initial implementation of PgConnection.InfoMessage event ( task #82902 ). - -* Added initial implementation of serial fields support ( task #81647 ). - -* Changed casing of all clasess from PGXXX to PgXXX to follow MS' guidelines. - -* New directory structure in the CVS for match class, file and directory names -( pgsqlclient_10 is the actual cvs developement module ) - - - -Alpha 2 ( 31-07-2003 ) ------ - - -- -- ---- - - -* Better fit to ADO .NET - -* Improved NUnit test suite. - -* Added support for Function calls using CommandType.StoredProcedure. - -* Added some changes for better work with mono:: platform. - -* Added implementation for PgConnection.ChangeDatabase method. - -* Added implementation for PgCommandBuilder.DeriveParameters method. - -* PgCommandBuilder is now working better. - - - -Alpha 2 ( 27-07-2003 ) ------ - - -- -- ---- - - -Initial release. \ No newline at end of file Copied: pgsqlclient/changes.txt (from rev 8, changes.txt) =================================================================== --- pgsqlclient/changes.txt (rev 0) +++ pgsqlclient/changes.txt 2006-03-13 12:35:07 UTC (rev 9) @@ -0,0 +1,155 @@ +PgSqlClient - ADO.NET Data Provider for PostgreSQL 7.4+ +------------------------------------------------------- + + +Beta 7 ( 21-07-2004 ) +---- - - -- -- ---- - + +* Bug fixes (please review the changelog for details) + +* Better fit to ADO.NET + +* Improved SSL/TLS support. + +* Time and timestamp data types are now handled as strings. + +* Improved named parameters support. + +* Improved Command Builder and Data Reader classes. + + +Beta 6 ( 08-03-2004 ) +---- - - -- -- ---- - + +- Buf fixes. + +- Improved named parameters support. + +- Improved TLS/SSL support. + + +Beta 5 ( 18-12-2003 ) +---- - - -- -- ---- - + +- Buf fixes. + +- Minor improvements in PostgreSQL 3.0 implementation. + + +Beta 4 ( 20-11-2003 ) +---- - - -- -- ---- - + +- Bug fixes. + +- Better fit to ADO.NET. + +- Improved handling of command parameters. + +- Restricted batch command execution to PgCommand.ExecuteReader calls. + +- Added correct handling of character sets. + +- Added support for Geometric types. + +- Added some improvements to the SSL/TLS library. + + +Beta 3 ( 16-10-2003 ) +---- - - -- -- ---- - + +- Bug fixes. + +- Better fit to ADO.NET. + +- Improved Command Builder implementation. + +- Improved design time support for PgParameterCollection class. + +- Implemented PgDataReader.NextResult method. + +- Added implementation for array data type parameters. + +- Added some improvements to the TLS library. + + +Beta 2 ( 18-09-2003 ) +---- - - -- -- ---- - + +* Improvements to TLS (Transport Layer Security support). + +NUnit test suite can now be executed using TLS connections +( tested on Windows + CygWin + PostgreSQL 7.4 Beta 1 ) + +See the Task Lisk at project page on sourceforge to know what +is pending of implement in the TLS library. + +(https://sourceforge.net/pm/task.php?group_project_id=30343&group_id=85397&func=browse) + + + +Beta 1 ( 12-09-2003 ) +---- - - -- -- ---- - + +* Better fit to ADO.NET. + +* Simple Transport Layer security ( TLS 1.0 ) implementation +It's usined yet for both TLS and non-TLS connetions but it's not finished yet. + +* Improved Command Builder implementation. + +* Improved PgDataReader.GetSchemaTable method using prepared statemets for retrieve +column and primary key information. + +* Added SQL Server like Stored Procedure calls. + +* Improved compatibility with mono:: (http://www.go-mono.com) + + + +Alpha 3 ( 05-08-2003 ) +----- - - -- -- ---- - + +* Bug fixes. + +* Improved NUnit test suite. + +* Improved PostgreSQL 3.0 protocol handling. + +* Improved PgCommandBuilder.DeriveParameters method. + +* Added initial implementation of PgConnection.Notification for asynchronous notification support ( task #82889 ). + +* Added initial implementation of PgConnection.InfoMessage event ( task #82902 ). + +* Added initial implementation of serial fields support ( task #81647 ). + +* Changed casing of all clasess from PGXXX to PgXXX to follow MS' guidelines. + +* New directory structure in the CVS for match class, file and directory names +( pgsqlclient_10 is the actual cvs developement module ) + + + +Alpha 2 ( 31-07-2003 ) +----- - - -- -- ---- - + +* Better fit to ADO .NET + +* Improved NUnit test suite. + +* Added support for Function calls using CommandType.StoredProcedure. + +* Added some changes for better work with mono:: platform. + +* Added implementation for PgConnection.ChangeDatabase method. + +* Added implementation for PgCommandBuilder.DeriveParameters method. + +* PgCommandBuilder is now working better. + + + +Alpha 2 ( 27-07-2003 ) +----- - - -- -- ---- - + +Initial release. \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-03-13 12:34:50
|
Revision: 8 Author: carlosga_fb Date: 2006-03-13 04:34:30 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=8&view=rev Log Message: ----------- Moved remotely Added Paths: ----------- pgsqlclient/license.html Removed Paths: ------------- license.html Deleted: license.html =================================================================== --- license.html 2006-03-13 12:33:55 UTC (rev 7) +++ license.html 2006-03-13 12:34:30 UTC (rev 8) @@ -1,549 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<HTML> -<HEAD> - <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252"> - <TITLE>Initial Developer's PUBLIC LICENSE Version 1.0</TITLE> - <META NAME="GENERATOR" CONTENT="OpenOffice.org 1.1.1 (Win32)"> - <META NAME="CREATED" CONTENT="20040603;16204312"> - <META NAME="CHANGED" CONTENT="20040603;16215490"> - <STYLE> - <!-- - TD P { color: #000000; font-family: "verdana", "arial", "geneva", sans-serif; font-size: 9pt } - P { color: #000000; font-family: "verdana", "arial", "geneva", sans-serif; font-size: 9pt } - H2 { color: #008080; font-family: "verdana", "arial", "geneva", sans-serif; font-size: 13pt } - A:visited { font-family: "verdana", "arial", "geneva", sans-serif; font-size: 9pt; text-decoration: none } - A:link { color: #0000ff; font-family: "verdana", "arial", "geneva", sans-serif; font-size: 9pt; text-decoration: none } - --> - </STYLE> -</HEAD> -<BODY LANG="es-ES" TEXT="#000000" LINK="#0000ff" BGCOLOR="#ffffff" DIR="LTR"> -<TABLE WIDTH=65% CELLPADDING=2 CELLSPACING=2> - <TR> - <TD> - <H2>Initial Developer's PUBLIC LICENSE Version 1.0</H2> - </TD> - </TR> - <TR> - <TD> - <P>1. Definitions - </P> - <P>1.0 "<B>Commercial Use</B>" means distribution or - otherwise making the Covered Code available to a third party. - </P> - <P>1.1 ''<B>Contributor</B>'' means each entity that creates or - contributes to the creation of Modifications. - </P> - <P>1.2 ''<B>Contributor Version</B>'' means the combination of the - Original Code, prior Modifications used by a Contributor, and the - Modifications made by that particular Contributor. - </P> - <P>1.3. ''<B>Covered Code</B>'' means the Original Code or - Modifications or the combination of the Original Code and - Modifications, in each case including portions thereof. - </P> - <P>1.4. ''<B>Electronic Distribution Mechanism</B>'' means a - mechanism generally accepted in the software development community - for the electronic transfer of data. - </P> - <P>1.5. ''<B>Executable</B>'' means Covered Code in any form other - than Source Code. - </P> - <P>1.6. ''<B>Initial Developer</B>'' means the individual or - entity identified as the Initial Developer in the Source Code - notice required by Exhibit A. - </P> - <P>1.7. ''<B>Larger Work</B>'' means a work which combines Covered - Code or portions thereof with code not governed by the terms of - this License. - </P> - <P>1.8. ''<B>License</B>'' means this document. - </P> - <P>1.8.1. "<B>Licensable</B>" means having the right to - grant, to the maximum extent possible, whether at the time of the - initial grant or subsequently acquired, any and all of the rights - conveyed herein. - </P> - <P>1.9. ''<B>Modifications</B>'' means any addition to or deletion - from the substance or structure of either the Original Code or any - previous Modifications. When Covered Code is released as a series - of files, a Modification is: - </P> - <P>Any addition to or deletion from the contents of a file - containing Original Code or previous Modifications. - </P> - <P>Any new file that contains any part of the Original Code or - previous Modifications. - </P> - <P>1.10. ''<B>Original Code</B>'' means Source Code of computer - software code which is described in the Source Code notice - required by Exhibit A as Original Code, and which, at the time of - its release under this License is not already Covered Code - governed by this License. - </P> - <P>1.10.1. "<B>Patent Claims</B>" means any patent - claim(s), now owned or hereafter acquired, including without - limitation, method, process, and apparatus claims, in any patent - Licensable by grantor. - </P> - <P>1.11. ''<B>Source Code</B>'' means the preferred form of the - Covered Code for making modifications to it, including all modules - it contains, plus any associated interface definition files, - scripts used to control compilation and installation of an - Executable, or source code differential comparisons against either - the Original Code or another well known, available Covered Code of - the Contributor's choice. The Source Code can be in a compressed - or archival form, provided the appropriate decompression or - de-archiving software is widely available for no charge. - </P> - <P>1.12. "<B>You</B>'' (or "<B>Your</B>") means an - individual or a legal entity exercising rights under, and - complying with all of the terms of, this License or a future - version of this License issued under Section 6.1. For legal - entities, "You'' includes any entity w hich controls, is - controlled by, or is under common control with You. For purposes - of this definition, "control'' means (a) the power, direct or - indirect, to cause the direction or management of such entity, - whether by contract or otherwise, or (b) ownership of more than - fifty percent (50%) of the outstanding shares or beneficial - ownership of such entity.</P> - <P>2. Source Code License. - </P> - <P><B>2.1. The Initial Developer Grant.</B> The Initial Developer - hereby grants You a world-wide, royalty-free, non-exclusive - license, subject to third party intellectual property claims: - </P> - <P>(a) under intellectual property rights (other than patent or - trademark) Licensable by Initial Developer to use, reproduce, - modify, display, perform, sublicense and distribute the Original - Code (or portions thereof) with or without Modifications, and/or - as part of a Larger Work; and - </P> - <P>(b) under Patents Claims infringed by the making, using or - selling of Original Code, to make, have made, use, practice, sell, - and offer for sale, and/or otherwise dispose of the Original Code - (or portions thereof). - </P> - <P>(c) the licenses granted in this Section 2.1(a) and (b) are - effective on the date Initial Developer first distributes Original - Code under the terms of this License. - </P> - <P>d) Notwithstanding Section 2.1(b) above, no patent license is - granted:</P> - <P>1) for code that You delete from the Original Code; - </P> - <P>2) separate from the Original Code; or - </P> - <P>3) for infringements caused by: - </P> - <P>i) the modification of the Original Code or - </P> - <P>ii) the combination of the Original Code with other software or - devices. - </P> - <P><B>2.2. Contributor Grant.</B> Subject to third party - intellectual property claims, each Contributor hereby grants You a - world-wide, royalty-free, non-exclusive license - </P> - <P>(a) under intellectual property rights (other than patent or - trademark) Licensable by Contributor, to use, reproduce, modify, - display, perform, sublicense and distribute the Modifications - created by such Contributor (or portions thereof) either on an - unmodified basis, with other Modifications, as Covered Code and/or - as part of a Larger Work; and - </P> - <P>(b) under Patent Claims infringed by the making, using, or - selling of Modifications made by that Contributor either alone - and/or in combination with its Contributor Version (or portions of - such combination), to make, use, sell, offer for sale, have made, - and/or otherwise dispose of: 1) Modifications made by that - Contributor (or portions thereof); and 2) the combination of - Modifications made by that Contributor with its Contributor - Version (or portions of such combination). - </P> - <P>(c) the licenses granted in Sections 2.2(a) and 2.2(b) are - effective on the date Contributor first makes Commercial Use of - the Covered Code. - </P> - <P>(d) Notwithstanding Section 2.2(b) above, no patent license is - granted: - </P> - <P>1) for any code that Contributor has deleted from the - Contributor Version; - </P> - <P>2) separate from the Contributor Version; - </P> - <P>3) for infringements caused by: i) third party modifications of - Contributor Version or - </P> - <P>ii) the combination of Modifications made by that Contributor - with other software (except as part of the Contributor Version) or - other devices; or - </P> - <P>4) under Patent Claims infringed by Covered Code in the absence - of Modifications made by that Contributor. - </P> - <P>3. Distribution Obligations. - </P> - <P><B>3.1. Application of License.</B> The Modifications which You - create or to which You contribute are governed by the terms of - this License, including without limitation Section 2.2. The Source - Code version of Covered Code may be distributed only under the - terms of this License or a future version of this License released - under Section 6.1, and You must include a copy of this License - with every copy of the Source Code You distribute. You may not - offer or impose any terms on any Source Code version that alters - or restricts the applicable version of this License or the - recipients' rights hereunder. However, You may include an - additional document offering the additional rights described in - Section 3.5.</P> - <P><B>3.2. Availability of Source Code</B>. Any Modification which - You create or to which You contribute must be made available in - Source Code form under the terms of this License either on the - same media as an Executable version or via an accepted Electronic - Distribution Mechanism to anyone to whom you made an Executable - version available; and if made available via Electronic - Distribution Mechanism, must remain available for at least twelve - (12) months after the date it initially became available, or at - least six (6) months after a subsequent version of that particular - Modification has been made available to such recipients. You are - responsible for ensuring that the Source Code version remains - available even if the Electronic Distribution Mechanism is - maintained by a third party. - </P> - <P><B>3.3. Description of Modifications.</B> You must cause all - Covered Code to which You contribute to contain a file documenting - the changes You made to create that Covered Code and the date of - any change. You must include a prominent statement that the - Modification is derived, directly or indirectly, from Original - Code provided by the Initial Developer and including the name of - the Initial Developer in - </P> - <P>(a) the Source Code, and - </P> - <P>(b) in any notice in an Executable version or related - documentation in which You describe the origin or ownership of the - Covered Code.</P> - <P><B>3.4. Intellectual Property Matters </B> - </P> - <P>a) Third Party Claims. If Contributor has knowledge that a - license under a third party's intellectual property rights is - required to exercise the rights granted by such Contributor under - Sections 2.1 or 2.2, Contributor must include a text file with the - Source Code distribution titled "LEGAL'' which describes the - claim and the party making the claim in sufficient detail that a - recipient will know whom to contact. If Contributor obtains such - knowledge after the Modification is made available as described in - Section 3.2, Contributor shall promptly modify the LEGAL file in - all copies Contributor makes available thereafter and shall take - other steps (such as notifying appropriate mailing lists or - newsgroups) reasonably calculated to inform those who received the - Covered Code that new knowledge has been obtained. - </P> - <P>(b) Contributor APIs. If Contributor's Modifications include an - application programming interface and Contributor has knowledge of - patent licenses which are reasonably necessary to implement that - API, Contributor must also include this information in the LEGAL - file. - </P> - <P>(c) Representations. Contributor represents that, except as - disclosed pursuant to Section 3.4(a) above, Contributor believes - that Contributor's Modifications are Contributor's original - creation(s) and/or Contributor has sufficient rights to grant the - rights conveyed by this License. - </P> - <P><B>3.5. Required Notices.</B> You must duplicate the notice in - Exhibit A in each file of the Source Code. If it is not possible - to put such notice in a particular Source Code file due to its - structure, then You must include such notice in a location (such - as a relevant directory) where a user would be likely to look for - such a notice. If You created one or more Modification(s) You may - add your name as a Contributor to the notice described in Exhibit - A. You must also duplicate this License in any documentation for - the Source Code where You describe recipients' rights or ownership - rights relating to Covered Code. You may choose to offer, and to - charge a fee for, warranty, support, indemnity or liability - obligations to one or more recipients of Covered Code. However, - You may do so only on Your own behalf, and not on behalf of the - Initial Developer or any Contributor. You must make it absolutely - clear than any such warranty, support, indemnity or liability - obligation is offered by You alone, and You hereby agree to - indemnify the Initial Developer and every Contributor for any - liability incurred by the Initial Developer or such Contributor as - a result of warranty, support, indemnity or liability terms You - offer. - </P> - <P><B>3.6. Distribution of Executable Versions.</B> You may - distribute Covered Code in Executable form only if the - requirements of Section 3.1-3.5 have been met for that Covered - Code, and if You include a notice stating that the Source Code - version of the Covered Code is available under the terms of this - License, including a description of how and where You have - fulfilled the obligations of Section 3.2. The notice must be - conspicuously included in any notice in an Executable version, - related documentation or collateral in which You describe - recipients' rights relating to the Covered Code. You may - distribute the Executable version of Covered Code or ownership - rights under a license of Your choice, which may contain terms - different from this License, provided that You are in compliance - with the terms of this License and hat the license for the - Executable version does not attempt to limit or alter the - recipient's rights in the Source Code version from the rights set - forth in this License. If You distribute the Executable version - under a different license You must make it absolutely clear that - any terms which differ from this License are offered by You alone, - not by the Initial Developer or any Contributor. You hereby agree - to indemnify the Initial Developer and every Contributor for any - liability incurred by the Initial Developer or such Contributor as - a result of any such terms You offer. - </P> - <P><B>3.7. Larger Works.</B> You may create a Larger Work by - combining Covered Code with other code not governed by the terms - of this License and distribute the Larger Work as a single - product. In such a case, You must make sure the requirements of - this License are fulfilled for the Covered Code. - </P> - <P>4. Inability to Comply Due to Statute or Regulation. - </P> - <P>If it is impossible for You to comply with any of the terms of - this License with respect to some or all of the Covered Code due - to statute, judicial order, or regulation then You must: - </P> - <P>(a) comply with the terms of this License to the maximum extent - possible; and - </P> - <P>(b) describe the limitations and the code they affect. Such - description must be included in the LEGAL file described in - Section 3.4 and must be included with all distributions of the - Source Code. Except to the extent prohibited by statute or - regulation, such description must be sufficiently detailed for a - recipient of ordinary skill to be able to understand it. - </P> - <P>5. Application of this License.</P> - <P>This License applies to code to which the Initial Developer has - attached the notice in Exhibit A and to related Covered Code. - </P> - <P>6. Versions of the License. - </P> - <P><B>6.1. New Versions.</B> The Initial Developer of this code - may publish revised and/or new versions of the License from time - to time. Each version will be given a distinguishing version - number. - </P> - <P><B>6.2. Effect of New Versions.</B> Once Covered Code has been - published under a particular version of the License, You may - always continue to use it under the terms of that version. You may - also choose to use such Covered Code under the terms of any - subsequent version of the License published by the Initial - Developer. No one other than the Initial Developer has the right - to modify the terms applicable to Covered Code created under this - License. - </P> - <P><B>6.3. Derivative Works.</B> If You create or use a modified - version of this License (which you may only do in order to apply - it to code which is not already Covered Code governed by this - License), You must - </P> - <P>(a) rename Your license so that the phrases ''Mozilla'', - ''MOZILLAPL'', ''MOZPL'', ''Netscape'', "MPL", ''NPL", - or any confusingly similar phrases do not appear in your license - (except to note that your license differs from this License) and - </P> - <P>(b) otherwise make it clear that Your version of the license - contains terms which differ from the Mozilla Public License and - Netscape Public License. (Filling in the name of the Initial - Developer, Original Code or Contributor in the notice described in - Exhibit A shall not of themselves be deemed to be modifications of - this License.) - </P> - <P><B>6.4 Origin of the Initial Developer's Public License.</B> - The Initial Developer's Public License is based on the Mozilla - Public License V 1.1 with the following changes: - </P> - <P>1) The license is published by the Initial Developer of this - code. Only the Initial Developer can modify the terms applicable - to Covered Code. - </P> - <P>2) The license can be modified and used for code which is not - already governed by this license. Modified versions of the license - must be renamed to avoid confusion with Netscape's license Initial - Developer's's license and must include a description of changes - from the Initial Developer's Public License. - </P> - <P>3) The name of the license in Exhibit A is the "Initial - Developer's Public License". - </P> - <P>4) The reference to an alternative license in Exhibit A has - been removed . - </P> - <P>5) Amendments I, II, III, V, and VI have been deleted. - </P> - <P>6) Exhibit A, Netscape Public License has been deleted - </P> - <P>7. DISCLAIMER OF WARRANTY. - </P> - <P>COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS'' - BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, - INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS - FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR - NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE - OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE - DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY - OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, - REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN - ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS - AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.</P> - <P>8. TERMINATION. - </P> - <P>8.1. This License and the rights granted hereunder will - terminate automatically if You fail to comply with terms herein - and fail to cure such breach within 30 days of becoming aware of - the breach. All sublicenses to the Covered Code which are properly - granted shall survive any termination of this License. Provisions - which, by their nature, must remain in effect beyond the - termination of this License shall survive. - </P> - <P>8.2. If You initiate litigation by asserting a patent - infringement claim (excluding declatory judgment actions) against - Initial Developer or a Contributor (the Initial Developer or - Contributor against whom You file such action is referred to as - "Participant") alleging that: - </P> - <P>(a) such Participant's Contributor Version directly or - indirectly infringes any patent, then any and all rights granted - by such Participant to You under Sections 2.1 and/or 2.2 of this - License shall, upon 60 days notice from Participant terminate - prospectively, unless if within 60 days after receipt of notice - You either: - </P> - <P>(i) agree in writing to pay Participant a mutually agreeable - reasonable royalty for Your past and future use of Modifications - made by such Participant, or</P> - <P>(ii) withdraw Your litigation claim with respect to the - Contributor Version against such Participant. - </P> - <P>If within 60 days of notice, a reasonable royalty and payment - arrangement are not mutually agreed upon in writing by the parties - or the litigation claim is not withdrawn, the rights granted by - Participant to You under Sections 2.1 and/or 2.2 automatically - terminate at the expiration of the 60 day notice period specified - above.</P> - <P>(b) any software, hardware, or device, other than such - Participant's Contributor Version, directly or indirectly - infringes any patent, then any rights granted to You by such - Participant under Sections 2.1(b) and 2.2(b) are revoked effective - as of the date You first made, used, sold, distributed, or had - made, Modifications made by that Participant. - </P> - <P>8.3. If You assert a patent infringement claim against - Participant alleging that such Participant's Contributor Version - directly or indirectly infringes any patent where such claim is - resolved (such as by license or settlement) prior to the - initiation of patent infringement litigation, then the reasonable - value of the licenses granted by such Participant under Sections - 2.1 or 2.2 shall be taken into account in determining the amount - or value of any payment or license. - </P> - <P>8.4. In the event of termination under Sections 8.1 or 8.2 - above, all end user license agreements (excluding distributors and - resellers) which have been validly granted by You or any - distributor hereunder prior to termination shall survive - termination. - </P> - <P>9. LIMITATION OF LIABILITY.</P> - <P>UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT - (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE - INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF - COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO - ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL - DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES - FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR - MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, - EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF - SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO - LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S - NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. - SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF - INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND - LIMITATION MAY NOT APPLY TO YOU. - </P> - <P>10. U.S. GOVERNMENT END USERS. - </P> - <P>The Covered Code is a ''commercial item,'' as that term is - defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of ''commercial - computer software'' and ''commercial computer software - documentation,'' as such terms are used in 48 C.F.R. 12.212 (Sept. - 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 - through 227.7202-4 (June 1995), all U.S. Government End Users - acquire Covered Code with only those rights set forth herein. - </P> - <P>11. MISCELLANEOUS. - </P> - <P>This License represents the complete agreement concerning - subject matter hereof. If any provision of this License is held to - be unenforceable, such provision shall be reformed only to the - extent necessary to make it enforceable. This License shall be - governed by California law provisions (except to the extent - applicable law, if any, provides otherwise), excluding its - conflict-of-law provisions. With respect to disputes in which at - least one party is a citizen of, or an entity chartered or - registered to do business in the United States of America, any - litigation relating to this License shall be subject to the - jurisdiction of the Federal Courts of the Northern District of - California, with venue lying in Santa Clara County, California, - with the losing party responsible for costs, including without - limitation, court costs and reasonable attorneys' fees and - expenses. The application of the United Nations Convention on - Contracts for the International Sale of Goods is expressly - excluded. Any law or regulation which provides that the language - of a contract shall be construed against the drafter shall not - apply to this License. - </P> - <P>12. RESPONSIBILITY FOR CLAIMS. - </P> - <P>As between Initial Developer and the Contributors, each party - is responsible for claims and damages arising, directly or - indirectly, out of its utilization of rights under this License - and You agree to work with Initial Developer and Contributors to - distribute such responsibility on an equitable basis. Nothing - herein is intended or shall be deemed to constitute any admission - of liability. - </P> - <P>13. MULTIPLE-LICENSED CODE. - </P> - <P>Initial Developer may designate portions of the Covered Code as - "Multiple-Licensed". "Multiple-Licensed" means - that the Initial Devpoeloper permits you to utilize portions of - the Covered Code under Your choice of the IDPL or the alternative - licenses, if any, specified by the Initial Developer in the file - described in Exhibit A. - </P> - <P><B>EXHIBIT A</B> -Initial Developer's Public License. - </P> - <P>The contents of this file are subject to the Initial - Developer's Public License Version 1.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License <A HREF="http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_idpl">here.</A></P> - <P>Software distributed under the License is distributed on an "AS - IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - implied. See the License for the specific language governing - rights and limitations under the License. - </P> - <P>The Original Code is ______________________________________. - </P> - <P>The Initial Developer of the Original Code is - ________________________. - </P> - <P>Portions created by ______________________ <BR>are Copyright - (C) ______ _______________________. - </P> - <P>All Rights Reserved. - </P> - <P>Contributor(s): ______________________________________. - </P> - </TD> - </TR> -</TABLE> -<P><BR><BR> -</P> -</BODY> -</HTML> \ No newline at end of file Copied: pgsqlclient/license.html (from rev 7, license.html) =================================================================== --- pgsqlclient/license.html (rev 0) +++ pgsqlclient/license.html 2006-03-13 12:34:30 UTC (rev 8) @@ -0,0 +1,549 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<HTML> +<HEAD> + <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252"> + <TITLE>Initial Developer's PUBLIC LICENSE Version 1.0</TITLE> + <META NAME="GENERATOR" CONTENT="OpenOffice.org 1.1.1 (Win32)"> + <META NAME="CREATED" CONTENT="20040603;16204312"> + <META NAME="CHANGED" CONTENT="20040603;16215490"> + <STYLE> + <!-- + TD P { color: #000000; font-family: "verdana", "arial", "geneva", sans-serif; font-size: 9pt } + P { color: #000000; font-family: "verdana", "arial", "geneva", sans-serif; font-size: 9pt } + H2 { color: #008080; font-family: "verdana", "arial", "geneva", sans-serif; font-size: 13pt } + A:visited { font-family: "verdana", "arial", "geneva", sans-serif; font-size: 9pt; text-decoration: none } + A:link { color: #0000ff; font-family: "verdana", "arial", "geneva", sans-serif; font-size: 9pt; text-decoration: none } + --> + </STYLE> +</HEAD> +<BODY LANG="es-ES" TEXT="#000000" LINK="#0000ff" BGCOLOR="#ffffff" DIR="LTR"> +<TABLE WIDTH=65% CELLPADDING=2 CELLSPACING=2> + <TR> + <TD> + <H2>Initial Developer's PUBLIC LICENSE Version 1.0</H2> + </TD> + </TR> + <TR> + <TD> + <P>1. Definitions + </P> + <P>1.0 "<B>Commercial Use</B>" means distribution or + otherwise making the Covered Code available to a third party. + </P> + <P>1.1 ''<B>Contributor</B>'' means each entity that creates or + contributes to the creation of Modifications. + </P> + <P>1.2 ''<B>Contributor Version</B>'' means the combination of the + Original Code, prior Modifications used by a Contributor, and the + Modifications made by that particular Contributor. + </P> + <P>1.3. ''<B>Covered Code</B>'' means the Original Code or + Modifications or the combination of the Original Code and + Modifications, in each case including portions thereof. + </P> + <P>1.4. ''<B>Electronic Distribution Mechanism</B>'' means a + mechanism generally accepted in the software development community + for the electronic transfer of data. + </P> + <P>1.5. ''<B>Executable</B>'' means Covered Code in any form other + than Source Code. + </P> + <P>1.6. ''<B>Initial Developer</B>'' means the individual or + entity identified as the Initial Developer in the Source Code + notice required by Exhibit A. + </P> + <P>1.7. ''<B>Larger Work</B>'' means a work which combines Covered + Code or portions thereof with code not governed by the terms of + this License. + </P> + <P>1.8. ''<B>License</B>'' means this document. + </P> + <P>1.8.1. "<B>Licensable</B>" means having the right to + grant, to the maximum extent possible, whether at the time of the + initial grant or subsequently acquired, any and all of the rights + conveyed herein. + </P> + <P>1.9. ''<B>Modifications</B>'' means any addition to or deletion + from the substance or structure of either the Original Code or any + previous Modifications. When Covered Code is released as a series + of files, a Modification is: + </P> + <P>Any addition to or deletion from the contents of a file + containing Original Code or previous Modifications. + </P> + <P>Any new file that contains any part of the Original Code or + previous Modifications. + </P> + <P>1.10. ''<B>Original Code</B>'' means Source Code of computer + software code which is described in the Source Code notice + required by Exhibit A as Original Code, and which, at the time of + its release under this License is not already Covered Code + governed by this License. + </P> + <P>1.10.1. "<B>Patent Claims</B>" means any patent + claim(s), now owned or hereafter acquired, including without + limitation, method, process, and apparatus claims, in any patent + Licensable by grantor. + </P> + <P>1.11. ''<B>Source Code</B>'' means the preferred form of the + Covered Code for making modifications to it, including all modules + it contains, plus any associated interface definition files, + scripts used to control compilation and installation of an + Executable, or source code differential comparisons against either + the Original Code or another well known, available Covered Code of + the Contributor's choice. The Source Code can be in a compressed + or archival form, provided the appropriate decompression or + de-archiving software is widely available for no charge. + </P> + <P>1.12. "<B>You</B>'' (or "<B>Your</B>") means an + individual or a legal entity exercising rights under, and + complying with all of the terms of, this License or a future + version of this License issued under Section 6.1. For legal + entities, "You'' includes any entity w hich controls, is + controlled by, or is under common control with You. For purposes + of this definition, "control'' means (a) the power, direct or + indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity.</P> + <P>2. Source Code License. + </P> + <P><B>2.1. The Initial Developer Grant.</B> The Initial Developer + hereby grants You a world-wide, royalty-free, non-exclusive + license, subject to third party intellectual property claims: + </P> + <P>(a) under intellectual property rights (other than patent or + trademark) Licensable by Initial Developer to use, reproduce, + modify, display, perform, sublicense and distribute the Original + Code (or portions thereof) with or without Modifications, and/or + as part of a Larger Work; and + </P> + <P>(b) under Patents Claims infringed by the making, using or + selling of Original Code, to make, have made, use, practice, sell, + and offer for sale, and/or otherwise dispose of the Original Code + (or portions thereof). + </P> + <P>(c) the licenses granted in this Section 2.1(a) and (b) are + effective on the date Initial Developer first distributes Original + Code under the terms of this License. + </P> + <P>d) Notwithstanding Section 2.1(b) above, no patent license is + granted:</P> + <P>1) for code that You delete from the Original Code; + </P> + <P>2) separate from the Original Code; or + </P> + <P>3) for infringements caused by: + </P> + <P>i) the modification of the Original Code or + </P> + <P>ii) the combination of the Original Code with other software or + devices. + </P> + <P><B>2.2. Contributor Grant.</B> Subject to third party + intellectual property claims, each Contributor hereby grants You a + world-wide, royalty-free, non-exclusive license + </P> + <P>(a) under intellectual property rights (other than patent or + trademark) Licensable by Contributor, to use, reproduce, modify, + display, perform, sublicense and distribute the Modifications + created by such Contributor (or portions thereof) either on an + unmodified basis, with other Modifications, as Covered Code and/or + as part of a Larger Work; and + </P> + <P>(b) under Patent Claims infringed by the making, using, or + selling of Modifications made by that Contributor either alone + and/or in combination with its Contributor Version (or portions of + such combination), to make, use, sell, offer for sale, have made, + and/or otherwise dispose of: 1) Modifications made by that + Contributor (or portions thereof); and 2) the combination of + Modifications made by that Contributor with its Contributor + Version (or portions of such combination). + </P> + <P>(c) the licenses granted in Sections 2.2(a) and 2.2(b) are + effective on the date Contributor first makes Commercial Use of + the Covered Code. + </P> + <P>(d) Notwithstanding Section 2.2(b) above, no patent license is + granted: + </P> + <P>1) for any code that Contributor has deleted from the + Contributor Version; + </P> + <P>2) separate from the Contributor Version; + </P> + <P>3) for infringements caused by: i) third party modifications of + Contributor Version or + </P> + <P>ii) the combination of Modifications made by that Contributor + with other software (except as part of the Contributor Version) or + other devices; or + </P> + <P>4) under Patent Claims infringed by Covered Code in the absence + of Modifications made by that Contributor. + </P> + <P>3. Distribution Obligations. + </P> + <P><B>3.1. Application of License.</B> The Modifications which You + create or to which You contribute are governed by the terms of + this License, including without limitation Section 2.2. The Source + Code version of Covered Code may be distributed only under the + terms of this License or a future version of this License released + under Section 6.1, and You must include a copy of this License + with every copy of the Source Code You distribute. You may not + offer or impose any terms on any Source Code version that alters + or restricts the applicable version of this License or the + recipients' rights hereunder. However, You may include an + additional document offering the additional rights described in + Section 3.5.</P> + <P><B>3.2. Availability of Source Code</B>. Any Modification which + You create or to which You contribute must be made available in + Source Code form under the terms of this License either on the + same media as an Executable version or via an accepted Electronic + Distribution Mechanism to anyone to whom you made an Executable + version available; and if made available via Electronic + Distribution Mechanism, must remain available for at least twelve + (12) months after the date it initially became available, or at + least six (6) months after a subsequent version of that particular + Modification has been made available to such recipients. You are + responsible for ensuring that the Source Code version remains + available even if the Electronic Distribution Mechanism is + maintained by a third party. + </P> + <P><B>3.3. Description of Modifications.</B> You must cause all + Covered Code to which You contribute to contain a file documenting + the changes You made to create that Covered Code and the date of + any change. You must include a prominent statement that the + Modification is derived, directly or indirectly, from Original + Code provided by the Initial Developer and including the name of + the Initial Developer in + </P> + <P>(a) the Source Code, and + </P> + <P>(b) in any notice in an Executable version or related + documentation in which You describe the origin or ownership of the + Covered Code.</P> + <P><B>3.4. Intellectual Property Matters </B> + </P> + <P>a) Third Party Claims. If Contributor has knowledge that a + license under a third party's intellectual property rights is + required to exercise the rights granted by such Contributor under + Sections 2.1 or 2.2, Contributor must include a text file with the + Source Code distribution titled "LEGAL'' which describes the + claim and the party making the claim in sufficient detail that a + recipient will know whom to contact. If Contributor obtains such + knowledge after the Modification is made available as described in + Section 3.2, Contributor shall promptly modify the LEGAL file in + all copies Contributor makes available thereafter and shall take + other steps (such as notifying appropriate mailing lists or + newsgroups) reasonably calculated to inform those who received the + Covered Code that new knowledge has been obtained. + </P> + <P>(b) Contributor APIs. If Contributor's Modifications include an + application programming interface and Contributor has knowledge of + patent licenses which are reasonably necessary to implement that + API, Contributor must also include this information in the LEGAL + file. + </P> + <P>(c) Representations. Contributor represents that, except as + disclosed pursuant to Section 3.4(a) above, Contributor believes + that Contributor's Modifications are Contributor's original + creation(s) and/or Contributor has sufficient rights to grant the + rights conveyed by this License. + </P> + <P><B>3.5. Required Notices.</B> You must duplicate the notice in + Exhibit A in each file of the Source Code. If it is not possible + to put such notice in a particular Source Code file due to its + structure, then You must include such notice in a location (such + as a relevant directory) where a user would be likely to look for + such a notice. If You created one or more Modification(s) You may + add your name as a Contributor to the notice described in Exhibit + A. You must also duplicate this License in any documentation for + the Source Code where You describe recipients' rights or ownership + rights relating to Covered Code. You may choose to offer, and to + charge a fee for, warranty, support, indemnity or liability + obligations to one or more recipients of Covered Code. However, + You may do so only on Your own behalf, and not on behalf of the + Initial Developer or any Contributor. You must make it absolutely + clear than any such warranty, support, indemnity or liability + obligation is offered by You alone, and You hereby agree to + indemnify the Initial Developer and every Contributor for any + liability incurred by the Initial Developer or such Contributor as + a result of warranty, support, indemnity or liability terms You + offer. + </P> + <P><B>3.6. Distribution of Executable Versions.</B> You may + distribute Covered Code in Executable form only if the + requirements of Section 3.1-3.5 have been met for that Covered + Code, and if You include a notice stating that the Source Code + version of the Covered Code is available under the terms of this + License, including a description of how and where You have + fulfilled the obligations of Section 3.2. The notice must be + conspicuously included in any notice in an Executable version, + related documentation or collateral in which You describe + recipients' rights relating to the Covered Code. You may + distribute the Executable version of Covered Code or ownership + rights under a license of Your choice, which may contain terms + different from this License, provided that You are in compliance + with the terms of this License and hat the license for the + Executable version does not attempt to limit or alter the + recipient's rights in the Source Code version from the rights set + forth in this License. If You distribute the Executable version + under a different license You must make it absolutely clear that + any terms which differ from this License are offered by You alone, + not by the Initial Developer or any Contributor. You hereby agree + to indemnify the Initial Developer and every Contributor for any + liability incurred by the Initial Developer or such Contributor as + a result of any such terms You offer. + </P> + <P><B>3.7. Larger Works.</B> You may create a Larger Work by + combining Covered Code with other code not governed by the terms + of this License and distribute the Larger Work as a single + product. In such a case, You must make sure the requirements of + this License are fulfilled for the Covered Code. + </P> + <P>4. Inability to Comply Due to Statute or Regulation. + </P> + <P>If it is impossible for You to comply with any of the terms of + this License with respect to some or all of the Covered Code due + to statute, judicial order, or regulation then You must: + </P> + <P>(a) comply with the terms of this License to the maximum extent + possible; and + </P> + <P>(b) describe the limitations and the code they affect. Such + description must be included in the LEGAL file described in + Section 3.4 and must be included with all distributions of the + Source Code. Except to the extent prohibited by statute or + regulation, such description must be sufficiently detailed for a + recipient of ordinary skill to be able to understand it. + </P> + <P>5. Application of this License.</P> + <P>This License applies to code to which the Initial Developer has + attached the notice in Exhibit A and to related Covered Code. + </P> + <P>6. Versions of the License. + </P> + <P><B>6.1. New Versions.</B> The Initial Developer of this code + may publish revised and/or new versions of the License from time + to time. Each version will be given a distinguishing version + number. + </P> + <P><B>6.2. Effect of New Versions.</B> Once Covered Code has been + published under a particular version of the License, You may + always continue to use it under the terms of that version. You may + also choose to use such Covered Code under the terms of any + subsequent version of the License published by the Initial + Developer. No one other than the Initial Developer has the right + to modify the terms applicable to Covered Code created under this + License. + </P> + <P><B>6.3. Derivative Works.</B> If You create or use a modified + version of this License (which you may only do in order to apply + it to code which is not already Covered Code governed by this + License), You must + </P> + <P>(a) rename Your license so that the phrases ''Mozilla'', + ''MOZILLAPL'', ''MOZPL'', ''Netscape'', "MPL", ''NPL", + or any confusingly similar phrases do not appear in your license + (except to note that your license differs from this License) and + </P> + <P>(b) otherwise make it clear that Your version of the license + contains terms which differ from the Mozilla Public License and + Netscape Public License. (Filling in the name of the Initial + Developer, Original Code or Contributor in the notice described in + Exhibit A shall not of themselves be deemed to be modifications of + this License.) + </P> + <P><B>6.4 Origin of the Initial Developer's Public License.</B> + The Initial Developer's Public License is based on the Mozilla + Public License V 1.1 with the following changes: + </P> + <P>1) The license is published by the Initial Developer of this + code. Only the Initial Developer can modify the terms applicable + to Covered Code. + </P> + <P>2) The license can be modified and used for code which is not + already governed by this license. Modified versions of the license + must be renamed to avoid confusion with Netscape's license Initial + Developer's's license and must include a description of changes + from the Initial Developer's Public License. + </P> + <P>3) The name of the license in Exhibit A is the "Initial + Developer's Public License". + </P> + <P>4) The reference to an alternative license in Exhibit A has + been removed . + </P> + <P>5) Amendments I, II, III, V, and VI have been deleted. + </P> + <P>6) Exhibit A, Netscape Public License has been deleted + </P> + <P>7. DISCLAIMER OF WARRANTY. + </P> + <P>COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS'' + BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, + INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS + FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR + NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE + OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE + DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY + OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, + REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN + ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS + AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.</P> + <P>8. TERMINATION. + </P> + <P>8.1. This License and the rights granted hereunder will + terminate automatically if You fail to comply with terms herein + and fail to cure such breach within 30 days of becoming aware of + the breach. All sublicenses to the Covered Code which are properly + granted shall survive any termination of this License. Provisions + which, by their nature, must remain in effect beyond the + termination of this License shall survive. + </P> + <P>8.2. If You initiate litigation by asserting a patent + infringement claim (excluding declatory judgment actions) against + Initial Developer or a Contributor (the Initial Developer or + Contributor against whom You file such action is referred to as + "Participant") alleging that: + </P> + <P>(a) such Participant's Contributor Version directly or + indirectly infringes any patent, then any and all rights granted + by such Participant to You under Sections 2.1 and/or 2.2 of this + License shall, upon 60 days notice from Participant terminate + prospectively, unless if within 60 days after receipt of notice + You either: + </P> + <P>(i) agree in writing to pay Participant a mutually agreeable + reasonable royalty for Your past and future use of Modifications + made by such Participant, or</P> + <P>(ii) withdraw Your litigation claim with respect to the + Contributor Version against such Participant. + </P> + <P>If within 60 days of notice, a reasonable royalty and payment + arrangement are not mutually agreed upon in writing by the parties + or the litigation claim is not withdrawn, the rights granted by + Participant to You under Sections 2.1 and/or 2.2 automatically + terminate at the expiration of the 60 day notice period specified + above.</P> + <P>(b) any software, hardware, or device, other than such + Participant's Contributor Version, directly or indirectly + infringes any patent, then any rights granted to You by such + Participant under Sections 2.1(b) and 2.2(b) are revoked effective + as of the date You first made, used, sold, distributed, or had + made, Modifications made by that Participant. + </P> + <P>8.3. If You assert a patent infringement claim against + Participant alleging that such Participant's Contributor Version + directly or indirectly infringes any patent where such claim is + resolved (such as by license or settlement) prior to the + initiation of patent infringement litigation, then the reasonable + value of the licenses granted by such Participant under Sections + 2.1 or 2.2 shall be taken into account in determining the amount + or value of any payment or license. + </P> + <P>8.4. In the event of termination under Sections 8.1 or 8.2 + above, all end user license agreements (excluding distributors and + resellers) which have been validly granted by You or any + distributor hereunder prior to termination shall survive + termination. + </P> + <P>9. LIMITATION OF LIABILITY.</P> + <P>UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE + INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF + COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO + ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES + FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR + MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, + EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF + SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO + LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S + NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. + SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF + INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND + LIMITATION MAY NOT APPLY TO YOU. + </P> + <P>10. U.S. GOVERNMENT END USERS. + </P> + <P>The Covered Code is a ''commercial item,'' as that term is + defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of ''commercial + computer software'' and ''commercial computer software + documentation,'' as such terms are used in 48 C.F.R. 12.212 (Sept. + 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 + through 227.7202-4 (June 1995), all U.S. Government End Users + acquire Covered Code with only those rights set forth herein. + </P> + <P>11. MISCELLANEOUS. + </P> + <P>This License represents the complete agreement concerning + subject matter hereof. If any provision of this License is held to + be unenforceable, such provision shall be reformed only to the + extent necessary to make it enforceable. This License shall be + governed by California law provisions (except to the extent + applicable law, if any, provides otherwise), excluding its + conflict-of-law provisions. With respect to disputes in which at + least one party is a citizen of, or an entity chartered or + registered to do business in the United States of America, any + litigation relating to this License shall be subject to the + jurisdiction of the Federal Courts of the Northern District of + California, with venue lying in Santa Clara County, California, + with the losing party responsible for costs, including without + limitation, court costs and reasonable attorneys' fees and + expenses. The application of the United Nations Convention on + Contracts for the International Sale of Goods is expressly + excluded. Any law or regulation which provides that the language + of a contract shall be construed against the drafter shall not + apply to this License. + </P> + <P>12. RESPONSIBILITY FOR CLAIMS. + </P> + <P>As between Initial Developer and the Contributors, each party + is responsible for claims and damages arising, directly or + indirectly, out of its utilization of rights under this License + and You agree to work with Initial Developer and Contributors to + distribute such responsibility on an equitable basis. Nothing + herein is intended or shall be deemed to constitute any admission + of liability. + </P> + <P>13. MULTIPLE-LICENSED CODE. + </P> + <P>Initial Developer may designate portions of the Covered Code as + "Multiple-Licensed". "Multiple-Licensed" means + that the Initial Devpoeloper permits you to utilize portions of + the Covered Code under Your choice of the IDPL or the alternative + licenses, if any, specified by the Initial Developer in the file + described in Exhibit A. + </P> + <P><B>EXHIBIT A</B> -Initial Developer's Public License. + </P> + <P>The contents of this file are subject to the Initial + Developer's Public License Version 1.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License <A HREF="http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_idpl">here.</A></P> + <P>Software distributed under the License is distributed on an "AS + IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + implied. See the License for the specific language governing + rights and limitations under the License. + </P> + <P>The Original Code is ______________________________________. + </P> + <P>The Initial Developer of the Original Code is + ________________________. + </P> + <P>Portions created by ______________________ <BR>are Copyright + (C) ______ _______________________. + </P> + <P>All Rights Reserved. + </P> + <P>Contributor(s): ______________________________________. + </P> + </TD> + </TR> +</TABLE> +<P><BR><BR> +</P> +</BODY> +</HTML> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-03-13 12:34:09
|
Revision: 7 Author: carlosga_fb Date: 2006-03-13 04:33:55 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=7&view=rev Log Message: ----------- Moved remotely Added Paths: ----------- pgsqlclient/dos2unix.sh Removed Paths: ------------- dos2unix.sh Deleted: dos2unix.sh =================================================================== --- dos2unix.sh 2006-03-13 12:33:20 UTC (rev 6) +++ dos2unix.sh 2006-03-13 12:33:55 UTC (rev 7) @@ -1,26 +0,0 @@ -#!/bin/sh - -base_dir=./Mono.Security/Mono.Security - -TLS_PATH=$TLS_PATH:$base_dir/Mono.Math:$base_dir/Mono.Math.Prime:$base_dir/Mono.Math.Prime.Generator -TLS_PATH=$TLS_PATH:$base_dir/Mono.Security:$base_dir/Mono.Security.Cryptography:$base_dir/Mono.Security.X509 -TLS_PATH=$TLS_PATH:$base_dir/Mono.Security.Protocol.Tls -TLS_PATH=$TLS_PATH:$base_dir/Mono.Security.Protocol.Tls.Alerts:$base_dir/Mono.Security.Protocol.Tls.Handshake -TLS_PATH=$TLS_PATH:$base_dir/Mono.Security.Protocol.Tls.Handshake.Client:$base_dir/Mono.Security.Protocol.Tls.Handshake.Server - -base_dir=./PostgreSql.Data.PgSqlClient/source - -CLIENT_PATH=$base_dir/DbSchema:$base_dir/PgTypes:$base_dir/NPgClient -CLIENT_PATH=$CLIENT_PATH:$base_dir/Design/ParameterCollection - -for dir in `echo ${TLS_PATH}:${CLIENT_PATH} | tr ":" " "`; do - echo $dir - for fi in `ls $dir/*.cs`;do - dos2unix -U $fi - done -done - -dos2unix -U *.txt -dos2unix -U *.build -dos2unix -U *.bat -dos2unix -U *.html Copied: pgsqlclient/dos2unix.sh (from rev 6, dos2unix.sh) =================================================================== --- pgsqlclient/dos2unix.sh (rev 0) +++ pgsqlclient/dos2unix.sh 2006-03-13 12:33:55 UTC (rev 7) @@ -0,0 +1,26 @@ +#!/bin/sh + +base_dir=./Mono.Security/Mono.Security + +TLS_PATH=$TLS_PATH:$base_dir/Mono.Math:$base_dir/Mono.Math.Prime:$base_dir/Mono.Math.Prime.Generator +TLS_PATH=$TLS_PATH:$base_dir/Mono.Security:$base_dir/Mono.Security.Cryptography:$base_dir/Mono.Security.X509 +TLS_PATH=$TLS_PATH:$base_dir/Mono.Security.Protocol.Tls +TLS_PATH=$TLS_PATH:$base_dir/Mono.Security.Protocol.Tls.Alerts:$base_dir/Mono.Security.Protocol.Tls.Handshake +TLS_PATH=$TLS_PATH:$base_dir/Mono.Security.Protocol.Tls.Handshake.Client:$base_dir/Mono.Security.Protocol.Tls.Handshake.Server + +base_dir=./PostgreSql.Data.PgSqlClient/source + +CLIENT_PATH=$base_dir/DbSchema:$base_dir/PgTypes:$base_dir/NPgClient +CLIENT_PATH=$CLIENT_PATH:$base_dir/Design/ParameterCollection + +for dir in `echo ${TLS_PATH}:${CLIENT_PATH} | tr ":" " "`; do + echo $dir + for fi in `ls $dir/*.cs`;do + dos2unix -U $fi + done +done + +dos2unix -U *.txt +dos2unix -U *.build +dos2unix -U *.bat +dos2unix -U *.html This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-03-13 12:33:34
|
Revision: 6 Author: carlosga_fb Date: 2006-03-13 04:33:20 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=6&view=rev Log Message: ----------- Moved remotely Added Paths: ----------- pgsqlclient/license.txt Removed Paths: ------------- license.txt Deleted: license.txt =================================================================== --- license.txt 2006-03-13 12:32:21 UTC (rev 5) +++ license.txt 2006-03-13 12:33:20 UTC (rev 6) @@ -1,204 +0,0 @@ -Initial Developer's PUBLIC LICENSE Version 1.0 - -1. Definitions - -1.0 "Commercial Use" means distribution or otherwise making the Covered Code available to a third party. - -1.1 ''Contributor'' means each entity that creates or contributes to the creation of Modifications. - -1.2 ''Contributor Version'' means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. - -1.3. ''Covered Code'' means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. - -1.4. ''Electronic Distribution Mechanism'' means a mechanism generally accepted in the software development community for the electronic transfer of data. - -1.5. ''Executable'' means Covered Code in any form other than Source Code. - -1.6. ''Initial Developer'' means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. - -1.7. ''Larger Work'' means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. - -1.8. ''License'' means this document. - -1.8.1. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. - -1.9. ''Modifications'' means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: - -Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. - -Any new file that contains any part of the Original Code or previous Modifications. - -1.10. ''Original Code'' means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. - -1.10.1. "Patent Claims" means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. - -1.11. ''Source Code'' means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. - -1.12. "You'' (or "Your") means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, "You'' includes any entity w hich controls, is controlled by, or is under common control with You. For purposes of this definition, "control'' means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. - -2. Source Code License. - -2.1. The Initial Developer Grant. The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: - -(a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and - -(b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). - -(c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. - -d) Notwithstanding Section 2.1(b) above, no patent license is granted: - -1) for code that You delete from the Original Code; - -2) separate from the Original Code; or - -3) for infringements caused by: - -i) the modification of the Original Code or - -ii) the combination of the Original Code with other software or devices. - -2.2. Contributor Grant. Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license - -(a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and - -(b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). - -(c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. - -(d) Notwithstanding Section 2.2(b) above, no patent license is granted: - -1) for any code that Contributor has deleted from the Contributor Version; - -2) separate from the Contributor Version; - -3) for infringements caused by: i) third party modifications of Contributor Version or - -ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or - -4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. - -3. Distribution Obligations. - -3.1. Application of License. The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. - -3.2. Availability of Source Code. Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. - -3.3. Description of Modifications. You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in - -(a) the Source Code, and - -(b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. - -3.4. Intellectual Property Matters - -a) Third Party Claims. If Contributor has knowledge that a license under a third party's intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled "LEGAL'' which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. - -(b) Contributor APIs. If Contributor's Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. - -(c) Representations. Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor's Modifications are Contributor's original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. - -3.5. Required Notices. You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients' rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. - -3.6. Distribution of Executable Versions. You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients' rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and hat the license for the Executable version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer. - -3.7. Larger Works. You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. - -4. Inability to Comply Due to Statute or Regulation. - -If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: - -(a) comply with the terms of this License to the maximum extent possible; and - -(b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. - -5. Application of this License. - -This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. - -6. Versions of the License. - -6.1. New Versions. The Initial Developer of this code may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. - -6.2. Effect of New Versions. Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by the Initial Developer. No one other than the Initial Developer has the right to modify the terms applicable to Covered Code created under this License. - -6.3. Derivative Works. If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must - -(a) rename Your license so that the phrases ''Mozilla'', ''MOZILLAPL'', ''MOZPL'', ''Netscape'', "MPL", ''NPL", or any confusingly similar phrases do not appear in your license (except to note that your license differs from this License) and - -(b) otherwise make it clear that Your version of the license contains terms which differ from the Mozilla Public License and Netscape Public License. (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) - -6.4 Origin of the Initial Developer's Public License. The Initial Developer's Public License is based on the Mozilla Public License V 1.1 with the following changes: - -1) The license is published by the Initial Developer of this code. Only the Initial Developer can modify the terms applicable to Covered Code. - -2) The license can be modified and used for code which is not already governed by this license. Modified versions of the license must be renamed to avoid confusion with Netscape's license Initial Developer's's license and must include a description of changes from the Initial Developer's Public License. - -3) The name of the license in Exhibit A is the "Initial Developer's Public License". - -4) The reference to an alternative license in Exhibit A has been removed . - -5) Amendments I, II, III, V, and VI have been deleted. - -6) Exhibit A, Netscape Public License has been deleted - -7. DISCLAIMER OF WARRANTY. - -COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS'' BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. - -8. TERMINATION. - -8.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. - -8.2. If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You file such action is referred to as "Participant") alleging that: - -(a) such Participant's Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: - -(i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or - -(ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. - -If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. - -(b) any software, hardware, or device, other than such Participant's Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. - -8.3. If You assert a patent infringement claim against Participant alleging that such Participant's Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. - -8.4. In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. - -9. LIMITATION OF LIABILITY. - -UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. - -10. U.S. GOVERNMENT END USERS. - -The Covered Code is a ''commercial item,'' as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of ''commercial computer software'' and ''commercial computer software documentation,'' as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. - -11. MISCELLANEOUS. - -This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys' fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. - -12. RESPONSIBILITY FOR CLAIMS. - -As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. - -13. MULTIPLE-LICENSED CODE. - -Initial Developer may designate portions of the Covered Code as "Multiple-Licensed". "Multiple-Licensed" means that the Initial Devpoeloper permits you to utilize portions of the Covered Code under Your choice of the IDPL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. - -EXHIBIT A -Initial Developer's Public License. - -The contents of this file are subject to the Initial Developer's Public License Version 1.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License here. - -Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. - -The Original Code is ______________________________________. - -The Initial Developer of the Original Code is ________________________. - -Portions created by ______________________ -are Copyright (C) ______ _______________________. - -All Rights Reserved. - -Contributor(s): ______________________________________. \ No newline at end of file Copied: pgsqlclient/license.txt (from rev 5, license.txt) =================================================================== --- pgsqlclient/license.txt (rev 0) +++ pgsqlclient/license.txt 2006-03-13 12:33:20 UTC (rev 6) @@ -0,0 +1,204 @@ +Initial Developer's PUBLIC LICENSE Version 1.0 + +1. Definitions + +1.0 "Commercial Use" means distribution or otherwise making the Covered Code available to a third party. + +1.1 ''Contributor'' means each entity that creates or contributes to the creation of Modifications. + +1.2 ''Contributor Version'' means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + +1.3. ''Covered Code'' means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + +1.4. ''Electronic Distribution Mechanism'' means a mechanism generally accepted in the software development community for the electronic transfer of data. + +1.5. ''Executable'' means Covered Code in any form other than Source Code. + +1.6. ''Initial Developer'' means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + +1.7. ''Larger Work'' means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + +1.8. ''License'' means this document. + +1.8.1. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + +1.9. ''Modifications'' means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + +Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + +Any new file that contains any part of the Original Code or previous Modifications. + +1.10. ''Original Code'' means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + +1.10.1. "Patent Claims" means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + +1.11. ''Source Code'' means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + +1.12. "You'' (or "Your") means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, "You'' includes any entity w hich controls, is controlled by, or is under common control with You. For purposes of this definition, "control'' means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + +2. Source Code License. + +2.1. The Initial Developer Grant. The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + +(a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + +(b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + +(c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + +d) Notwithstanding Section 2.1(b) above, no patent license is granted: + +1) for code that You delete from the Original Code; + +2) separate from the Original Code; or + +3) for infringements caused by: + +i) the modification of the Original Code or + +ii) the combination of the Original Code with other software or devices. + +2.2. Contributor Grant. Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + +(a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + +(b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + +(c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + +(d) Notwithstanding Section 2.2(b) above, no patent license is granted: + +1) for any code that Contributor has deleted from the Contributor Version; + +2) separate from the Contributor Version; + +3) for infringements caused by: i) third party modifications of Contributor Version or + +ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or + +4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + +3. Distribution Obligations. + +3.1. Application of License. The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + +3.2. Availability of Source Code. Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + +3.3. Description of Modifications. You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in + +(a) the Source Code, and + +(b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + +3.4. Intellectual Property Matters + +a) Third Party Claims. If Contributor has knowledge that a license under a third party's intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled "LEGAL'' which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + +(b) Contributor APIs. If Contributor's Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + +(c) Representations. Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor's Modifications are Contributor's original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + +3.5. Required Notices. You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients' rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + +3.6. Distribution of Executable Versions. You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients' rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and hat the license for the Executable version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer. + +3.7. Larger Works. You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + +4. Inability to Comply Due to Statute or Regulation. + +If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: + +(a) comply with the terms of this License to the maximum extent possible; and + +(b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + +5. Application of this License. + +This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + +6. Versions of the License. + +6.1. New Versions. The Initial Developer of this code may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + +6.2. Effect of New Versions. Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by the Initial Developer. No one other than the Initial Developer has the right to modify the terms applicable to Covered Code created under this License. + +6.3. Derivative Works. If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must + +(a) rename Your license so that the phrases ''Mozilla'', ''MOZILLAPL'', ''MOZPL'', ''Netscape'', "MPL", ''NPL", or any confusingly similar phrases do not appear in your license (except to note that your license differs from this License) and + +(b) otherwise make it clear that Your version of the license contains terms which differ from the Mozilla Public License and Netscape Public License. (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + +6.4 Origin of the Initial Developer's Public License. The Initial Developer's Public License is based on the Mozilla Public License V 1.1 with the following changes: + +1) The license is published by the Initial Developer of this code. Only the Initial Developer can modify the terms applicable to Covered Code. + +2) The license can be modified and used for code which is not already governed by this license. Modified versions of the license must be renamed to avoid confusion with Netscape's license Initial Developer's's license and must include a description of changes from the Initial Developer's Public License. + +3) The name of the license in Exhibit A is the "Initial Developer's Public License". + +4) The reference to an alternative license in Exhibit A has been removed . + +5) Amendments I, II, III, V, and VI have been deleted. + +6) Exhibit A, Netscape Public License has been deleted + +7. DISCLAIMER OF WARRANTY. + +COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS'' BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +8. TERMINATION. + +8.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + +8.2. If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You file such action is referred to as "Participant") alleging that: + +(a) such Participant's Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: + +(i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or + +(ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. + +If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + +(b) any software, hardware, or device, other than such Participant's Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + +8.3. If You assert a patent infringement claim against Participant alleging that such Participant's Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + +8.4. In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + +9. LIMITATION OF LIABILITY. + +UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + +10. U.S. GOVERNMENT END USERS. + +The Covered Code is a ''commercial item,'' as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of ''commercial computer software'' and ''commercial computer software documentation,'' as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + +11. MISCELLANEOUS. + +This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys' fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + +12. RESPONSIBILITY FOR CLAIMS. + +As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + +13. MULTIPLE-LICENSED CODE. + +Initial Developer may designate portions of the Covered Code as "Multiple-Licensed". "Multiple-Licensed" means that the Initial Devpoeloper permits you to utilize portions of the Covered Code under Your choice of the IDPL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + +EXHIBIT A -Initial Developer's Public License. + +The contents of this file are subject to the Initial Developer's Public License Version 1.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License here. + +Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + +The Original Code is ______________________________________. + +The Initial Developer of the Original Code is ________________________. + +Portions created by ______________________ +are Copyright (C) ______ _______________________. + +All Rights Reserved. + +Contributor(s): ______________________________________. \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-03-13 12:32:45
|
Revision: 5 Author: carlosga_fb Date: 2006-03-13 04:32:21 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=5&view=rev Log Message: ----------- Moved remotely Added Paths: ----------- pgsqlclient/changelog.txt Removed Paths: ------------- changelog.txt Deleted: changelog.txt =================================================================== --- changelog.txt 2006-03-13 12:31:17 UTC (rev 4) +++ changelog.txt 2006-03-13 12:32:21 UTC (rev 5) @@ -1,1467 +0,0 @@ -PgSqlClient - ADO.NET Data Provider for PostgreSQL 7.4+ -------------------------------------------------------- - - - -2005-05-25 Carlos Guzman Alvarez <car...@te...> - - * PostgreSQl.Data.PgSqlClient/NPgClient/PgDbClient.cs: - - - Correctly disable nagle algorithm (Patch #1207038) - -2005-04-14 Carlos Guzman Alvarez <car...@te...> - - * Fixed Tables, Views anbd Functions Privileges Schemas. - -2005-04-10 Carlos Guzman Alvarez <car...@te...> - - * PostgreSql.Data.PgSqlClient/PgConnectionPool.cs: - - - Fixed problem getting a connection form the pool. (#1146422) - -2005-04-03 Carlos Guzman Alvarez <car...@te...> - - * Changes to improve exception handling. - -2005-01-31 Carlos Guzman Alvarez <car...@te...> - - * PostgreSQl.Data.PgSqlClient/NPgSqlClient/PgOutPutPacket.cs: - - - Fixed boolean parameters support. - - * PostgreSQl.Data.PgSqlClient/PgConnection.cs: - - - Fixed bug on Close MEthod while clearing - SSL handlers. - -2004-09-29 Carlos Guzman Alvarez <car...@te...> - - - Mayour update of the sources - - -2004-07-22 Carlos Guzman Alvarez <car...@te...> - - * USe PascalCase naming for private methods in all classes. - - -2004-06-12 Carlos Guzman Alvarez <car...@te...> - - * PostgreSql.Data.PgSqlClient/PgCommand.cs: - - - Fix regex usage (it waqs working in .NET but not in mono - i have sent an email to the mono list and i'm wainting for response - for now if it's a mono problem) - - -2004-06-09 Carlos Guzman Alvarez <car...@te...> - - * PostgreSql.Data.PgSqlClient/PgCommand.cs: - - - Fix for PgCommand.NextResult (Thanks to Sion for his feedback) - -2004-06-03 Carlos Guzman Alvarez <car...@te...> - - * PostgreSql.Data.PgSqlClient/PgLayouts.cs: - - - Removed file. - - * PostgreSql.Data.PgSqlClient/PgResponsePacket.cs: - * PostgreSql.Data.PgSqlClient/PgOutputPacket.cs: - - - Improved Doubvle and Float read/write - -2004-05-31 Carlos Guzman Alvarez <car...@te...> - - * PostgreSql.Data.PgSqlClient/FbConnection.cs: - * PostgreSql.Data.PgSqlClient/NPgClient/PgDbClient.cs: - - - Reworked information and notification message handling - using callbacks (delegates) - - -2004-05-09 Carlos Guzman Alvarez <car...@te...> - - * Sync Mono.Security stuff with mono beta 1 sources. - -2004-05-06 Carlos Guzman Alvarez <car...@te...> - - * PostgreSql/Data/PgSqlClient/NPgClient/PgDbClient.cs: - - - Changes for patch (#948340) - ( Disable the nagle algorithm on socket setup ) - -2004-05-03 Carlos Guzman Alvarez <car...@te...> - - * PostgreSql.Data.PGSqlClient/PgCommand.cs: - - - Clenaup. - - - * PostgreSql.Data.PGSqlClient/NPgClient/PgOutputPacket.cs: - - - Fix bytea field handling. - -2004-05-02 Carlos Guzman Alvarez <car...@te...> - - * PostgreSql.Data.PGSqlClient/PgCommand.cs: - - - Changes on named parameters support. - -2004-04-26 Carlos Guzman Alvarez <car...@te...> - - * Mono.Security.Protocol.Tls/Alert.cs: - * Mono.Security.Protocol.Tls/CipherSuite.cs: - * Mono.Security.Protocol.Tls/CipherSuiteCollection.cs: - * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs: - * Mono.Security.Protocol.Tls/Context.cs: - * Mono.Security.Protocol.Tls/RecordProtocol.cs: - * Mono.Security.Protocol.Tls/SecurityCompressionType.cs: - * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs: - * Mono.Security.Protocol.Tls/SslServerStream.cs: - * Mono.Security.Protocol.Tls/TlsClientSettings.cs: - - - Changes for fix FxCop Rules. - - * Mono.Security.Protocol.Tls.Handshake/HandshakeMessage.cs: - - - Changes for fix FxCop Rules. - - -2004-04-10 Carlos Guzman Alvarez <car...@te...> - - * Started cleanup and unification of this keyword usage tasks. - - * Mono.Security.Protocol.Tls/SslClientStream.cs: - * Mono.Security.Protocol.Tls/SslServerStream.cs: - * Mono.Security.Protocol.Tls/Alert.cs: - * Mono.Security.Protocol.Tls/RecordProtocol.cs: - * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs: - * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs: - * Mono.Security.Protocol.Tls/Context.cs: - * Mono.Security.Protocol.Tls/TlsException.cs: - * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificate.cs: - * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs: - * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs: - * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerHello.cs: - * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs: - * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientCertificateVerify.cs: - * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientFinished.cs: - * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientHello.cs: - - - Reworked Alert and Exception (TlsException) handling. - - -2004-04-09 Carlos Guzman Alvarez <car...@te...> - - * Mono.Security.Protocol.Tls/TlsClientSettings.cs: - - - Added new CertificateRSA property. - - * Mono.Security.Protocol.Tls/SslHandshakeHash.cs: - - - Added two new methods: CreateSignature and VerifySignature. - - * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs: - - - Added Ssl3 implementation. - - * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientCertificateVerify.cs: - - - Added initial implementation. - - -2004-04-1 Carlos Guzman Alvarez <car...@te...> - - * PostgreSql.Data.PgSqlClient/PgCommandBuilder.cs: - * PostgreSql.Data.PgSqlClient/PgDataReader.cs: - * PostgreSql.Data.PgSqlClient/PgCommand.cs: - - - Improved implementations of Command, - Command builder and Data reader classes. - -2004-03-23 Carlos Guzman Alvarez <car...@te...> - - * PostgreSql.Data.PgSqlClient/PgCommandBuilder.cs: - - - Improved command builder implementation. - - -2004-03-17 Carlos Guzman Alvarez <car...@te...> - - * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientCertificate.cs: - * Mono.Security.Protocol.Tls.Handshake.Server/TlsServerKeyExchange.cs: - - - Initial implementation. - -2004-03-16 Carlos Guzman Alvarez <car...@te...> - - * Mono.Security.Protocol.Tls/SslCipherSuite.cs: - - - Added changes for allow it to work as server or client. - - -2004-03-15 Carlos Guzman Alvarez <car...@te...> - - * Mono.Security.Protocol.Tls/TlsStream.cs: - * Mono.Security.Protocol.Tls/CipherSuite.cs: - * Mono.Security.Protocol.Tls/TlsCipherSuite.cs: - * Mono.Security.Protocol.Tls/SslHandshakeHash.cs: - * Mono.Security.Protocol.Tls/RecordProtocol.cs: - * Mono.Security.Cryptography/MD5SHA1.cs: - - - Use Buffer.BlockCopy instead of System.Array.Copy - - -2004-03-10 Carlos Guzman Alvarez <car...@te...> - - * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientHello.cs: - * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientFinished.cs: - * Mono.Security.Protocol.Tls/RecordProtocol.cs: - - - Implemented some server alerts. - - * Mono.Security.Protocol.Tls/Context.cs: - - - Added new RecordProtocol property. - - -2004-03-09 Carlos Guzman Alvarez <car...@te...> - - * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs: - * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificateRequest.cs: - * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs: - * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientCertificateVerify.cs: - * Mono.Security.Protocol.Tls.Handshake.Server/TlsServerCertificateRequest.cs: - * Mono.Security.Protocol.Tls.Handshake.Server/TlsServerFinished.cs: - - - Fixed meesage type definition. - - * Mono.Security.Protocol.Tls/Ciphersuite.cs: - - - Added generation of the Server encryption algorithms. - - - Modified encryption/decription methods for work - as client or server as needed. - - * Mono.Security.Protocol.Tls/Ciphersuite.cs: - - - Added generation of the Server encryption algorithms. - - - * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientKeyExchange.cs: - - - Finished processing of the message contents. - - * Mono.Security.Protocol.Tls/RecordProtocol.cs: - * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs: - * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs: - - - Added new ProcessChangeCipherSpec method. - - * Mono.Security.Protocol.Tls/Context.cs: - - - Added new PrintBuffer method ( for debug ). - - * PostgreSql.Data.PgSqlClient/PgDataReader.cs: - - - Improved data reader implementation. - - -< --------------------------- Beta 7 ------------------------------ > - -2004-03-08 Carlos Guzman Alvarez <car...@te...> - - * PostgreSql.Data.PgSqlClient/PgCommandBuilder.cs: - - - Cleanup. - - * PostgreSql.Data.PgSqlClient/PgCommand.cs: - - - Fixed bug. - - - * Mono.Security.Protocol.Tls/SslClientStream.cs: - * Mono.Security.Protocol.Tls/SslServerStream.cs: - - - Callback cleanup. - - * PostgreSql.Data.PgSqlClient/PgCommandBuilder.cs: - - - Cleanup - - * PostgreSql.Data.PgSqlClient/PgConnectionPool.cs: - - - New connection pool implementation. - - * PostgreSql.Data.PgSqlClient/PgConnection.cs: - * PostgreSql.Data.PgSqlClient/PgDbConnection.cs: - * PostgreSql.Data.PgSqlClient/NPgClient/PgDbClient.cs: - - - Reworked SSL events hacks. - - -2004-03-06 Carlos Guzman Alvarez <car...@te...> - - * source/PgCommand.cs: - * source/PgDataReader.cs: - - - Improved Records Affected handling. - - * source/PgConnection.cs: - - - Added event for allow client certificate private key selection. - - * Mono.Security.Protocol.Tls/SslServerStream.cs: - - - Added PrivateKeySelection event and callback. - - - Added methods for event raising. - - -2004-03-06 Carlos Guzman Alvarez <car...@te...> - - * source/PgCommand.cs: - - - Improved named parameters support. - - -2004-03-03 Carlos Guzman Alvarez <car...@te...> - - * Mono.Security.Protocol.Tls/SslServerStream.cs: - - - Implemented flow for the server handshake. - - * Mono.Security.Protocol.Tls/Ciphersuite.cs: - * Mono.Security.Protocol.Tls/TlsCiphersuite.cs: - * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs: - * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs: - * Mono.Security.Protocol.Tls/SslClientStream.cs: - * Mono.Security.Protocol.Tls/TlsServerSettings.cs: - * Mono.Security.Protocol.Tls/TlsClientSettings.cs: - * Mono.Security.Protocol.Tls/ClientContext.cs: - * Mono.Security.Protocol.Tls.Handshake.Client/*.cs: - * Mono.Security.Protocol.Tls.Handshake.Server/*.cs: - - - Changes for make use of the renamed classes and enums. - - * Mono.Security.Protocol.Tls.Handshake/TlsHandshakeType.cs: - - - Renamed to HandshakeType.cs (Enum and file) - - * Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessage.cs: - - - Renamed to HandshakeMessage.cs (Class and file) - - * Mono.Security.Protocol.Tls.Handshake/TlsClientCertificateType.cs: - - - Renamed to ClientCertificateType.cs (Enum and file) - - * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs: - - - Renamed to Alert (Class, enums and file) - - * Mono.Security.Protocol.Tls/TlsContentType.cs: - - - Renamed to ContentType.cs ( Enum and file ) - - * Mono.Security.Protocol.Tls/TlsCiphersuiteCollection.cs: - - - Renamed to CiphersuiteCollection.cs ( Class and file ) - - * Mono.Security.Protocol.Tls/TlsCiphersuiteFactory.cs: - - - Renamed to CiphersuiteCollection.cs ( Class and file ) - - * Mono.Security.Protocol.Tls/TlsSslHandshakeHash.cs: - - - Renamed to SslHandshakeHash.cs ( Class and file ) - - * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs: - - - Renamed to SslCipherSuite.cs ( Class and file ) - -2004-02-25 Carlos Guzman Alvarez <car...@te...> - - * Mono.Security.Protocol.Tls/HandshakeState.cs: - - - New file. - - * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs: - - - Modified the level of some alerts according to the RFC. - - * Mono.Security.Protocol.Tls/SslClientStream.cs: - * Mono.Security.Protocol.Tls/SslServerStream.cs: - * Mono.Security.Protocol.Tls/Context.cs: - * Mono.Security.Protocol.Tls/ClientContext.cs: - * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs: - * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs: - - - Added changes for better handling of ClientHelloRequest messages. - -2004-02-24 Carlos Guzman Alvarez <car...@te...> - - * Mono.Security.Protocol.Tls.Alerts/TlsClosNotifyAlert.cs: - - - Removed File. - - * Mono.Security.Protocol.Tls.Alerts/TlsAlerts.cs: - * Mono.Security.Protocol.Tls/RecordProtocol.cs: - * Mono.Security.Protocol.Tls/SslClientStream.cs: - * Mono.Security.Protocol.Tls/SslServerStream.cs: - - - Reimplementation of TLS/SSL Alert Protocol. - -2004-02-23 Carlos Guzman Alvarez <car...@te...> - - * Mono.Security.Protocol.Tls/TlsContext.cs: - - - Removed file, implementation is now present in: - - Context.cs - ClientContext.cs - ServerContext.cs - - * Mono.Security.Protocol.Tls/Context.cs: - * Mono.Security.Protocol.Tls/ClientContext.cs: - * Mono.Security.Protocol.Tls/ServerContext.cs: - * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs: - - - New classes. - - * Mono.Security.Protocol.Tls/SslServerStream.cs: - - - Added implementation for properties, and read/write methods - as in SslClientStream. - - - doHandshake method is not implemented yet. - - * Mono.Security.Protocol.Tls/SslClientStream.cs: - * Mono.Security.Protocol.Tls/RecordProtocol.cs: - * Mono.Security.Protocol.Tls/Ciphersuite.cs: - * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs: - * Mono.Security.Protocol.Tls.Alerts/TlsCloseNotifyAlert.cs: - * Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessage.cs: - * Mono.Security.Protocol.Tls.Handshake.Client/*.cs: - * Mono.Security.Protocol.Tls.Handshake.Server/*.cs: - - - Added changes for make use of the new Context implementation. - -2004-02-20 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Mono.Security.Protocol.Tls/SslClientStream.cs: - * Mono.Security.Protocol.Tls/RecordProtocol.cs: - * Mono.Security.Protocol.Tls/TlsContext.cs: - - - Added changes for handle te SecurityProtocolType enum - as a Flags enum. - - * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientHello.cs: - - - Let the Ssl3 message to be process in the same way as the Tls1. - - * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientHello.cs: - - - Added changes for use the Protocol version send by the server - - * Mono.Security.Protocol.Tls/CipherSuite.cs: - - - Compute the premaster secret using the protocol version sent in - the ClientHello message instead of the actual protocol version. - - * Mono.Security.Protocol.Tls.Alerts/TlsWarningEventAgrs.cs: - - - Removed no more needed file. - - * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs: - - - Added 4 new properties: - - * Message - - * IsWarning - - * IsFatal - - * IsCloseNotify - - - Return always the same message when working in release mode - (The authentication or decryption has failed.) - - * Mono.Security.Protocol.Tls/SslClientStream.cs: - - - Added control over the CloseNotify Alert - to BeginRead method. - - - Return true in the server certificate validation method - if there are no errors. - -2004-02-19 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Mono.Security.Protocol.Tls/RecordProtocol.cs: - * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs: - - - New classes for handle the SSL/TLS record protocol. - - * Mono.Security.Protocol.Tls/SslClientStream.cs: - - - Record protocol stuff moved to the new classes. - - - Removed Warning event. - -2004-02-18 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Mono.Security.Protocol.Tls/CipherAlgorithmType.cs: - * Mono.Security.Protocol.Tls/HashAlgorithmType.cs: - * Mono.Security.Protocol.Tls/ExchangeAlgorithmType.cs: - - - Added Serializable attribute. - - * Mono.Security.Protocol.Tls/CipherSuite.cs: - * Mono.Security.Protocol.Tls/TlsCipherSuite.cs: - * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs: - * Mono.Security.Protocol.Tls/TlsContext.cs: - - - Added some optimizations proposed by Sebastien Pouliot. - - * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs: - - - Changes on Common Name detection and certificate error handling ( Thanks to Sebastien Pouliot for his feedback ). - - * Mono.Security.Protocol.Tls/SecurityProtocolType.cs: - - - Added Serializable attribute ( Thanks to Sebastien Pouliot for his feedback ). - - * Mono.Security.Protocol.Tls/SslClientStream.cs: - - - Fix for ServerCertificate property - -2004-02-17 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Mono.Security.Protocol.Tls/SslClientStream.cs: - - - Added changes for check that the handshake is finished - to the security properties. - - * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificate.cs: - - - Raise the Client Certificate event. - - * Mono.Security.Protocol.Tls/CipherSuite.cs: - * Mono.Security.Protocol.Tls/SslClientStream.cs: - * Mono.Security.Protocol.Tls/SecurityProtocolType.cs: - * Mono.Security.Protocol.Tls/TlsCipherSuite.cs: - * Mono.Security.Protocol.Tls/TlsCipherSuiteCollection.cs: - * Mono.Security.Protocol.Tls/TlsCipherSuiteFactory.cs: - * Mono.Security.Protocol.Tls/TlsContext.cs: - * Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessage.cs: - * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientHello.cs: - - - Change the SecurityProtocolType enum to mtch .NET 1.2 documentation definition. - - * Mono.Security.Protocol.Tls/SslClientStream.cs: - - - Impement SelectedClientCertificate and ServerCertificate properties. - -2004-02-16 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Mono.Security.Protocol.Tls/TlsCipherSuiteFactory.cs: - - - Changed the cipher suites preference order ( Thanks to Sebastien Pouliot for his feedback ) - -2004-02-15 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Mono.Security.Protocol.Tls/SslClientStream.cs: - - - Added specific control od available data for Network Streams - on Read ( Thanks to Francisco Figueiredo Jr. for his feedback ). - - - Removed test code. - -2004-02-15 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/NPgClient/PgDbClient.cs: - * source/NPgClient/PgStatement.cs: - - - Simplify packet write. - -2004-01-03 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/PgCommand.cs: - * source/NPgClient/PgStatement.cs: - * source/NPgClient/PgResponsePacket.cs: - - - Added an initial implementation of the simple query protocol - that will be available using an SIMPLE_PROTOCOL define at build time. - - -< --------------------------- Beta 6 ------------------------------ > - -2003-12-02 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/PgCommand.cs: - * source/NPgClient/PgStatement.cs: - - - Minor uimprovement to prepare process. - - -2003-11-26 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/PgCommand.cs: - * source/NPgClient/PgStatement.cs: - - - Added minor improvement for call Describe only when it's needed. - - -2003-11-24 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/PgConnection.cs: - * source/PgCommand.cs: - * source/PgTransaction.cs: - - - Added better handling of connection active transaction, - (some checks done using the ODBC data provider). - - -2003-11-23 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/NPgClient/PgDbClient.cs: - - - Minor changes to exception handling. - - * source/NPgClient/PgStatement.cs: - - - Removed invalid case in switch, in method processDataRow ( Thanks to Ishpal Singh for his feedback ). - - -2003-11-22 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/NPgClient/PgDbClient.cs: - - - Added correct processing of SSLRequest message. - -2003-11-21 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/PgConnection.cs: - - - Added event handlers for SSL certificates validation and selection. - - * source/NPgClient/PgDbClient.cs: - - - Make SslClientStream to be public. - - * source/NPgClient/PgDbClient.cs: - * source/NPgClient/PgStatement.cs: - - - Added correct processing of Sync and error messages. - - * source/NPgClient/PgOutputPacket.cs: - - - Make conversion of datatime parameters using Convert.ToDateTime() ( Thanks to Ishpal Singh for his feedback ) - - - Make conversion of timespan parameters using TimeSpan.Parse() - - * source/PgCommand.cs: - - - Added change for try to make a correct replace of named parameters ( Thanks to Ishpal Singh for his feedback ). - - -2003-11-20 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Updated build file for use NUnit 2.1. - - -2003-11-19 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/PgCommand.cs: - * source/PgConnection.cs: - * source/PgDataAdapter.cs: - * source/PgCommandBuilder.cs: - - - Added better implementation of constructors and dispose methods. - - -< --------------------------- Beta 5 ------------------------------ > - - -2003-11-17 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/PgCommand.cs: - - - Restricted batch command execution to ExecuteReader calls. - Prepare, ExecuteNonquery and ExecuteScalar calls will handle - the command text as a single SQL command. - - * source/NPgClient/PgOutputPacket.cs: - * source/NPgClient/PgResponsePacket.cs: - * source/NPgClient/PgDbClient.cs: - - - Added correct encoding/decoding of string values with the client_encoding character set. - - -2003-11-14 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/NPgClient/PgDbClient.cs: - - * Added changes for make use of the new scema of the SSL/TLS library. - - -2003-11-12 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/NPgClient/PgDbClient.cs: - * source/NPgClient/PgOutputPacket.cs: - - - Fixed bug #841051. - - * source/PgTypes/PgBox.cs: - * source/PgTypes/PgCircle.cs: - * source/PgTypes/PgLine.cs: - * source/PgTypes/PgLSeg.cs: - * source/PgTypes/PgPath.cs: - * source/PgTypes/PgPoint.cs: - * source/PgTypes/PgPolygon.cs: - - - Added new constructors ( not to all ). - - - Added Serializable attribute. - - * source/PgTypes/PgBox.cs: - - - Added Serializable attribute. - - * source/PgTransaction.cs: - - - Removed set accessors from Connection and IsolationLEvel properties. - -2003-11-10 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/PgCommand.cs: - - - Fixed connection checking in dispose method. - -2003-11-08 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/FbConnection.cs: - * source/FbCommand.cs: - * source/FbdataAdapter.cs: - - - Added ToolboxItem attribute for allow components to be used from #Develop. - - * source/FbDataAdapter.cs: - - - Improved handling of behavior and Close method. - - -2003-11-06 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/NPgClient/PgResponsePacket.cs: - - - Added more precise handling of float values that sometimes have a offset of - 0.5 ( Thanks to Jesus for his feedback ) - - -2003-11-01 Alban Colley <albancolley at users.sourceforge.net> - - * source/NPgClient/PgStatement.cs: - * source/NPgClient/PgDbClient.cs: - - - Ref Cursor + Fetch Patch ( Patch #832503 ) - - -2003-10-28 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/NPgClient/PgOutputPacket.cs: - * source/NPgClient/PgResponsePacket.cs: - - - Added fix for correct handling of timetz type. - - -2003-10-27 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/NPgClient/PgOutputPacket.cs: - * source/NPgClient/PgResponsePacket.cs: - - - Added fix for correct handling of box type. - - - Added some changes to interval datatype handling. - - * source/PgTypes/PgBox.cs: - - - Added fix for correct handling of box type. - - -2003-10-26 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/NPgClient/PgDbClient.cs: - * source/NPgClient/PgOutputPacket.cs: - * source/NPgClient/PgResponsePacket.cs: - * source/NPgClient/PgDataType.cs: - * source/PgDbType.cs: - * source/PgParameter.cs: - * source/PgType.cs: - - - Started to work on support for timetz, timestamptz and interval types [not finished yet]. - - * source/PgDataReader.cs: - - - Added changes for handle new supported types and in SqlClient and OracleClient - - - New types are PgBox, PgCircle, PgPath, PgPoint, PgLSeg, PgPolygon and PgTimeSpan. - - * source/PgTypes/PgBox.cs: - * source/PgTypes/PgCircle.cs: - * source/PgTypes/PgLSeg.cs: - * source/PgTypes/PgPath.cs: - * source/PgTypes/PgPoint.cs: - * source/PgTypes/PgPolygon.cs: - - - Changed to be structs instead of classes. - - * source/PgTypes/PgTimeSpan.cs: - - - New struct type for handle PostgreSQL interval types. - - -2003-10-25 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Added changes for allow future testing of geometic types. - - * Added empty nunit test fixture for geometric types testing. - - * source/NPgClient/PgDataType.cs: - - - Changed visibility level to internal - - * source/DbSchema/PgAbstractDbSchema.cs: - - - Added fix for transaction handling. - - - Added better exception handling. - - -2003-10-24 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Added specific changelog file for the TLS/SSL implementation. - - -2003-10-21 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * TLS implementation: - - * Added partial implementation of SSL3 protocol. - - * TlsCipherSuiteFactory.cs: - - - Changed names of private methods. - - * TlsSslCipherSuite.cs: - - - Replaced implementations of key generation methods with - a throw new NotSupportedException() - - * TlsSocket.cs: - * TlsAbstractCipherSuite.cs: - * TlsCipherSuite.cs: - * TlsSslCipherSuite.cs: - - - Moved MAC generation methods to specific CipherSuite classes. - - -2003-10-20 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/NPgClient/PgType.cs: - - - Fixed little problem returning system type for PostgreSQL Float data type. - - * TLS implementation: - - * TlsSessionContext.cs: - - - Added new MAX_FRAGMENT_SIZE constant. - - * TlsSession.cs: - - - Removed MaxFragmentSize property. - - * TlsSocket.cs: - - - Replaced use of TlsSesison.MaxFragmentSize by TlsSessionContext.MAX_FAGMENT_SIZE - - - - Fixed padding length calculation on record encryption. - - - Abstracted CipherSuite classes for allow work with other protocol versions. - - - Added new files : - - TlsAbstractCipherSuite.cs - - TlsSslCipherSuite.cs - - TlsCipherSuiteFactory.cs - - TlsCompressionMethod.cs - - - Added new cipher suites definitions based on RFC3268 - (http://www.ietf.org/rfc/rfc3268.txt) - - - Added two new supported ciphersuites for TLS protocol: - - TLS_RSA_WITH_AES_256_CBC_SHA - - TLS_RSA_WITH_AES_128_CBC_SHA - - - Moved key generation stuff to specific cipher suite classes. - - -2003-10-19 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Protocol implementation: - - - Added support for unidimensional arrays of Geometric Types. - - - Addes upport for boolean arrays. - - -2003-10-18 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - - * Protocol implementation: - - - Improved types handling - - - Added definitions of geometric array types - - - Added specific classes for handle PostgreSQL Geometric types - - - Added handling of line, lseg, box, polygon, path geometric PostgreSQL types - - -2003-10-17 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - - * Protocol implementation: - - - Added changes for better handling of postgres datatypes - at protocol implementation layer - - - Added support for read/write point values ( as double[2] ) - - - Added support for read/write circle values ( as double[3] ) - - -2003-10-16 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * TLS Library: - - - Added changes for allow, in the future, the handshake layer - to work with SSL3 protocol. - - -< --------------------------- Beta 4 ------------------------------ > - - -2003-10-14 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - - * TLS library: - - - Added new TlsStream class. - TlsStreamReader and TlsStreamWriter will be replaced by this class soon. - TlsHandhskaeMessage inherits from this class. - - - TlsSessionContext.cs: - - - Added methods GetUnixTime and GetSecureRandomBytes. - -2003-10-10 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * TLS library: - - - Handshake reorganization. - - -2003-10-09 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * TLS library: - - - Added better control of session state and socket/session/networkstream closing - ( needs testing but seems to be the way to go ). - - * source/PgCommand.cs: - * source/PgCommandbuilder.cs: - * source/PgDatareader.cs: - - - Fixed some bugs introduced with latest commits - -2003-10-08 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * TLS library: - - - Added some code reorganization. - - - Started the work to implement Client Certificate and Client certificate verify handshake messages. - - - Fixed server certificate chain read - -2003-10-07 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/PgCommand.cs: - - - Simplify InternalSetOutputParameters implementation. - - * source/PgCommand.cs: - * source/PgDataReader.cs: - - - Implemented NextResult stuff and added nunit test case for it. - - -2003-10-01 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/NpgClient/PgOutputPacket.cs: - - - Added better handling of array parameters. - - -2003-09-29 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Added some changes to array datatype handling. - - * Added some improvements to PgCommandBuilder implementation. - - * source/PgParameter.cs: - - - created a new design time converter. - - - Added attributes. - - * source/PgCommand.cs: - - - Added better checking of command transaction ( matching SqlClient way ) - - -2003-09-28 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/PgCommandBuilder.cs: - - - Added changes for use the same format in the CommandText - of the generated insert, delete, update commands that is used - by the SqlClient data provider. - - -2003-09-27 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/PgParameter.cs: - - - Override ToString method and return the parameter name. - - * source/PgCommand.cs: - - - Added ReadOnly attribute to ConnectionTimeout property. - - -2003-09-22 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/NPgClient/PgStatement.cs: - - - Added row fetching in groups of 200 rows. - - - Cleanup. - - -2003-09-19 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/NPgClient/PgOutputPacket.cs: - - - Added support for array parameters ( not finished needs testing ). - -< ----------------------------------- Beta 3 ---------------------------------- > - -2003-09-18 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * NUnit test suite can now be executed using TLS connections. - - - Removed TlsReader and TlsWriter. Removed methods GetReader and GetWriter - from the TlsSession class. - - - Renamed class TlsSessionState to TlsSessionContext. - - - Added new TlsSocket and TlsNetworkStream classes and added a new NetworkStream - property to TlsSession class. - - - Rework TLS library usage in the provider to match to the new way of work. - -2003-09-14 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Added some improvements to TLS connections. - - * Fixed some problems in Database Schema support. - -2003-09-14 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * The TLS can now finish the Handshake protocol against the PostgreSQL server, - and the provider can connect to the server using TLS connections. - - * source/NPgClient/PgDbClient.cs: - - - Added changes for better processing of messages received in secure connections ( TLS ) - -< ----------------------------------- Beta 2 ---------------------------------- > - -2003-09-02 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/NPgClient/PgDbClient.cs: - - - Added changes for better generation of the character set collection. - -2003-08-22 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Added changes for allow cultureAwareCompare method of some classes to work with mono. - - * Added new test case for PgCommandBuilder class. - - * source/PgConnection.cs: - * source/PgCommandBuilder.cs: - - - Added changes for better fit to ADO.NET. - - -2003-08-20 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Added initial release of a simple TLS protocol implementation, - it uses tree files from the Mono project that are under the MIT X11 - license. - - -2003-08-15 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Added changes for better handling of net writes. - - - * source/PgCommand.cs: - * source/PgCommandBuilder.cs: - - - Added stored procedure execution using only the sp name. - - -2003-08-12 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/PgParameterCollection.cs: - - - Fixed error on RemoveAt method (#788826). - - - * source/PgDbConnection.cs: - - - Added processing of new connection string element for ssl connections. - - - * source/PgParameter.cs: - - - Fixed error on null value handling and rearrange FbDbType infering from Value property - to match SqlParameter behavior (#88827). - - -2003-07-07 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/PgDataReader.cs: - - - Improved GetSchemaTable method using prepared statements for retrieve column - and primary key information.. - - - -< ----------------------------------- Beta 1 ---------------------------------- > - -2003-07-05 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/PgParameter.cs: - - - Fixed casing of pgDbType field. - - - * source/PgCommandbuilder.cs: - - - Improved DeriveParameters method. - - -2003-07-03 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Added test case for error 782096. - - * Added serial field for NUnit test suite. - - * source/PgDataReader.cs: - - - Finished initial implementation for autoincrement fields ( serial ) at - PgDataReader.GetSchemaTable method (#81647). - - - Improved primary key handling. - - * source/DbSchema/PgColumnsSchema.cs: - - - Finished implementation for autoincrement fields ( serial ) support (#81647). - - -2003-07-02 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Changed casing of all clasess from PgXXX to PgXXX to - follow MS' guidelines. - - * New directory structure in the CVS for match class names and file names. - - * source/PgDataReader.cs: - - - Fixed error closing the DataReader when the subyacent command is disposed (#782096) - - - Added code for check autoincrement fields at GetSchemaTable method. - - * source/DbSchema/P^gDbSchemaColumns.cs: - - - Added new column for know if a field is autoincrement. - - -2003-07-01 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Improved PostgreSQL 3.0 protocol handling. - - * Added some new files: - - - PgInfoMessageEventArgs.cs - - - PgNotificationEventArgs.cs - - - PgClientMessageEventArgs.cs - - - PgClientNotificationEventArgs.cs - - * Added initial revision of asynchronous notification support ( task #82889 ). - - * Added implementation of PgConnection.InfoMessage event ( task #82902 ). - - -2003-07-31 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Added Linux makefile for mono:: ( Task #82784 ) - - * Fixed Toolbox bitmaps resources ( error #780770 ) - - - -< ----------------------------------- Alpha 3 ---------------------------------- > - -2003-07-30 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Added NUnit test suite for PgCommandBuilder class. - - * source/PgCommandBuilder.cs: - - - Fixed handling of expression columns at checkSchemaTable method ( error #780423 ). - - * source/FbConnection.cs: - - - Fixed some problems with named parameters that mades the CommandBuilder to non work ( error #780409 ). - - * source/FbConnection.cs: - - - Added implementation for ChangeDatabase. - - * source/FbCommandBuilder.cs: - - - Added implementation for DereiveParameters method ( non tested yet ) - - -2003-07-29 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Added C Sharp Naming guidelines PDF. - - * Changed cultureAwareCompare method in PgDataReader and all Collection classes for use it in a better way, - and allow it to run on Mono:: - - * source/FbDataReader.cs: - - - Changed the way for update RecordsAffected property value, making it - at Close and NextResult methods. - - -2003-07-28 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Added new NUnit test for function calls (Stored procedure calls). - - * source/FbCommand.cs: - * source/FbDataReader.cs: - - - Added support for Function calls using CommandType.StoredProcedure. - - - -2003-07-27 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * surce/PgParameter.cs: - * surce/PgParameterCollection.cs: - - - Removed non standard constructor from PgParameter and added a new one, - made needed changes in the Nunit test suite from bring it to work. - - -< ----------------------------------- Alpha 2 ---------------------------------- > - - -2003-07-24 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Added Windows installation project file. - - * Added CHANGES.TXT file.a - - -2003-07-22 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Changed build file for use new NUnit v2.1. - - * Improved database schema handling. - - -2003-07-21 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Minor changes to db schema support - - -2003-07-20 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Added new test case for money fields. - - * Fixed money datatype handling. - - -2003-07-19 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Prepare for Alpha 1 release. - - * Improved NUnit test Suite. - - * source/NPgClient/PgOutputPacket.cs: - - - Fixed decimal datatype write. - - -2003-07-17 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Added decimal datatype support at this moment using text format ( Task 81641 ) - - * Added two new files for encode/decode datatype values. - - * source/NPgClient/PgResponsePacket.cs: - - - Removed test code. - - - Added call to PgEncodeType.EncodeNumeric. - - * source/NPgClient/PgEncodeType.cs: - * source/NPgClient/PgDecodeType.cs: - * source/NPgClient/PgResponsePacket.cs: - - - CleanUp. - - -2003-07-16 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * source/PgParameter.cs: - - - Added better use of design time attributes. - - - Added new constructor. - - * source/PgCommand.cs: - - - Added better use of design time attributes. - - * source/PgConnection.cs: - * source/PgDataReader.cs: - * source/PgDataAdapter.cs: - * source/PgCommandBuilder.cs: - * source/PgErrorCollection.cs: - * source/PgParameterAdapter.cs: - * source/PgException.cs: - - - Added better use of design time attributes. - - * source/PgParameterAdapter.cs: - - - Added default constructor as internal. - - -2003-07-15 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Updated NAnt build file for MS.NET. - - * Moved the tests to NUnit. - - -2003-07-14 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Added new Unit Test case for PgDataAdapter class. - - * source/PgCommand.cs: - - - Fixed exception throw. - - * source/PgCommandBuilder.cs: - - - Fixed casing in private methods and visibility level. - - - Added better handling of table names. - - * source/PgDataReader.cs: - - - Improved GetSchemaTable. - - - Fixed Primary Key info retrieval. - - * source/NPgClient/PgType.cs: - * source/NPgClient/PgTypeCollection.cs: - * source/NPgClient/PgDbClient.cs: - - - Added changes for know if a datatype is serial. - - * source/PgDataReader.cs: - * source/PgDbType.cs: - * source/PgParameter.cs: - * source/NPgClient/PgType.cs: - - - Added better handling of datatypes. - - -2003-07-13 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Added Test cases for PgDataReader and PgTransaction classes. - - * source/PgDataReader.cs: - - - Fixed implementation of GetSchemaTable method. - - * source/PgCommand.cs: - - - Added better handling of exceptions and command parameters. - - * source/PgException.cs: - * source/PgDataAdapter.cs: - - - Fixed constructors. - - -2003-07-12 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - - * Added changelog.txt file. - - * source/PgConnection.cs: - - - Do not allow to execute CreateDatabase and GetDbSchemaTable if there are a DataReader open. - - * source/PgDbConnection.cs: - - - Changed Regular expression used for parsing connection string. - - -2003-07-12 Carlos Guzm\xE1n \xC1lvarez <car...@te...> - - * Initial import. \ No newline at end of file Copied: pgsqlclient/changelog.txt (from rev 4, changelog.txt) =================================================================== --- pgsqlclient/changelog.txt (rev 0) +++ pgsqlclient/changelog.txt 2006-03-13 12:32:21 UTC (rev 5) @@ -0,0 +1,1467 @@ +PgSqlClient - ADO.NET Data Provider for PostgreSQL 7.4+ +------------------------------------------------------- + + + +2005-05-25 Carlos Guzman Alvarez <car...@te...> + + * PostgreSQl.Data.PgSqlClient/NPgClient/PgDbClient.cs: + + - Correctly disable nagle algorithm (Patch #1207038) + +2005-04-14 Carlos Guzman Alvarez <car...@te...> + + * Fixed Tables, Views anbd Functions Privileges Schemas. + +2005-04-10 Carlos Guzman Alvarez <car...@te...> + + * PostgreSql.Data.PgSqlClient/PgConnectionPool.cs: + + - Fixed problem getting a connection form the pool. (#1146422) + +2005-04-03 Carlos Guzman Alvarez <car...@te...> + + * Changes to improve exception handling. + +2005-01-31 Carlos Guzman Alvarez <car...@te...> + + * PostgreSQl.Data.PgSqlClient/NPgSqlClient/PgOutPutPacket.cs: + + - Fixed boolean parameters support. + + * PostgreSQl.Data.PgSqlClient/PgConnection.cs: + + - Fixed bug on Close MEthod while clearing + SSL handlers. + +2004-09-29 Carlos Guzman Alvarez <car...@te...> + + - Mayour update of the sources + + +2004-07-22 Carlos Guzman Alvarez <car...@te...> + + * USe PascalCase naming for private methods in all classes. + + +2004-06-12 Carlos Guzman Alvarez <car...@te...> + + * PostgreSql.Data.PgSqlClient/PgCommand.cs: + + - Fix regex usage (it waqs working in .NET but not in mono + i have sent an email to the mono list and i'm wainting for response + for now if it's a mono problem) + + +2004-06-09 Carlos Guzman Alvarez <car...@te...> + + * PostgreSql.Data.PgSqlClient/PgCommand.cs: + + - Fix for PgCommand.NextResult (Thanks to Sion for his feedback) + +2004-06-03 Carlos Guzman Alvarez <car...@te...> + + * PostgreSql.Data.PgSqlClient/PgLayouts.cs: + + - Removed file. + + * PostgreSql.Data.PgSqlClient/PgResponsePacket.cs: + * PostgreSql.Data.PgSqlClient/PgOutputPacket.cs: + + - Improved Doubvle and Float read/write + +2004-05-31 Carlos Guzman Alvarez <car...@te...> + + * PostgreSql.Data.PgSqlClient/FbConnection.cs: + * PostgreSql.Data.PgSqlClient/NPgClient/PgDbClient.cs: + + - Reworked information and notification message handling + using callbacks (delegates) + + +2004-05-09 Carlos Guzman Alvarez <car...@te...> + + * Sync Mono.Security stuff with mono beta 1 sources. + +2004-05-06 Carlos Guzman Alvarez <car...@te...> + + * PostgreSql/Data/PgSqlClient/NPgClient/PgDbClient.cs: + + - Changes for patch (#948340) + ( Disable the nagle algorithm on socket setup ) + +2004-05-03 Carlos Guzman Alvarez <car...@te...> + + * PostgreSql.Data.PGSqlClient/PgCommand.cs: + + - Clenaup. + + + * PostgreSql.Data.PGSqlClient/NPgClient/PgOutputPacket.cs: + + - Fix bytea field handling. + +2004-05-02 Carlos Guzman Alvarez <car...@te...> + + * PostgreSql.Data.PGSqlClient/PgCommand.cs: + + - Changes on named parameters support. + +2004-04-26 Carlos Guzman Alvarez <car...@te...> + + * Mono.Security.Protocol.Tls/Alert.cs: + * Mono.Security.Protocol.Tls/CipherSuite.cs: + * Mono.Security.Protocol.Tls/CipherSuiteCollection.cs: + * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs: + * Mono.Security.Protocol.Tls/Context.cs: + * Mono.Security.Protocol.Tls/RecordProtocol.cs: + * Mono.Security.Protocol.Tls/SecurityCompressionType.cs: + * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs: + * Mono.Security.Protocol.Tls/SslServerStream.cs: + * Mono.Security.Protocol.Tls/TlsClientSettings.cs: + + - Changes for fix FxCop Rules. + + * Mono.Security.Protocol.Tls.Handshake/HandshakeMessage.cs: + + - Changes for fix FxCop Rules. + + +2004-04-10 Carlos Guzman Alvarez <car...@te...> + + * Started cleanup and unification of this keyword usage tasks. + + * Mono.Security.Protocol.Tls/SslClientStream.cs: + * Mono.Security.Protocol.Tls/SslServerStream.cs: + * Mono.Security.Protocol.Tls/Alert.cs: + * Mono.Security.Protocol.Tls/RecordProtocol.cs: + * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs: + * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs: + * Mono.Security.Protocol.Tls/Context.cs: + * Mono.Security.Protocol.Tls/TlsException.cs: + * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificate.cs: + * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs: + * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs: + * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerHello.cs: + * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs: + * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientCertificateVerify.cs: + * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientFinished.cs: + * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientHello.cs: + + - Reworked Alert and Exception (TlsException) handling. + + +2004-04-09 Carlos Guzman Alvarez <car...@te...> + + * Mono.Security.Protocol.Tls/TlsClientSettings.cs: + + - Added new CertificateRSA property. + + * Mono.Security.Protocol.Tls/SslHandshakeHash.cs: + + - Added two new methods: CreateSignature and VerifySignature. + + * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs: + + - Added Ssl3 implementation. + + * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientCertificateVerify.cs: + + - Added initial implementation. + + +2004-04-1 Carlos Guzman Alvarez <car...@te...> + + * PostgreSql.Data.PgSqlClient/PgCommandBuilder.cs: + * PostgreSql.Data.PgSqlClient/PgDataReader.cs: + * PostgreSql.Data.PgSqlClient/PgCommand.cs: + + - Improved implementations of Command, + Command builder and Data reader classes. + +2004-03-23 Carlos Guzman Alvarez <car...@te...> + + * PostgreSql.Data.PgSqlClient/PgCommandBuilder.cs: + + - Improved command builder implementation. + + +2004-03-17 Carlos Guzman Alvarez <car...@te...> + + * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientCertificate.cs: + * Mono.Security.Protocol.Tls.Handshake.Server/TlsServerKeyExchange.cs: + + - Initial implementation. + +2004-03-16 Carlos Guzman Alvarez <car...@te...> + + * Mono.Security.Protocol.Tls/SslCipherSuite.cs: + + - Added changes for allow it to work as server or client. + + +2004-03-15 Carlos Guzman Alvarez <car...@te...> + + * Mono.Security.Protocol.Tls/TlsStream.cs: + * Mono.Security.Protocol.Tls/CipherSuite.cs: + * Mono.Security.Protocol.Tls/TlsCipherSuite.cs: + * Mono.Security.Protocol.Tls/SslHandshakeHash.cs: + * Mono.Security.Protocol.Tls/RecordProtocol.cs: + * Mono.Security.Cryptography/MD5SHA1.cs: + + - Use Buffer.BlockCopy instead of System.Array.Copy + + +2004-03-10 Carlos Guzman Alvarez <car...@te...> + + * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientHello.cs: + * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientFinished.cs: + * Mono.Security.Protocol.Tls/RecordProtocol.cs: + + - Implemented some server alerts. + + * Mono.Security.Protocol.Tls/Context.cs: + + - Added new RecordProtocol property. + + +2004-03-09 Carlos Guzman Alvarez <car...@te...> + + * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs: + * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificateRequest.cs: + * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs: + * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientCertificateVerify.cs: + * Mono.Security.Protocol.Tls.Handshake.Server/TlsServerCertificateRequest.cs: + * Mono.Security.Protocol.Tls.Handshake.Server/TlsServerFinished.cs: + + - Fixed meesage type definition. + + * Mono.Security.Protocol.Tls/Ciphersuite.cs: + + - Added generation of the Server encryption algorithms. + + - Modified encryption/decription methods for work + as client or server as needed. + + * Mono.Security.Protocol.Tls/Ciphersuite.cs: + + - Added generation of the Server encryption algorithms. + + + * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientKeyExchange.cs: + + - Finished processing of the message contents. + + * Mono.Security.Protocol.Tls/RecordProtocol.cs: + * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs: + * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs: + + - Added new ProcessChangeCipherSpec method. + + * Mono.Security.Protocol.Tls/Context.cs: + + - Added new PrintBuffer method ( for debug ). + + * PostgreSql.Data.PgSqlClient/PgDataReader.cs: + + - Improved data reader implementation. + + +< --------------------------- Beta 7 ------------------------------ > + +2004-03-08 Carlos Guzman Alvarez <car...@te...> + + * PostgreSql.Data.PgSqlClient/PgCommandBuilder.cs: + + - Cleanup. + + * PostgreSql.Data.PgSqlClient/PgCommand.cs: + + - Fixed bug. + + + * Mono.Security.Protocol.Tls/SslClientStream.cs: + * Mono.Security.Protocol.Tls/SslServerStream.cs: + + - Callback cleanup. + + * PostgreSql.Data.PgSqlClient/PgCommandBuilder.cs: + + - Cleanup + + * PostgreSql.Data.PgSqlClient/PgConnectionPool.cs: + + - New connection pool implementation. + + * PostgreSql.Data.PgSqlClient/PgConnection.cs: + * PostgreSql.Data.PgSqlClient/PgDbConnection.cs: + * PostgreSql.Data.PgSqlClient/NPgClient/PgDbClient.cs: + + - Reworked SSL events hacks. + + +2004-03-06 Carlos Guzman Alvarez <car...@te...> + + * source/PgCommand.cs: + * source/PgDataReader.cs: + + - Improved Records Affected handling. + + * source/PgConnection.cs: + + - Added event for allow client certificate private key selection. + + * Mono.Security.Protocol.Tls/SslServerStream.cs: + + - Added PrivateKeySelection event and callback. + + - Added methods for event raising. + + +2004-03-06 Carlos Guzman Alvarez <car...@te...> + + * source/PgCommand.cs: + + - Improved named parameters support. + + +2004-03-03 Carlos Guzman Alvarez <car...@te...> + + * Mono.Security.Protocol.Tls/SslServerStream.cs: + + - Implemented flow for the server handshake. + + * Mono.Security.Protocol.Tls/Ciphersuite.cs: + * Mono.Security.Protocol.Tls/TlsCiphersuite.cs: + * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs: + * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs: + * Mono.Security.Protocol.Tls/SslClientStream.cs: + * Mono.Security.Protocol.Tls/TlsServerSettings.cs: + * Mono.Security.Protocol.Tls/TlsClientSettings.cs: + * Mono.Security.Protocol.Tls/ClientContext.cs: + * Mono.Security.Protocol.Tls.Handshake.Client/*.cs: + * Mono.Security.Protocol.Tls.Handshake.Server/*.cs: + + - Changes for make use of the renamed classes and enums. + + * Mono.Security.Protocol.Tls.Handshake/TlsHandshakeType.cs: + + - Renamed to HandshakeType.cs (Enum and file) + + * Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessage.cs: + + - Renamed to HandshakeMessage.cs (Class and file) + + * Mono.Security.Protocol.Tls.Handshake/TlsClientCertificateType.cs: + + - Renamed to ClientCertificateType.cs (Enum and file) + + * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs: + + - Renamed to Alert (Class, enums and file) + + * Mono.Security.Protocol.Tls/TlsContentType.cs: + + - Renamed to ContentType.cs ( Enum and file ) + + * Mono.Security.Protocol.Tls/TlsCiphersuiteCollection.cs: + + - Renamed to CiphersuiteCollection.cs ( Class and file ) + + * Mono.Security.Protocol.Tls/TlsCiphersuiteFactory.cs: + + - Renamed to CiphersuiteCollection.cs ( Class and file ) + + * Mono.Security.Protocol.Tls/TlsSslHandshakeHash.cs: + + - Renamed to SslHandshakeHash.cs ( Class and file ) + + * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs: + + - Renamed to SslCipherSuite.cs ( Class and file ) + +2004-02-25 Carlos Guzman Alvarez <car...@te...> + + * Mono.Security.Protocol.Tls/HandshakeState.cs: + + - New file. + + * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs: + + - Modified the level of some alerts according to the RFC. + + * Mono.Security.Protocol.Tls/SslClientStream.cs: + * Mono.Security.Protocol.Tls/SslServerStream.cs: + * Mono.Security.Protocol.Tls/Context.cs: + * Mono.Security.Protocol.Tls/ClientContext.cs: + * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs: + * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs: + + - Added changes for better handling of ClientHelloRequest messages. + +2004-02-24 Carlos Guzman Alvarez <car...@te...> + + * Mono.Security.Protocol.Tls.Alerts/TlsClosNotifyAlert.cs: + + - Removed File. + + * Mono.Security.Protocol.Tls.Alerts/TlsAlerts.cs: + * Mono.Security.Protocol.Tls/RecordProtocol.cs: + * Mono.Security.Protocol.Tls/SslClientStream.cs: + * Mono.Security.Protocol.Tls/SslServerStream.cs: + + - Reimplementation of TLS/SSL Alert Protocol. + +2004-02-23 Carlos Guzman Alvarez <car...@te...> + + * Mono.Security.Protocol.Tls/TlsContext.cs: + + - Removed file, implementation is now present in: + + Context.cs + ClientContext.cs + ServerContext.cs + + * Mono.Security.Protocol.Tls/Context.cs: + * Mono.Security.Protocol.Tls/ClientContext.cs: + * Mono.Security.Protocol.Tls/ServerContext.cs: + * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs: + + - New classes. + + * Mono.Security.Protocol.Tls/SslServerStream.cs: + + - Added implementation for properties, and read/write methods + as in SslClientStream. + + - doHandshake method is not implemented yet. + + * Mono.Security.Protocol.Tls/SslClientStream.cs: + * Mono.Security.Protocol.Tls/RecordProtocol.cs: + * Mono.Security.Protocol.Tls/Ciphersuite.cs: + * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs: + * Mono.Security.Protocol.Tls.Alerts/TlsCloseNotifyAlert.cs: + * Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessage.cs: + * Mono.Security.Protocol.Tls.Handshake.Client/*.cs: + * Mono.Security.Protocol.Tls.Handshake.Server/*.cs: + + - Added changes for make use of the new Context implementation. + +2004-02-20 Carlos Guzm\xE1n \xC1lvarez <car...@te...> + + * Mono.Security.Protocol.Tls/SslClientStream.cs: + * Mono.Security.Protocol.Tls/RecordProtocol.cs: + * Mono.Security.Protocol.Tls/TlsContext.cs: + + - Added changes for handle te SecurityProtocolType enum + as a Flags enum. + + * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientHello.cs: + + - Let the Ssl3 message to be process in the same way as the Tls1. + + * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientHello.cs: + + - Added changes for use the Protocol version send by the server + + * Mono.Security.Protocol.Tls/CipherSuite.cs: + + - Compute the premaster secret using the protocol version sent in + the ClientHello message instead of the actual protocol version. + + * Mono.Security.Protocol.Tls.Alerts/TlsWarningEventAgrs.cs: + + - Removed no more needed file. + + * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs: + + - Added 4 new properties: + + * Message + + * IsWarning + + * IsFatal + + * IsCloseNotify + + - Return always the same message when working in release mode + (The authentication or decryption has failed.) + + * Mono.Security.Protocol.Tls/SslClientStream.cs: + + - Added control over the CloseNotify Alert + to BeginRead method. + + - Return true in the server certificate validation method + if there are no errors. + +2004-02-19 Carlos Guzm\xE1n \xC1lvarez <car...@te...> + + * Mono.Security.Protocol.Tls/RecordProtocol.cs: + * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs: + + - New classes for handle the SSL/TLS record protocol. + + * Mono.Security.Protocol.Tls/SslClientStream.cs: + + - Record protocol stuff moved to the new classes. + + - Removed Warning event. + +2004-02-18 Carlos Guzm\xE1n \xC1lvarez <car...@te...> + + * Mono.Security.Protocol.Tls/CipherAlgorithmType.cs: + * Mono.Security.Protocol.Tls/HashAlgorithmType.cs: + * Mono.Security.Protocol.Tls/ExchangeAlgorithmType.cs: + + - Added Serializable attribute. + + * Mono.Security.Protocol.Tls/CipherSuite.cs: + * Mono.Security.Protocol.Tls/TlsCipherSuite.cs: + * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs: + * Mono.Security.Protocol.Tls/TlsContext.cs: + + - Added some optimizations proposed by Sebastien Pouliot. + + * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs: + + - Changes on Common Name detection and certificate error handling ( Thanks to Sebastien Pouliot for his feedback ). + + * Mono.Security.Protocol.Tls/SecurityProtocolType.cs: + + - Added Serializable attribute ( Thanks to Sebastien Pouliot for his feedback ). + + * Mono.Security.Protocol.Tls/SslClientStream.cs: + + - Fix for ServerCertificate property + +2004-02-17 Carlos Guzm\xE1n \xC1lvarez <car...@te...> + + * Mono.Security.Protocol.Tls/SslClientStream.cs: + + - Added changes for check that the handshake is finished + to the security properties. + + * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificate.cs: + + - Raise the Client Certificate event. + + * Mono.Security.Protocol.Tls/CipherSuite.cs: + * Mono.Security.Protocol.Tls/SslClientStream.cs: + * Mono.Security.Protocol.Tls/SecurityProtocolType.cs: + * Mono.Security.Protocol.Tls/TlsCipherSuite.cs: + * Mono.Security.Protocol.Tls/TlsCipherSuiteCollection.cs: + * Mono.Security.Protocol.Tls/TlsCipherSuiteFactory.cs: + * Mono.Security.Protocol.Tls/TlsContext.cs: + * Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessage.cs: + * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientHello.cs: + + - Change the SecurityProtocolType enum to mtch .NET 1.2 documentation definition. + + * Mono.Security.Protocol.Tls/SslClientStream.cs: + + - Impement SelectedClientCertificate and ServerCertificate properties. + +2004-02-16 Carlos Guzm\xE1n \xC1lvarez <car...@te...> + + * Mono.Security.Protocol.Tls/TlsCipherSuiteFactory.cs: + + - Changed the cipher suites preference order ( Thanks to Sebastien Pouliot for his feedback ) + +2004-02-15 Carlos Guzm\xE1n \xC1lvarez <car...@te...> + + * Mono.Security.Protocol.Tls/SslClientStream.cs: + + - Added specific control od available data for Network Streams + on Read ( Thanks to Francisco Figueiredo Jr. for his feedback ). + + - Removed test code. + +2004-02-15 Carlos Guzm\xE1n \xC1lvarez <car...@te...> + + * source/NPgClient/PgDbClient.cs: + * source/NPgClient/PgStatement.cs: + + - Simplify packet write. + +2004-01-03 Carlos Guzm\xE1n \xC1lvarez <car...@te...> + + * source/PgCommand.cs: + * source/NPgClient/PgStatement.cs: + * source/NPgClient/PgResponsePacket.cs: + + - Added an initial implementation of the simple query protocol + that will be available using an SIMPLE_PROTOCOL define at build time. + + +< --------------------------- Beta 6 ------------------------------ > + +2003-12-02 Carlos Guzm\xE1n \xC1lvarez <car...@te...> + + * source/PgCommand.cs: + * source/NPgClient/PgStatement.cs: + + - Minor uimprovement to prepare process. + + +2003-11-26 Carlos Guzm\xE1n \xC1lvarez <car...@te...> + + * source/PgCommand.cs: + * source/NPgClient/PgStatement.cs: + + - Added minor improvement for call Describe only when it's needed. + + +2003-11-24 Carlos Guzm\xE1n \xC1lvarez <car...@te...> + + * source/PgConnection.cs: + * ... [truncated message content] |
From: <car...@us...> - 2006-03-13 12:31:33
|
Revision: 4 Author: carlosga_fb Date: 2006-03-13 04:31:17 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=4&view=rev Log Message: ----------- Moved remotely Added Paths: ----------- pgsqlclient/builds/ Removed Paths: ------------- builds/ Copied: pgsqlclient/builds (from rev 3, builds) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-03-13 12:30:54
|
Revision: 3 Author: carlosga_fb Date: 2006-03-13 04:30:38 -0800 (Mon, 13 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=3&view=rev Log Message: ----------- Moved remotely Added Paths: ----------- pgsqlclient/source/ Removed Paths: ------------- source/ Copied: pgsqlclient/source (from rev 2, source) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |