Merge pull request #1820 from annando/1508-random-becomes-guid

Use a guid instead of random bytes for unique data
This commit is contained in:
Tobias Diekershoff 2015-08-14 09:02:00 +02:00
commit e224e12cb9
7 changed files with 29 additions and 23 deletions

View file

@ -113,7 +113,7 @@ function terminate_friendship($user,$self,$contact) {
'$photo' => $self['photo'], '$photo' => $self['photo'],
'$thumb' => $self['thumb'], '$thumb' => $self['thumb'],
'$published' => datetime_convert('UTC','UTC', 'now', ATOM_TIME), '$published' => datetime_convert('UTC','UTC', 'now', ATOM_TIME),
'$item_id' => 'urn:X-dfrn:' . $a->get_hostname() . ':unfollow:' . random_string(), '$item_id' => 'urn:X-dfrn:' . $a->get_hostname() . ':unfollow:' . get_guid(32),
'$title' => '', '$title' => '',
'$type' => 'text', '$type' => 'text',
'$content' => t('stopped following'), '$content' => t('stopped following'),

View file

@ -296,7 +296,7 @@ function new_contact($uid,$url,$interactive = false) {
'$photo' => $a->contact['photo'], '$photo' => $a->contact['photo'],
'$thumb' => $a->contact['thumb'], '$thumb' => $a->contact['thumb'],
'$published' => datetime_convert('UTC','UTC', 'now', ATOM_TIME), '$published' => datetime_convert('UTC','UTC', 'now', ATOM_TIME),
'$item_id' => 'urn:X-dfrn:' . $a->get_hostname() . ':follow:' . random_string(), '$item_id' => 'urn:X-dfrn:' . $a->get_hostname() . ':follow:' . get_guid(32),
'$title' => '', '$title' => '',
'$type' => 'text', '$type' => 'text',
'$content' => t('following'), '$content' => t('following'),

View file

@ -1210,7 +1210,8 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
} }
$arr['wall'] = ((x($arr,'wall')) ? intval($arr['wall']) : 0); $arr['wall'] = ((x($arr,'wall')) ? intval($arr['wall']) : 0);
$arr['uri'] = ((x($arr,'uri')) ? notags(trim($arr['uri'])) : random_string()); $arr['guid'] = ((x($arr,'guid')) ? notags(trim($arr['guid'])) : get_guid(32, $arr['network']));
$arr['uri'] = ((x($arr,'uri')) ? notags(trim($arr['uri'])) : $arr['guid']);
$arr['extid'] = ((x($arr,'extid')) ? notags(trim($arr['extid'])) : ''); $arr['extid'] = ((x($arr,'extid')) ? notags(trim($arr['extid'])) : '');
$arr['author-name'] = ((x($arr,'author-name')) ? notags(trim($arr['author-name'])) : ''); $arr['author-name'] = ((x($arr,'author-name')) ? notags(trim($arr['author-name'])) : '');
$arr['author-link'] = ((x($arr,'author-link')) ? notags(trim($arr['author-link'])) : ''); $arr['author-link'] = ((x($arr,'author-link')) ? notags(trim($arr['author-link'])) : '');
@ -1248,7 +1249,6 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
$arr['app'] = ((x($arr,'app')) ? notags(trim($arr['app'])) : ''); $arr['app'] = ((x($arr,'app')) ? notags(trim($arr['app'])) : '');
$arr['origin'] = ((x($arr,'origin')) ? intval($arr['origin']) : 0 ); $arr['origin'] = ((x($arr,'origin')) ? intval($arr['origin']) : 0 );
$arr['network'] = ((x($arr,'network')) ? trim($arr['network']) : ''); $arr['network'] = ((x($arr,'network')) ? trim($arr['network']) : '');
$arr['guid'] = ((x($arr,'guid')) ? notags(trim($arr['guid'])) : get_guid(32, $arr['network']));
$arr['postopts'] = ((x($arr,'postopts')) ? trim($arr['postopts']) : ''); $arr['postopts'] = ((x($arr,'postopts')) ? trim($arr['postopts']) : '');
$arr['resource-id'] = ((x($arr,'resource-id')) ? trim($arr['resource-id']) : ''); $arr['resource-id'] = ((x($arr,'resource-id')) ? trim($arr['resource-id']) : '');
$arr['event-id'] = ((x($arr,'event-id')) ? intval($arr['event-id']) : 0 ); $arr['event-id'] = ((x($arr,'event-id')) ? intval($arr['event-id']) : 0 );
@ -2968,7 +2968,7 @@ function item_is_remote_self($contact, &$datarray) {
if ($contact['network'] != NETWORK_FEED) { if ($contact['network'] != NETWORK_FEED) {
$datarray["guid"] = get_guid(32); $datarray["guid"] = get_guid(32);
unset($datarray["plink"]); unset($datarray["plink"]);
$datarray["uri"] = item_new_uri($a->get_hostname(),$contact['uid']); $datarray["uri"] = item_new_uri($a->get_hostname(),$contact['uid'], $datarray["guid"]);
$datarray["parent-uri"] = $datarray["uri"]; $datarray["parent-uri"] = $datarray["uri"];
$datarray["extid"] = $contact['network']; $datarray["extid"] = $contact['network'];
$urlpart = parse_url($datarray2['author-link']); $urlpart = parse_url($datarray2['author-link']);

View file

@ -26,6 +26,9 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
return -2; return -2;
} }
$guid = get_guid(32);
$uri = 'urn:X-dfrn:' . $a->get_baseurl() . ':' . local_user() . ':' . $guid;
$convid = 0; $convid = 0;
$reply = false; $reply = false;
@ -42,19 +45,16 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
$convid = $r[0]['convid']; $convid = $r[0]['convid'];
} }
if(! $convid) {
// create a new conversation
$recip_host = substr($contact[0]['url'],strpos($contact[0]['url'],'://')+3); $recip_host = substr($contact[0]['url'],strpos($contact[0]['url'],'://')+3);
$recip_host = substr($recip_host,0,strpos($recip_host,'/')); $recip_host = substr($recip_host,0,strpos($recip_host,'/'));
$recip_handle = (($contact[0]['addr']) ? $contact[0]['addr'] : $contact[0]['nick'] . '@' . $recip_host); $recip_handle = (($contact[0]['addr']) ? $contact[0]['addr'] : $contact[0]['nick'] . '@' . $recip_host);
$sender_handle = $a->user['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3); $sender_handle = $a->user['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3);
$msg_guid = get_guid(32);
$uri = $recip_handle.':'.$msg_guid;
if(! $convid) {
// create a new conversation
$conv_guid = get_guid(32); $conv_guid = get_guid(32);
$convuri = $recip_handle.':'.$conv_guid; $convuri = $recip_handle.':'.$conv_guid;
@ -92,7 +92,7 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
`contact-id`, `title`, `body`, `seen`, `reply`, `replied`, `uri`, `parent-uri`, `created`) `contact-id`, `title`, `body`, `seen`, `reply`, `replied`, `uri`, `parent-uri`, `created`)
VALUES ( %d, '%s', %d, '%s', '%s', '%s', %d, '%s', '%s', %d, %d, %d, '%s', '%s', '%s' )", VALUES ( %d, '%s', %d, '%s', '%s', '%s', %d, '%s', '%s', %d, %d, %d, '%s', '%s', '%s' )",
intval(local_user()), intval(local_user()),
dbesc($msg_guid), dbesc($guid),
intval($convid), intval($convid),
dbesc($me[0]['name']), dbesc($me[0]['name']),
dbesc($me[0]['thumb']), dbesc($me[0]['thumb']),
@ -172,8 +172,8 @@ function send_wallmessage($recipient='', $body='', $subject='', $replyto=''){
if(! strlen($subject)) if(! strlen($subject))
$subject = t('[no subject]'); $subject = t('[no subject]');
$hash = random_string(); $guid = get_guid(32);
$uri = 'urn:X-dfrn:' . $a->get_baseurl() . ':' . local_user() . ':' . $hash ; $uri = 'urn:X-dfrn:' . $a->get_baseurl() . ':' . local_user() . ':' . $guid;
$convid = 0; $convid = 0;
$reply = false; $reply = false;
@ -222,7 +222,7 @@ function send_wallmessage($recipient='', $body='', $subject='', $replyto=''){
`contact-id`, `title`, `body`, `seen`, `reply`, `replied`, `uri`, `parent-uri`, `created`, `unknown`) `contact-id`, `title`, `body`, `seen`, `reply`, `replied`, `uri`, `parent-uri`, `created`, `unknown`)
VALUES ( %d, '%s', %d, '%s', '%s', '%s', %d, '%s', '%s', %d, %d, %d, '%s', '%s', '%s', %d )", VALUES ( %d, '%s', %d, '%s', '%s', '%s', %d, '%s', '%s', %d, %d, %d, '%s', '%s', '%s', %d )",
intval($recipient['uid']), intval($recipient['uid']),
dbesc(get_guid(32)), dbesc($guid),
intval($convid), intval($convid),
dbesc($me['name']), dbesc($me['name']),
dbesc($me['photo']), dbesc($me['photo']),

