do not return if delivery report could not bedecrypted
This commit is contained in:
		| @@ -1100,6 +1100,8 @@ function zot_process_response($hub, $arr, $outq) { | |||||||
| 		return; | 		return; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	$dreport = true; | ||||||
|  |  | ||||||
| 	$x = json_decode($arr['body'], true); | 	$x = json_decode($arr['body'], true); | ||||||
|  |  | ||||||
| 	if(! $x) { | 	if(! $x) { | ||||||
| @@ -1116,13 +1118,23 @@ function zot_process_response($hub, $arr, $outq) { | |||||||
| 			} | 			} | ||||||
| 			if(! (is_array($x['delivery_report']) && count($x['delivery_report']))) { | 			if(! (is_array($x['delivery_report']) && count($x['delivery_report']))) { | ||||||
| 				logger('encrypted delivery report could not be decrypted'); | 				logger('encrypted delivery report could not be decrypted'); | ||||||
| 				return; | 				$dreport = false; | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  | 		if($dreport) { | ||||||
| 			foreach($x['delivery_report'] as $xx) { | 			foreach($x['delivery_report'] as $xx) { | ||||||
| 				call_hooks('dreport_process',$xx); | 				call_hooks('dreport_process',$xx); | ||||||
| 				if(is_array($xx) && array_key_exists('message_id',$xx) && DReport::is_storable($xx)) { | 				if(is_array($xx) && array_key_exists('message_id',$xx) && DReport::is_storable($xx)) { | ||||||
|  |  | ||||||
|  | 					// legacy zot recipients add a space and their name to the xchan. split those if true. | ||||||
|  | 					$legacy_recipient = strpos($xx['recipient'], ' '); | ||||||
|  | 					if($legacy_recipient !== false) { | ||||||
|  | 						$legacy_recipient_parts = explode(' ', $xx['recipient'], 2); | ||||||
|  | 						$xx['recipient'] = $legacy_recipient_parts[0]; | ||||||
|  | 						$xx['name'] = $legacy_recipient_parts[1]; | ||||||
|  | 					} | ||||||
|  |  | ||||||
| 					q("insert into dreport ( dreport_mid, dreport_site, dreport_recip, dreport_name, dreport_result, dreport_time, dreport_xchan ) values ( '%s', '%s','%s','%s','%s','%s','%s' ) ", | 					q("insert into dreport ( dreport_mid, dreport_site, dreport_recip, dreport_name, dreport_result, dreport_time, dreport_xchan ) values ( '%s', '%s','%s','%s','%s','%s','%s' ) ", | ||||||
| 						dbesc($xx['message_id']), | 						dbesc($xx['message_id']), | ||||||
| 						dbesc($xx['location']), | 						dbesc($xx['location']), | ||||||
| @@ -1135,12 +1147,15 @@ function zot_process_response($hub, $arr, $outq) { | |||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 	if($dreport) { | ||||||
| 		// we have a more descriptive delivery report, so discard the per hub 'queued' report. | 		// we have a more descriptive delivery report, so discard the per hub 'queued' report. | ||||||
|  |  | ||||||
| 		q("delete from dreport where dreport_queue = '%s' ", | 		q("delete from dreport where dreport_queue = '%s' ", | ||||||
| 			dbesc($outq['outq_hash']) | 			dbesc($outq['outq_hash']) | ||||||
| 		); | 		); | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	// update the timestamp for this site | 	// update the timestamp for this site | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user