diff options
author | friendica <info@friendica.com> | 2014-12-18 19:48:23 -0800 |
---|---|---|
committer | friendica <info@friendica.com> | 2014-12-18 19:48:23 -0800 |
commit | ab2d11b37ee2a568fcbe04a155131a3545ccab80 (patch) | |
tree | c17df56bd112789673f66593b3e7875b7a990e7d /mod/import.php | |
parent | faf1f672df1f0465d703cfa9973af90ba92d4ccf (diff) | |
download | volse-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.php | 30 |
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']); |