Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liblongpath-rsync
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liblongpath
liblongpath-rsync
Commits
deb5bf1d
Commit
deb5bf1d
authored
Jan 01, 2005
by
Wayne Davison
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- Use an int32 for each checksum length variable.
- Simplified some of the code, removing a useless memcpy().
parent
3dfe6e97
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
23 additions
and
25 deletions
+23
-25
checksum.c
checksum.c
+23
-25
No files found.
checksum.c
View file @
deb5bf1d
...
...
@@ -30,9 +30,9 @@ extern int protocol_version;
a simple 32 bit checksum that can be upadted from either end
(inspired by Mark Adler's Adler-32 checksum)
*/
uint32
get_checksum1
(
char
*
buf1
,
int
len
)
uint32
get_checksum1
(
char
*
buf1
,
int32
len
)
{
int
i
;
int
32
i
;
uint32
s1
,
s2
;
schar
*
buf
=
(
schar
*
)
buf1
;
...
...
@@ -49,18 +49,20 @@ uint32 get_checksum1(char *buf1,int len)
}
void
get_checksum2
(
char
*
buf
,
int
len
,
char
*
sum
)
void
get_checksum2
(
char
*
buf
,
int32
len
,
char
*
sum
)
{
int
i
;
int
32
i
;
static
char
*
buf1
;
static
int
len1
;
static
int
32
len1
;
struct
mdfour
m
;
if
(
len
>
len1
)
{
if
(
buf1
)
free
(
buf1
);
if
(
buf1
)
free
(
buf1
);
buf1
=
new_array
(
char
,
len
+
4
);
len1
=
len
;
if
(
!
buf1
)
out_of_memory
(
"get_checksum2"
);
if
(
!
buf1
)
out_of_memory
(
"get_checksum2"
);
}
mdfour_begin
(
&
m
);
...
...
@@ -125,7 +127,7 @@ void file_checksum(char *fname,char *sum,OFF_T size)
}
static
int
sumresidue
;
static
int
32
sumresidue
;
static
char
sumrbuf
[
CSUM_CHUNK
];
static
struct
mdfour
md
;
...
...
@@ -146,41 +148,37 @@ void sum_init(int seed)
* @todo Perhaps get rid of md and just pass in the address each time.
* Very slightly clearer and slower.
**/
void
sum_update
(
char
*
p
,
int
len
)
void
sum_update
(
char
*
p
,
int
32
len
)
{
int
i
;
if
(
len
+
sumresidue
<
CSUM_CHUNK
)
{
memcpy
(
sumrbuf
+
sumresidue
,
p
,
len
);
memcpy
(
sumrbuf
+
sumresidue
,
p
,
len
);
sumresidue
+=
len
;
return
;
}
if
(
sumresidue
)
{
i
=
MIN
(
CSUM_CHUNK
-
sumresidue
,
len
)
;
memcpy
(
sumrbuf
+
sumresidue
,
p
,
i
);
mdfour_update
(
&
md
,
(
uchar
*
)
sumrbuf
,
(
i
+
sumresidue
)
);
i
nt32
i
=
CSUM_CHUNK
-
sumresidue
;
memcpy
(
sumrbuf
+
sumresidue
,
p
,
i
);
mdfour_update
(
&
md
,
(
uchar
*
)
sumrbuf
,
CSUM_CHUNK
);
len
-=
i
;
p
+=
i
;
}
for
(
i
=
0
;
i
+
CSUM_CHUNK
<=
len
;
i
+=
CSUM_CHUNK
)
{
memcpy
(
sumrbuf
,
p
+
i
,
CSUM_CHUNK
);
mdfour_update
(
&
md
,
(
uchar
*
)
sumrbuf
,
CSUM_CHUNK
);
while
(
len
>=
CSUM_CHUNK
)
{
mdfour_update
(
&
md
,
(
uchar
*
)
p
,
CSUM_CHUNK
);
len
-=
CSUM_CHUNK
;
p
+=
CSUM_CHUNK
;
}
if
(
len
-
i
>
0
)
{
sumresidue
=
len
-
i
;
memcpy
(
sumrbuf
,
p
+
i
,
sumresidue
);
}
else
{
sumresidue
=
0
;
}
sumresidue
=
len
;
if
(
sumresidue
)
memcpy
(
sumrbuf
,
p
,
sumresidue
);
}
void
sum_end
(
char
*
sum
)
{
if
(
sumresidue
||
protocol_version
>=
27
)
{
if
(
sumresidue
||
protocol_version
>=
27
)
mdfour_update
(
&
md
,
(
uchar
*
)
sumrbuf
,
sumresidue
);
}
mdfour_result
(
&
md
,
(
uchar
*
)
sum
);
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment