aboutsummaryrefslogtreecommitdiffstats
path: root/mod/import.php
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2014-12-18 19:48:23 -0800
committerfriendica <info@friendica.com>2014-12-18 19:48:23 -0800
commitab2d11b37ee2a568fcbe04a155131a3545ccab80 (patch)
treec17df56bd112789673f66593b3e7875b7a990e7d /mod/import.php
parentfaf1f672df1f0465d703cfa9973af90ba92d4ccf (diff)
downloadvolse-hubzilla-ab2d11b37ee2a568fcbe04a155131a3545ccab80.tar.gz
volse-hubzilla-ab2d11b37ee2a568fcbe04a155131a3545ccab80.tar.bz2
volse-hubzilla-ab2d11b37ee2a568fcbe04a155131a3545ccab80.zip
mod/import: try ten times to create a unique webbie if the chosen one is in use.
Diffstat (limited to 'mod/import.php')
-rw-r--r--mod/import.php30
1 files changed, 27 insertions, 3 deletions
diff --git a/mod/import.php b/mod/import.php
index 6cb3767a6..c9a4edb67 100644
--- a/mod/import.php
+++ b/mod/import.php
@@ -101,9 +101,33 @@ function import_post(&$a) {
// We should probably also verify the hash
if($r) {
- logger('mod_import: duplicate channel. ', print_r($channel,true));
- notice( t('Cannot create a duplicate channel identifier on this system. Import failed.') . EOL);
- return;
+ if($r[0]['channel_guid'] === $channel['channel_guid'] || $r[0]['channel_hash'] === $channel['channel_hash']) {
+ logger('mod_import: duplicate channel. ', print_r($channel,true));
+ notice( t('Cannot create a duplicate channel identifier on this system. Import failed.') . EOL);
+ return;
+ }
+ else {
+ // try at most ten times to generate a unique address.
+ $x = 0;
+ $found_unique = false;
+ do {
+ $tmp = $channel['channel_address'] . mt_rand(1000,9999);
+ $r = q("select * from channel where channel_address = '%s' limit 1",
+ dbesc($tmp)
+ );
+ if(! $r) {
+ $channel['channel_address'] = $tmp;
+ $found_unique = true;
+ break;
+ }
+ $x ++;
+ } while ($x < 10);
+ if(! $found_unique) {
+ logger('mod_import: duplicate channel. randomisation failed.', print_r($channel,true));
+ notice( t('Unable to create a unique channel address. Import failed.') . EOL);
+ return;
+ }
+ }
}
unset($channel['channel_id']);