From f2788c9866371fc2ff325f90504ce2be49fb16a9 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Tue, 14 Apr 2009 14:02:37 +0000 Subject: Reformat ssh_socket_completewrite() and use const for buffer. git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@465 7dcaeef0-15fb-0310-b436-a5af3365683c --- include/libssh/priv.h | 2 +- libssh/socket.c | 38 ++++++++++++++++++++------------------ 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/include/libssh/priv.h b/include/libssh/priv.h index 67e9bef4..50b82f63 100644 --- a/include/libssh/priv.h +++ b/include/libssh/priv.h @@ -489,7 +489,7 @@ int ssh_socket_is_open(struct socket *s); int ssh_socket_fd_isset(struct socket *s, fd_set *set); void ssh_socket_fd_set(struct socket *s, fd_set *set, int *fd_max); int ssh_socket_completeread(struct socket *s, void *buffer, u32 len); -int ssh_socket_completewrite(struct socket *s, void *buffer, u32 len); +int ssh_socket_completewrite(struct socket *s, const void *buffer, u32 len); int ssh_socket_wait_for_data(struct socket *s, SSH_SESSION *session, u32 len); int ssh_socket_nonblocking_flush(struct socket *s); int ssh_socket_blocking_flush(struct socket *s); diff --git a/libssh/socket.c b/libssh/socket.c index ff5ef6d8..d791714e 100644 --- a/libssh/socket.c +++ b/libssh/socket.c @@ -301,27 +301,29 @@ int ssh_socket_completeread(struct socket *s, void *buffer, u32 len) { /** \internal * \brief Blocking write of len bytes */ +int ssh_socket_completewrite(struct socket *s, const void *buffer, u32 len) { + SSH_SESSION *session = s->session; + int written = -1; -int ssh_socket_completewrite(struct socket *s, void *buffer, u32 len){ - SSH_SESSION *session=s->session; - int written; + enter_function(); - enter_function(); - if(!ssh_socket_is_open(s)){ - leave_function(); - return SSH_ERROR; - } - while(len >0) { - written=ssh_socket_unbuffered_write(s,buffer,len); - if(written==0 || written==-1){ - leave_function(); - return SSH_ERROR; - } - len-=written; - buffer+=written; - } + if(! ssh_socket_is_open(s)) { leave_function(); - return SSH_OK; + return SSH_ERROR; + } + + while (len >0) { + written = ssh_socket_unbuffered_write(s, buffer, len); + if (written == 0 || written == -1) { + leave_function(); + return SSH_ERROR; + } + len -= written; + buffer += written; + } + + leave_function(); + return SSH_OK; } /** \internal -- cgit