1 --- nagios-3.0.3/base/config.c 2008-04-13 21:34:27.000000000 +0300
2 +++ nagios-3.0.3-cgi/base/config.c 2008-10-11 12:34:44.464656939 +0300
5 extern char *illegal_object_chars;
6 extern char *illegal_output_chars;
7 +extern char *http_charset;
9 extern int use_regexp_matches;
10 extern int use_true_regexp_matching;
12 else if(!strcmp(variable,"illegal_macro_output_chars"))
13 illegal_output_chars=(char *)strdup(value);
15 + else if(!strcmp(variable,"http_charset"))
16 + http_charset=(char *)strdup(value);
18 else if(!strcmp(variable,"broker_module")){
19 modptr=strtok(value," \n");
20 --- nagios-3.0.3/base/nagios.c 2008-06-25 21:16:30.000000000 +0300
21 +++ nagios-3.0.3-cgi/base/nagios.c 2008-10-11 12:34:44.464656939 +0300
24 char *illegal_object_chars=NULL;
25 char *illegal_output_chars=NULL;
26 +char *http_charset=NULL;
28 int use_regexp_matches=FALSE;
29 int use_true_regexp_matching=FALSE;
30 --- nagios-3.0.3/base/utils.c 2008-06-23 23:47:41.000000000 +0300
31 +++ nagios-3.0.3-cgi/base/utils.c 2008-10-11 12:34:44.468657170 +0300
34 extern char *illegal_object_chars;
35 extern char *illegal_output_chars;
36 +extern char *http_charset;
38 extern int use_regexp_matches;
39 extern int use_true_regexp_matching;
41 my_free(illegal_object_chars);
42 my_free(illegal_output_chars);
44 + /* free http charset variable */
45 + my_free(http_charset);
47 /* free nagios user and group */
49 my_free(nagios_group);
50 --- nagios-3.0.3/cgi/avail.c 2008-06-23 23:47:42.000000000 +0300
51 +++ nagios-3.0.3-cgi/cgi/avail.c 2008-10-11 12:34:44.496658785 +0300
53 extern char url_images_path[MAX_FILENAME_LENGTH];
54 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
56 +extern char *http_charset;
58 extern host *host_list;
59 extern hostgroup *hostgroup_list;
60 extern servicegroup *servicegroup_list;
62 printf("Expires: %s\r\n",date_time);
64 if(output_format==HTML_OUTPUT)
65 - printf("Content-type: text/html\r\n\r\n");
66 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
68 - printf("Content-type: text/plain\r\n\r\n");
69 + printf("Content-type: text/plain; charset=\"%s\"\r\n\r\n", http_charset);
73 --- nagios-3.0.3/cgi/cgiutils.c 2008-06-23 23:47:44.000000000 +0300
74 +++ nagios-3.0.3-cgi/cgi/cgiutils.c 2008-10-11 12:34:44.472657400 +0300
76 char *statuswrl_include=NULL;
78 char *illegal_output_chars=NULL;
79 +char *http_charset=NULL;
81 char *notes_url_target=NULL;
82 char *action_url_target=NULL;
84 host_unreachable_sound=NULL;
87 + my_free(http_charset);
88 + http_charset = strdup(DEFAULT_HTTP_CHARSET);
90 statusmap_background_image=NULL;
91 statuswrl_include=NULL;
94 else if(!strcmp(var,"illegal_macro_output_chars"))
95 illegal_output_chars=strdup(val);
97 + else if(!strcmp(var,"http_charset"))
98 + http_charset=strdup(val);
100 else if(!strcmp(var,"notes_url_target"))
101 notes_url_target=strdup(val);
103 --- nagios-3.0.3/cgi/cmd.c 2008-05-19 21:42:26.000000000 +0300
104 +++ nagios-3.0.3-cgi/cgi/cmd.c 2008-10-11 12:34:44.496658785 +0300
107 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
109 +extern char *http_charset;
111 extern int nagios_process_state;
113 extern int check_external_commands;
116 if(content_type==WML_CONTENT){
118 - printf("Content-type: text/vnd.wap.wml\r\n\r\n");
119 + printf("Content-type: text/vnd.wap.wml; charset=\"%s\"\r\n\r\n", http_charset);
121 printf("<?xml version=\"1.0\"?>\n");
122 printf("<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \"http://www.wapforum.org/DTD/wml_1.1.xml\">\n");
127 - printf("Content-type: text/html\r\n\r\n");
128 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
132 --- nagios-3.0.3/cgi/config.c 2008-04-13 21:34:27.000000000 +0300
133 +++ nagios-3.0.3-cgi/cgi/config.c 2008-10-11 12:34:44.496658785 +0300
135 extern char url_logo_images_path[MAX_FILENAME_LENGTH];
136 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
138 +extern char *http_charset;
140 extern host *host_list;
141 extern service *service_list;
142 extern hostgroup *hostgroup_list;
144 printf("Pragma: no-cache\r\n");
145 printf("Last-Modified: %s\r\n",date_time);
146 printf("Expires: %s\r\n",date_time);
147 - printf("Content-type: text/html\r\n\r\n");
148 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
152 --- nagios-3.0.3/cgi/extinfo.c 2008-01-24 04:51:30.000000000 +0200
153 +++ nagios-3.0.3-cgi/cgi/extinfo.c 2008-10-11 12:34:44.500659016 +0300
155 extern int nagios_process_state;
156 extern int refresh_rate;
158 +extern char *http_charset;
160 extern time_t program_start;
161 extern int nagios_pid;
162 extern int daemon_mode;
164 get_time_string(&expire_time,date_time,(int)sizeof(date_time),HTTP_DATE_TIME);
165 printf("Expires: %s\r\n",date_time);
167 - printf("Content-type: text/html\r\n\r\n");
168 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
172 --- nagios-3.0.3/cgi/histogram.c 2008-05-19 21:42:26.000000000 +0300
173 +++ nagios-3.0.3-cgi/cgi/histogram.c 2008-10-11 12:34:44.512659708 +0300
175 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
176 extern char physical_images_path[MAX_FILENAME_LENGTH];
178 +extern char *http_charset;
180 extern int log_rotation_method;
182 extern host *host_list;
184 get_time_string(&expire_time,date_time,sizeof(date_time),HTTP_DATE_TIME);
185 printf("Expires: %s\r\n",date_time);
187 - printf("Content-type: text/html\r\n\r\n");
188 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
192 --- nagios-3.0.3-cgi/cgi/history.c 2008-10-11 12:34:44.480657862 +0300
193 +++ nagios-3.0.3/cgi/history.c 2008-10-11 12:38:12.164637148 +0300
195 extern char url_images_path[MAX_FILENAME_LENGTH];
196 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
198 +extern char *http_charset;
200 extern int log_rotation_method;
202 extern int enable_splunk_integration;
204 get_time_string(&expire_time,date_time,sizeof(date_time),HTTP_DATE_TIME);
205 printf("Expires: %s\r\n",date_time);
207 - printf("Content-type: text/html\r\n\r\n");
208 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
212 --- nagios-3.0.3/cgi/notifications.c 2008-05-19 21:42:27.000000000 +0300
213 +++ nagios-3.0.3-cgi/cgi/notifications.c 2008-10-11 12:34:44.500659016 +0300
215 extern char url_docs_path[MAX_FILENAME_LENGTH];
216 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
218 +extern char *http_charset;
220 extern int log_rotation_method;
224 get_time_string(&expire_time,date_time,(int)sizeof(date_time),HTTP_DATE_TIME);
225 printf("Expires: %s\r\n",date_time);
227 - printf("Content-type: text/html\r\n\r\n");
228 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
232 --- nagios-3.0.3/cgi/outages.c 2008-01-09 19:51:23.000000000 +0200
233 +++ nagios-3.0.3-cgi/cgi/outages.c 2008-10-11 12:34:44.500659016 +0300
235 extern hoststatus *hoststatus_list;
236 extern servicestatus *servicestatus_list;
238 +extern char *http_charset;
240 extern char main_config_file[MAX_FILENAME_LENGTH];
241 extern char url_html_path[MAX_FILENAME_LENGTH];
242 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
244 get_time_string(&expire_time,date_time,(int)sizeof(date_time),HTTP_DATE_TIME);
245 printf("Expires: %s\r\n",date_time);
247 - printf("Content-type: text/html\r\n\r\n");
248 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
252 --- nagios-3.0.3/cgi/showlog.c 2008-01-09 19:51:23.000000000 +0200
253 +++ nagios-3.0.3-cgi/cgi/showlog.c 2008-10-11 12:34:44.500659016 +0300
255 extern char url_images_path[MAX_FILENAME_LENGTH];
256 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
258 +extern char *http_charset;
260 extern int log_rotation_method;
262 extern int enable_splunk_integration;
264 get_time_string(&expire_time,date_time,(int)sizeof(date_time),HTTP_DATE_TIME);
265 printf("Expires: %s\r\n",date_time);
267 - printf("Content-type: text/html\r\n\r\n");
268 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
272 --- nagios-3.0.3/cgi/status.c 2008-06-23 23:47:46.000000000 +0300
273 +++ nagios-3.0.3-cgi/cgi/status.c 2008-10-11 12:34:44.504659246 +0300
275 extern char url_media_path[MAX_FILENAME_LENGTH];
276 extern char log_file[MAX_FILENAME_LENGTH];
278 +extern char *http_charset;
280 extern char *service_critical_sound;
281 extern char *service_warning_sound;
282 extern char *service_unknown_sound;
284 get_time_string(&expire_time,date_time,(int)sizeof(date_time),HTTP_DATE_TIME);
285 printf("Expires: %s\r\n",date_time);
287 - printf("Content-type: text/html\r\n\r\n");
288 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
292 --- nagios-3.0.3/cgi/statusmap.c 2008-05-19 21:42:28.000000000 +0300
293 +++ nagios-3.0.3-cgi/cgi/statusmap.c 2008-10-11 12:34:44.508659477 +0300
295 extern char url_logo_images_path[MAX_FILENAME_LENGTH];
296 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
298 +extern char *http_charset;
300 extern host *host_list;
301 extern hostgroup *hostgroup_list;
302 extern service *service_list;
304 get_time_string(&expire_time,date_time,sizeof(date_time),HTTP_DATE_TIME);
305 printf("Expires: %s\r\n",date_time);
307 - printf("Content-Type: text/html\r\n\r\n");
308 + printf("Content-Type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
312 --- nagios-3.0.3/cgi/statuswml.c 2008-05-19 21:42:28.000000000 +0300
313 +++ nagios-3.0.3-cgi/cgi/statuswml.c 2008-10-11 12:34:44.504659246 +0300
315 extern hoststatus *hoststatus_list;
316 extern servicestatus *servicestatus_list;
318 +extern char *http_charset;
320 extern int enable_notifications;
321 extern int execute_service_checks;
322 extern int nagios_process_state;
324 get_time_string(&expire_time,date_time,(int)sizeof(date_time),HTTP_DATE_TIME);
325 printf("Expires: %s\r\n",date_time);
327 - printf("Content-type: text/vnd.wap.wml\r\n\r\n");
328 + printf("Content-type: text/vnd.wap.wml; charset=\"%s\"\r\n\r\n", http_charset);
330 printf("<?xml version=\"1.0\"?>\n");
331 printf("<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \"http://www.wapforum.org/DTD/wml_1.1.xml\">\n");
332 --- nagios-3.0.3/cgi/statuswrl.c 2007-07-16 19:41:46.000000000 +0300
333 +++ nagios-3.0.3-cgi/cgi/statuswrl.c 2008-10-11 12:34:44.508659477 +0300
335 extern char url_images_path[MAX_FILENAME_LENGTH];
336 extern char url_logo_images_path[MAX_FILENAME_LENGTH];
338 +extern char *http_charset;
340 extern char *statuswrl_include;
342 extern host *host_list;
344 get_time_string(&expire_time,date_time,sizeof(date_time),HTTP_DATE_TIME);
345 printf("Expires: %s\r\n",date_time);
347 - printf("Content-Type: x-world/x-vrml\r\n\r\n");
348 + printf("Content-Type: x-world/x-vrml; charset=\"%s\"\r\n\r\n", http_charset);
352 --- nagios-3.0.3/cgi/summary.c 2008-01-24 04:51:30.000000000 +0200
353 +++ nagios-3.0.3-cgi/cgi/summary.c 2008-10-11 12:34:44.504659246 +0300
355 extern char url_images_path[MAX_FILENAME_LENGTH];
356 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
358 +extern char *http_charset;
360 extern host *host_list;
361 extern hostgroup *hostgroup_list;
362 extern service *service_list;
364 printf("Expires: %s\r\n",date_time);
366 if(output_format==HTML_OUTPUT)
367 - printf("Content-type: text/html\r\n\r\n");
368 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
370 - printf("Content-type: text/plain\r\n\r\n");
371 + printf("Content-type: text/plain; charset=\"%s\"\r\n\r\n", http_charset);
375 --- nagios-3.0.3/cgi/tac.c 2008-02-21 08:17:37.000000000 +0200
376 +++ nagios-3.0.3-cgi/cgi/tac.c 2008-10-11 12:34:44.508659477 +0300
378 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
379 extern char url_media_path[MAX_FILENAME_LENGTH];
381 +extern char *http_charset;
383 extern int refresh_rate;
385 extern char *service_critical_sound;
387 get_time_string(&expire_time,date_time,(int)sizeof(date_time),HTTP_DATE_TIME);
388 printf("Expires: %s\r\n",date_time);
390 - printf("Content-type: text/html\r\n\r\n");
391 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
395 --- nagios-3.0.3/cgi/trends.c 2008-06-23 23:47:46.000000000 +0300
396 +++ nagios-3.0.3-cgi/cgi/trends.c 2008-10-11 12:34:44.512659708 +0300
398 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
399 extern char physical_images_path[MAX_FILENAME_LENGTH];
401 +extern char *http_charset;
403 extern int log_rotation_method;
405 extern host *host_list;
406 @@ -1114,7 +1116,7 @@
407 get_time_string(&expire_time,date_time,sizeof(date_time),HTTP_DATE_TIME);
408 printf("Expires: %s\r\n",date_time);
410 - printf("Content-type: text/html\r\n\r\n");
411 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
415 --- nagios-3.0.3/common/macros.c 2008-06-23 23:47:47.000000000 +0300
416 +++ nagios-3.0.3-cgi/common/macros.c 2008-10-11 12:34:44.468657170 +0300
420 extern char *illegal_output_chars;
421 +extern char *http_charset;
423 extern contact *contact_list;
424 extern contactgroup *contactgroup_list;
425 --- nagios-3.0.3/include/cgiutils.h.in 2007-11-11 01:34:26.000000000 +0200
426 +++ nagios-3.0.3-cgi/include/cgiutils.h.in 2008-10-11 12:34:44.468657170 +0300
428 #define LIFO_ERROR_FILE 2
429 #define LIFO_ERROR_DATA 3
431 +/************************** HTTP CHARSET ****************************/
433 +#define DEFAULT_HTTP_CHARSET "iso8859-1"
437 --- nagios-3.0.3/sample-config/cgi.cfg.in 2007-10-07 22:42:52.000000000 +0300
438 +++ nagios-3.0.3-cgi/sample-config/cgi.cfg.in 2008-10-11 12:34:44.472657400 +0300
440 url_html_path=@htmurl@
444 +# This defines charset that is sent with HTTP headers.
446 +http_charset=iso8859-1
449 # CONTEXT-SENSITIVE HELP
450 # This option determines whether or not a context-sensitive