]> git.mxchange.org Git - friendica.git/commitdiff
Merge pull request #1455 from pztrn/master
authorTobias Diekershoff <tobias.diekershoff@gmx.net>
Sun, 29 Mar 2015 14:05:57 +0000 (16:05 +0200)
committerTobias Diekershoff <tobias.diekershoff@gmx.net>
Sun, 29 Mar 2015 14:05:57 +0000 (16:05 +0200)
Do not attempt to create itemcache directory if it already exist.

1  2 
boot.php

diff --combined boot.php
index 9db210840fd8cfccd0747e55ee17afd09ff2ef13,92ee2a926d76256aeaf66216facb23d0c6ce9e9b..c6cfde0071e7de1921839209982a7af2da0d9247
+++ b/boot.php
@@@ -16,9 -16,9 +16,9 @@@ require_once('include/dbstructure.php')
  
  define ( 'FRIENDICA_PLATFORM',     'Friendica');
  define ( 'FRIENDICA_CODENAME',     'Ginger');
 -define ( 'FRIENDICA_VERSION',      '3.3.3' );
 +define ( 'FRIENDICA_VERSION',      '3.4.0' );
  define ( 'DFRN_PROTOCOL_VERSION',  '2.23'    );
 -define ( 'DB_UPDATE_VERSION',      1178      );
 +define ( 'DB_UPDATE_VERSION',      1182      );
  define ( 'EOL',                    "<br />\r\n"     );
  define ( 'ATOM_TIME',              'Y-m-d\TH:i:s\Z' );
  
@@@ -127,11 -127,6 +127,11 @@@ define ( 'PAGE_FREELOVE',          3 )
  define ( 'PAGE_BLOG',              4 );
  define ( 'PAGE_PRVGROUP',          5 );
  
 +// Type of the community page
 +define ( 'CP_NO_COMMUNITY_PAGE',   -1 );
 +define ( 'CP_USERS_ON_SERVER',     0 );
 +define ( 'CP_GLOBAL_COMMUNITY',    1 );
 +
  /**
   * Network and protocol family types
   */
@@@ -1196,24 -1191,35 +1196,24 @@@ if(! function_exists('check_plugins')) 
        }
  }
  
 -function get_guid($size=16) {
 -      $exists = true; // assume by default that we don't have a unique guid
 -      do {
 -              $prefix = "";
 -              while (strlen($prefix) < ($size - 13))
 -                      $prefix .= mt_rand();
 -
 -              $s = substr(uniqid($prefix), -$size);
 -
 -              $r = q("select id from guid where guid = '%s' limit 1", dbesc($s));
 -              if(! count($r))
 -                      $exists = false;
 -      } while($exists);
 -      q("insert into guid (guid) values ('%s') ", dbesc($s));
 -      return $s;
 -}
 +function get_guid($size=16, $prefix = "") {
 +
 +      if ($prefix == "") {
 +              $a = get_app();
 +              $prefix = hash("crc32", $a->get_hostname());
 +      }
  
 -/*function get_guid($size=16) {
 -      $exists = true; // assume by default that we don't have a unique guid
 -      do {
 -              $s = random_string($size);
 -              $r = q("select id from guid where guid = '%s' limit 1", dbesc($s));
 -              if(! count($r))
 -                      $exists = false;
 -      } while($exists);
 -      q("insert into guid ( guid ) values ( '%s' ) ", dbesc($s));
 -      return $s;
 -}*/
 +      while (strlen($prefix) < ($size - 13))
 +              $prefix .= mt_rand();
  
 +      if ($size >= 24) {
 +              $prefix = substr($prefix, 0, $size - 22);
 +              return(str_replace(".", "", uniqid($prefix, true)));
 +      } else {
 +              $prefix = substr($prefix, 0, $size - 13);
 +              return(uniqid($prefix));
 +      }
 +}
  
  // wrapper for adding a login box. If $register == true provide a registration
  // link. This will most always depend on the value of $a->config['register_policy'].
