summaryrefslogtreecommitdiff
path: root/mu/imap.c
diff options
context:
space:
mode:
Diffstat (limited to 'mu/imap.c')
-rw-r--r--mu/imap.c25
1 files changed, 11 insertions, 14 deletions
diff --git a/mu/imap.c b/mu/imap.c
index 85a27a343..deea939f2 100644
--- a/mu/imap.c
+++ b/mu/imap.c
@@ -113,7 +113,6 @@ com_verbose (int argc, char **argv)
113static int connect_argc; 113static int connect_argc;
114static char **connect_argv; 114static char **connect_argv;
115#define host connect_argv[0] 115#define host connect_argv[0]
116static int port = MU_IMAP_DEFAULT_PORT;
117 116
118static char *username; 117static char *username;
119 118
@@ -171,7 +170,6 @@ static int
171com_connect (int argc, char **argv) 170com_connect (int argc, char **argv)
172{ 171{
173 int status; 172 int status;
174 int n = 0;
175 int tls = 0; 173 int tls = 0;
176 int i = 1; 174 int i = 1;
177 enum mu_imap_state state; 175 enum mu_imap_state state;
@@ -194,16 +192,6 @@ com_connect (int argc, char **argv)
194 argc -= i; 192 argc -= i;
195 argv += i; 193 argv += i;
196 194
197 if (argc >= 2)
198 {
199 if (get_port (argv[1], &n))
200 return 0;
201 }
202 else if (tls)
203 n = MU_IMAP_DEFAULT_SSL_PORT;
204 else
205 n = MU_IMAP_DEFAULT_PORT;
206
207 state = current_imap_state (); 195 state = current_imap_state ();
208 196
209 if (state != MU_IMAP_STATE_INIT) 197 if (state != MU_IMAP_STATE_INIT)
@@ -213,13 +201,23 @@ com_connect (int argc, char **argv)
213 if (status == 0) 201 if (status == 0)
214 { 202 {
215 mu_stream_t tcp; 203 mu_stream_t tcp;
204 struct mu_sockaddr *sa;
205 struct mu_sockaddr_hints hints;
216 206
217 if (QRY_VERBOSE ()) 207 if (QRY_VERBOSE ())
218 { 208 {
219 imap_set_verbose (); 209 imap_set_verbose ();
220 imap_set_verbose_mask (); 210 imap_set_verbose_mask ();
221 } 211 }
222 status = mu_tcp_stream_create (&tcp, argv[0], n, MU_STREAM_READ); 212
213 memset (&hints, 0, sizeof (hints));
214 hints.flags = MU_AH_DETECT_FAMILY;
215 hints.port = tls ? MU_IMAP_DEFAULT_SSL_PORT : MU_IMAP_DEFAULT_PORT;
216 hints.protocol = IPPROTO_TCP;
217 hints.socktype = SOCK_STREAM;
218 status = mu_sockaddr_from_node (&sa, argv[0], argv[1], &hints);
219 if (status == 0)
220 status = mu_tcp_stream_create_from_sa (&tcp, sa, NULL, 0);
223 if (status == 0) 221 if (status == 0)
224 { 222 {
225#ifdef WITH_TLS 223#ifdef WITH_TLS
@@ -263,7 +261,6 @@ com_connect (int argc, char **argv)
263 for (i = 0; i < argc; i++) 261 for (i = 0; i < argc; i++)
264 connect_argv[i] = xstrdup (argv[i]); 262 connect_argv[i] = xstrdup (argv[i]);
265 connect_argv[i] = NULL; 263 connect_argv[i] = NULL;
266 port = n;
267 264
268 imap_prompt_env (); 265 imap_prompt_env ();
269 } 266 }

Return to:

Send suggestions and report system problems to the System administrator.