}
}
-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 = "") {
-/*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;
-}*/
+ if ($prefix == "") {
+ $a = get_app();
+ $prefix = hash("crc32", $a->get_hostname());
+ }
+ 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'].
$arr['attach'] = ((x($arr,'attach')) ? notags(trim($arr['attach'])) : '');
$arr['app'] = ((x($arr,'app')) ? notags(trim($arr['app'])) : '');
$arr['origin'] = ((x($arr,'origin')) ? intval($arr['origin']) : 0 );
- $arr['guid'] = ((x($arr,'guid')) ? notags(trim($arr['guid'])) : get_guid(30));
$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['resource-id'] = ((x($arr,'resource-id')) ? trim($arr['resource-id']) : '');
$arr['event-id'] = ((x($arr,'event-id')) ? intval($arr['event-id']) : 0 );