aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xinclude/delivery.php44
-rwxr-xr-xinclude/network.php45
-rwxr-xr-xinclude/notifier.php47
-rwxr-xr-xmod/dfrn_notify.php45
4 files changed, 52 insertions, 129 deletions
diff --git a/include/delivery.php b/include/delivery.php
index 2407f11c0..794b8f27a 100755
--- a/include/delivery.php
+++ b/include/delivery.php
@@ -321,51 +321,9 @@ function delivery_run($argv, $argc){
$x[0]['writable'] = 1;
}
-
$ssl_policy = get_config('system','ssl_policy');
- // if contact's ssl policy changed, update our links
-
- $ssl_changed = false;
-
- if($ssl_policy == SSL_POLICY_SELFSIGN && strstr($x[0]['url'],'https:')) {
- $ssl_changed = true;
- $x[0]['url'] = str_replace('https:','http:',$x[0]['url']);
- $x[0]['request'] = str_replace('https:','http:',$x[0]['request']);
- $x[0]['notify'] = str_replace('https:','http:',$x[0]['notify']);
- $x[0]['poll'] = str_replace('https:','http:',$x[0]['poll']);
- $x[0]['confirm'] = str_replace('https:','http:',$x[0]['confirm']);
- $x[0]['poco'] = str_replace('https:','http:',$x[0]['poco']);
- }
-
- if($ssl_policy == SSL_POLICY_FULL && strstr($x[0]['url'],'http:')) {
- $ssl_changed = true;
- $x[0]['url'] = str_replace('http:','https:',$x[0]['url']);
- $x[0]['request'] = str_replace('http:','https:',$x[0]['request']);
- $x[0]['notify'] = str_replace('http:','https:',$x[0]['notify']);
- $x[0]['poll'] = str_replace('http:','https:',$x[0]['poll']);
- $x[0]['confirm'] = str_replace('http:','https:',$x[0]['confirm']);
- $x[0]['poco'] = str_replace('http:','https:',$x[0]['poco']);
- }
+ fix_contact_ssl_policy($x[0],$ssl_policy);
- if($ssl_changed) {
- q("update contact set
- url = '%s',
- request = '%s',
- notify = '%s',
- poll = '%s',
- confirm = '%s',
- poco = '%s'
- where id = %d limit 1",
- dbesc($x[0]['url']),
- dbesc($x[0]['request']),
- dbesc($x[0]['notify']),
- dbesc($x[0]['poll']),
- dbesc($x[0]['confirm']),
- dbesc($x[0]['poco']),
- intval($x[0]['id'])
- );
- }
-
// If we are setup as a soapbox we aren't accepting input from this person
if($x[0]['page-flags'] == PAGE_SOAPBOX)
diff --git a/include/network.php b/include/network.php
index 9e1ed2091..38d0980d5 100755
--- a/include/network.php
+++ b/include/network.php
@@ -824,3 +824,48 @@ function scale_external_images($s,$include_link = true) {
}
return $s;
}
+
+
+function fix_contact_ssl_policy(&$contact,$new_policy) {
+
+ $ssl_changed = false;
+ if((intval($new_policy) == SSL_POLICY_SELFSIGN || $new_policy === 'self') && strstr($contact['url'],'https:')) {
+ $ssl_changed = true;
+ $contact['url'] = str_replace('https:','http:',$contact['url']);
+ $contact['request'] = str_replace('https:','http:',$contact['request']);
+ $contact['notify'] = str_replace('https:','http:',$contact['notify']);
+ $contact['poll'] = str_replace('https:','http:',$contact['poll']);
+ $contact['confirm'] = str_replace('https:','http:',$contact['confirm']);
+ $contact['poco'] = str_replace('https:','http:',$contact['poco']);
+ }
+
+ if((intval($new_policy) == SSL_POLICY_FULL || $new_policy === 'full') && strstr($contact['url'],'http:')) {
+ $ssl_changed = true;
+ $contact['url'] = str_replace('http:','https:',$contact['url']);
+ $contact['request'] = str_replace('http:','https:',$contact['request']);
+ $contact['notify'] = str_replace('http:','https:',$contact['notify']);
+ $contact['poll'] = str_replace('http:','https:',$contact['poll']);
+ $contact['confirm'] = str_replace('http:','https:',$contact['confirm']);
+ $contact['poco'] = str_replace('http:','https:',$contact['poco']);
+ }
+
+ if($ssl_changed) {
+ q("update contact set
+ url = '%s',
+ request = '%s',
+ notify = '%s',
+ poll = '%s',
+ confirm = '%s',
+ poco = '%s'
+ where id = %d limit 1",
+ dbesc($contact['url']),
+ dbesc($contact['request']),
+ dbesc($contact['notify']),
+ dbesc($contact['poll']),
+ dbesc($contact['confirm']),
+ dbesc($contact['poco']),
+ intval($contact['id'])
+ );
+ }
+}
+
diff --git a/include/notifier.php b/include/notifier.php
index e91185c51..ca7c7b92e 100755
--- a/include/notifier.php
+++ b/include/notifier.php
@@ -537,56 +537,17 @@ function notifier_run($argv, $argc){
$x[0]['writable'] = 1;
}
+ // if contact's ssl policy changed, which we just determined
+ // is on our own server, update our contact links
+
$ssl_policy = get_config('system','ssl_policy');
- // if contact's ssl policy changed, update our links
-
- $ssl_changed = false;
-
- if($ssl_policy == SSL_POLICY_SELFSIGN && strstr($x[0]['url'],'https:')) {
- $ssl_changed = true;
- $x[0]['url'] = str_replace('https:','http:',$x[0]['url']);
- $x[0]['request'] = str_replace('https:','http:',$x[0]['request']);
- $x[0]['notify'] = str_replace('https:','http:',$x[0]['notify']);
- $x[0]['poll'] = str_replace('https:','http:',$x[0]['poll']);
- $x[0]['confirm'] = str_replace('https:','http:',$x[0]['confirm']);
- $x[0]['poco'] = str_replace('https:','http:',$x[0]['poco']);
- }
-
- if($ssl_policy == SSL_POLICY_FULL && strstr($x[0]['url'],'http:')) {
- $ssl_changed = true;
- $x[0]['url'] = str_replace('http:','https:',$x[0]['url']);
- $x[0]['request'] = str_replace('http:','https:',$x[0]['request']);
- $x[0]['notify'] = str_replace('http:','https:',$x[0]['notify']);
- $x[0]['poll'] = str_replace('http:','https:',$x[0]['poll']);
- $x[0]['confirm'] = str_replace('http:','https:',$x[0]['confirm']);
- $x[0]['poco'] = str_replace('http:','https:',$x[0]['poco']);
- }
+ fix_contact_ssl_policy($x[0],$ssl_policy);
- if($ssl_changed) {
- q("update contact set
- url = '%s',
- request = '%s',
- notify = '%s',
- poll = '%s',
- confirm = '%s',
- poco = '%s'
- where id = %d limit 1",
- dbesc($x[0]['url']),
- dbesc($x[0]['request']),
- dbesc($x[0]['notify']),
- dbesc($x[0]['poll']),
- dbesc($x[0]['confirm']),
- dbesc($x[0]['poco']),
- intval($x[0]['id'])
- );
- }
-
// If we are setup as a soapbox we aren't accepting input from this person
if($x[0]['page-flags'] == PAGE_SOAPBOX)
break;
-
require_once('library/simplepie/simplepie.inc');
logger('mod-delivery: local delivery');
local_delivery($x[0],$atom);
diff --git a/mod/dfrn_notify.php b/mod/dfrn_notify.php
index 5d44e8144..65d39d5fe 100755
--- a/mod/dfrn_notify.php
+++ b/mod/dfrn_notify.php
@@ -99,51 +99,10 @@ function dfrn_notify_post(&$a) {
$importer['forum'] = $page;
}
- // if contact's ssl policy changed, update our links
-
- $ssl_changed = false;
- if($ssl_policy == 'self' && strstr($importer['url'],'https:')) {
- $ssl_changed = true;
- $importer['url'] = str_replace('https:','http:',$importer['url']);
- $importer['request'] = str_replace('https:','http:',$importer['request']);
- $importer['notify'] = str_replace('https:','http:',$importer['notify']);
- $importer['poll'] = str_replace('https:','http:',$importer['poll']);
- $importer['confirm'] = str_replace('https:','http:',$importer['confirm']);
- $importer['poco'] = str_replace('https:','http:',$importer['poco']);
- }
-
- if($ssl_policy == 'full' && strstr($importer['url'],'http:')) {
- $ssl_changed = true;
- $importer['url'] = str_replace('http:','https:',$importer['url']);
- $importer['request'] = str_replace('http:','https:',$importer['request']);
- $importer['notify'] = str_replace('http:','https:',$importer['notify']);
- $importer['poll'] = str_replace('http:','https:',$importer['poll']);
- $importer['confirm'] = str_replace('http:','https:',$importer['confirm']);
- $importer['poco'] = str_replace('http:','https:',$importer['poco']);
- }
+ // if contact's ssl policy changed, update our links
- if($ssl_changed) {
- q("update contact set
- url = '%s',
- nurl = '%s',
- request = '%s',
- notify = '%s',
- poll = '%s',
- confirm = '%s',
- poco = '%s'
- where id = %d limit 1",
- dbesc($importer['url']),
- dbesc($importer['nurl']),
- dbesc($importer['request']),
- dbesc($importer['notify']),
- dbesc($importer['poll']),
- dbesc($importer['confirm']),
- dbesc($importer['poco']),
- intval($importer['id'])
- );
- }
-
+ fix_contact_ssl_policy($importer,$ssl_policy);
logger('dfrn_notify: received notify from ' . $importer['name'] . ' for ' . $importer['username']);
logger('dfrn_notify: data: ' . $data, LOGGER_DATA);