- if ($network === Protocol::DFRN) {
- $new_relation = Contact::FOLLOWER;
-
- if (($relation == Contact::SHARING) || ($duplex)) {
- $new_relation = Contact::FRIEND;
- }
-
- if (($relation == Contact::SHARING) && ($duplex)) {
- $duplex = 0;
- }
-
- $r = q("UPDATE `contact` SET `rel` = %d,
- `name-date` = '%s',
- `uri-date` = '%s',
- `blocked` = 0,
- `pending` = 0,
- `duplex` = %d,
- `hidden` = %d,
- `network` = '%s' WHERE `id` = %d
- ",
- intval($new_relation),
- DBA::escape(DateTimeFormat::utcNow()),
- DBA::escape(DateTimeFormat::utcNow()),
- intval($duplex),
- intval($hidden),
- DBA::escape(Protocol::DFRN),
- intval($contact_id)
- );
- } else {
- if ($network == Protocol::ACTIVITYPUB) {
- ActivityPub\Transmitter::sendContactAccept($contact['url'], $contact['hub-verify'], $uid);
- // Setting "pending" to true on a bidirectional contact request could create a problem when it isn't accepted on the other side
- // Then we have got a situation where - although one direction is accepted - the contact still appears as pending.
- // Possibly we need two different "pending" fields, one for incoming, one for outgoing?
- // This has to be thought over, but for now this here is a better solution.
- // $pending = $duplex;
- $pending = false;
- } else {
- $pending = false;
- }
-
- // $network !== Protocol::DFRN
- $network = defaults($contact, 'network', Protocol::OSTATUS);
-
- $arr = Probe::uri($contact['url'], $network);