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
Joe Martin
OpenLDAP
Commits
c9d13b42
Commit
c9d13b42
authored
Nov 07, 2006
by
Howard Chu
Browse files
ITS#4606 fix from HEAD - use sock_err* macros instead of errno
parent
6e00bbec
Changes
8
Hide whitespace changes
Inline
Side-by-side
include/ac/socket.h
View file @
c9d13b42
...
...
@@ -80,6 +80,7 @@
#undef sock_errstr
#define sock_errno() errno
#define sock_errstr(e) STRERROR(e)
#define sock_errset(e) errno = (e)
#ifdef HAVE_WINSOCK
# define tcp_read( s, buf, len ) recv( s, buf, len, 0 )
...
...
@@ -100,8 +101,10 @@
#undef sock_errno
#undef sock_errstr
#undef sock_errset
#define sock_errno() WSAGetLastError()
#define sock_errstr(e) ber_pvt_wsa_err2string(e)
#define sock_errset(e) WSASetLastError(e)
LBER_F
(
char
*
)
ber_pvt_wsa_err2string
LDAP_P
((
int
));
...
...
libraries/liblber/io.c
View file @
c9d13b42
...
...
@@ -500,7 +500,7 @@ ber_get_next(
char
buf
[
sizeof
(
ber
->
ber_len
)
-
1
];
ber_len_t
tlen
=
0
;
errno
=
0
;
sock_errset
(
0
)
;
sblen
=
ber_int_sb_read
(
sb
,
ber
->
ber_rwptr
,
((
char
*
)
&
ber
->
ber_len
+
LENSIZE
*
2
-
1
)
-
ber
->
ber_rwptr
);
if
(
sblen
<=
0
)
return
LBER_DEFAULT
;
...
...
@@ -520,16 +520,16 @@ ber_get_next(
break
;
/* Is the tag too big? */
if
(
i
==
sizeof
(
ber_tag_t
)
-
1
)
{
errno
=
ERANGE
;
sock_errset
(
ERANGE
)
;
return
LBER_DEFAULT
;
}
}
/* Did we run out of bytes? */
if
((
char
*
)
p
==
ber
->
ber_rwptr
)
{
#if defined( EWOULDBLOCK )
errno
=
EWOULDBLOCK
;
sock_errset
(
EWOULDBLOCK
)
;
#elif defined( EAGAIN )
errno
=
EAGAIN
;
sock_errset
(
EAGAIN
)
;
#endif
return
LBER_DEFAULT
;
}
...
...
@@ -540,9 +540,9 @@ ber_get_next(
if
(
ber
->
ber_ptr
==
ber
->
ber_rwptr
)
{
#if defined( EWOULDBLOCK )
errno
=
EWOULDBLOCK
;
sock_errset
(
EWOULDBLOCK
)
;
#elif defined( EAGAIN )
errno
=
EAGAIN
;
sock_errset
(
EAGAIN
)
;
#endif
return
LBER_DEFAULT
;
}
...
...
@@ -553,15 +553,15 @@ ber_get_next(
unsigned
char
*
p
=
(
unsigned
char
*
)
ber
->
ber_ptr
;
int
llen
=
*
p
++
&
0x7f
;
if
(
llen
>
(
int
)
sizeof
(
ber_len_t
))
{
errno
=
ERANGE
;
sock_errset
(
ERANGE
)
;
return
LBER_DEFAULT
;
}
/* Not enough bytes? */
if
(
ber
->
ber_rwptr
-
(
char
*
)
p
<
llen
)
{
#if defined( EWOULDBLOCK )
errno
=
EWOULDBLOCK
;
sock_errset
(
EWOULDBLOCK
)
;
#elif defined( EAGAIN )
errno
=
EAGAIN
;
sock_errset
(
EAGAIN
)
;
#endif
return
LBER_DEFAULT
;
}
...
...
@@ -592,7 +592,7 @@ ber_get_next(
/* make sure length is reasonable */
if
(
ber
->
ber_len
==
0
)
{
errno
=
ERANGE
;
sock_errset
(
ERANGE
)
;
return
LBER_DEFAULT
;
}
...
...
@@ -600,7 +600,7 @@ ber_get_next(
ber_log_printf
(
LDAP_DEBUG_CONNS
,
ber
->
ber_debug
,
"ber_get_next: sockbuf_max_incoming exceeded "
"(%ld > %ld)
\n
"
,
ber
->
ber_len
,
sb
->
sb_max_incoming
);
errno
=
ERANGE
;
sock_errset
(
ERANGE
)
;
return
LBER_DEFAULT
;
}
...
...
@@ -611,7 +611,7 @@ ber_get_next(
* already read.
*/
if
(
ber
->
ber_len
<
sblen
+
l
)
{
errno
=
ERANGE
;
sock_errset
(
ERANGE
)
;
return
LBER_DEFAULT
;
}
ber
->
ber_buf
=
(
char
*
)
ber_memalloc_x
(
ber
->
ber_len
+
1
,
ber
->
ber_memctx
);
...
...
@@ -643,16 +643,16 @@ ber_get_next(
to_go
=
ber
->
ber_end
-
ber
->
ber_rwptr
;
assert
(
to_go
>
0
);
errno
=
0
;
sock_errset
(
0
)
;
res
=
ber_int_sb_read
(
sb
,
ber
->
ber_rwptr
,
to_go
);
if
(
res
<=
0
)
return
LBER_DEFAULT
;
ber
->
ber_rwptr
+=
res
;
if
(
res
<
to_go
)
{
#if defined( EWOULDBLOCK )
errno
=
EWOULDBLOCK
;
sock_errset
(
EWOULDBLOCK
)
;
#elif defined( EAGAIN )
errno
=
EAGAIN
;
sock_errset
(
EAGAIN
)
;
#endif
return
LBER_DEFAULT
;
}
...
...
libraries/liblber/sockbuf.c
View file @
c9d13b42
...
...
@@ -467,22 +467,7 @@ sb_stream_read( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len )
/*
* 32-bit Windows Socket API (under Windows NT or Windows 95)
*/
{
int
rc
;
rc
=
recv
(
sbiod
->
sbiod_sb
->
sb_fd
,
buf
,
len
,
0
);
#ifdef HAVE_WINSOCK
if
(
rc
<
0
)
{
int
err
;
err
=
WSAGetLastError
();
errno
=
err
;
}
#endif
return
rc
;
}
return
recv
(
sbiod
->
sbiod_sb
->
sb_fd
,
buf
,
len
,
0
);
#elif defined( HAVE_NCSA )
/*
...
...
@@ -520,18 +505,7 @@ sb_stream_write( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len )
/*
* 32-bit Windows Socket API (under Windows NT or Windows 95)
*/
{
int
rc
=
send
(
sbiod
->
sbiod_sb
->
sb_fd
,
buf
,
len
,
0
);
#ifdef HAVE_WINSOCK
if
(
rc
<
0
)
{
int
err
;
err
=
WSAGetLastError
();
errno
=
err
;
}
#endif
return
rc
;
}
return
send
(
sbiod
->
sbiod_sb
->
sb_fd
,
buf
,
len
,
0
);
#elif defined(HAVE_NCSA)
return
netwrite
(
sbiod
->
sbiod_sb
->
sb_fd
,
buf
,
len
);
...
...
@@ -820,11 +794,11 @@ sb_debug_read( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len )
ret
=
LBER_SBIOD_READ_NEXT
(
sbiod
,
buf
,
len
);
if
(
sbiod
->
sbiod_sb
->
sb_debug
&
LDAP_DEBUG_PACKETS
)
{
int
err
=
errno
;
int
err
=
sock_
errno
()
;
if
(
ret
<
0
)
{
ber_log_printf
(
LDAP_DEBUG_PACKETS
,
sbiod
->
sbiod_sb
->
sb_debug
,
"%sread: want=%ld error=%s
\n
"
,
(
char
*
)
sbiod
->
sbiod_pvt
,
(
long
)
len
,
AC_STRERROR_R
(
err
no
,
ebuf
,
sizeof
ebuf
)
);
(
long
)
len
,
AC_STRERROR_R
(
err
,
ebuf
,
sizeof
ebuf
)
);
}
else
{
ber_log_printf
(
LDAP_DEBUG_PACKETS
,
sbiod
->
sbiod_sb
->
sb_debug
,
"%sread: want=%ld, got=%ld
\n
"
,
(
char
*
)
sbiod
->
sbiod_pvt
,
...
...
@@ -832,7 +806,7 @@ sb_debug_read( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len )
ber_log_bprint
(
LDAP_DEBUG_PACKETS
,
sbiod
->
sbiod_sb
->
sb_debug
,
(
const
char
*
)
buf
,
ret
);
}
errno
=
err
;
sock_errset
(
err
)
;
}
return
ret
;
}
...
...
@@ -845,12 +819,12 @@ sb_debug_write( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len )
ret
=
LBER_SBIOD_WRITE_NEXT
(
sbiod
,
buf
,
len
);
if
(
sbiod
->
sbiod_sb
->
sb_debug
&
LDAP_DEBUG_PACKETS
)
{
int
err
=
errno
;
int
err
=
sock_
errno
()
;
if
(
ret
<
0
)
{
ber_log_printf
(
LDAP_DEBUG_PACKETS
,
sbiod
->
sbiod_sb
->
sb_debug
,
"%swrite: want=%ld error=%s
\n
"
,
(
char
*
)
sbiod
->
sbiod_pvt
,
(
long
)
len
,
AC_STRERROR_R
(
err
no
,
ebuf
,
sizeof
ebuf
)
);
AC_STRERROR_R
(
err
,
ebuf
,
sizeof
ebuf
)
);
}
else
{
ber_log_printf
(
LDAP_DEBUG_PACKETS
,
sbiod
->
sbiod_sb
->
sb_debug
,
"%swrite: want=%ld, written=%ld
\n
"
,
...
...
@@ -858,7 +832,7 @@ sb_debug_write( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len )
ber_log_bprint
(
LDAP_DEBUG_PACKETS
,
sbiod
->
sbiod_sb
->
sb_debug
,
(
const
char
*
)
buf
,
ret
);
}
errno
=
err
;
sock_errset
(
err
)
;
}
return
ret
;
...
...
libraries/libldap/cyrus.c
View file @
c9d13b42
...
...
@@ -161,7 +161,7 @@ sb_sasl_setup( Sockbuf_IO_Desc *sbiod, void *arg )
ber_pvt_sb_buf_init
(
&
p
->
buf_out
);
if
(
ber_pvt_sb_grow_buffer
(
&
p
->
sec_buf_in
,
SASL_MIN_BUFF_SIZE
)
<
0
)
{
LBER_FREE
(
p
);
errno
=
ENOMEM
;
sock_errset
(
ENOMEM
)
;
return
-
1
;
}
sasl_getprop
(
p
->
sasl_context
,
SASL_MAXOUTBUF
,
...
...
@@ -288,7 +288,7 @@ sb_sasl_read( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len)
if
(
(
p
->
sec_buf_in
.
buf_size
<
(
ber_len_t
)
ret
)
&&
ber_pvt_sb_grow_buffer
(
&
p
->
sec_buf_in
,
ret
)
<
0
)
{
errno
=
ENOMEM
;
sock_errset
(
ENOMEM
)
;
return
-
1
;
}
p
->
sec_buf_in
.
buf_end
=
ret
;
...
...
@@ -327,7 +327,7 @@ sb_sasl_read( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len)
ber_log_printf
(
LDAP_DEBUG_ANY
,
sbiod
->
sbiod_sb
->
sb_debug
,
"sb_sasl_read: failed to decode packet: %s
\n
"
,
sasl_errstring
(
ret
,
NULL
,
NULL
)
);
errno
=
EIO
;
sock_errset
(
EIO
)
;
return
-
1
;
}
...
...
@@ -356,7 +356,7 @@ sb_sasl_write( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len)
/* Still have something left?? */
if
(
p
->
buf_out
.
buf_ptr
!=
p
->
buf_out
.
buf_end
)
{
errno
=
EAGAIN
;
sock_errset
(
EAGAIN
)
;
return
-
1
;
}
}
...
...
@@ -383,7 +383,7 @@ sb_sasl_write( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len)
ber_log_printf
(
LDAP_DEBUG_ANY
,
sbiod
->
sbiod_sb
->
sb_debug
,
"sb_sasl_write: failed to encode packet: %s
\n
"
,
sasl_errstring
(
ret
,
NULL
,
NULL
)
);
errno
=
EIO
;
sock_errset
(
EIO
)
;
return
-
1
;
}
p
->
buf_out
.
buf_end
=
p
->
buf_out
.
buf_size
;
...
...
libraries/libldap/os-ip.c
View file @
c9d13b42
...
...
@@ -63,7 +63,7 @@ do { \
static
void
ldap_pvt_set_errno
(
int
err
)
{
errno
=
err
;
sock_errset
(
err
)
;
}
int
...
...
@@ -219,7 +219,7 @@ ldap_pvt_connect(LDAP *ld, ber_socket_t s,
struct
sockaddr
*
sin
,
socklen_t
addrlen
,
int
async
)
{
int
rc
;
int
rc
,
err
;
struct
timeval
tv
=
{
0
},
*
opt_tv
=
NULL
;
...
...
@@ -252,11 +252,8 @@ ldap_pvt_connect(LDAP *ld, ber_socket_t s,
return
(
0
);
}
#ifdef HAVE_WINSOCK
ldap_pvt_set_errno
(
WSAGetLastError
()
);
#endif
if
(
errno
!=
EINPROGRESS
&&
errno
!=
EWOULDBLOCK
)
{
err
=
sock_errno
();
if
(
err
!=
EINPROGRESS
&&
err
!=
EWOULDBLOCK
)
{
return
(
-
1
);
}
...
...
libraries/libldap/request.c
View file @
c9d13b42
...
...
@@ -149,7 +149,7 @@ ldap_int_flush_request(
LDAPConn
*
lc
=
lr
->
lr_conn
;
if
(
ber_flush
(
lc
->
lconn_sb
,
lr
->
lr_ber
,
0
)
!=
0
)
{
if
(
errno
==
EAGAIN
)
{
if
(
sock_
errno
()
==
EAGAIN
)
{
/* need to continue write later */
lr
->
lr_status
=
LDAP_REQST_WRITING
;
ldap_mark_select_write
(
ld
,
lc
->
lconn_sb
);
...
...
libraries/libldap/result.c
View file @
c9d13b42
...
...
@@ -301,13 +301,13 @@ wait4msg(
if
(
rc
==
-
1
)
{
Debug
(
LDAP_DEBUG_TRACE
,
"ldap_int_select returned -1: errno %d
\n
"
,
errno
,
0
,
0
);
sock_
errno
()
,
0
,
0
);
}
#endif
if
(
rc
==
0
||
(
rc
==
-
1
&&
(
!
LDAP_BOOL_GET
(
&
ld
->
ld_options
,
LDAP_BOOL_RESTART
)
||
errno
!=
EINTR
)))
||
sock_
errno
()
!=
EINTR
)))
{
ld
->
ld_errno
=
(
rc
==
-
1
?
LDAP_SERVER_DOWN
:
LDAP_TIMEOUT
);
...
...
@@ -445,7 +445,7 @@ retry:
assert
(
LBER_VALID
(
ber
)
);
/* get the next message */
errno
=
0
;
sock_errset
(
0
)
;
#ifdef LDAP_CONNECTIONLESS
if
(
LDAP_IS_UDP
(
ld
)
)
{
struct
sockaddr
from
;
...
...
@@ -469,10 +469,10 @@ nextresp3:
"ber_get_next failed.
\n
"
,
0
,
0
,
0
);
#endif
#ifdef EWOULDBLOCK
if
(
errno
==
EWOULDBLOCK
)
return
LDAP_MSG_X_KEEP_LOOKING
;
if
(
sock_
errno
()
==
EWOULDBLOCK
)
return
LDAP_MSG_X_KEEP_LOOKING
;
#endif
#ifdef EAGAIN
if
(
errno
==
EAGAIN
)
return
LDAP_MSG_X_KEEP_LOOKING
;
if
(
sock_
errno
()
==
EAGAIN
)
return
LDAP_MSG_X_KEEP_LOOKING
;
#endif
ld
->
ld_errno
=
LDAP_SERVER_DOWN
;
return
-
1
;
...
...
libraries/libldap/tls.c
View file @
c9d13b42
...
...
@@ -590,7 +590,7 @@ sb_tls_read( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len)
err
=
SSL_get_error
(
p
->
ssl
,
ret
);
if
(
err
==
SSL_ERROR_WANT_READ
)
{
sbiod
->
sbiod_sb
->
sb_trans_needs_read
=
1
;
errno
=
EWOULDBLOCK
;
sock_errset
(
EWOULDBLOCK
)
;
}
else
sbiod
->
sbiod_sb
->
sb_trans_needs_read
=
0
;
...
...
@@ -616,7 +616,7 @@ sb_tls_write( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len)
err
=
SSL_get_error
(
p
->
ssl
,
ret
);
if
(
err
==
SSL_ERROR_WANT_WRITE
)
{
sbiod
->
sbiod_sb
->
sb_trans_needs_write
=
1
;
errno
=
EWOULDBLOCK
;
sock_errset
(
EWOULDBLOCK
)
;
}
else
{
sbiod
->
sbiod_sb
->
sb_trans_needs_write
=
0
;
...
...
@@ -672,7 +672,7 @@ sb_tls_bio_read( BIO *b, char *buf, int len )
BIO_clear_retry_flags
(
b
);
if
(
ret
<
0
)
{
int
err
=
errno
;
int
err
=
sock_
errno
()
;
if
(
err
==
EAGAIN
||
err
==
EWOULDBLOCK
)
{
BIO_set_retry_read
(
b
);
}
...
...
@@ -699,7 +699,7 @@ sb_tls_bio_write( BIO *b, const char *buf, int len )
BIO_clear_retry_flags
(
b
);
if
(
ret
<
0
)
{
int
err
=
errno
;
int
err
=
sock_
errno
()
;
if
(
err
==
EAGAIN
||
err
==
EWOULDBLOCK
)
{
BIO_set_retry_write
(
b
);
}
...
...
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