commit d867cfe2aa2bd6dbc1b9a5446f24c999fc1d2687
Author: Oswald Buddenhagen <o...@kde.org>
Date:   Sun Mar 13 13:40:39 2011 +0100

    change socket_write() return code semantics
    
    instead of returning a write()-like result, return only a binary status
    code - write errors are handled internally anyway, so user code doesn't
    have to check the write length.

 src/drv_imap.c |   10 +++++-----
 src/socket.c   |    3 ++-
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/drv_imap.c b/src/drv_imap.c
index 779b5ec..8ec653f 100644
--- a/src/drv_imap.c
+++ b/src/drv_imap.c
@@ -244,11 +244,11 @@ v_submit_imap_cmd( imap_store_t *ctx, struct imap_cmd 
*cmd,
                else
                        printf( ">>> %d LOGIN <user> <pass>\n", cmd->tag );
        }
-       if (socket_write( &ctx->conn, buf, bufl ) != bufl)
+       if (socket_write( &ctx->conn, buf, bufl ) < 0)
                goto bail;
        if (litplus) {
-               if (socket_write( &ctx->conn, cmd->param.data, 
cmd->param.data_len ) != cmd->param.data_len ||
-                   socket_write( &ctx->conn, "\r\n", 2 ) != 2)
+               if (socket_write( &ctx->conn, cmd->param.data, 
cmd->param.data_len ) < 0 ||
+                   socket_write( &ctx->conn, "\r\n", 2 ) < 0)
                        goto bail;
                free( cmd->param.data );
                cmd->param.data = 0;
@@ -842,7 +842,7 @@ get_cmd_result( imap_store_t *ctx, struct imap_cmd *tcmd )
                                n = socket_write( &ctx->conn, cmdp->param.data, 
cmdp->param.data_len );
                                free( cmdp->param.data );
                                cmdp->param.data = 0;
-                               if (n != (int)cmdp->param.data_len)
+                               if (n < 0)
                                        break;
                        } else if (cmdp->param.cont) {
                                if (cmdp->param.cont( ctx, cmdp, cmd ))
@@ -851,7 +851,7 @@ get_cmd_result( imap_store_t *ctx, struct imap_cmd *tcmd )
                                error( "IMAP error: unexpected command 
continuation request\n" );
                                break;
                        }
-                       if (socket_write( &ctx->conn, "\r\n", 2 ) != 2)
+                       if (socket_write( &ctx->conn, "\r\n", 2 ) < 0)
                                break;
                        if (!cmdp->param.cont)
                                ctx->literal_pending = 0;
diff --git a/src/socket.c b/src/socket.c
index 9db3081..cc080b4 100644
--- a/src/socket.c
+++ b/src/socket.c
@@ -387,8 +387,9 @@ socket_write( conn_t *sock, char *buf, int len )
                socket_perror( "write", sock, n );
                close( sock->fd );
                sock->fd = -1;
+               return -1;
        }
-       return n;
+       return 0;
 }
 
 int

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel

Reply via email to