aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers/imapp/camel-imapp-store.c
diff options
context:
space:
mode:
Diffstat (limited to 'camel/providers/imapp/camel-imapp-store.c')
-rw-r--r--camel/providers/imapp/camel-imapp-store.c215
1 files changed, 0 insertions, 215 deletions
diff --git a/camel/providers/imapp/camel-imapp-store.c b/camel/providers/imapp/camel-imapp-store.c
index ae02bcb54e..9123102a03 100644
--- a/camel/providers/imapp/camel-imapp-store.c
+++ b/camel/providers/imapp/camel-imapp-store.c
@@ -337,203 +337,6 @@ imap_query_auth_types (CamelService *service, CamelException *ex)
return types;
}
-#if 0
-static int
-try_sasl(CamelIMAPPStore *store, const char *mech, CamelException *ex)
-{
- CamelIMAPPStream *stream = store->engine->stream;
- unsigned char *line, *resp;
- CamelSasl *sasl;
- unsigned int len;
- int ret;
-
- sasl = camel_sasl_new("imap", mech, (CamelService *)store);
- if (sasl == NULL) {
- camel_exception_set (ex, CAMEL_EXCEPTION_SERVICE_CANT_AUTHENTICATE,
- _("Unable to connect to POP server.\n"
- "No support for requested "
- "authentication mechanism."));
- return -1;
- }
-
- if (camel_stream_printf((CamelStream *)stream, "AUTH %s\r\n", mech) == -1)
- goto ioerror;
-
- while (1) {
- if (camel_imapp_stream_line(stream, &line, &len) == -1)
- goto ioerror;
- if (strncmp(line, "+OK", 3) == 0)
- break;
- if (strncmp(line, "-ERR", 4) == 0) {
- camel_exception_setv(ex, CAMEL_EXCEPTION_SERVICE_CANT_AUTHENTICATE,
- _("SASL `%s' Login failed: %s"), mech, line);
- goto done;
- }
- /* If we dont get continuation, or the sasl object's run out of work, or we dont get a challenge,
- its a protocol error, so fail, and try reset the server */
- if (strncmp(line, "+ ", 2) != 0
- || camel_sasl_authenticated(sasl)
- || (resp = camel_sasl_challenge_base64(sasl, line+2, ex)) == NULL) {
- camel_stream_printf((CamelStream *)stream, "*\r\n");
- camel_imapp_stream_line(stream, &line, &len);
- camel_exception_setv(ex, CAMEL_EXCEPTION_SERVICE_CANT_AUTHENTICATE,
- _("SASL Protocol error"));
- goto done;
- }
-
- ret = camel_stream_printf((CamelStream *)stream, "%s\r\n", resp);
- g_free(resp);
- if (ret == -1)
- goto ioerror;
-
- }
- camel_object_unref((CamelObject *)sasl);
- return 0;
-
-ioerror:
- camel_exception_setv(ex, CAMEL_EXCEPTION_SERVICE_CANT_AUTHENTICATE,
- _("I/O Error: %s"), strerror(errno));
-done:
- camel_object_unref((CamelObject *)sasl);
- return -1;
-}
-
-static gboolean
-imap_try_authenticate (CamelService *service, const char *errmsg, CamelException *ex)
-{
- CamelIMAPPStore *store = (CamelIMAPPStore *)service;
- CamelIMAPPCommand *pcu = NULL, *pcp = NULL;
- int status;
-
- /* override, testing only */
- /*printf("Forcing authmech to 'login'\n");
- service->url->authmech = g_strdup("LOGIN");*/
-
- if (!service->url->passwd) {
- char *prompt;
-
- prompt = g_strdup_printf (_("%sPlease enter the POP password for %s@%s"),
- errmsg ? errmsg : "",
- service->url->user,
- service->url->host);
- service->url->passwd = camel_session_get_password (camel_service_get_session (service),
- prompt, TRUE, service, "password", ex);
- g_free (prompt);
- if (!service->url->passwd)
- return FALSE;
- }
-
- if (!service->url->authmech) {
- /* pop engine will take care of pipelining ability */
- pcu = camel_imapp_engine_command_new(store->engine, 0, NULL, NULL, "USER %s\r\n", service->url->user);
- pcp = camel_imapp_engine_command_new(store->engine, 0, NULL, NULL, "PASS %s\r\n", service->url->passwd);
- } else if (strcmp(service->url->authmech, "+APOP") == 0 && store->engine->apop) {
- char *secret, md5asc[33], *d;
- unsigned char md5sum[16], *s;
-
- secret = alloca(strlen(store->engine->apop)+strlen(service->url->passwd)+1);
- sprintf(secret, "%s%s", store->engine->apop, service->url->passwd);
- md5_get_digest(secret, strlen (secret), md5sum);
-
- for (s = md5sum, d = md5asc; d < md5asc + 32; s++, d += 2)
- sprintf (d, "%.2x", *s);
-
- pcp = camel_imapp_engine_command_new(store->engine, 0, NULL, NULL, "APOP %s %s\r\n", service->url->user, md5asc);
- } else {
- CamelServiceAuthType *auth;
- GList *l;
-
- l = store->engine->auth;
- while (l) {
- auth = l->data;
- if (strcmp(auth->authproto, service->url->authmech) == 0)
- return try_sasl(store, service->url->authmech, ex) == -1;
- l = l->next;
- }
-
- camel_exception_set (ex, CAMEL_EXCEPTION_SERVICE_CANT_AUTHENTICATE,
- _("Unable to connect to POP server.\n"
- "No support for requested "
- "authentication mechanism."));
- return FALSE;
- }
-
- while ((status = camel_imapp_engine_iterate (store->engine, pcp)) > 0)
- ;
-
- if (pcp->state != CAMEL_IMAPP_COMMAND_OK) {
- if (status == -1)
- camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM,
- _("Unable to connect to POP server.\nError sending password: %s"),
- errno ? g_strerror (errno) : _("Unknown error"));
- else
- camel_exception_setv (ex, CAMEL_EXCEPTION_SERVICE_CANT_AUTHENTICATE,
- _("Unable to connect to POP server.\nError sending password: %s"),
- store->engine->line);
- }
- camel_imapp_engine_command_free(store->engine, pcp);
-
- if (pcu)
- camel_imapp_engine_command_free(store->engine, pcu);
-
- return status;
-}
-#endif
-
-static gboolean
-imap_login(CamelService *service, char *msg)
-{
- CamelIMAPPStore *store = (CamelIMAPPStore *)service;
- CamelIMAPPCommand * volatile ic = NULL;
-
- /* override, testing only */
- /*printf("Forcing authmech to 'login'\n");
- service->url->authmech = g_strdup("LOGIN");*/
-
- CAMEL_TRY {
- if (!service->url->passwd) {
- char *prompt;
- CamelException *ex = camel_exception_new();
-
- prompt = g_strdup_printf (_("%sPlease enter the IMAP password for %s@%s"),
- msg?msg:"",
- service->url->user,
- service->url->host);
- service->url->passwd = camel_session_get_password(camel_service_get_session(service), prompt, FALSE, TRUE, service, "password", ex);
- g_free (prompt);
- if (camel_exception_is_set(ex))
- camel_exception_throw_ex(ex);
- }
-
- if (service->url->authmech) {
- CamelSasl *sasl = camel_sasl_new("imap", service->url->authmech, service);
-
- if (sasl == NULL)
- camel_exception_throw(1, "unsupported authentication mechanism: %s", service->url->authmech);
- ic = camel_imapp_engine_command_new(store->driver->engine, "AUTHENTICATE", NULL, "AUTHENTICATE %A", sasl);
- camel_object_unref((CamelObject *)sasl);
- } else {
- ic = camel_imapp_engine_command_new(store->driver->engine, "LOGIN", NULL, "LOGIN %s %s", service->url->user, service->url->passwd);
- }
-
- camel_imapp_engine_command_queue(store->driver->engine, ic);
- while (camel_imapp_engine_iterate(store->driver->engine, ic) > 0)
- ;
-
- if (ic->status->result != IMAP_OK)
- camel_exception_throw(CAMEL_EXCEPTION_SERVICE_CANT_AUTHENTICATE, "Login failed: %s", ic->status->text);
- } CAMEL_CATCH(ex) {
- if (ic)
- camel_imapp_engine_command_free(store->driver->engine, ic);
- camel_exception_throw_ex(ex);
- } CAMEL_DONE;
-
- if (ic)
- camel_imapp_engine_command_free(store->driver->engine, ic);
-
- return TRUE;
-}
-
static void
store_get_pass(CamelIMAPPStore *store)
{
@@ -977,24 +780,6 @@ imap_create_folder(CamelStore *store, const char *parent_name, const char *folde
}
/* ********************************************************************** */
-
-static int store_resp_list(CamelIMAPPEngine *ie, guint32 id, void *data)
-{
- struct _list_info *linfo;
- CamelIMAPPStore *istore = data;
-
- linfo = imap_parse_list(ie->stream);
- printf("store list: '%s' ('%c')\n", linfo->name, linfo->separator);
- if (istore->pending_list)
- g_ptr_array_add(istore->pending_list, linfo);
- else {
- g_warning("unexpected list response\n");
- imap_free_list(linfo);
- }
-
- return camel_imapp_engine_skip(ie);
-}
-
#if 0
static int store_resp_fetch(CamelIMAPPEngine *ie, guint32 id, void *data)
{