diff options
Diffstat (limited to 'mu/imap.c')
-rw-r--r-- | mu/imap.c | 25 |
1 files changed, 11 insertions, 14 deletions
@@ -113,7 +113,6 @@ com_verbose (int argc, char **argv) | |||
113 | static int connect_argc; | 113 | static int connect_argc; |
114 | static char **connect_argv; | 114 | static char **connect_argv; |
115 | #define host connect_argv[0] | 115 | #define host connect_argv[0] |
116 | static int port = MU_IMAP_DEFAULT_PORT; | ||
117 | 116 | ||
118 | static char *username; | 117 | static char *username; |
119 | 118 | ||
@@ -171,7 +170,6 @@ static int | |||
171 | com_connect (int argc, char **argv) | 170 | com_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 | } |