diff --git a/include/event.php b/include/event.php index 9172e3ecc..0b6eb1020 100644 --- a/include/event.php +++ b/include/event.php @@ -241,8 +241,8 @@ function event_store($arr) { $a = get_app(); - $arr['created'] = (($arr['created']) ? $arr['created'] : DateTimeFormat::utcNow()); - $arr['edited'] = (($arr['edited']) ? $arr['edited'] : DateTimeFormat::utcNow()); + $arr['created'] = (($arr['created']) ? DateTimeFormat::utc($arr['created']) : DateTimeFormat::utcNow()); + $arr['edited'] = (($arr['edited']) ? DateTimeFormat::utc($arr['edited']) : DateTimeFormat::utcNow()); $arr['type'] = (($arr['type']) ? $arr['type'] : 'event' ); $arr['cid'] = ((intval($arr['cid'])) ? intval($arr['cid']) : 0); $arr['uri'] = (x($arr, 'uri') ? $arr['uri'] : item_new_uri($a->get_hostname(), $arr['uid'])); diff --git a/src/Protocol/PortableContact.php b/src/Protocol/PortableContact.php index d10c4db32..2cadf574f 100644 --- a/src/Protocol/PortableContact.php +++ b/src/Protocol/PortableContact.php @@ -945,6 +945,15 @@ class PortableContact $register_policy = $gserver["register_policy"]; $registered_users = $gserver["registered-users"]; + // See discussion under https://forum.friendi.ca/display/0b6b25a8135aabc37a5a0f5684081633 + // It can happen that a zero date is in the database, but storing it again is forbidden. + if ($last_contact < NULL_DATE) { + $last_contact = NULL_DATE; + } + if ($last_failure < NULL_DATE) { + $last_failure = NULL_DATE; + } + if (!$force && !self::updateNeeded($gserver["created"], "", $last_failure, $last_contact)) { logger("Use cached data for server ".$server_url, LOGGER_DEBUG); return ($last_contact >= $last_failure);