isync

mailbox synchronization program
git clone https://git.code.sf.net/p/isync/isync
Log | Files | Refs | README | LICENSE

commit 8a72d204c95b52690891511cc340e42d367d6cc2
parent a85013d6ff205871d89dac6483ed96da4957b5f0
Author: Oswald Buddenhagen <ossi@users.sf.net>
Date:   Sun, 13 Mar 2011 13:40:39 +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.

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

diff --git 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 @@ -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