aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzotlabs <mike@macgirvin.com>2016-12-21 23:35:54 -0800
committerzotlabs <mike@macgirvin.com>2016-12-21 23:35:54 -0800
commitf2bfdfdeddea86784ce2d17b3c35e46a1c582b79 (patch)
tree5845446bc4aaf9305e33e8392906f00afd1a027d
parent9d49faca614a08d2414f657619ad56db414c230b (diff)
downloadvolse-hubzilla-f2bfdfdeddea86784ce2d17b3c35e46a1c582b79.tar.gz
volse-hubzilla-f2bfdfdeddea86784ce2d17b3c35e46a1c582b79.tar.bz2
volse-hubzilla-f2bfdfdeddea86784ce2d17b3c35e46a1c582b79.zip
provide separate logging (if configured) for btlogger which is used to catch really subtle issues which don't always leave an audit trail. Similar to dbfail.out, the file btlogger.out (if it exists and is write-able) will only log these unusual situations with backtraces so we can find the culprits.
-rw-r--r--include/bb2diaspora.php5
-rw-r--r--include/connections.php12
-rw-r--r--include/text.php15
3 files changed, 31 insertions, 1 deletions
diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php
index 87a8551ae..1759154f0 100644
--- a/include/bb2diaspora.php
+++ b/include/bb2diaspora.php
@@ -128,6 +128,11 @@ function markdown_to_bb($s, $use_zrl = false) {
$s = str_replace("&#xD;","\r",$s);
$s = str_replace("&#xD;\n&gt;","",$s);
+ if(is_array($s)) {
+ btlogger('markdown_to_bb called with array. ' . print_r($s,true), LOGGER_NORMAL, LOG_WARNING);
+ return '';
+ }
+
$s = html_entity_decode($s,ENT_COMPAT,'UTF-8');
// if empty link text replace with the url
diff --git a/include/connections.php b/include/connections.php
index 44003bc93..31e941e95 100644
--- a/include/connections.php
+++ b/include/connections.php
@@ -634,6 +634,18 @@ function update_vcard($arr,$vcard = null) {
$fn = $arr['fn'];
+
+ // This isn't strictly correct and could be a cause for concern.
+ // 'N' => array_reverse(explode(' ', $fn))
+
+
+ // What we really want is
+ // 'N' => Adams;John;Quincy;Reverend,Dr.;III
+ // which is a very difficult parsing problem especially if you allow
+ // the surname to contain spaces. The only way to be sure to get it
+ // right is to provide a form to input all the various fields and not
+ // try to extract it from the FN.
+
if(! $vcard) {
$vcard = new \Sabre\VObject\Component\VCard([
'FN' => $fn,
diff --git a/include/text.php b/include/text.php
index d6151d8ef..c4fafd8ef 100644
--- a/include/text.php
+++ b/include/text.php
@@ -656,11 +656,24 @@ function logger($msg, $level = LOGGER_NORMAL, $priority = LOG_INFO) {
function btlogger($msg, $level = LOGGER_NORMAL, $priority = LOG_INFO) {
logger($msg, $level, $priority);
+
+ if(file_exists('btlogger.log') && is_writable('btlogger.log')) {
+ $stack = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2);
+ $where = basename($stack[0]['file']) . ':' . $stack[0]['line'] . ':' . $stack[1]['function'] . ': ';
+ $s = datetime_convert() . ':' . log_priority_str($priority) . ':' . session_id() . ':' . $where . $msg . PHP_EOL;
+ @file_put_contents('btlogger.log', $s, FILE_APPEND);
+ }
+
if(version_compare(PHP_VERSION, '5.4.0') >= 0) {
$stack = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
if($stack) {
for($x = 1; $x < count($stack); $x ++) {
- logger('stack: ' . basename($stack[$x]['file']) . ':' . $stack[$x]['line'] . ':' . $stack[$x]['function'] . '()',$level, $priority);
+ $s = 'stack: ' . basename($stack[$x]['file']) . ':' . $stack[$x]['line'] . ':' . $stack[$x]['function'] . '()';
+ logger($s,$level, $priority);
+
+ if(file_exists('btlogger.log') && is_writable('btlogger.log')) {
+ @file_put_contents('btlogger.log', $s, FILE_APPEND);
+ }
}
}
}