unpack-trees: allow Porcelain to give different error messages
[gitweb.git] / imap-send.c
index 9025d9aa3ef37b1a1ce4ae5d4b447e3b0918cb7e..db6559725e6867131800b6682348ebbf896ddbf5 100644 (file)
@@ -472,7 +472,7 @@ v_issue_imap_cmd( imap_store_t *ctx, struct imap_cmd_cb *cb,
        if (socket_write( &imap->buf.sock, buf, bufl ) != bufl) {
                free( cmd->cmd );
                free( cmd );
-               if (cb && cb->data)
+               if (cb)
                        free( cb->data );
                return NULL;
        }
@@ -858,8 +858,7 @@ get_cmd_result( imap_store_t *ctx, struct imap_cmd *tcmd )
                  normal:
                        if (cmdp->cb.done)
                                cmdp->cb.done( ctx, cmdp, resp );
-                       if (cmdp->cb.data)
-                               free( cmdp->cb.data );
+                       free( cmdp->cb.data );
                        free( cmdp->cmd );
                        free( cmdp );
                        if (!tcmd || tcmd == cmdp)
@@ -1303,6 +1302,13 @@ main(int argc, char **argv)
                fprintf( stderr, "no imap store specified\n" );
                return 1;
        }
+       if (!server.host) {
+               if (!server.tunnel) {
+                       fprintf( stderr, "no imap host specified\n" );
+                       return 1;
+               }
+               server.host = "tunnel";
+       }
 
        /* read the messages */
        if (!read_message( stdin, &all_msgs )) {