@@@ -1399,11 -1405,11 +1399,11 @@@ if(! function_exists('get_max_import_si
  if(! function_exists('profile_load')) {
        function profile_load(&$a, $nickname, $profile = 0, $profiledata = array()) {
  
 -              $user = q("select uid from user where nickname = '%s' limit 1",
 +              $user = q("SELECT `uid` FROM `user` WHERE `nickname` = '%s' LIMIT 1",
                        dbesc($nickname)
                );
  
 -              if(! ($user && count($user))) {
 +              if(!$user && count($user) && !count($profiledata)) {
                        logger('profile error: ' . $a->query_string, LOGGER_DEBUG);
                        notice( t('Requested account is not available.') . EOL );
                        $a->error = 404;
                                        intval($profile_int)
                        );
                }
 -              if((! $r) && (!  count($r))) {
 +              if((!$r) && (!count($r))) {
                        $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile`
                                        INNER JOIN `contact` on `contact`.`uid` = `profile`.`uid` INNER JOIN `user` ON `profile`.`uid` = `user`.`uid`
                                        WHERE `user`.`nickname` = '%s' AND `profile`.`is-default` = 1 and `contact`.`self` = 1 LIMIT 1",
                        );
                }
  
 -              if(($r === false) || (! count($r))) {
 +              if(($r === false) || (!count($r)) && !count($profiledata)) {
                        logger('profile error: ' . $a->query_string, LOGGER_DEBUG);
                        notice( t('Requested profile is not available.') . EOL );
                        $a->error = 404;
  
                // fetch user tags if this isn't the default profile
  
 -              if(! $r[0]['is-default']) {
 +              if(!$r[0]['is-default']) {
                        $x = q("select `pub_keywords` from `profile` where uid = %d and `is-default` = 1 limit 1",
                                        intval($r[0]['profile_uid'])
                        );
@@@ -1667,24 -1673,8 +1667,24 @@@ if(! function_exists('profile_sidebar')
  
                if (!$block){
                        $contact_block = contact_block();
 -              }
  
 +                      if(is_array($a->profile) AND !$a->profile['hide-friends']) {
 +                              $r = q("SELECT `gcontact`.`updated` FROM `contact` INNER JOIN `gcontact` WHERE `gcontact`.`nurl` = `contact`.`nurl` AND `self` AND `uid` = %d LIMIT 1",
 +                                      intval($a->profile['uid']));
 +                              if(count($r))
 +                                      $updated =  date("c", strtotime($r[0]['updated']));
 +
 +                              $r = q("SELECT COUNT(*) AS `total` FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 and `pending` = 0 AND `hidden` = 0 AND `archive` = 0
 +                                              AND `network` IN ('%s', '%s', '%s', '')",
 +                                      intval($profile['uid']),
 +                                      dbesc(NETWORK_DFRN),
 +                                      dbesc(NETWORK_DIASPORA),
 +                                      dbesc(NETWORK_OSTATUS)
 +                              );
 +                              if(count($r))
 +                                      $contacts = intval($r[0]['total']);
 +                      }
 +              }
  
                $p = array();
                foreach($profile as $k => $v) {
                        '$homepage' => $homepage,
                        '$about' => $about,
                        '$network' =>  t('Network:'),
 +                      '$contacts' => $contacts,
 +                      '$updated' => $updated,
                        '$diaspora' => $diaspora,
                        '$contact_block' => $contact_block,
                ));
@@@ -2181,20 -2169,6 +2181,20 @@@ function get_my_url() 
  function zrl_init(&$a) {
        $tmp_str = get_my_url();
        if(validate_url($tmp_str)) {
 +
 +              // Is it a DDoS attempt?
 +              // The check fetches the cached value from gprobe to reduce the load for this system
 +              $urlparts = parse_url($tmp_str);
 +
 +              $result = Cache::get("gprobe:".$urlparts["host"]);
 +              if (!is_null($result)) {
 +                      $result = unserialize($result);
 +                      if ($result["network"] == NETWORK_FEED) {
 +                              logger("DDoS attempt detected for ".$urlparts["host"]." by ".$_SERVER["REMOTE_ADDR"].". server data: ".print_r($_SERVER, true), LOGGER_DEBUG);
 +                              return;
 +                      }
 +              }
 +
                proc_run('php','include/gprobe.php',bin2hex($tmp_str));
                $arr = array('zrl' => $tmp_str, 'url' => $a->cmd);
                call_hooks('zrl_init',$arr);
@@@ -2361,7 -2335,9 +2361,9 @@@ function get_itemcachepath() 
  
        if ($temppath != "") {
                $itemcache = $temppath."/itemcache";
-               mkdir($itemcache);
+               if(!file_exists($itemcache) && !is_dir($itemcache)) {
+                       mkdir($itemcache);
+               }
  
                if (is_dir($itemcache) AND is_writable($itemcache)) {
                        set_config("system", "itemcache", $itemcache);