Index: freexp/md5.pas
===================================================================
RCS file: /server/cvs/freexp/md5.pas,v
retrieving revision 1.3
retrieving revision 1.5
diff -u -r1.3 -r1.5
--- freexp/md5.pas 30 Mar 2006 07:21:09 -0000 1.3
+++ freexp/md5.pas 31 Mar 2006 10:41:18 -0000 1.5
@@ -1,4 +1,4 @@
-{ $Id: md5.pas,v 1.3 2006/03/30 07:21:09 mw Exp $ }
+{ $Id: md5.pas,v 1.5 2006/03/31 10:41:18 mw Exp $ }
unit MD5;
{MD5 - 128 bit Hash function}
@@ -51,11 +51,13 @@
3.08 22.01.06 we Removed HSelfTest from descriptor
3.09 11.02.06 we Descriptor as typed const
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]
+ 3.09fxp2 28.03.06 fxp md5sum generates MD5SUM as a String[32]
+ 3.09fxp3 31.03.06 fxp md5sum splitted in _file and _string
**************************************************************************)
(*-------------------------------------------------------------------------
(C) Copyright 2002-2006 Wolfgang Ehrhardt
+ (C) Copyright 2006 FreeXP
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from
@@ -334,7 +336,11 @@
type md5str = string[32];
-function md5sum(const source:string;const isfile:boolean):md5str;
+function md5sum_file(const source:string):md5str;
+ {-initialize context}
+ {$ifdef DLL} stdcall; {$endif}
+
+function md5sum_str(const source:string):md5str;
{-initialize context}
{$ifdef DLL} stdcall; {$endif}
@@ -390,15 +396,6 @@
{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}
@@ -430,54 +427,63 @@
{$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;
-
+function md5sum_file(const source:string):md5str;
+type md5buf = array[1..$FFFF] of byte;
+var f : file;
+ context : THashContext;
+ digest : TMD5Digest;
+ StrDigest : md5str;
+ l : longint;
+ n : word;
+ w : byte;
+ err : integer;
+ md5bufp : ^md5buf;
begin
- md5sum:='';
+ md5sum_file:='';
New(md5bufp);
MD5Init(context);
- if isfile then
+ 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
- w:=FileMode;
- fm_ro;
- assign(f,source);
- reset(f,1);
+ blockread(f,md5bufp^,SizeOf(md5buf),n);
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);
+ dec(l,n);
MD5Update(context,md5bufp,n);
end;
+ close(f);
+ if IOResult=0 then;
+ if err<>0 then exit;
MD5Final(context,digest);
Dispose(md5bufp);
StrDigest:='';
for n:=0 to 15 do StrDigest:=StrDigest+hex(digest[n],2);
- md5sum:=StrDigest;
+ md5sum_file:=StrDigest;
+end;
+
+function md5sum_str(const source:string):md5str;
+var context : THashContext;
+ digest : TMD5Digest;
+ md5buf : array[1..255] of byte;
+ StrDigest : md5str;
+ l : byte;
+begin
+ md5sum_str:='';
+ MD5Init(context);
+ l:=length(source);
+ move(source[1],md5buf[1],l);
+ MD5Update(context,@md5buf,l);
+ MD5Final(context,digest);
+ StrDigest:='';
+ for l:=0 to 15 do StrDigest:=StrDigest+hex(digest[l],2);
+ md5sum_str:=StrDigest;
end;
{$ifdef BIT32}
@@ -936,6 +942,13 @@
end.
{
$Log: md5.pas,v $
+ Revision 1.5 2006/03/31 10:41:18 mw
+ MW: - Copyright ergänzt (wir haben diese Datei modifiziert!!!)
+
+ Revision 1.4 2006/03/31 08:55:03 mw
+ MY: - Aufteilung von md5sum() in md5sum_file() für Dateien und
+ md5sum_str() für Strings.
+
Revision 1.3 2006/03/30 07:21:09 mw
MW: - Verlagerung von md5sum() um es bitbreitenunabhängig anzusprechen.
Index: freexp/servers.pas
===================================================================
RCS file: /server/cvs/freexp/servers.pas,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- freexp/servers.pas 30 Mar 2006 07:30:07 -0000 1.7
+++ freexp/servers.pas 31 Mar 2006 08:55:34 -0000 1.8
@@ -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.7 2006/03/30 07:30:07 mw Exp $ }
+{ $Id: servers.pas,v 1.8 2006/03/31 08:55:34 mw Exp $ }
{$I XPDEFINE.INC }
{$O+,F+}
@@ -38,7 +38,7 @@
begin
{MD5-Summe der SERVERS.DAT berechnen}
- StrDigest:=md5sum(servers,true);
+ StrDigest:=md5sum_file(servers);
{MD5-Summe gegen alle alten SERVERS.DAT vergleichen}
outdated:=false;
for i:=1 to oldfile do
@@ -82,6 +82,9 @@
end.
{
$Log: servers.pas,v $
+ Revision 1.8 2006/03/31 08:55:34 mw
+ MW: - Anpassung an md5.pas 3.09fxp3
+
Revision 1.7 2006/03/30 07:30:07 mw
MW: - Vergessener Debugcode entfernt.
Index: freexp/xp4o.inc
===================================================================
RCS file: /server/cvs/freexp/xp4o.inc,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- freexp/xp4o.inc 13 Mar 2006 08:25:05 -0000 1.26
+++ freexp/xp4o.inc 31 Mar 2006 09:11:51 -0000 1.27
@@ -8,7 +8,7 @@
{ Die Nutzungsbedingungen fuer diesen Quelltext finden Sie in der }
{ Datei SLIZENZ.TXT oder auf www.crosspoint.de/oldlicense.html. }
{ --------------------------------------------------------------- }
-{ $Id: xp4o.inc,v 1.26 2006/03/13 08:25:05 mw Exp $ }
+{ $Id: xp4o.inc,v 1.27 2006/03/31 09:11:51 mw Exp $ }
{ XP4O - Reorganisation }
@@ -276,7 +276,7 @@
if ablage<ablagen then reobuf[ablage]:=true;
end
else
- if ablage<ablagen then inc(bufsiz[ablage],msize);
+ if ablage<ablagen then bufsiz[ablage]:=bufsiz[ablage]+msize;
dbSkip(mbase,iif(hzahl,-1,1));
inc(nzahl);
if n mod 10=0 then display;
@@ -729,6 +729,11 @@
end;
{
$Log: xp4o.inc,v $
+ Revision 1.27 2006/03/31 09:11:51 mw
+ HJT: - fix for overflow error with big MPUFFER (reorg)
+ MW: - Anpassung an FreeXP, wo kein normaler 64 Integer-Datentyp zur
+ Verfügung steht.
+
Revision 1.26 2006/03/13 08:25:05 mw
MW: - Beseitigung eines Anzeigefehlers beim Reorg, bei sehr großem
Datenbestand (mehr als 2 GB Gesamtgröße aller MPUFFER).
Index: freexp/xp4o.pas
===================================================================
RCS file: /server/cvs/freexp/xp4o.pas,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -r1.59 -r1.60
--- freexp/xp4o.pas 13 Mar 2006 08:25:06 -0000 1.59
+++ freexp/xp4o.pas 31 Mar 2006 09:11:51 -0000 1.60
@@ -8,7 +8,7 @@
{ Die Nutzungsbedingungen fuer diesen Quelltext finden Sie in der }
{ Datei SLIZENZ.TXT oder auf www.crosspoint.de/oldlicense.html. }
{ --------------------------------------------------------------- }
-{ $Id: xp4o.pas,v 1.59 2006/03/13 08:25:06 mw Exp $ }
+{ $Id: xp4o.pas,v 1.60 2006/03/31 09:11:51 mw Exp $ }
{ CrossPoint - Overlayroutinen, die von XP4 aufgerufen werden }
@@ -117,7 +117,7 @@
history_changed : boolean = false;
var reobuf : array[0..ablagen-1] of boolean;
- bufsiz : array[0..ablagen-1] of longint; { Größe nach Reorg }
+ bufsiz : array[0..ablagen-1] of integer64; { Größe nach Reorg }
abuf : array[1..max_arc+1] of arcbp;
exdir : pathstr;
arctyp_save : shortint;
@@ -2960,6 +2960,11 @@
end.
{
$Log: xp4o.pas,v $
+ Revision 1.60 2006/03/31 09:11:51 mw
+ HJT: - fix for overflow error with big MPUFFER (reorg)
+ MW: - Anpassung an FreeXP, wo kein normaler 64 Integer-Datentyp zur
+ Verfügung steht.
+
Revision 1.59 2006/03/13 08:25:06 mw
MW: - Beseitigung eines Anzeigefehlers beim Reorg, bei sehr großem
Datenbestand (mehr als 2 GB Gesamtgröße aller MPUFFER).
Index: freexp/Trial/newsnap.asc
===================================================================
RCS file: /server/cvs/freexp/Trial/newsnap.asc,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- freexp/Trial/newsnap.asc 19 Mar 2006 11:10:06 -0000 1.5
+++ freexp/Trial/newsnap.asc 31 Mar 2006 10:36:09 -0000 1.6
@@ -258,3 +258,43 @@
MW: - Beseitigung eines Anzeigefehlers beim Einlesen von sehr vielen
Nachrichten.
XP3O.INC
+
+28.03.2006:
+
+MW: - Aktivierung der Compdate-Unit (sie enthält das eincompilierte
+ Compiledatum).
+ XP1.PAS
+
+MW: - Overlaytest benutzt jetzt das in der Compdate-Unit hinterlegte
+ Datum. Workaround gegen Fehlverhalten von Windows XP.
+ XPX.PAS
+
+MW: - Unterstützung für Textdatei mime.types (dosbedingt MIME.TYP)
+ XP6M.INC, MIME.TYP, BUILD.BAT
+
+30.03.2006:
+
+MY: - Neue Funktion md5sum zur leichteren Berechnung einer MD5-Summe
+ MD5.PAS
+
+MW: - Vereinfachung der SERVERS-Unit durch Benutzung von md5.md5sum()
+ und damit Weglassen allen doppelt aufgeführten Codes.
+ SERVERS.PAS
+
+31.03.2006:
+
+MY: - Aufteilung von md5sum() in md5sum_file() für Dateien und
+ md5sum_str() für Strings.
+ MD5.PAS
+
+MW: - Anpassung an md5.pas 3.09fxp3
+ SERVERS.PAS
+
+HJT: - fix for overflow error with big MPUFFER (reorg)
+MW: - Anpassung an FreeXP, wo kein normaler 64 Integer-Datentyp zur
+ Verfügung steht.
+ XP4O.PAS, XP4O.INC
+
+
+
+
------------------------------------------------------------------------
FreeXP CVS-Mailingliste
[email protected]
http://www.freexp.de/cgi-bin/mailman/listinfo/cvs-list