|
@@ -1193,7 +1193,6 @@ box_loaded( int sts, void *aux )
|
|
debug( "synchronizing new entries\n" );
|
|
debug( "synchronizing new entries\n" );
|
|
svars->osrecadd = svars->srecadd;
|
|
svars->osrecadd = svars->srecadd;
|
|
for (t = 0; t < 2; t++) {
|
|
for (t = 0; t < 2; t++) {
|
|
- Fprintf( svars->jfp, "%c %d\n", "{}"[t], svars->ctx[t]->uidnext );
|
|
|
|
for (tmsg = svars->ctx[1-t]->msgs; tmsg; tmsg = tmsg->next) {
|
|
for (tmsg = svars->ctx[1-t]->msgs; tmsg; tmsg = tmsg->next) {
|
|
/* If we have a srec:
|
|
/* If we have a srec:
|
|
* - message is old (> 0) or expired (0) => ignore
|
|
* - message is old (> 0) or expired (0) => ignore
|
|
@@ -1241,19 +1240,10 @@ box_loaded( int sts, void *aux )
|
|
t2 = arc4_getbyte() & 0x3f;
|
|
t2 = arc4_getbyte() & 0x3f;
|
|
srec->tuid[t1] = t2 < 26 ? t2 + 'A' : t2 < 52 ? t2 + 'a' - 26 : t2 < 62 ? t2 + '0' - 52 : t2 == 62 ? '+' : '/';
|
|
srec->tuid[t1] = t2 < 26 ? t2 + 'A' : t2 < 52 ? t2 + 'a' - 26 : t2 < 62 ? t2 + '0' - 52 : t2 == 62 ? '+' : '/';
|
|
}
|
|
}
|
|
- svars->new_total[t]++;
|
|
|
|
- stats( svars );
|
|
|
|
- cv = nfmalloc( sizeof(*cv) );
|
|
|
|
- cv->cb = msg_copied;
|
|
|
|
- cv->aux = AUX;
|
|
|
|
- cv->srec = srec;
|
|
|
|
- cv->msg = tmsg;
|
|
|
|
Fprintf( svars->jfp, "# %d %d %." stringify(TUIDL) "s\n", srec->uid[M], srec->uid[S], srec->tuid );
|
|
Fprintf( svars->jfp, "# %d %d %." stringify(TUIDL) "s\n", srec->uid[M], srec->uid[S], srec->tuid );
|
|
if (FSyncLevel >= FSYNC_THOROUGH)
|
|
if (FSyncLevel >= FSYNC_THOROUGH)
|
|
fdatasync( fileno( svars->jfp ) );
|
|
fdatasync( fileno( svars->jfp ) );
|
|
debug( " -> %sing message, TUID %." stringify(TUIDL) "s\n", str_hl[t], srec->tuid );
|
|
debug( " -> %sing message, TUID %." stringify(TUIDL) "s\n", str_hl[t], srec->tuid );
|
|
- if (copy_msg( cv ))
|
|
|
|
- return;
|
|
|
|
} else {
|
|
} else {
|
|
if (srec->uid[t] == -1) {
|
|
if (srec->uid[t] == -1) {
|
|
debug( " -> not %sing - still too big\n", str_hl[t] );
|
|
debug( " -> not %sing - still too big\n", str_hl[t] );
|
|
@@ -1265,8 +1255,6 @@ box_loaded( int sts, void *aux )
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- svars->state[t] |= ST_SENT_NEW;
|
|
|
|
- msgs_copied( svars, t );
|
|
|
|
}
|
|
}
|
|
|
|
|
|
debug( "synchronizing old entries\n" );
|
|
debug( "synchronizing old entries\n" );
|
|
@@ -1463,6 +1451,26 @@ box_loaded( int sts, void *aux )
|
|
if (msgs_flags_set( svars, t ))
|
|
if (msgs_flags_set( svars, t ))
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ debug( "propagating new messages\n" );
|
|
|
|
+ for (t = 0; t < 2; t++) {
|
|
|
|
+ Fprintf( svars->jfp, "%c %d\n", "{}"[t], svars->ctx[t]->uidnext );
|
|
|
|
+ for (tmsg = svars->ctx[1-t]->msgs; tmsg; tmsg = tmsg->next) {
|
|
|
|
+ if ((srec = tmsg->srec) && srec->tuid[0]) {
|
|
|
|
+ svars->new_total[t]++;
|
|
|
|
+ stats( svars );
|
|
|
|
+ cv = nfmalloc( sizeof(*cv) );
|
|
|
|
+ cv->cb = msg_copied;
|
|
|
|
+ cv->aux = AUX;
|
|
|
|
+ cv->srec = srec;
|
|
|
|
+ cv->msg = tmsg;
|
|
|
|
+ if (copy_msg( cv ))
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ svars->state[t] |= ST_SENT_NEW;
|
|
|
|
+ msgs_copied( svars, t );
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
static void
|
|
static void
|