# Stick the notice on the queue
function common_enqueue_notice($notice) {
- foreach (array('jabber', 'omb', 'sms') as $transport) {
+ foreach (array('jabber', 'omb', 'sms', 'public') as $transport) {
$qi = new Queue_item();
$qi->notice_id = $notice->id;
$qi->transport = $transport;
common_log(LOG_ERR, 'Error in sms broadcast for notice ' . $notice->id);
}
}
+ if ($success) {
+ $success = jabber_public_notice($notice);
+ if (!$success) {
+ common_log(LOG_ERR, 'Error in public broadcast for notice ' . $notice->id);
+ }
+ }
// XXX: broadcast notices to other IM
return $success;
}
preg_replace('/\D/', '', $sms);
return $sms;
}
+
+function common_error_handler($errno, $errstr, $errfile, $errline, $errcontext) {
+ switch ($errno) {
+ case E_USER_ERROR:
+ echo "ERROR: [$errno] $errstr ($errfile:$errline)\n";
+ echo " Fatal error on line $errline in file $errfile";
+ echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")\n";
+ echo "Aborting...\n";
+ exit(1);
+ break;
+
+ case E_USER_WARNING:
+ echo "WARNING [$errno] $errstr ($errfile:$errline)\n";
+ break;
+
+ case E_USER_NOTICE:
+ echo "NOTICE [$errno] $errstr ($errfile:$errline)\n";
+ break;
+ }
+
+ /* Don't execute PHP internal error handler */
+ return true;
+}
+
+function common_session_token() {
+ common_ensure_session();
+ if (!array_key_exists('token', $_SESSION)) {
+ $_SESSION['token'] = common_good_rand(64);
+ }
+ return $_SESSION['token'];
+}