1 --- nagios-3.0.3/cgi/avail.c 2008-06-23 23:47:42.000000000 +0300
2 +++ nagios-3.0.3-cgi/cgi/avail.c 2008-10-11 12:34:44.496658785 +0300
4 extern char url_images_path[MAX_FILENAME_LENGTH];
5 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
7 +extern char *http_charset;
9 extern host *host_list;
10 extern hostgroup *hostgroup_list;
11 extern servicegroup *servicegroup_list;
13 printf("Expires: %s\r\n",date_time);
15 if(output_format==HTML_OUTPUT)
16 - printf("Content-type: text/html\r\n\r\n");
17 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
19 - printf("Content-type: text/plain\r\n\r\n");
20 + printf("Content-type: text/plain; charset=\"%s\"\r\n\r\n", http_charset);
24 --- nagios-3.0.3/cgi/cgiutils.c 2008-06-23 23:47:44.000000000 +0300
25 +++ nagios-3.0.3-cgi/cgi/cgiutils.c 2008-10-11 12:34:44.472657400 +0300
27 char *statuswrl_include=NULL;
29 char *illegal_output_chars=NULL;
30 +char *http_charset=NULL;
32 char *notes_url_target=NULL;
33 char *action_url_target=NULL;
35 host_unreachable_sound=NULL;
38 + my_free(http_charset);
39 + http_charset = strdup(DEFAULT_HTTP_CHARSET);
41 statusmap_background_image=NULL;
42 statuswrl_include=NULL;
45 else if(!strcmp(var,"illegal_macro_output_chars"))
46 illegal_output_chars=strdup(val);
48 + else if(!strcmp(var,"http_charset"))
49 + http_charset=strdup(val);
51 else if(!strcmp(var,"notes_url_target"))
52 notes_url_target=strdup(val);
54 --- nagios-3.0.3/cgi/cmd.c 2008-05-19 21:42:26.000000000 +0300
55 +++ nagios-3.0.3-cgi/cgi/cmd.c 2008-10-11 12:34:44.496658785 +0300
58 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
60 +extern char *http_charset;
62 extern int nagios_process_state;
64 extern int check_external_commands;
67 if(content_type==WML_CONTENT){
69 - printf("Content-type: text/vnd.wap.wml\r\n\r\n");
70 + printf("Content-type: text/vnd.wap.wml; charset=\"%s\"\r\n\r\n", http_charset);
72 printf("<?xml version=\"1.0\"?>\n");
73 printf("<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \"http://www.wapforum.org/DTD/wml_1.1.xml\">\n");
78 - printf("Content-type: text/html\r\n\r\n");
79 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
83 --- nagios-3.0.3/cgi/config.c 2008-04-13 21:34:27.000000000 +0300
84 +++ nagios-3.0.3-cgi/cgi/config.c 2008-10-11 12:34:44.496658785 +0300
86 extern char url_logo_images_path[MAX_FILENAME_LENGTH];
87 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
89 +extern char *http_charset;
91 extern host *host_list;
92 extern service *service_list;
93 extern hostgroup *hostgroup_list;
95 printf("Pragma: no-cache\r\n");
96 printf("Last-Modified: %s\r\n",date_time);
97 printf("Expires: %s\r\n",date_time);
98 - printf("Content-type: text/html\r\n\r\n");
99 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
103 --- nagios-3.0.3/cgi/extinfo.c 2008-01-24 04:51:30.000000000 +0200
104 +++ nagios-3.0.3-cgi/cgi/extinfo.c 2008-10-11 12:34:44.500659016 +0300
106 extern int nagios_process_state;
107 extern int refresh_rate;
109 +extern char *http_charset;
111 extern time_t program_start;
112 extern int nagios_pid;
113 extern int daemon_mode;
115 get_time_string(&expire_time,date_time,(int)sizeof(date_time),HTTP_DATE_TIME);
116 printf("Expires: %s\r\n",date_time);
118 - printf("Content-type: text/html\r\n\r\n");
119 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
123 --- nagios-3.0.3/cgi/histogram.c 2008-05-19 21:42:26.000000000 +0300
124 +++ nagios-3.0.3-cgi/cgi/histogram.c 2008-10-11 12:34:44.512659708 +0300
126 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
127 extern char physical_images_path[MAX_FILENAME_LENGTH];
129 +extern char *http_charset;
131 extern int log_rotation_method;
133 extern host *host_list;
135 get_time_string(&expire_time,date_time,sizeof(date_time),HTTP_DATE_TIME);
136 printf("Expires: %s\r\n",date_time);
138 - printf("Content-type: text/html\r\n\r\n");
139 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
143 --- nagios-3.0.3-cgi/cgi/history.c 2008-10-11 12:34:44.480657862 +0300
144 +++ nagios-3.0.3/cgi/history.c 2008-10-11 12:38:12.164637148 +0300
146 extern char url_images_path[MAX_FILENAME_LENGTH];
147 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
149 +extern char *http_charset;
151 extern int log_rotation_method;
153 extern int enable_splunk_integration;
155 get_time_string(&expire_time,date_time,sizeof(date_time),HTTP_DATE_TIME);
156 printf("Expires: %s\r\n",date_time);
158 - printf("Content-type: text/html\r\n\r\n");
159 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
163 --- nagios-3.0.3/cgi/notifications.c 2008-05-19 21:42:27.000000000 +0300
164 +++ nagios-3.0.3-cgi/cgi/notifications.c 2008-10-11 12:34:44.500659016 +0300
166 extern char url_docs_path[MAX_FILENAME_LENGTH];
167 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
169 +extern char *http_charset;
171 extern int log_rotation_method;
175 get_time_string(&expire_time,date_time,(int)sizeof(date_time),HTTP_DATE_TIME);
176 printf("Expires: %s\r\n",date_time);
178 - printf("Content-type: text/html\r\n\r\n");
179 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
183 --- nagios-3.0.3/cgi/outages.c 2008-01-09 19:51:23.000000000 +0200
184 +++ nagios-3.0.3-cgi/cgi/outages.c 2008-10-11 12:34:44.500659016 +0300
186 extern hoststatus *hoststatus_list;
187 extern servicestatus *servicestatus_list;
189 +extern char *http_charset;
191 extern char main_config_file[MAX_FILENAME_LENGTH];
192 extern char url_html_path[MAX_FILENAME_LENGTH];
193 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
195 get_time_string(&expire_time,date_time,(int)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/showlog.c 2008-01-09 19:51:23.000000000 +0200
204 +++ nagios-3.0.3-cgi/cgi/showlog.c 2008-10-11 12:34:44.500659016 +0300
206 extern char url_images_path[MAX_FILENAME_LENGTH];
207 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
209 +extern char *http_charset;
211 extern int log_rotation_method;
213 extern int enable_splunk_integration;
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/status.c 2008-06-23 23:47:46.000000000 +0300
224 +++ nagios-3.0.3-cgi/cgi/status.c 2008-10-11 12:34:44.504659246 +0300
226 extern char url_media_path[MAX_FILENAME_LENGTH];
227 extern char log_file[MAX_FILENAME_LENGTH];
229 +extern char *http_charset;
231 extern char *service_critical_sound;
232 extern char *service_warning_sound;
233 extern char *service_unknown_sound;
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/statusmap.c 2008-05-19 21:42:28.000000000 +0300
244 +++ nagios-3.0.3-cgi/cgi/statusmap.c 2008-10-11 12:34:44.508659477 +0300
246 extern char url_logo_images_path[MAX_FILENAME_LENGTH];
247 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
249 +extern char *http_charset;
251 extern host *host_list;
252 extern hostgroup *hostgroup_list;
253 extern service *service_list;
255 get_time_string(&expire_time,date_time,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/statuswml.c 2008-05-19 21:42:28.000000000 +0300
264 +++ nagios-3.0.3-cgi/cgi/statuswml.c 2008-10-11 12:34:44.504659246 +0300
266 extern hoststatus *hoststatus_list;
267 extern servicestatus *servicestatus_list;
269 +extern char *http_charset;
271 extern int enable_notifications;
272 extern int execute_service_checks;
273 extern int nagios_process_state;
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/vnd.wap.wml\r\n\r\n");
279 + printf("Content-type: text/vnd.wap.wml; charset=\"%s\"\r\n\r\n", http_charset);
281 printf("<?xml version=\"1.0\"?>\n");
282 printf("<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \"http://www.wapforum.org/DTD/wml_1.1.xml\">\n");
283 --- nagios-3.0.3/cgi/statuswrl.c 2007-07-16 19:41:46.000000000 +0300
284 +++ nagios-3.0.3-cgi/cgi/statuswrl.c 2008-10-11 12:34:44.508659477 +0300
286 extern char url_images_path[MAX_FILENAME_LENGTH];
287 extern char url_logo_images_path[MAX_FILENAME_LENGTH];
289 +extern char *http_charset;
291 extern char *statuswrl_include;
293 extern host *host_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: x-world/x-vrml\r\n\r\n");
299 + printf("Content-Type: x-world/x-vrml; charset=\"%s\"\r\n\r\n", http_charset);
303 --- nagios-3.0.3/cgi/summary.c 2008-01-24 04:51:30.000000000 +0200
304 +++ nagios-3.0.3-cgi/cgi/summary.c 2008-10-11 12:34:44.504659246 +0300
306 extern char url_images_path[MAX_FILENAME_LENGTH];
307 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
309 +extern char *http_charset;
311 extern host *host_list;
312 extern hostgroup *hostgroup_list;
313 extern service *service_list;
315 printf("Expires: %s\r\n",date_time);
317 if(output_format==HTML_OUTPUT)
318 - printf("Content-type: text/html\r\n\r\n");
319 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
321 - printf("Content-type: text/plain\r\n\r\n");
322 + printf("Content-type: text/plain; charset=\"%s\"\r\n\r\n", http_charset);
326 --- nagios-3.0.3/cgi/tac.c 2008-02-21 08:17:37.000000000 +0200
327 +++ nagios-3.0.3-cgi/cgi/tac.c 2008-10-11 12:34:44.508659477 +0300
329 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
330 extern char url_media_path[MAX_FILENAME_LENGTH];
332 +extern char *http_charset;
334 extern int refresh_rate;
336 extern char *service_critical_sound;
338 get_time_string(&expire_time,date_time,(int)sizeof(date_time),HTTP_DATE_TIME);
339 printf("Expires: %s\r\n",date_time);
341 - printf("Content-type: text/html\r\n\r\n");
342 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
346 --- nagios-3.0.3/cgi/trends.c 2008-06-23 23:47:46.000000000 +0300
347 +++ nagios-3.0.3-cgi/cgi/trends.c 2008-10-11 12:34:44.512659708 +0300
349 extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
350 extern char physical_images_path[MAX_FILENAME_LENGTH];
352 +extern char *http_charset;
354 extern int log_rotation_method;
356 extern host *host_list;
357 @@ -1114,7 +1116,7 @@
358 get_time_string(&expire_time,date_time,sizeof(date_time),HTTP_DATE_TIME);
359 printf("Expires: %s\r\n",date_time);
361 - printf("Content-type: text/html\r\n\r\n");
362 + printf("Content-type: text/html; charset=\"%s\"\r\n\r\n", http_charset);
366 --- nagios-3.0.3/include/cgiutils.h.in 2007-11-11 01:34:26.000000000 +0200
367 +++ nagios-3.0.3-cgi/include/cgiutils.h.in 2008-10-11 12:34:44.468657170 +0300
369 #define LIFO_ERROR_FILE 2
370 #define LIFO_ERROR_DATA 3
372 +/************************** HTTP CHARSET ****************************/
374 +#define DEFAULT_HTTP_CHARSET "iso8859-1"
378 --- nagios-3.0.3/sample-config/cgi.cfg.in 2007-10-07 22:42:52.000000000 +0300
379 +++ nagios-3.0.3-cgi/sample-config/cgi.cfg.in 2008-10-11 12:34:44.472657400 +0300
381 url_html_path=@htmurl@
385 +# This defines charset that is sent with HTTP headers.
387 +http_charset=iso8859-1
390 # CONTEXT-SENSITIVE HELP
391 # This option determines whether or not a context-sensitive