ソースを参照

move setting of ctx->listed outside the drivers

it's essentially an external state flag
Oswald Buddenhagen 14 年 前
コミット
c66afdc0a8
3 ファイル変更2 行追加5 行削除
  1. 1 4
      src/drv_imap.c
  2. 0 1
      src/drv_maildir.c
  3. 1 0
      src/main.c

+ 1 - 4
src/drv_imap.c

@@ -1737,11 +1737,8 @@ imap_list( store_t *gctx,
            void (*cb)( int sts, void *aux ), void *aux )
 {
 	imap_store_t *ctx = (imap_store_t *)gctx;
-	int ret;
 
-	if ((ret = imap_exec_b( ctx, 0, "LIST \"\" \"%s%%\"", ctx->prefix )) == DRV_OK)
-		gctx->listed = 1;
-	cb( ret, aux );
+	cb( imap_exec_b( ctx, 0, "LIST \"\" \"%s%%\"", ctx->prefix ), aux );
 }
 
 static void

+ 0 - 1
src/drv_maildir.c

@@ -186,7 +186,6 @@ maildir_list( store_t *gctx,
 		                 !memcmp( buf, inbox, bl - 4 ) && !inbox[bl - 4] ? "INBOX" : de->d_name );
 	}
 	closedir (dir);
-	gctx->listed = 1;
 
 	cb( DRV_OK, aux );
 }

+ 1 - 0
src/main.c

@@ -705,6 +705,7 @@ store_listed( int sts, void *aux )
 	mvars->state[t] = ST_OPEN;
 	switch (sts) {
 	case DRV_OK:
+		mvars->ctx[t]->listed = 1;
 		if (mvars->ctx[t]->conf->map_inbox)
 			add_string_list( &mvars->ctx[t]->boxes, mvars->ctx[t]->conf->map_inbox );
 		break;