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/history.c 2008-06-23 23:47:44.000000000 +0300
193 +++ nagios-3.0.3-cgi/cgi/history.c 2008-10-11 12:34:44.480657862 +0300
195 get_time_string(&expire_time,date_time,sizeof(date_time),HTTP_DATE_TIME);
196 printf("Expires: %s\r\n",date_time);
198 - printf("Content-type: text/html\r\n\r\n");
199 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
203 --- nagios-3.0.3/cgi/notifications.c 2008-05-19 21:42:27.000000000 +0300
204 +++ nagios-3.0.3-cgi/cgi/notifications.c 2008-10-11 12:34:44.500659016 +0300
206 extern char url_docs_path[MAX_FILENAME_LENGTH];
207 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
209 +extern char *http_charset;
211 extern int log_rotation_method;
215 get_time_string(&expire_time,date_time,(int)sizeof(date_time),HTTP_DATE_TIME);
216 printf("Expires: %s\r\n",date_time);
218 - printf("Content-type: text/html\r\n\r\n");
219 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
223 --- nagios-3.0.3/cgi/outages.c 2008-01-09 19:51:23.000000000 +0200
224 +++ nagios-3.0.3-cgi/cgi/outages.c 2008-10-11 12:34:44.500659016 +0300
226 extern hoststatus *hoststatus_list;
227 extern servicestatus *servicestatus_list;
229 +extern char *http_charset;
231 extern char main_config_file[MAX_FILENAME_LENGTH];
232 extern char url_html_path[MAX_FILENAME_LENGTH];
233 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
235 get_time_string(&expire_time,date_time,(int)sizeof(date_time),HTTP_DATE_TIME);
236 printf("Expires: %s\r\n",date_time);
238 - printf("Content-type: text/html\r\n\r\n");
239 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
243 --- nagios-3.0.3/cgi/showlog.c 2008-01-09 19:51:23.000000000 +0200
244 +++ nagios-3.0.3-cgi/cgi/showlog.c 2008-10-11 12:34:44.500659016 +0300
246 extern char url_images_path[MAX_FILENAME_LENGTH];
247 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
249 +extern char *http_charset;
251 extern int log_rotation_method;
253 extern int enable_splunk_integration;
255 get_time_string(&expire_time,date_time,(int)sizeof(date_time),HTTP_DATE_TIME);
256 printf("Expires: %s\r\n",date_time);
258 - printf("Content-type: text/html\r\n\r\n");
259 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
263 --- nagios-3.0.3/cgi/status.c 2008-06-23 23:47:46.000000000 +0300
264 +++ nagios-3.0.3-cgi/cgi/status.c 2008-10-11 12:34:44.504659246 +0300
266 extern char url_media_path[MAX_FILENAME_LENGTH];
267 extern char log_file[MAX_FILENAME_LENGTH];
269 +extern char *http_charset;
271 extern char *service_critical_sound;
272 extern char *service_warning_sound;
273 extern char *service_unknown_sound;
275 get_time_string(&expire_time,date_time,(int)sizeof(date_time),HTTP_DATE_TIME);
276 printf("Expires: %s\r\n",date_time);
278 - printf("Content-type: text/html\r\n\r\n");
279 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
283 --- nagios-3.0.3/cgi/statusmap.c 2008-05-19 21:42:28.000000000 +0300
284 +++ nagios-3.0.3-cgi/cgi/statusmap.c 2008-10-11 12:34:44.508659477 +0300
286 extern char url_logo_images_path[MAX_FILENAME_LENGTH];
287 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
289 +extern char *http_charset;
291 extern host *host_list;
292 extern hostgroup *hostgroup_list;
293 extern service *service_list;
295 get_time_string(&expire_time,date_time,sizeof(date_time),HTTP_DATE_TIME);
296 printf("Expires: %s\r\n",date_time);
298 - printf("Content-Type: text/html\r\n\r\n");
299 + printf("Content-Type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
303 --- nagios-3.0.3/cgi/statuswml.c 2008-05-19 21:42:28.000000000 +0300
304 +++ nagios-3.0.3-cgi/cgi/statuswml.c 2008-10-11 12:34:44.504659246 +0300
306 extern hoststatus *hoststatus_list;
307 extern servicestatus *servicestatus_list;
309 +extern char *http_charset;
311 extern int enable_notifications;
312 extern int execute_service_checks;
313 extern int nagios_process_state;
315 get_time_string(&expire_time,date_time,(int)sizeof(date_time),HTTP_DATE_TIME);
316 printf("Expires: %s\r\n",date_time);
318 - printf("Content-type: text/vnd.wap.wml\r\n\r\n");
319 + printf("Content-type: text/vnd.wap.wml; charset=\"%s\"\r\n\r\n", http_charset);
321 printf("<?xml version=\"1.0\"?>\n");
322 printf("<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \"http://www.wapforum.org/DTD/wml_1.1.xml\">\n");
323 --- nagios-3.0.3/cgi/statuswrl.c 2007-07-16 19:41:46.000000000 +0300
324 +++ nagios-3.0.3-cgi/cgi/statuswrl.c 2008-10-11 12:34:44.508659477 +0300
326 extern char url_images_path[MAX_FILENAME_LENGTH];
327 extern char url_logo_images_path[MAX_FILENAME_LENGTH];
329 +extern char *http_charset;
331 extern char *statuswrl_include;
333 extern host *host_list;
335 get_time_string(&expire_time,date_time,sizeof(date_time),HTTP_DATE_TIME);
336 printf("Expires: %s\r\n",date_time);
338 - printf("Content-Type: x-world/x-vrml\r\n\r\n");
339 + printf("Content-Type: x-world/x-vrml; charset=\"%s\"\r\n\r\n", http_charset);
343 --- nagios-3.0.3/cgi/summary.c 2008-01-24 04:51:30.000000000 +0200
344 +++ nagios-3.0.3-cgi/cgi/summary.c 2008-10-11 12:34:44.504659246 +0300
346 extern char url_images_path[MAX_FILENAME_LENGTH];
347 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
349 +extern char *http_charset;
351 extern host *host_list;
352 extern hostgroup *hostgroup_list;
353 extern service *service_list;
355 printf("Expires: %s\r\n",date_time);
357 if(output_format==HTML_OUTPUT)
358 - printf("Content-type: text/html\r\n\r\n");
359 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
361 - printf("Content-type: text/plain\r\n\r\n");
362 + printf("Content-type: text/plain; charset=\"%s\"\r\n\r\n", http_charset);
366 --- nagios-3.0.3/cgi/tac.c 2008-02-21 08:17:37.000000000 +0200
367 +++ nagios-3.0.3-cgi/cgi/tac.c 2008-10-11 12:34:44.508659477 +0300
369 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
370 extern char url_media_path[MAX_FILENAME_LENGTH];
372 +extern char *http_charset;
374 extern int refresh_rate;
376 extern char *service_critical_sound;
378 get_time_string(&expire_time,date_time,(int)sizeof(date_time),HTTP_DATE_TIME);
379 printf("Expires: %s\r\n",date_time);
381 - printf("Content-type: text/html\r\n\r\n");
382 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
386 --- nagios-3.0.3/cgi/trends.c 2008-06-23 23:47:46.000000000 +0300
387 +++ nagios-3.0.3-cgi/cgi/trends.c 2008-10-11 12:34:44.512659708 +0300
389 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
390 extern char physical_images_path[MAX_FILENAME_LENGTH];
392 +extern char *http_charset;
394 extern int log_rotation_method;
396 extern host *host_list;
397 @@ -1114,7 +1116,7 @@
398 get_time_string(&expire_time,date_time,sizeof(date_time),HTTP_DATE_TIME);
399 printf("Expires: %s\r\n",date_time);
401 - printf("Content-type: text/html\r\n\r\n");
402 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
406 --- nagios-3.0.3/common/macros.c 2008-06-23 23:47:47.000000000 +0300
407 +++ nagios-3.0.3-cgi/common/macros.c 2008-10-11 12:34:44.468657170 +0300
411 extern char *illegal_output_chars;
412 +extern char *http_charset;
414 extern contact *contact_list;
415 extern contactgroup *contactgroup_list;
416 --- nagios-3.0.3/include/cgiutils.h.in 2007-11-11 01:34:26.000000000 +0200
417 +++ nagios-3.0.3-cgi/include/cgiutils.h.in 2008-10-11 12:34:44.468657170 +0300
419 #define LIFO_ERROR_FILE 2
420 #define LIFO_ERROR_DATA 3
422 +/************************** HTTP CHARSET ****************************/
424 +#define DEFAULT_HTTP_CHARSET "iso8859-1"
428 --- nagios-3.0.3/sample-config/cgi.cfg.in 2007-10-07 22:42:52.000000000 +0300
429 +++ nagios-3.0.3-cgi/sample-config/cgi.cfg.in 2008-10-11 12:34:44.472657400 +0300
431 url_html_path=@htmurl@
435 +# This defines charset that is sent with HTTP headers.
437 +http_charset=iso8859-1
440 # CONTEXT-SENSITIVE HELP
441 # This option determines whether or not a context-sensitive