foreach($servers AS $server) {
$server = trim($server);
+ $addr = "relay@".str_replace("http://", "", normalise_link($server));
$batch = $server."/receive/public";
- $relais = q("SELECT `batch`, `id`, `name`,`network` FROM `contact` WHERE `uid` = 0 AND `batch` = '%s' LIMIT 1", dbesc($batch));
+ $relais = q("SELECT `batch`, `id`, `name`,`network` FROM `contact` WHERE `uid` = 0 AND `batch` = '%s' AND `addr` = '%s' AND `nurl` = '%s' LIMIT 1",
+ dbesc($batch), dbesc($addr), dbesc(normalise_link($server)));
if (!$relais) {
- $addr = "relay@".str_replace("http://", "", normalise_link($server));
-
$r = q("INSERT INTO `contact` (`uid`, `created`, `name`, `nick`, `addr`, `url`, `nurl`, `batch`, `network`, `rel`, `blocked`, `pending`, `writable`, `name-date`, `uri-date`, `avatar-date`)
VALUES (0, '%s', '%s', 'relay', '%s', '%s', '%s', '%s', '%s', %d, 0, 0, 1, '%s', '%s', '%s')",
datetime_convert(),
logger("delivering to: ".$rr["username"]);
self::dispatch($rr,$msg);
}
- } else
- logger("No subscribers for ".$msg["author"]." ".print_r($msg, true));
+ } else {
+ logger("No subscribers for ".$msg["author"]." ".print_r($msg, true), LOGGER_DEBUG);
+ }
return $message_id;
}
* @return The contact id
*/
private static function contact_by_handle($uid, $handle) {
+
+ // First do a direct search on the contact table
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `addr` = '%s' LIMIT 1",
intval($uid),
dbesc($handle)
);
- if ($r)
+ if (dbm::is_result($r)) {
return $r[0];
+ } else {
+ // We haven't found it?
+ // We use another function for it that will possibly create a contact entry
+ $cid = get_contact($handle, $uid);
+
+ if ($cid > 0) {
+ $r = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1", intval($cid));
+
+ if (dbm::is_result($r)) {
+ return $r[0];
+ }
+ }
+ }
$handle_parts = explode("@", $handle);
$nurl_sql = "%%://".$handle_parts[1]."%%/profile/".$handle_parts[0];
intval($uid),
dbesc($nurl_sql)
);
- if($r)
+ if (dbm::is_result($r)) {
return $r[0];
+ }
+ logger("Haven't found contact for user ".$uid." and handle ".$handle, LOGGER_DEBUG);
return false;
}
dbesc($guid)
);
- if ($r) {
+ if (dbm::is_result($r)) {
logger("message ".$guid." already exists for user ".$uid);
return $r[0]["id"];
}