CVS daily diff
FreeXP CVS-Server
cvs-list at freexp.de
Fre Mar 31 00:00:37 CEST 2006
Index: freexp/md5.pas
===================================================================
RCS file: /server/cvs/freexp/md5.pas,v
retrieving revision 1.1
retrieving revision 1.3
diff -u -r1.1 -r1.3
--- freexp/md5.pas 25 Feb 2006 12:42:48 -0000 1.1
+++ freexp/md5.pas 30 Mar 2006 07:21:09 -0000 1.3
@@ -1,4 +1,4 @@
-{ $Id: md5.pas,v 1.1 2006/02/25 12:42:48 mw Exp $ }
+{ $Id: md5.pas,v 1.3 2006/03/30 07:21:09 mw Exp $ }
unit MD5;
{MD5 - 128 bit Hash function}
@@ -50,7 +50,8 @@
3.07 18.01.06 we Descriptor fields HAlgNum, HSig
3.08 22.01.06 we Removed HSelfTest from descriptor
3.09 11.02.06 we Descriptor as typed const
- 3.09fxp 20.02.06 fxp STD.INC is now part of this file
+ 3.09fxp1 20.02.06 fxp STD.INC is now part of this file
+ 3.09fxp2 28.03.06 fxp md5sum generates MD5SUM as a String[32]
**************************************************************************)
(*-------------------------------------------------------------------------
@@ -329,8 +330,13 @@
{$ifopt Q+} {$define OverflowChecks_on} {$endif}
{$endif}
-uses Hash;
+uses typeform,fileio,hash;
+type md5str = string[32];
+
+function md5sum(const source:string;const isfile:boolean):md5str;
+ {-initialize context}
+ {$ifdef DLL} stdcall; {$endif}
procedure MD5Init(var Context: THashContext);
{-initialize context}
@@ -384,7 +390,15 @@
{Internal types for type casting}
type
PByte = ^byte;
-
+ {$ifdef UseWinDOS}
+ md5buf = array[1..$8000] of byte;
+ {$else}
+ {$ifdef VER80}
+ md5buf = array[1..$8000] of byte;
+ {$else}
+ md5buf = array[1..$C000] of byte;
+ {$endif}
+ {$endif}
{$ifdef StrictLong}
{$warnings off}
@@ -416,11 +430,58 @@
{$endif}
{$endif}
+function md5sum(const source:string;const isfile:boolean):md5str;
+var f : file;
+ context : THashContext;
+ digest : TMD5Digest;
+ StrDigest : md5str;
+ l : longint;
+ n : word;
+ w : byte;
+ err : integer;
+ md5bufp : ^md5buf;
+
+begin
+ md5sum:='';
+ New(md5bufp);
+ MD5Init(context);
+ if isfile then
+ begin
+ w:=FileMode;
+ fm_ro;
+ assign(f,source);
+ reset(f,1);
+ err:=IOResult;
+ FileMode:=w;
+ if err<>0 then exit;
+ l:=FileSize(f);
+ if IOResult<>0 then exit;
+ while (err=0) and (l>0) do
+ begin
+ blockread(f,md5bufp^,SizeOf(md5buf),n);
+ err:=IOResult;
+ dec(l,n);
+ MD5Update(context,md5bufp,n);
+ end;
+ close(f);
+ if IOResult=0 then;
+ if err<>0 then exit;
+ end
+ else begin
+ n:=length(source);
+ move(source,md5bufp^,n);
+ MD5Update(context,md5bufp,n);
+ end;
+ MD5Final(context,digest);
+ Dispose(md5bufp);
+ StrDigest:='';
+ for n:=0 to 15 do StrDigest:=StrDigest+hex(digest[n],2);
+ md5sum:=StrDigest;
+end;
{$ifdef BIT32}
-
{********* 32 bit code *********}
{---------------------------------------------------------------------------}
@@ -875,6 +936,12 @@
end.
{
$Log: md5.pas,v $
+ Revision 1.3 2006/03/30 07:21:09 mw
+ MW: - Verlagerung von md5sum() um es bitbreitenunabhängig anzusprechen.
+
+ Revision 1.2 2006/03/30 07:11:45 mw
+ MY: - Neue Funktion md5sum zur leichteren Berechnung einer MD5-Summe
+
Revision 1.1 2006/02/25 12:42:48 mw
MW: - Die Liste der Mail- und News-Server SERVERS.DAT wird jetzt
automatisch aktualiert, sofern der Benutzer die Datei nicht
Index: freexp/servers.inc
===================================================================
RCS file: /server/cvs/freexp/servers.inc,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- freexp/servers.inc 1 Mar 2006 14:23:54 -0000 1.4
+++ freexp/servers.inc 30 Mar 2006 10:21:39 -0000 1.5
@@ -6,7 +6,7 @@
{ Die Nutzungsbedingungen fuer diesen Quelltext finden Sie in der }
{ Datei SLIZENZ.TXT oder auf www.crosspoint.de/oldlicense.html. }
{ --------------------------------------------------------------- }
-{ $Id: servers.inc,v 1.4 2006/03/01 14:23:54 mw Exp $ }
+{ $Id: servers.inc,v 1.5 2006/03/30 10:21:39 mw Exp $ }
const oldfile=9;
oldfiles:array [1..oldfile] of string[32]=(
'83683051cc566c6d63aa0e6306d98290', {Rev.: 1.1.2.1}
@@ -19,9 +19,12 @@
'a8a639ee38fbba9b5c8d77f9007801fd', {Rev.: 1.5 und 1.4.2.1}
'8f6f37568b7171927524d061493d5b9f' {Rev.: 1.6 und 1.4.2.2}
);
-{Aktuelle Rev 1.7 und 1.4.2.3: b1a28ca0d6ce824d549c0b8f696e0c11 (Branch 3.40 und Main)}
+{Aktuelle Rev 1.7 und 1.4.2.3: c5d0efb5d1310122f5952bfc10b2b54a (Branch 3.40 und Main)}
{
$Log: servers.inc,v $
+ Revision 1.5 2006/03/30 10:21:39 mw
+ MW: - fehlerhafte neue MD5-Summe ersetzt.
+
Revision 1.4 2006/03/01 14:23:54 mw
MW: - Aufnahme der neuen Servers.dat
Index: freexp/servers.pas
===================================================================
RCS file: /server/cvs/freexp/servers.pas,v
retrieving revision 1.4
retrieving revision 1.7
diff -u -r1.4 -r1.7
--- freexp/servers.pas 25 Feb 2006 21:16:50 -0000 1.4
+++ freexp/servers.pas 30 Mar 2006 07:30:07 -0000 1.7
@@ -6,7 +6,7 @@
{ Die Nutzungsbedingungen fuer diesen Quelltext finden Sie in der }
{ Datei SLIZENZ.TXT oder auf www.crosspoint.de/oldlicense.html. }
{ --------------------------------------------------------------- }
-{ $Id: servers.pas,v 1.4 2006/02/25 21:16:50 mw Exp $ }
+{ $Id: servers.pas,v 1.7 2006/03/30 07:30:07 mw Exp $ }
{$I XPDEFINE.INC }
{$O+,F+}
@@ -18,16 +18,11 @@
implementation
-uses xp0,fileio,typeform,hash,md5;
+uses xp0,fileio,typeform,md5;
procedure renew_Servers;
-var f,g:text;
- Digest: TMD5Digest;
- StrDigest: string[32];
- buf: array [1..512] of byte;
- Err: word;
- i:byte;
+var f,g:text;
t:string;
const servers:string='SERVERS.DAT';
@@ -39,48 +34,11 @@
function outdated(f:string):boolean;
var i:integer;
-
- function Int2Hex (x : byte):String;
- const
- { Zeichensatz der Hexadezimalzahlen }
- cs : Array [0..15] of Char = '0123456789ABCDEF';
- { Werte, bis zum naechsten Stellensprung }
- te : Array [1..2] of Longint = (16, 1);
- var
- h : String[2]; { String, der zurueckgegeben wird }
- hilf : Byte; { Hilfsvariable }
- i : Integer; { Zaehler fuer FOR-Schleife }
- begin
- { String initalisieren (loeschen) }
- h := '';
- { Wiederhole die Schleife 8 mal }
- for i := 1 to 2 do begin
- { Teile den uebergebenen Wert durch den i. Eintrag in der
- Wertetabelle te und uebergebe das Ergebniss an hilf }
- hilf := x div te[i];
- { Addiere das Zeichen, den h wertmaessig angibt zu dem
- String, der spaeter ausgegeben wird }
- h := h + cs[hilf];
- { Ziehe den Wert hilf mal dem i. Eintrag in der Wertetabelle
- von x ab }
- x := x - te[i] * hilf;
- end;
- { Uebergebe den String h an die Funktion Int2Hex }
- Int2Hex := h;
- end;
+ StrDigest: string[32];
begin
- Err:=0;
-
{MD5-Summe der SERVERS.DAT berechnen}
-
- MD5File(f,Digest,buf,sizeof(buf),Err);
-
- {und in leichter vergleichbare Stringentsprechnung umwandeln}
-
- StrDigest:='';
- for i:=0 to 15 do StrDigest:=StrDigest+Int2Hex(Digest[i]);
-
+ StrDigest:=md5sum(servers,true);
{MD5-Summe gegen alle alten SERVERS.DAT vergleichen}
outdated:=false;
for i:=1 to oldfile do
@@ -124,18 +82,20 @@
end.
{
$Log: servers.pas,v $
- Revision 1.4 2006/02/25 21:16:50 mw
- MW: - Vergessene Stringaddition.
+ Revision 1.7 2006/03/30 07:30:07 mw
+ MW: - Vergessener Debugcode entfernt.
+
+ Revision 1.6 2006/03/30 07:17:45 mw
+ MW: - Kosmetikkorrektur
+
+ Revision 1.5 2006/03/30 07:12:58 mw
+ MW: - Vereinfachung der SERVERS-Unit durch Benutzung von md5.md5sum()
+ und damit Weglassen allen doppelt aufgeführten Codes.
Revision 1.3 2006/02/25 18:25:52 mw
MW: - Bugfixing von Servers.dat : Es wurde eine leere Servers.dat erzeugt,
wenn keine Servers.dat existierte.
- - Servers.dat kann im Overlay bleiben.
-
- Revision 1.2 2006/02/25 16:35:02 mw
- MW: - Servers-Unit darf nicht im Overlay sein.
-
Revision 1.1 2006/02/25 12:42:48 mw
MW: - Die Liste der Mail- und News-Server SERVERS.DAT wird jetzt
automatisch aktualiert, sofern der Benutzer die Datei nicht
Mehr Informationen über die CVS-List Mailingliste