|
@@ -409,7 +409,9 @@ int second_overflow(unsigned long secs)
|
|
|
time_state = TIME_DEL;
|
|
|
break;
|
|
|
case TIME_INS:
|
|
|
- if (secs % 86400 == 0) {
|
|
|
+ if (!(time_status & STA_INS))
|
|
|
+ time_state = TIME_OK;
|
|
|
+ else if (secs % 86400 == 0) {
|
|
|
leap = -1;
|
|
|
time_state = TIME_OOP;
|
|
|
time_tai++;
|
|
@@ -418,7 +420,9 @@ int second_overflow(unsigned long secs)
|
|
|
}
|
|
|
break;
|
|
|
case TIME_DEL:
|
|
|
- if ((secs + 1) % 86400 == 0) {
|
|
|
+ if (!(time_status & STA_DEL))
|
|
|
+ time_state = TIME_OK;
|
|
|
+ else if ((secs + 1) % 86400 == 0) {
|
|
|
leap = 1;
|
|
|
time_tai--;
|
|
|
time_state = TIME_WAIT;
|