Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Tero Saarni
OpenLDAP
Commits
17a35d4b
Commit
17a35d4b
authored
Jan 13, 2011
by
Quanah Gibson-Mount
Browse files
ITS#6717
parent
20baef34
Changes
2
Hide whitespace changes
Inline
Side-by-side
CHANGES
View file @
17a35d4b
...
...
@@ -105,6 +105,7 @@ OpenLDAP 2.4.24 Engineering
Fixed slapo-syncprov sessionlog ordering (ITS#6716)
Fixed slapo-syncprov sessionlog with adds (ITS#6503)
Fixed slapo-syncprov mutex (ITS#6438)
Fixed slapo-syncprov mincsn check with MMR (ITS#6717)
Fixed slapo-translucent entry leak (ITS#6746)
Fixed contrib/autogroup LDAP URI with attribute filter (ITS#6536)
Fixed contrib/autogroup install location (ITS#6684)
...
...
servers/slapd/overlays/syncprov.c
View file @
17a35d4b
...
...
@@ -2415,7 +2415,7 @@ syncprov_op_search( Operation *op, SlapReply *rs )
sync_control
*
srs
;
BerVarray
ctxcsn
;
int
i
,
*
sids
,
numcsns
;
struct
berval
mincsn
;
struct
berval
mincsn
,
maxcsn
;
int
dirty
=
0
;
if
(
!
(
op
->
o_sync_mode
&
SLAP_SYNC_REFRESH
)
)
return
SLAP_CB_CONTINUE
;
...
...
@@ -2530,12 +2530,27 @@ syncprov_op_search( Operation *op, SlapReply *rs )
i
++
;
}
/* Find the smallest CSN */
mincsn
=
srs
->
sr_state
.
ctxcsn
[
0
];
for
(
i
=
1
;
i
<
srs
->
sr_state
.
numcsns
;
i
++
)
{
if
(
ber_bvcmp
(
&
mincsn
,
&
srs
->
sr_state
.
ctxcsn
[
i
]
)
>
0
)
mincsn
=
srs
->
sr_state
.
ctxcsn
[
i
];
}
/* Find the smallest CSN which differs from contextCSN */
mincsn
.
bv_len
=
0
;
maxcsn
.
bv_len
=
0
;
for
(
i
=
0
;
i
<
srs
->
sr_state
.
numcsns
;
i
++
)
{
for
(
j
=
0
;
j
<
numcsns
;
j
++
)
{
if
(
srs
->
sr_state
.
sids
[
i
]
!=
sids
[
j
]
)
continue
;
if
(
BER_BVISEMPTY
(
&
maxcsn
)
||
ber_bvcmp
(
&
maxcsn
,
&
srs
->
sr_state
.
ctxcsn
[
i
]
)
<
0
)
{
maxcsn
=
srs
->
sr_state
.
ctxcsn
[
i
];
}
if
(
ber_bvcmp
(
&
srs
->
sr_state
.
ctxcsn
[
i
],
&
ctxcsn
[
j
]
)
<
0
)
{
if
(
BER_BVISEMPTY
(
&
mincsn
)
||
ber_bvcmp
(
&
mincsn
,
&
srs
->
sr_state
.
ctxcsn
[
i
]
)
>
0
)
{
mincsn
=
srs
->
sr_state
.
ctxcsn
[
i
];
}
}
}
}
if
(
BER_BVISEMPTY
(
&
mincsn
))
mincsn
=
maxcsn
;
/* If nothing has changed, shortcut it */
if
(
srs
->
sr_state
.
numcsns
==
numcsns
)
{
...
...
Write
Preview
Supports
Markdown
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