-rw-r--r-- | kmicromail/libetpan/maildir/maildir.c | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/kmicromail/libetpan/maildir/maildir.c b/kmicromail/libetpan/maildir/maildir.c index 0e038b1..1ef0b7a 100644 --- a/kmicromail/libetpan/maildir/maildir.c +++ b/kmicromail/libetpan/maildir/maildir.c | |||
@@ -108,25 +108,30 @@ static char * maildir_get_new_message_filename(struct maildir * md, | |||
108 | char basename[PATH_MAX]; | 108 | char basename[PATH_MAX]; |
109 | int k; | 109 | int k; |
110 | time_t now; | 110 | time_t now; |
111 | 111 | struct stat f_stat; | |
112 | now = time(NULL); | 112 | now = time(NULL); |
113 | k = 0; | 113 | k = 0; |
114 | |||
115 | fprintf(stderr,"maildir_get_new_message_filename: %s \n", tmpfile); | ||
114 | while (k < MAX_TRY_ALLOC) { | 116 | while (k < MAX_TRY_ALLOC) { |
115 | snprintf(basename, sizeof(basename), "%lu.%u_%u.%s", | 117 | snprintf(basename, sizeof(basename), "%lu.%u_%u.%s", |
116 | (unsigned long) now, md->mdir_pid, md->mdir_counter, md->mdir_hostname); | 118 | (unsigned long) now, md->mdir_pid, md->mdir_counter, md->mdir_hostname); |
117 | snprintf(filename, sizeof(filename), "%s/tmp/%s", | 119 | snprintf(filename, sizeof(filename), "%s/tmp/%s", |
118 | md->mdir_path, basename); | 120 | md->mdir_path, basename); |
119 | 121 | fprintf(stderr,"filename %s \n", filename); | |
120 | if (link(tmpfile, filename) == 0) { | 122 | // LR changed following lines |
123 | if ( stat( filename, &f_stat ) == -1 ) { | ||
124 | //if (link(tmpfile, filename) == 0) { | ||
121 | char * dup_filename; | 125 | char * dup_filename; |
122 | 126 | ||
123 | dup_filename = strdup(filename); | 127 | dup_filename = strdup(filename); |
124 | if (dup_filename == NULL) { | 128 | if (dup_filename == NULL) { |
125 | unlink(filename); | 129 | //unlink(filename); |
126 | return NULL; | 130 | return NULL; |
127 | } | 131 | } |
128 | 132 | fprintf(stderr,"filename %s %s \n", tmpfile,dup_filename); | |
129 | unlink(tmpfile); | 133 | //unlink(tmpfile); |
134 | rename (tmpfile,dup_filename ); | ||
130 | md->mdir_counter ++; | 135 | md->mdir_counter ++; |
131 | 136 | ||
132 | return dup_filename; | 137 | return dup_filename; |
@@ -272,6 +277,7 @@ static int add_message(struct maildir * md, | |||
272 | int res; | 277 | int res; |
273 | int r; | 278 | int r; |
274 | 279 | ||
280 | fprintf(stderr,"add_message filename: %s \n", filename); | ||
275 | msg = msg_new(filename, is_new); | 281 | msg = msg_new(filename, is_new); |
276 | if (msg == NULL) { | 282 | if (msg == NULL) { |
277 | res = MAILDIR_ERROR_MEMORY; | 283 | res = MAILDIR_ERROR_MEMORY; |
@@ -446,6 +452,7 @@ int maildir_message_add_uid(struct maildir * md, | |||
446 | int res; | 452 | int res; |
447 | struct stat stat_info; | 453 | struct stat stat_info; |
448 | 454 | ||
455 | fprintf(stderr,"maildir_message_add_uid for uid: %s \n", uid); | ||
449 | r = maildir_update(md); | 456 | r = maildir_update(md); |
450 | if (r != MAILDIR_NO_ERROR) { | 457 | if (r != MAILDIR_NO_ERROR) { |
451 | res = r; | 458 | res = r; |
@@ -558,6 +565,7 @@ int maildir_message_add_file_uid(struct maildir * md, int fd, | |||
558 | struct stat buf; | 565 | struct stat buf; |
559 | int r; | 566 | int r; |
560 | 567 | ||
568 | fprintf(stderr,"maildir_message_add_file_uid: %s \n", uid); | ||
561 | if (fstat(fd, &buf) == -1) | 569 | if (fstat(fd, &buf) == -1) |
562 | return MAILDIR_ERROR_FILE; | 570 | return MAILDIR_ERROR_FILE; |
563 | 571 | ||
@@ -574,6 +582,7 @@ int maildir_message_add_file_uid(struct maildir * md, int fd, | |||
574 | 582 | ||
575 | int maildir_message_add_file(struct maildir * md, int fd) | 583 | int maildir_message_add_file(struct maildir * md, int fd) |
576 | { | 584 | { |
585 | fprintf(stderr,"maildir_message_add_file \n"); | ||
577 | return maildir_message_add_file_uid(md, fd, | 586 | return maildir_message_add_file_uid(md, fd, |
578 | NULL, 0); | 587 | NULL, 0); |
579 | } | 588 | } |
@@ -588,6 +597,7 @@ char * maildir_message_get(struct maildir * md, const char * uid) | |||
588 | char * dir; | 597 | char * dir; |
589 | int r; | 598 | int r; |
590 | 599 | ||
600 | fprintf(stderr,"maildir_message_get for uid: %s \n", uid); | ||
591 | key.data = (void *) uid; | 601 | key.data = (void *) uid; |
592 | key.len = strlen(uid); | 602 | key.len = strlen(uid); |
593 | r = chash_get(md->mdir_msg_hash, &key, &value); | 603 | r = chash_get(md->mdir_msg_hash, &key, &value); |
@@ -620,6 +630,7 @@ int maildir_message_remove(struct maildir * md, const char * uid) | |||
620 | int r; | 630 | int r; |
621 | int res; | 631 | int res; |
622 | 632 | ||
633 | fprintf(stderr,"maildir_message_remove for uid: %s \n", uid); | ||
623 | key.data = (void *) uid; | 634 | key.data = (void *) uid; |
624 | key.len = strlen(uid); | 635 | key.len = strlen(uid); |
625 | r = chash_get(md->mdir_msg_hash, &key, &value); | 636 | r = chash_get(md->mdir_msg_hash, &key, &value); |
@@ -662,7 +673,7 @@ int maildir_message_change_flags(struct maildir * md, | |||
662 | char flag_str[5]; | 673 | char flag_str[5]; |
663 | size_t i; | 674 | size_t i; |
664 | int res; | 675 | int res; |
665 | 676 | fprintf(stderr,"maildir_message_change_flags for uid: %s \n", uid); | |
666 | key.data = (void *) uid; | 677 | key.data = (void *) uid; |
667 | key.len = strlen(uid); | 678 | key.len = strlen(uid); |
668 | r = chash_get(md->mdir_msg_hash, &key, &value); | 679 | r = chash_get(md->mdir_msg_hash, &key, &value); |