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
ingo Voss
OpenLDAP
Commits
aa9e2415
Commit
aa9e2415
authored
May 14, 2009
by
Howard Chu
Browse files
ITS#6111 connection_state_closing() -> connection_valid()
parent
29be892c
Changes
3
Hide whitespace changes
Inline
Side-by-side
servers/slapd/connection.c
View file @
aa9e2415
...
...
@@ -53,18 +53,22 @@ static unsigned long conn_nextid = 0;
static
const
char
conn_lost_str
[]
=
"connection lost"
;
/* structure state (protected by connections_mutex) */
#define SLAP_C_UNINITIALIZED 0x00
/* MUST BE ZERO (0) */
#define SLAP_C_UNUSED 0x01
#define SLAP_C_USED 0x02
#define SLAP_C_PENDING 0x03
enum
sc_struct_state
{
SLAP_C_UNINITIALIZED
=
0
,
/* MUST BE ZERO (0) */
SLAP_C_UNUSED
,
SLAP_C_USED
,
SLAP_C_PENDING
};
/* connection state (protected by c_mutex ) */
#define SLAP_C_INVALID 0x00
/* MUST BE ZERO (0) */
#define SLAP_C_INACTIVE 0x01
/* zero threads */
#define SLAP_C_ACTIVE 0x02
/* one or more threads */
#define SLAP_C_BINDING 0x03
/* binding */
#define SLAP_C_CLOSING 0x04
/* closing */
#define SLAP_C_CLIENT 0x05
/* outbound client conn */
enum
sc_conn_state
{
SLAP_C_INVALID
=
0
,
/* MUST BE ZERO (0) */
SLAP_C_INACTIVE
,
/* zero threads */
SLAP_C_CLOSING
,
/* closing */
SLAP_C_ACTIVE
,
/* one or more threads */
SLAP_C_BINDING
,
/* binding */
SLAP_C_CLIENT
/* outbound client conn */
};
const
char
*
connection_state2str
(
int
state
)
...
...
@@ -72,9 +76,9 @@ connection_state2str( int state )
switch
(
state
)
{
case
SLAP_C_INVALID
:
return
"!"
;
case
SLAP_C_INACTIVE
:
return
"|"
;
case
SLAP_C_CLOSING
:
return
"C"
;
case
SLAP_C_ACTIVE
:
return
""
;
case
SLAP_C_BINDING
:
return
"B"
;
case
SLAP_C_CLOSING
:
return
"C"
;
case
SLAP_C_CLIENT
:
return
"L"
;
}
...
...
@@ -695,19 +699,15 @@ connection_destroy( Connection *c )
}
}
int
connection_
state_closing
(
Connection
*
c
)
int
connection_
valid
(
Connection
*
c
)
{
/* c_mutex must be locked by caller */
int
state
;
assert
(
c
!=
NULL
);
assert
(
c
->
c_struct_state
==
SLAP_C_USED
);
state
=
c
->
c_conn_state
;
assert
(
state
!=
SLAP_C_INVALID
);
return
state
==
SLAP_C_CLOSING
;
return
c
->
c_struct_state
==
SLAP_C_USED
&&
c
->
c_conn_state
>=
SLAP_C_ACTIVE
&&
c
->
c_conn_state
<=
SLAP_C_CLIENT
;
}
static
void
connection_abandon
(
Connection
*
c
)
...
...
servers/slapd/proto-slap.h
View file @
aa9e2415
...
...
@@ -759,7 +759,7 @@ LDAP_SLAPD_F (Connection *) connection_init LDAP_P((
LDAP_SLAPD_F
(
void
)
connection_closing
LDAP_P
((
Connection
*
c
,
const
char
*
why
));
LDAP_SLAPD_F
(
void
)
connection_hangup
LDAP_P
((
ber_socket_t
fd
));
LDAP_SLAPD_F
(
int
)
connection_
state_closing
LDAP_P
((
Connection
*
c
));
LDAP_SLAPD_F
(
int
)
connection_
valid
LDAP_P
((
Connection
*
c
));
LDAP_SLAPD_F
(
const
char
*
)
connection_state2str
LDAP_P
((
int
state
))
LDAP_GCCATTR
((
const
));
...
...
servers/slapd/result.c
View file @
aa9e2415
...
...
@@ -145,7 +145,7 @@ static long send_ldap_ber(
/* write only one pdu at a time - wait til it's our turn */
ldap_pvt_thread_mutex_lock
(
&
conn
->
c_write1_mutex
);
if
((
op
->
o_abandon
&&
!
op
->
o_cancel
)
||
connection_
state_closing
(
conn
))
{
if
((
op
->
o_abandon
&&
!
op
->
o_cancel
)
||
!
connection_
valid
(
conn
))
{
ldap_pvt_thread_mutex_unlock
(
&
conn
->
c_write1_mutex
);
return
0
;
}
...
...
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