]> git.mxchange.org Git - friendica.git/commitdiff
Merge pull request #3514 from annando/worker-locking
authorTobias Diekershoff <tobias.diekershoff@gmx.net>
Sat, 3 Jun 2017 09:02:50 +0000 (11:02 +0200)
committerGitHub <noreply@github.com>
Sat, 3 Jun 2017 09:02:50 +0000 (11:02 +0200)
Fixed locking behaviour for the worker

boot.php
doc/htconfig.md
include/NotificationsManager.php
util/htconfig.vagrant.php
view/templates/htconfig.tpl

index 9474d2d6c508305c5dfaca659aad864400db44df..0f93c5e6d86182c79d4f27eb2f1ae860b91b4a1b 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -1375,7 +1375,7 @@ function get_server() {
        $server = get_config("system", "directory");
 
        if ($server == "") {
-               $server = "http://dir.friendi.ca";
+               $server = "http://dir.friendica.social";
        }
 
        return($server);
index 2c8b44439cfcbec1079cf4e162b522125afd6a0e..542b42b29ea1a3da842ffd85f6c5c3a0e1a1ce39 100644 (file)
@@ -14,7 +14,7 @@ Especially don't do that with undocumented values.
 The header of the section describes the category, the value is the parameter.
 Example: To set the directory value please add this line to your .htconfig.php:
 
-    $a->config['system']['directory'] = 'http://dir.friendi.ca';
+    $a->config['system']['directory'] = 'http://dir.friendica.social';
 
 ## jabber ##
 * **debug** (Boolean) - Enable debug level for the jabber account synchronisation.
@@ -38,7 +38,7 @@ Example: To set the directory value please add this line to your .htconfig.php:
 * **default_service_class** -
 * **delivery_batch_count** - Number of deliveries per process. Default value is 1. (Disabled when using the worker)
 * **diaspora_test** (Boolean) - For development only. Disables the message transfer.
-* **directory** - The path to global directory. If not set then "http://dir.friendi.ca" is used.
+* **directory** - The path to global directory. If not set then "http://dir.friendica.social" is used.
 * **disable_email_validation** (Boolean) - Disables the check if a mail address is in a valid format and can be resolved via DNS.
 * **disable_url_validation** (Boolean) - Disables the DNS lookup of an URL.
 * **dlogfile - location of the developer log file
index 7183393801540ae37d40b144ec5b1d70c1feb4ff..ad0ede6dbe4a970728ea4da98c581f948fa0f8ee 100644 (file)
@@ -4,10 +4,12 @@
  * @brief Methods for read and write notifications from/to database
  *  or for formatting notifications
  */
+
 require_once 'include/html2plain.php';
 require_once 'include/probe.php';
 require_once 'include/datetime.php';
 require_once 'include/bbcode.php';
+require_once 'include/Contact.php';
 
 /**
  * @brief Methods for read and write notifications from/to database
@@ -720,10 +722,12 @@ class NotificationsManager {
                        $sql_extra = " AND `ignore` = 0 ";
 
                /// @todo Fetch contact details by "get_contact_details_by_url" instead of queries to contact, fcontact and gcontact
-               $r = q("SELECT `intro`.`id` AS `intro_id`, `intro`.*, `contact`.*, `fcontact`.`name` AS `fname`,`fcontact`.`url` AS `furl`,`fcontact`.`photo` AS `fphoto`,`fcontact`.`request` AS `frequest`,
+               $r = q("SELECT `intro`.`id` AS `intro_id`, `intro`.*, `contact`.*,
+                               `fcontact`.`name` AS `fname`, `fcontact`.`url` AS `furl`,
+                               `fcontact`.`photo` AS `fphoto`, `fcontact`.`request` AS `frequest`,
                                `gcontact`.`location` AS `glocation`, `gcontact`.`about` AS `gabout`,
                                `gcontact`.`keywords` AS `gkeywords`, `gcontact`.`gender` AS `ggender`,
-                               `gcontact`.`network` AS `gnetwork`
+                               `gcontact`.`network` AS `gnetwork`, `gcontact`.`addr` AS `gaddr`
                        FROM `intro`
                                LEFT JOIN `contact` ON `contact`.`id` = `intro`.`contact-id`
                                LEFT JOIN `gcontact` ON `gcontact`.`nurl` = `contact`.`nurl`
@@ -786,11 +790,7 @@ class NotificationsManager {
                        // Normal connection requests
                        } else {
 
-                               // Probe the contact url to get missing data
-                               $ret = probe_url($it["url"]);
-
-                               if ($it['gnetwork'] == "")
-                                       $it['gnetwork'] = $ret["network"];
+                               $it = $this->getMissingIntroData($it);
 
                                // Don't show these data until you are connected. Diaspora is doing the same.
                                if($it['gnetwork'] === NETWORK_DIASPORA) {
@@ -815,7 +815,7 @@ class NotificationsManager {
                                        'post_newfriend' => (intval(get_pconfig(local_user(),'system','post_newfriend')) ? '1' : 0),
                                        'url' => $it['url'],
                                        'zrl' => zrl($it['url']),
-                                       'addr' => $ret['addr'],
+                                       'addr' => $it['gaddr'],
                                        'network' => $it['gnetwork'],
                                        'knowyou' => $it['knowyou'],
                                        'note' => $it['note'],
@@ -827,4 +827,38 @@ class NotificationsManager {
 
                return $arr;
        }
+
+       /**
+        * @brief Check for missing contact data and try to fetch the data from 
+        *     from other sources
+        * 
+        * @param array $arr The input array with the intro data
+        * 
+        * @return array The array with the intro data
+        */
+       private function getMissingIntroData($arr) {
+               // If the network and the addr isn't available from the gcontact
+               // table entry, take the one of the contact table entry
+               if ($arr['gnetwork'] == "") {
+                       $arr['gnetwork'] = $arr['network'];
+               }
+               if ($arr['gaddr'] == "") {
+                       $arr['gaddr'] = $arr['addr'];
+               }
+
+               // If the network and addr is still not available
+               // get the missing data data from other sources
+               if ($arr['gnetwork'] == "" || $arr['gaddr'] == "") {
+                       $ret = get_contact_details_by_url($arr['url']);
+
+                       if ($arr['gnetwork'] == "" && $ret['network'] != "") {
+                               $arr['gnetwork'] = $ret['network'];
+                       }
+                       if ($arr['gaddr'] == "" && $ret['addr'] != "") {
+                               $arr['gaddr'] = $ret['addr'];
+                       }
+               }
+
+               return $arr;
+       }
 }
