]> granicus.if.org Git - neomutt/commitdiff
Add mutt_socket_write_n to write binary data. Use this function in
authorTAKAHASHI Tamotsu <ttakah@lapis.plala.or.jp>
Fri, 26 May 2006 16:38:17 +0000 (16:38 +0000)
committerTAKAHASHI Tamotsu <ttakah@lapis.plala.or.jp>
Fri, 26 May 2006 16:38:17 +0000 (16:38 +0000)
imap_append_message. Closes: #2244.

imap/command.c
imap/message.c
mutt_socket.c
mutt_socket.h
pop_lib.c

index a6cf82f7009a64b9edb6c7954be9ef004c283127..ac540c39629bb342020854278dfd543f7ffe755e 100644 (file)
@@ -223,7 +223,7 @@ int imap_exec (IMAP_DATA* idata, const char* cmdstr, int flags)
   if (idata->cmdbuf->dptr == idata->cmdbuf->data)
     return IMAP_CMD_BAD;
   
-  rc = mutt_socket_write_d (idata->conn, idata->cmdbuf->data,
+  rc = mutt_socket_write_d (idata->conn, idata->cmdbuf->data, -1,
     flags & IMAP_CMD_PASS ? IMAP_LOG_PASS : IMAP_LOG_CMD);
   idata->cmdbuf->dptr = idata->cmdbuf->data;
 
index d89937617bb4110dcf0a9260445a560db7e3cdda..562140d711c5f0d14bf391b7a2ef62ff50fbd229 100644 (file)
@@ -1232,6 +1232,6 @@ static char* msg_parse_flags (IMAP_HEADER* h, char* s)
 static void flush_buffer(char *buf, size_t *len, CONNECTION *conn)
 {
   buf[*len] = '\0';
-  mutt_socket_write(conn, buf);
+  mutt_socket_write_n(conn, buf, *len);
   *len = 0;
 }
index ff64ee8b9f52d59340ded56e674c8981ed66c154..baca44571451eabcc96a1cd12fb6f9460d987c76 100644 (file)
@@ -100,10 +100,9 @@ int mutt_socket_read (CONNECTION* conn, char* buf, size_t len)
   return rc;
 }
 
-int mutt_socket_write_d (CONNECTION *conn, const char *buf, int dbg)
+int mutt_socket_write_d (CONNECTION *conn, const char *buf, int len, int dbg)
 {
   int rc;
-  int len;
 
   dprint (dbg, (debugfile,"> %s", buf));
 
@@ -113,7 +112,8 @@ int mutt_socket_write_d (CONNECTION *conn, const char *buf, int dbg)
     return -1;
   }
 
-  len = mutt_strlen (buf);
+  if (len < 0)
+    len = mutt_strlen (buf);
   if ((rc = conn->conn_write (conn, buf, len)) < 0)
   {
     dprint (1, (debugfile,
index 8ea4bbd48f30b4f75fcef97be5730bcc879f616c..bcc8bd58f5e473de6fab226edea2bf15e262acfa 100644 (file)
@@ -58,8 +58,9 @@ int mutt_socket_poll (CONNECTION* conn);
 int mutt_socket_readchar (CONNECTION *conn, char *c);
 #define mutt_socket_readln(A,B,C) mutt_socket_readln_d(A,B,C,M_SOCK_LOG_CMD)
 int mutt_socket_readln_d (char *buf, size_t buflen, CONNECTION *conn, int dbg);
-#define mutt_socket_write(A,B) mutt_socket_write_d(A,B,M_SOCK_LOG_CMD)
-int mutt_socket_write_d (CONNECTION *conn, const char *buf, int dbg);
+#define mutt_socket_write(A,B) mutt_socket_write_d(A,B,-1,M_SOCK_LOG_CMD)
+#define mutt_socket_write_n(A,B,C) mutt_socket_write_d(A,B,C,M_SOCK_LOG_CMD)
+int mutt_socket_write_d (CONNECTION *conn, const char *buf, int len, int dbg);
 
 /* stupid hack for imap_logout_all */
 CONNECTION* mutt_socket_head (void);
index c3f1e3c2cda9b5e7985b7c2bfba746248be413a8..fdd5256b730c82134135145d1067aed5475871e1 100644 (file)
--- a/pop_lib.c
+++ b/pop_lib.c
@@ -424,7 +424,7 @@ int pop_query_d (POP_DATA *pop_data, char *buf, size_t buflen, char *msg)
     }
 #endif
 
-  mutt_socket_write_d (pop_data->conn, buf, dbg);
+  mutt_socket_write_d (pop_data->conn, buf, -1, dbg);
 
   c = strpbrk (buf, " \r\n");
   *c = '\0';