aboutsummaryrefslogtreecommitdiff
path: root/doc/bugs/syslog_fails_with_non-ASCII_wikinames.mdwn
blob: 712205b7ac0ec7c41e64929d5139b8f91b9a511d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[[!template  id=gitbranch branch=anarcat/syslog_utf8 author="[[anarcat]]"]]

[[this feature|todo/syslog_should_show_wiki_name]] made it so syslog doesn't work anymore if the site being logged has non-ASCII characters it in.

Specifically, my wiki was named "CⒶTS", and nothing was showing up in syslog. When I changed that to "C@TS", it worked again.

My guess is this sits somewhere here:

[[!format perl """
		return eval {
			Sys::Syslog::syslog($type, "[$config{wikiname}] %s", join(" ", @_));
		};
"""]]

Yet I am not sure how to fix that kind of problem in Perl... --[[anarcat]]

If I remove the "eval" above, I get:

    Error: Wide character in syswrite at /usr/lib/perl/5.14/Sys/Syslog.pm line 485.

I have improved a little the error handling in log_message() so that we see *something* when syslog fails, see the branch documented above. I can also confirm that reverting [[todo/syslog_should_show_wiki_name]] fixes the bug. Finally, I have a unit test that reproduces the problem in git, and a working [[!taglink patch]] for the bug, again in git.