index 71e9d673fbb34cdffc9ac1106a74cffadf126566..c33f9941ef06ee7a6a53f86dccd19d0054625ce2 100644 (file)
@@ -69,7 +69,7 @@ $a->config['system']['no_regfullname'] = true;
 //$a->config['system']['block_local_dir'] = false;
 
 // Location of the global directory
-$a->config['system']['directory'] = 'http://dir.friendi.ca';
+$a->config['system']['directory'] = 'http://dir.friendica.social';
 
 // turn on friendica's log
 $a->config['system']['debugging'] = true;
index 1aba902ad6669e90d2982b00d45290fb23e56a6a..02cf67f39d1ee962f8e7a1f624c5af2e3d582d21 100644 (file)
@@ -3,7 +3,7 @@
 /* ********************************************************************
  *  The following configuration has to be within the .htconfig file
  *  and will not be overruled by decisions made in the admin panel.
- * 
+ *
  *  See below for variables that may be overruled by the admin panel.
  * ********************************************************************/
 
@@ -43,7 +43,7 @@ $a->config['system']['allowed_link_protocols'] = array('ftp', 'ftps', 'mailto',
  *  Changes made below will only have an effect if the database does
  *  not contain any configuration for the friendica system.
  * *********************************************************************/
+
 // Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
 // It can be changed later and only applies to timestamps for anonymous viewers.
 
@@ -98,7 +98,7 @@ $a->config['system']['no_regfullname'] = true;
 //$a->config['system']['block_local_dir'] = false;
 
 // Location of the global directory
-$a->config['system']['directory'] = 'http://dir.friendi.ca';
+$a->config['system']['directory'] = 'http://dir.friendica.social';
 
 // Authentication cookie lifetime, in days
 $a->config['system']['auth_cookie_lifetime'] = 7;