2 https://git.icinga.org/?p=icinga-core.git;a=commit;h=82c07167e482d0936f18f2763a342b78af0b618e
3 https://dev.icinga.org/issues/1002
6 http://tracker.nagios.org/view.php?id=182
8 --- nagios-3.4.1/cgi/avail.c~ 2012-05-24 17:08:24.000000000 +0300
9 +++ nagios-3.4.1/cgi/avail.c 2012-05-24 17:09:10.130997383 +0300
11 extern char url_images_path[MAX_FILENAME_LENGTH];
12 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
14 +extern char *http_charset;
16 extern host *host_list;
17 extern hostgroup *hostgroup_list;
18 extern servicegroup *servicegroup_list;
20 printf("Expires: %s\r\n", date_time);
22 if(output_format == HTML_OUTPUT)
23 - printf("Content-type: text/html\r\n\r\n");
24 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
26 - printf("Content-type: text/csv\r\n\r\n");
27 + printf("Content-type: text/csv; charset=\"%s\"\r\n\r\n", http_charset);
31 --- nagios-3.2.0/cgi/cgiutils.c 2009-09-11 16:14:43.130251761 +0300
32 +++ nagios-3.2.0/cgi/cgiutils.c 2009-09-15 14:46:13.332409409 +0300
34 char *statuswrl_include = NULL;
36 char *illegal_output_chars = NULL;
37 +char *http_charset = NULL;
39 char *notes_url_target = NULL;
40 char *action_url_target = NULL;
42 host_unreachable_sound = NULL;
45 + my_free(http_charset);
46 + http_charset = strdup(DEFAULT_HTTP_CHARSET);
48 statusmap_background_image = NULL;
49 color_transparency_index_r = 255;;
52 else if(!strcmp(var, "illegal_macro_output_chars"))
53 illegal_output_chars = strdup(val);
55 + else if(!strcmp(var, "http_charset"))
56 + http_charset = strdup(val);
58 else if(!strcmp(var, "notes_url_target"))
59 notes_url_target = strdup(val);
61 --- nagios-3.0.3/cgi/cmd.c 2008-05-19 21:42:26.000000000 +0300
62 +++ nagios-3.0.3-cgi/cgi/cmd.c 2008-10-11 12:34:44.496658785 +0300
65 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
67 +extern char *http_charset;
69 extern int nagios_process_state;
71 extern int check_external_commands;
74 if(content_type==WML_CONTENT){
76 - printf("Content-type: text/vnd.wap.wml\r\n\r\n");
77 + printf("Content-type: text/vnd.wap.wml; charset=\"%s\"\r\n\r\n", http_charset);
79 printf("<?xml version=\"1.0\"?>\n");
80 printf("<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \"http://www.wapforum.org/DTD/wml_1.1.xml\">\n");
85 - printf("Content-type: text/html\r\n\r\n");
86 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
90 --- nagios-3.0.3/cgi/config.c 2008-04-13 21:34:27.000000000 +0300
91 +++ nagios-3.0.3-cgi/cgi/config.c 2008-10-11 12:34:44.496658785 +0300
93 extern char url_logo_images_path[MAX_FILENAME_LENGTH];
94 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
96 +extern char *http_charset;
98 extern host *host_list;
99 extern service *service_list;
100 extern hostgroup *hostgroup_list;
102 printf("Pragma: no-cache\r\n");
103 printf("Last-Modified: %s\r\n", date_time);
104 printf("Expires: %s\r\n", date_time);
105 - printf("Content-type: text/html\r\n\r\n");
106 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
110 --- nagios-3.0.3/cgi/extinfo.c 2008-01-24 04:51:30.000000000 +0200
111 +++ nagios-3.0.3-cgi/cgi/extinfo.c 2008-10-11 12:34:44.500659016 +0300
113 extern int nagios_process_state;
114 extern int refresh_rate;
116 +extern char *http_charset;
118 extern time_t program_start;
119 extern int nagios_pid;
120 extern int daemon_mode;
122 get_time_string(&expire_time,date_time,(int)sizeof(date_time),HTTP_DATE_TIME);
123 printf("Expires: %s\r\n",date_time);
125 - printf("Content-type: text/html\r\n\r\n");
126 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
130 --- nagios-3.0.3/cgi/histogram.c 2008-05-19 21:42:26.000000000 +0300
131 +++ nagios-3.0.3-cgi/cgi/histogram.c 2008-10-11 12:34:44.512659708 +0300
133 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
134 extern char physical_images_path[MAX_FILENAME_LENGTH];
136 +extern char *http_charset;
138 extern int log_rotation_method;
140 extern host *host_list;
142 get_time_string(&expire_time,date_time,sizeof(date_time),HTTP_DATE_TIME);
143 printf("Expires: %s\r\n",date_time);
145 - printf("Content-type: text/html\r\n\r\n");
146 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
150 --- nagios-3.0.3-cgi/cgi/history.c 2008-10-11 12:34:44.480657862 +0300
151 +++ nagios-3.0.3/cgi/history.c 2008-10-11 12:38:12.164637148 +0300
153 extern char url_images_path[MAX_FILENAME_LENGTH];
154 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
156 +extern char *http_charset;
158 extern int log_rotation_method;
160 extern int enable_splunk_integration;
162 get_time_string(&expire_time,date_time,sizeof(date_time),HTTP_DATE_TIME);
163 printf("Expires: %s\r\n",date_time);
165 - printf("Content-type: text/html\r\n\r\n");
166 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
170 --- nagios-3.0.3/cgi/notifications.c 2008-05-19 21:42:27.000000000 +0300
171 +++ nagios-3.0.3-cgi/cgi/notifications.c 2008-10-11 12:34:44.500659016 +0300
173 extern char url_docs_path[MAX_FILENAME_LENGTH];
174 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
176 +extern char *http_charset;
178 extern int log_rotation_method;
182 get_time_string(&expire_time,date_time,(int)sizeof(date_time),HTTP_DATE_TIME);
183 printf("Expires: %s\r\n",date_time);
185 - printf("Content-type: text/html\r\n\r\n");
186 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
190 --- nagios-3.0.3/cgi/outages.c 2008-01-09 19:51:23.000000000 +0200
191 +++ nagios-3.0.3-cgi/cgi/outages.c 2008-10-11 12:34:44.500659016 +0300
193 extern hoststatus *hoststatus_list;
194 extern servicestatus *servicestatus_list;
196 +extern char *http_charset;
198 extern char main_config_file[MAX_FILENAME_LENGTH];
199 extern char url_html_path[MAX_FILENAME_LENGTH];
200 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
202 get_time_string(&expire_time,date_time,(int)sizeof(date_time),HTTP_DATE_TIME);
203 printf("Expires: %s\r\n",date_time);
205 - printf("Content-type: text/html\r\n\r\n");
206 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
210 --- nagios-3.0.3/cgi/showlog.c 2008-01-09 19:51:23.000000000 +0200
211 +++ nagios-3.0.3-cgi/cgi/showlog.c 2008-10-11 12:34:44.500659016 +0300
213 extern char url_images_path[MAX_FILENAME_LENGTH];
214 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
216 +extern char *http_charset;
218 extern int log_rotation_method;
220 extern int enable_splunk_integration;
222 get_time_string(&expire_time,date_time,(int)sizeof(date_time),HTTP_DATE_TIME);
223 printf("Expires: %s\r\n",date_time);
225 - printf("Content-type: text/html\r\n\r\n");
226 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
230 --- nagios-3.0.3/cgi/status.c 2008-06-23 23:47:46.000000000 +0300
231 +++ nagios-3.0.3-cgi/cgi/status.c 2008-10-11 12:34:44.504659246 +0300
233 extern char url_media_path[MAX_FILENAME_LENGTH];
234 extern char log_file[MAX_FILENAME_LENGTH];
236 +extern char *http_charset;
238 extern char *service_critical_sound;
239 extern char *service_warning_sound;
240 extern char *service_unknown_sound;
242 get_time_string(&expire_time,date_time,(int)sizeof(date_time),HTTP_DATE_TIME);
243 printf("Expires: %s\r\n",date_time);
245 - printf("Content-type: text/html\r\n\r\n");
246 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
250 --- nagios-3.0.3/cgi/statusmap.c 2008-05-19 21:42:28.000000000 +0300
251 +++ nagios-3.0.3-cgi/cgi/statusmap.c 2008-10-11 12:34:44.508659477 +0300
253 extern char url_logo_images_path[MAX_FILENAME_LENGTH];
254 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
256 +extern char *http_charset;
258 extern host *host_list;
259 extern hostgroup *hostgroup_list;
260 extern service *service_list;
262 get_time_string(&expire_time,date_time,sizeof(date_time),HTTP_DATE_TIME);
263 printf("Expires: %s\r\n",date_time);
265 - printf("Content-Type: text/html\r\n\r\n");
266 + printf("Content-Type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
270 --- nagios-3.0.3/cgi/statuswml.c 2008-05-19 21:42:28.000000000 +0300
271 +++ nagios-3.0.3-cgi/cgi/statuswml.c 2008-10-11 12:34:44.504659246 +0300
274 extern char *ping_syntax;
276 +extern char *http_charset;
278 #define DISPLAY_HOST 0
279 #define DISPLAY_SERVICE 1
280 #define DISPLAY_HOSTGROUP 2
282 get_time_string(&expire_time,date_time,(int)sizeof(date_time),HTTP_DATE_TIME);
283 printf("Expires: %s\r\n",date_time);
285 - printf("Content-type: text/vnd.wap.wml\r\n\r\n");
286 + printf("Content-type: text/vnd.wap.wml; charset=\"%s\"\r\n\r\n", http_charset);
288 printf("<?xml version=\"1.0\"?>\n");
289 printf("<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \"http://www.wapforum.org/DTD/wml_1.1.xml\">\n");
290 --- nagios-3.0.3/cgi/statuswrl.c 2007-07-16 19:41:46.000000000 +0300
291 +++ nagios-3.0.3-cgi/cgi/statuswrl.c 2008-10-11 12:34:44.508659477 +0300
293 extern char url_images_path[MAX_FILENAME_LENGTH];
294 extern char url_logo_images_path[MAX_FILENAME_LENGTH];
296 +extern char *http_charset;
298 extern char *statuswrl_include;
300 extern host *host_list;
302 get_time_string(&expire_time,date_time,sizeof(date_time),HTTP_DATE_TIME);
303 printf("Expires: %s\r\n",date_time);
305 - printf("Content-Type: x-world/x-vrml\r\n\r\n");
306 + printf("Content-Type: x-world/x-vrml; charset=\"%s\"\r\n\r\n", http_charset);
310 --- nagios-3.0.3/cgi/summary.c 2008-01-24 04:51:30.000000000 +0200
311 +++ nagios-3.0.3-cgi/cgi/summary.c 2008-10-11 12:34:44.504659246 +0300
313 extern char url_images_path[MAX_FILENAME_LENGTH];
314 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
316 +extern char *http_charset;
318 extern host *host_list;
319 extern hostgroup *hostgroup_list;
320 extern service *service_list;
322 printf("Expires: %s\r\n", date_time);
324 if(output_format == HTML_OUTPUT)
325 - printf("Content-type: text/html\r\n\r\n");
326 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
328 - printf("Content-type: text/plain\r\n\r\n");
329 + printf("Content-type: text/plain; charset=\"%s\"\r\n\r\n", http_charset);
333 --- nagios-3.0.3/cgi/tac.c 2008-02-21 08:17:37.000000000 +0200
334 +++ nagios-3.0.3-cgi/cgi/tac.c 2008-10-11 12:34:44.508659477 +0300
336 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
337 extern char url_media_path[MAX_FILENAME_LENGTH];
339 +extern char *http_charset;
341 extern int refresh_rate;
343 extern char *service_critical_sound;
345 get_time_string(&expire_time,date_time,(int)sizeof(date_time),HTTP_DATE_TIME);
346 printf("Expires: %s\r\n",date_time);
348 - printf("Content-type: text/html\r\n\r\n");
349 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
353 --- nagios-3.0.3/cgi/trends.c 2008-06-23 23:47:46.000000000 +0300
354 +++ nagios-3.0.3-cgi/cgi/trends.c 2008-10-11 12:34:44.512659708 +0300
356 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
357 extern char physical_images_path[MAX_FILENAME_LENGTH];
359 +extern char *http_charset;
361 extern int log_rotation_method;
363 extern host *host_list;
364 @@ -1114,7 +1116,7 @@
365 get_time_string(&expire_time,date_time,sizeof(date_time),HTTP_DATE_TIME);
366 printf("Expires: %s\r\n",date_time);
368 - printf("Content-type: text/html\r\n\r\n");
369 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
373 --- nagios-3.0.3/include/cgiutils.h 2007-11-11 01:34:26.000000000 +0200
374 +++ nagios-3.0.3-cgi/include/cgiutils.h 2008-10-11 12:34:44.468657170 +0300
376 #define LIFO_ERROR_FILE 2
377 #define LIFO_ERROR_DATA 3
379 +/************************** HTTP CHARSET ****************************/
381 +#define DEFAULT_HTTP_CHARSET "utf-8"
385 --- nagios-3.0.3/sample-config/cgi.cfg.in 2007-10-07 22:42:52.000000000 +0300
386 +++ nagios-3.0.3-cgi/sample-config/cgi.cfg.in 2008-10-11 12:34:44.472657400 +0300
388 url_html_path=@htmurl@
392 +# This defines charset that is sent with HTTP headers.
397 # CONTEXT-SENSITIVE HELP
398 # This option determines whether or not a context-sensitive