]> git.mxchange.org Git - friendica.git/commitdiff
misc little fixes
authorMike Macgirvin <mike@macgirvin.com>
Tue, 17 Aug 2010 05:05:04 +0000 (22:05 -0700)
committerMike Macgirvin <mike@macgirvin.com>
Tue, 17 Aug 2010 05:05:04 +0000 (22:05 -0700)
include/poller.php
mod/dfrn_notify.php
mod/dfrn_poll.php

index e946dabf6096f4c1bae325ba68db9e44ba3a54d0..1a323971f1ce8baa42003206c2e7c7897d5fb4cc 100644 (file)
@@ -19,7 +19,9 @@ require_once('include/items.php');
 
        $a->set_baseurl(get_config('system','url'));
 
-       $contacts = q("SELECT * FROM `contact` WHERE `dfrn-id` != '' AND `self` = 0 AND `blocked` = 0 AND `readonly` = 0 ORDER BY RAND()");
+       $contacts = q("SELECT * FROM `contact` 
+               WHERE `dfrn-id` != '' AND `self` = 0 AND `blocked` = 0 
+               AND `readonly` = 0 ORDER BY RAND()");
 
        if(! count($contacts))
                killme();
index be0de36e06d49f529c8d1be6f6a85b8734e6761f..2ac98af596d1b3f496e07871b1b6f9fa0eea1d66 100644 (file)
@@ -26,19 +26,12 @@ function dfrn_notify_post(&$a) {
        $r = q("SELECT `contact`.*, `contact`.`uid` AS `importer_uid`, `user`.* FROM `contact` LEFT JOIN `user` ON `contact`.`uid` = `user`.`uid` WHERE `issued-id` = '%s' LIMIT 1",
                dbesc($dfrn_id)
        );
+
        if(! count($r)) {
                xml_status(3);
                return; //NOTREACHED
        }
 
-       // We aren't really interested in anything this person has to say. But be polite and make them 
-       // think we're listening intently by acknowledging receipt of their communications - which we quietly ignore.
-
-       if($r[0]['readonly']) {
-               xml_status(0);
-               return; //NOTREACHED
-       }
-               
        $importer = $r[0];
 
        $feed = new SimplePie();
@@ -50,6 +43,14 @@ function dfrn_notify_post(&$a) {
 
        $rawmail = $feed->get_feed_tags( NAMESPACE_DFRN, 'mail' );
        if(isset($rawmail[0]['child'][NAMESPACE_DFRN])) {
+
+               if($importer['readonly']) {
+                       // We aren't receiving email from this person. But we will quietly ignore them
+                       // rather than a blatant "go away" message.
+                       xml_status(0);
+                       return; //NOTREACHED
+               }
+
                $ismail = true;
                $base = $rawmail[0]['child'][NAMESPACE_DFRN];
 
@@ -95,6 +96,12 @@ function dfrn_notify_post(&$a) {
                return; // NOTREACHED
        }       
 
+       if($importer['readonly']) {
+
+               xml_status(0);
+               return; // NOTREACHED
+       }
+
        foreach($feed->get_items() as $item) {
 
                $deleted = false;
index a4023d1c02801e98d7900b1af0f17077314f5313..d0b915acf0a48f76e4247c9d4ef440eb5c33c040 100644 (file)
@@ -167,20 +167,22 @@ function dfrn_poll_content(&$a) {
 
                $r = q("SELECT * FROM `contact` WHERE `issued-id` = '%s' AND `blocked` = 0 AND `pending` = 0 LIMIT 1",
                        dbesc($_GET['dfrn_id']));
-               if((! count($r)) || (! strlen($r[0]['prvkey'])))
-                       $status = 1;
+               if((count($r)) && (strlen($r[0]['prvkey']))) {
 
-               $challenge = '';
+                       $challenge = '';
 
-               openssl_private_encrypt($hash,$challenge,$r[0]['prvkey']);
-               $challenge = bin2hex($challenge);
+                       openssl_private_encrypt($hash,$challenge,$r[0]['prvkey']);
+                       $challenge = bin2hex($challenge);
 
-               $encrypted_id = '';
-               $id_str = $_GET['dfrn_id'] . '.' . mt_rand(1000,9999);
-
-               openssl_private_encrypt($id_str,$encrypted_id,$r[0]['prvkey']);
-               $encrypted_id = bin2hex($encrypted_id);
+                       $encrypted_id = '';
+                       $id_str = $_GET['dfrn_id'] . '.' . mt_rand(1000,9999);
 
+                       openssl_private_encrypt($id_str,$encrypted_id,$r[0]['prvkey']);
+                       $encrypted_id = bin2hex($encrypted_id);
+               }
+               else {
+                       $status = 1;  // key not found
+               }
 
                echo '<?xml version="1.0" encoding="UTF-8"?><dfrn_poll><status>' .$status . '</status><dfrn_id>' . $encrypted_id . '</dfrn_id>'
                        . '<challenge>' . $challenge . '</challenge></dfrn_poll>' . "\r\n" ;