aboutsummaryrefslogtreecommitdiff
path: root/libssh
diff options
context:
space:
mode:
authorAndreas Schneider <mail@cynapses.org>2009-04-16 14:15:41 +0000
committerAndreas Schneider <mail@cynapses.org>2009-04-16 14:15:41 +0000
commit74a06555f6d38b92ede5e038ebd0f52b41eac661 (patch)
treec5b96a1f91cdb9f935757bf3c2b2263c1279d4e4 /libssh
parent94021dcdb5bfb3d06104dafaad60c86176bd9631 (diff)
downloadlibssh-74a06555f6d38b92ede5e038ebd0f52b41eac661.tar.gz
libssh-74a06555f6d38b92ede5e038ebd0f52b41eac661.tar.xz
libssh-74a06555f6d38b92ede5e038ebd0f52b41eac661.zip
Add a return value to ssh_socket_init().
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@494 7dcaeef0-15fb-0310-b436-a5af3365683c
Diffstat (limited to 'libssh')
-rw-r--r--libssh/client.c5
-rw-r--r--libssh/server.c4
-rw-r--r--libssh/socket.c8
3 files changed, 12 insertions, 5 deletions
diff --git a/libssh/client.c b/libssh/client.c
index 15e67da9..cfcaf96c 100644
--- a/libssh/client.c
+++ b/libssh/client.c
@@ -453,7 +453,10 @@ int ssh_connect(SSH_SESSION *session) {
leave_function();
return SSH_ERROR;
}
- ssh_socket_init();
+ if (ssh_socket_init() < 0) {
+ leave_function();
+ return SSH_ERROR;
+ }
if (options->fd == -1 && options->host == NULL) {
ssh_set_error(session, SSH_FATAL, "Hostname required");
diff --git a/libssh/server.c b/libssh/server.c
index 358b13e7..a3ead63b 100644
--- a/libssh/server.c
+++ b/libssh/server.c
@@ -105,7 +105,9 @@ int ssh_bind_listen(SSH_BIND *ssh_bind){
int fd;
if(!ssh_bind->options)
return -1;
- ssh_socket_init();
+ if (ssh_socket_init() < 0) {
+ return -1;
+ }
host=ssh_bind->options->bindaddr;
if(!host)
host="0.0.0.0";
diff --git a/libssh/socket.c b/libssh/socket.c
index d8da5771..db931454 100644
--- a/libssh/socket.c
+++ b/libssh/socket.c
@@ -75,14 +75,16 @@ struct socket {
* \internal
* \brief inits the socket system (windows specific)
*/
-void ssh_socket_init(void) {
+int ssh_socket_init(void) {
#ifdef _WIN32
struct WSAData wsaData;
- if (WSAStartup(MAKEWORD(2, 0), &wsaData)) {
- /* FIXME print error */
+ /* Initiates use of the Winsock DLL by a process. */
+ if (WSAStartup(MAKEWORD(2, 0), &wsaData) != 0) {
+ return -1;
}
#endif
+ return 0;
}
/*
* \internal