Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Joe Martin
OpenLDAP
Commits
1c16fa38
Commit
1c16fa38
authored
May 14, 2006
by
Pierangelo Masarati
Browse files
line up back-meta to ITS#4546
parent
26d1fc8c
Changes
3
Hide whitespace changes
Inline
Side-by-side
servers/slapd/back-meta/bind.c
View file @
1c16fa38
...
...
@@ -207,6 +207,29 @@ retry_lock:;
meta_back_conndn_cmp
);
assert
(
tmpmc
==
mc
);
/* delete all cached connections with the current connection */
if
(
LDAP_BACK_SINGLECONN
(
mi
)
)
{
while
(
(
tmpmc
=
avl_delete
(
&
mi
->
mi_conninfo
.
lai_tree
,
(
caddr_t
)
mc
,
meta_back_conn_cmp
)
)
!=
NULL
)
{
Debug
(
LDAP_DEBUG_TRACE
,
"=>meta_back_bind: destroying conn %ld (refcnt=%u)
\n
"
,
LDAP_BACK_PCONN_ID
(
mc
->
mc_conn
),
mc
->
mc_refcnt
,
0
);
if
(
mc
->
mc_refcnt
!=
0
)
{
/* taint it */
LDAP_BACK_CONN_TAINTED_SET
(
tmpmc
);
}
else
{
/*
* Needs a test because the handler may be corrupted,
* and calling ldap_unbind on a corrupted header results
* in a segmentation fault
*/
meta_back_conn_free
(
tmpmc
);
}
}
}
ber_bvreplace
(
&
mc
->
mc_local_ndn
,
&
op
->
o_req_ndn
);
lerr
=
avl_insert
(
&
mi
->
mi_conninfo
.
lai_tree
,
(
caddr_t
)
mc
,
meta_back_conndn_cmp
,
meta_back_conndn_dup
);
...
...
servers/slapd/back-meta/config.c
View file @
1c16fa38
...
...
@@ -801,6 +801,38 @@ meta_back_db_config(
return
1
;
}
/* single-conn? */
}
else
if
(
strcasecmp
(
argv
[
0
],
"single-conn"
)
==
0
)
{
if
(
argc
!=
2
)
{
Debug
(
LDAP_DEBUG_ANY
,
"%s: line %d:
\"
single-conn {FALSE|true}
\"
takes 1 argument
\n
"
,
fname
,
lineno
,
0
);
return
(
1
);
}
if
(
mi
->
mi_ntargets
>
0
)
{
Debug
(
LDAP_DEBUG_ANY
,
"%s: line %d:
\"
single-conn
\"
must appear before target definitions
\n
"
,
fname
,
lineno
,
0
);
return
(
1
);
}
switch
(
check_true_false
(
argv
[
1
]
)
)
{
case
0
:
mi
->
mi_flags
&=
~
LDAP_BACK_F_SINGLECONN
;
break
;
case
1
:
mi
->
mi_flags
|=
LDAP_BACK_F_SINGLECONN
;
break
;
default:
Debug
(
LDAP_DEBUG_ANY
,
"%s: line %d:
\"
single-conn {FALSE|true}
\"
: invalid arg
\"
%s
\"
.
\n
"
,
fname
,
lineno
,
argv
[
1
]
);
return
1
;
}
}
else
if
(
strcasecmp
(
argv
[
0
],
"timeout"
)
==
0
)
{
char
*
sep
;
time_t
*
tv
=
mi
->
mi_ntargets
?
...
...
servers/slapd/back-meta/conn.c
View file @
1c16fa38
...
...
@@ -37,7 +37,9 @@
/*
* Set PRINT_CONNTREE larger than 0 to dump the connection tree (debug only)
*/
#ifndef PRINT_CONNTREE
#define PRINT_CONNTREE 0
#endif
/* !PRINT_CONNTREE */
/*
* meta_back_conndn_cmp
...
...
@@ -148,7 +150,7 @@ static void
ravl_print
(
Avlnode
*
root
,
int
depth
)
{
int
i
;
metaconn_t
*
mc
=
(
metaconn_t
*
)
root
->
avl_data
;
metaconn_t
*
mc
;
if
(
root
==
0
)
{
return
;
...
...
@@ -157,30 +159,32 @@ ravl_print( Avlnode *root, int depth )
ravl_print
(
root
->
avl_right
,
depth
+
1
);
for
(
i
=
0
;
i
<
depth
;
i
++
)
{
printf
(
"
"
);
f
printf
(
stderr
,
"-
"
);
}
printf
(
"c(%d%s%s) %d
\n
"
,
LDAP_BACK_PCONN_ID
(
mc
->
mc_conn
),
BER_BVISNULL
(
&
mc
->
mc_local_ndn
)
?
""
:
": "
,
BER_BVISNULL
(
&
mc
->
mc_local_ndn
)
?
""
:
mc
->
mc_local_ndn
.
bv_val
,
root
->
avl_bf
);
mc
=
(
metaconn_t
*
)
root
->
avl_data
;
fprintf
(
stderr
,
"mc=%p local=
\"
%s
\"
conn=%p %s refcnt=%d
\n
"
,
(
void
*
)
mc
,
mc
->
mc_local_ndn
.
bv_val
?
mc
->
mc_local_ndn
.
bv_val
:
""
,
(
void
*
)
mc
->
mc_conn
,
avl_bf2str
(
root
->
avl_bf
),
mc
->
mc_refcnt
);
ravl_print
(
root
->
avl_left
,
depth
+
1
);
}
static
void
myprint
(
Avlnode
*
root
)
myprint
(
Avlnode
*
root
,
char
*
msg
)
{
printf
(
"********
\n
"
);
f
printf
(
stderr
,
"========> %s
\n
"
,
msg
);
if
(
root
==
0
)
{
printf
(
"
\t
NULL
\n
"
);
fprintf
(
stderr
,
"
\t
NULL
\n
"
);
}
else
{
ravl_print
(
root
,
0
);
}
printf
(
"********
\n
"
);
f
printf
(
stderr
,
"<======== %s
\n
"
,
msg
);
}
#endif
/* PRINT_CONNTREE */
/*
...
...
@@ -1244,7 +1248,7 @@ done:;
meta_back_conndn_cmp
,
meta_back_conndn_dup
);
#if PRINT_CONNTREE > 0
myprint
(
mi
->
mi_conninfo
.
lai_tree
);
myprint
(
mi
->
mi_conninfo
.
lai_tree
,
"meta_back_getconn"
);
#endif
/* PRINT_CONNTREE */
ldap_pvt_thread_mutex_unlock
(
&
mi
->
mi_conninfo
.
lai_mutex
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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