mirror of
https://git.libssh.org/projects/libssh.git
synced 2026-02-11 02:38:09 +09:00
Reformat socket functions.
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@464 7dcaeef0-15fb-0310-b436-a5af3365683c
This commit is contained in:
@@ -199,19 +199,25 @@ int ssh_socket_is_open(struct socket *s) {
|
|||||||
* \brief read len bytes from socket into buffer
|
* \brief read len bytes from socket into buffer
|
||||||
*/
|
*/
|
||||||
static int ssh_socket_unbuffered_read(struct socket *s, void *buffer, u32 len) {
|
static int ssh_socket_unbuffered_read(struct socket *s, void *buffer, u32 len) {
|
||||||
int r;
|
int rc = -1;
|
||||||
if(s->data_except)
|
|
||||||
|
if (s->data_except) {
|
||||||
return -1;
|
return -1;
|
||||||
r=recv(s->fd,buffer,len,0);
|
}
|
||||||
#ifndef _WIN32
|
|
||||||
s->last_errno=errno;
|
rc = recv(s->fd,buffer, len, 0);
|
||||||
#else
|
#ifdef _WIN32
|
||||||
s->last_errno = WSAGetLastError();
|
s->last_errno = WSAGetLastError();
|
||||||
|
#else
|
||||||
|
s->last_errno = errno;
|
||||||
#endif
|
#endif
|
||||||
s->data_to_read = 0;
|
s->data_to_read = 0;
|
||||||
if(r<0)
|
|
||||||
|
if (rc < 0) {
|
||||||
s->data_except = 1;
|
s->data_except = 1;
|
||||||
return r;
|
}
|
||||||
|
|
||||||
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* \internal
|
/* \internal
|
||||||
@@ -219,18 +225,24 @@ static int ssh_socket_unbuffered_read(struct socket *s, void *buffer, u32 len) {
|
|||||||
*/
|
*/
|
||||||
static int ssh_socket_unbuffered_write(struct socket *s, const void *buffer,
|
static int ssh_socket_unbuffered_write(struct socket *s, const void *buffer,
|
||||||
u32 len) {
|
u32 len) {
|
||||||
int w;
|
int w = -1;
|
||||||
if(s->data_except)
|
|
||||||
|
if (s->data_except) {
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
w = send(s->fd,buffer, len, 0);
|
w = send(s->fd,buffer, len, 0);
|
||||||
#ifndef _WIN32
|
#ifdef _WIN32
|
||||||
s->last_errno=errno;
|
|
||||||
#else
|
|
||||||
s->last_errno = WSAGetLastError();
|
s->last_errno = WSAGetLastError();
|
||||||
|
#else
|
||||||
|
s->last_errno = errno;
|
||||||
#endif
|
#endif
|
||||||
s->data_to_write = 0;
|
s->data_to_write = 0;
|
||||||
if(w<0)
|
|
||||||
|
if (w < 0) {
|
||||||
s->data_except = 1;
|
s->data_except = 1;
|
||||||
|
}
|
||||||
|
|
||||||
return w;
|
return w;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -238,8 +250,9 @@ static int ssh_socket_unbuffered_write(struct socket *s,const void *buffer,
|
|||||||
* \brief returns nonzero if the current socket is in the fd_set
|
* \brief returns nonzero if the current socket is in the fd_set
|
||||||
*/
|
*/
|
||||||
int ssh_socket_fd_isset(struct socket *s, fd_set *set) {
|
int ssh_socket_fd_isset(struct socket *s, fd_set *set) {
|
||||||
if(s->fd==-1)
|
if(s->fd == -1) {
|
||||||
return 0;
|
return 0;
|
||||||
|
}
|
||||||
return FD_ISSET(s->fd,set);
|
return FD_ISSET(s->fd,set);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -260,22 +273,29 @@ void ssh_socket_fd_set(struct socket *s, fd_set *set, int *fd_max){
|
|||||||
* \brief reads blocking until len bytes have been read
|
* \brief reads blocking until len bytes have been read
|
||||||
*/
|
*/
|
||||||
int ssh_socket_completeread(struct socket *s, void *buffer, u32 len) {
|
int ssh_socket_completeread(struct socket *s, void *buffer, u32 len) {
|
||||||
int r;
|
int r = -1;
|
||||||
u32 total = 0;
|
u32 total = 0;
|
||||||
u32 toread = len;
|
u32 toread = len;
|
||||||
if(!ssh_socket_is_open(s))
|
if(! ssh_socket_is_open(s)) {
|
||||||
return SSH_ERROR;
|
return SSH_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
while((r = ssh_socket_unbuffered_read(s, buffer + total, toread))) {
|
while((r = ssh_socket_unbuffered_read(s, buffer + total, toread))) {
|
||||||
if(r==-1)
|
if (r < 0) {
|
||||||
return SSH_ERROR;
|
return SSH_ERROR;
|
||||||
|
}
|
||||||
total += r;
|
total += r;
|
||||||
toread -= r;
|
toread -= r;
|
||||||
if(total==len)
|
if (total == len) {
|
||||||
return len;
|
return len;
|
||||||
if(r==0)
|
}
|
||||||
|
if (r == 0) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return total ; /* connection closed */
|
}
|
||||||
|
|
||||||
|
/* connection closed */
|
||||||
|
return total;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** \internal
|
/** \internal
|
||||||
|
|||||||
Reference in New Issue
Block a user