Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
dlib
Commits
c6eaca57
Commit
c6eaca57
authored
May 21, 2014
by
Davis King
Browse files
Changed code so that the proper error code is always returned even in the event
that closesocket() fails.
parent
7e09a085
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
9 deletions
+15
-9
dlib/sockets/sockets_kernel_1.cpp
dlib/sockets/sockets_kernel_1.cpp
+15
-9
No files found.
dlib/sockets/sockets_kernel_1.cpp
View file @
c6eaca57
...
@@ -205,7 +205,7 @@ namespace dlib
...
@@ -205,7 +205,7 @@ namespace dlib
hostent
*
address
;
hostent
*
address
;
unsigned
long
ipnum
=
inet_addr
(
ip
.
c_str
());
unsigned
long
ipnum
=
inet_addr
(
ip
.
c_str
());
// if inet_addr cou
d
ln't convert ip then return an error
// if inet_addr coul
d
n't convert ip then return an error
if
(
ipnum
==
INADDR_NONE
)
if
(
ipnum
==
INADDR_NONE
)
{
{
return
OTHER_ERROR
;
return
OTHER_ERROR
;
...
@@ -693,7 +693,7 @@ namespace dlib
...
@@ -693,7 +693,7 @@ namespace dlib
{
{
// if there is a specific ip to listen on
// if there is a specific ip to listen on
sa
.
sin_addr
.
S_un
.
S_addr
=
inet_addr
(
ip
.
c_str
());
sa
.
sin_addr
.
S_un
.
S_addr
=
inet_addr
(
ip
.
c_str
());
// if inet_addr coun
d
't convert the ip then return an error
// if inet_addr cou
ld
n't convert the ip then return an error
if
(
sa
.
sin_addr
.
S_un
.
S_addr
==
INADDR_NONE
)
if
(
sa
.
sin_addr
.
S_un
.
S_addr
==
INADDR_NONE
)
{
{
closesocket
(
sock
);
closesocket
(
sock
);
...
@@ -707,11 +707,13 @@ namespace dlib
...
@@ -707,11 +707,13 @@ namespace dlib
// bind the new socket to the requested port and ip
// bind the new socket to the requested port and ip
if
(
bind
(
sock
,
reinterpret_cast
<
sockaddr
*>
(
&
sa
),
sizeof
(
sockaddr_in
))
==
SOCKET_ERROR
)
if
(
bind
(
sock
,
reinterpret_cast
<
sockaddr
*>
(
&
sa
),
sizeof
(
sockaddr_in
))
==
SOCKET_ERROR
)
{
// if there was an error
{
const
int
err
=
WSAGetLastError
();
// if there was an error
closesocket
(
sock
);
closesocket
(
sock
);
// if the port is already bound then return PORTINUSE
// if the port is already bound then return PORTINUSE
if
(
WSAGetLastError
()
==
WSAEADDRINUSE
)
if
(
err
==
WSAEADDRINUSE
)
return
PORTINUSE
;
return
PORTINUSE
;
else
else
return
OTHER_ERROR
;
return
OTHER_ERROR
;
...
@@ -721,11 +723,12 @@ namespace dlib
...
@@ -721,11 +723,12 @@ namespace dlib
// tell the new socket to listen
// tell the new socket to listen
if
(
listen
(
sock
,
SOMAXCONN
)
==
SOCKET_ERROR
)
if
(
listen
(
sock
,
SOMAXCONN
)
==
SOCKET_ERROR
)
{
{
const
int
err
=
WSAGetLastError
();
// if there was an error return OTHER_ERROR
// if there was an error return OTHER_ERROR
closesocket
(
sock
);
closesocket
(
sock
);
// if the port is already bound then return PORTINUSE
// if the port is already bound then return PORTINUSE
if
(
WSAGetLastError
()
==
WSAEADDRINUSE
)
if
(
err
==
WSAEADDRINUSE
)
return
PORTINUSE
;
return
PORTINUSE
;
else
else
return
OTHER_ERROR
;
return
OTHER_ERROR
;
...
@@ -810,7 +813,7 @@ namespace dlib
...
@@ -810,7 +813,7 @@ namespace dlib
foreign_sa
.
sin_port
=
htons
(
foreign_port
);
foreign_sa
.
sin_port
=
htons
(
foreign_port
);
foreign_sa
.
sin_addr
.
S_un
.
S_addr
=
inet_addr
(
foreign_ip
.
c_str
());
foreign_sa
.
sin_addr
.
S_un
.
S_addr
=
inet_addr
(
foreign_ip
.
c_str
());
// if inet_addr coun
d
't convert the ip then return an error
// if inet_addr cou
ld
n't convert the ip then return an error
if
(
foreign_sa
.
sin_addr
.
S_un
.
S_addr
==
INADDR_NONE
)
if
(
foreign_sa
.
sin_addr
.
S_un
.
S_addr
==
INADDR_NONE
)
{
{
closesocket
(
sock
);
closesocket
(
sock
);
...
@@ -852,11 +855,13 @@ namespace dlib
...
@@ -852,11 +855,13 @@ namespace dlib
sizeof
(
sockaddr_in
)
sizeof
(
sockaddr_in
)
)
==
SOCKET_ERROR
)
==
SOCKET_ERROR
)
)
{
// if there was an error
{
const
int
err
=
WSAGetLastError
();
// if there was an error
closesocket
(
sock
);
closesocket
(
sock
);
// if the port is already bound then return PORTINUSE
// if the port is already bound then return PORTINUSE
if
(
WSAGetLastError
()
==
WSAEADDRINUSE
)
if
(
err
==
WSAEADDRINUSE
)
return
PORTINUSE
;
return
PORTINUSE
;
else
else
return
OTHER_ERROR
;
return
OTHER_ERROR
;
...
@@ -870,9 +875,10 @@ namespace dlib
...
@@ -870,9 +875,10 @@ namespace dlib
)
==
SOCKET_ERROR
)
==
SOCKET_ERROR
)
)
{
{
const
int
err
=
WSAGetLastError
();
closesocket
(
sock
);
closesocket
(
sock
);
// if the port is already bound then return PORTINUSE
// if the port is already bound then return PORTINUSE
if
(
WSAGetLastError
()
==
WSAEADDRINUSE
)
if
(
err
==
WSAEADDRINUSE
)
return
PORTINUSE
;
return
PORTINUSE
;
else
else
return
OTHER_ERROR
;
return
OTHER_ERROR
;
...
...
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