View file

@ -470,11 +470,17 @@ if(! function_exists('item_new_uri')) {
* @param int $uid * @param int $uid
* @return string * @return string
*/ */
function item_new_uri($hostname,$uid) { function item_new_uri($hostname,$uid, $guid = "") {
do { do {
$dups = false; $dups = false;
$hash = random_string();
if ($guid == "")
$hash = get_guid(32);
else {
$hash = $guid;
$guid = "";
}
$uri = "urn:X-dfrn:" . $hostname . ':' . $uid . ':' . $hash; $uri = "urn:X-dfrn:" . $hostname . ':' . $uid . ':' . $hash;

View file

@ -674,7 +674,7 @@ function item_post(&$a) {
$notify_type = (($parent) ? 'comment-new' : 'wall-new' ); $notify_type = (($parent) ? 'comment-new' : 'wall-new' );
$uri = (($message_id) ? $message_id : item_new_uri($a->get_hostname(),$profile_uid)); $uri = (($message_id) ? $message_id : item_new_uri($a->get_hostname(),$profile_uid, $guid));
// Fallback so that we alway have a thr-parent // Fallback so that we alway have a thr-parent
if(!$thr_parent) if(!$thr_parent)

View file

@ -98,7 +98,7 @@ function wall_attach_post(&$a) {
$filedata = @file_get_contents($src); $filedata = @file_get_contents($src);
$mimetype = z_mime_content_type($filename); $mimetype = z_mime_content_type($filename);
$hash = random_string(); $hash = get_guid(64);
$created = datetime_convert(); $created = datetime_convert();
$r = q("INSERT INTO `attach` ( `uid`, `hash`, `filename`, `filetype`, `filesize`, `data`, `created`, `edited`, `allow_cid`, `allow_gid`,`deny_cid`, `deny_gid` ) $r = q("INSERT INTO `attach` ( `uid`, `hash`, `filename`, `filetype`, `filesize`, `data`, `created`, `edited`, `allow_cid`, `allow_gid`,`deny_cid`, `deny_gid` )
VALUES ( %d, '%s', '%s', '%s', %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ", VALUES ( %d, '%s', '%s', '%s', %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ",