From f4721955dbfb23992c4acdadd05108cb1b92e2af Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 2 Apr 2012 21:01:19 -0700 Subject: more ssl policy fixes and prevent delivery to soapbox when using local delivery --- include/delivery.php | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) (limited to 'include/delivery.php') diff --git a/include/delivery.php b/include/delivery.php index 532dcd699..2407f11c0 100755 --- a/include/delivery.php +++ b/include/delivery.php @@ -321,6 +321,56 @@ 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']); + } + + 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); -- cgit v1.2.3 From 5d0d9f877294258cb90e1c496b4db750ee99f3ca Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 2 Apr 2012 23:07:26 -0700 Subject: make contact ssl_policy change a function since it is used in a few places --- include/delivery.php | 44 +------------------------------------------- 1 file changed, 1 insertion(+), 43 deletions(-) (limited to 'include/delivery.php') 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) -- cgit v1.2.3