summaryrefslogtreecommitdiffstats
path: root/plugins/check_disk.c
diff options
context:
space:
mode:
authorTon Voon <tonvoon@users.sourceforge.net>2003-06-25 13:16:53 +0000
committerTon Voon <tonvoon@users.sourceforge.net>2003-06-25 13:16:53 +0000
commitce952504d15a2bafa8a1aabb7f5fb1507cad2f84 (patch)
tree9445b73cf587a5b70ac8c8a7f319ca4224b60231 /plugins/check_disk.c
parent54cee62d8d0a021b9165aa2a63948302fff37f1f (diff)
downloadmonitoring-plugins-ce952504d15a2bafa8a1aabb7f5fb1507cad2f84.tar.gz
Problems compiling on SunOS 5.6 with gcc 2.8.1. Fixed by specifying
floating variables, rather than letting asprintf work it out git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@554 f882894a-f735-0410-b71e-b25c423dba1c
Diffstat (limited to 'plugins/check_disk.c')
-rw-r--r--plugins/check_disk.c32
1 files changed, 18 insertions, 14 deletions
diff --git a/plugins/check_disk.c b/plugins/check_disk.c
index d0431d9b..62858b5f 100644
--- a/plugins/check_disk.c
+++ b/plugins/check_disk.c
@@ -47,8 +47,8 @@ const char *options = "\
47 Same as '--units MB'\n\ 47 Same as '--units MB'\n\
48 -l, --local\n\ 48 -l, --local\n\
49 Only check local filesystems\n\ 49 Only check local filesystems\n\
50 -p, --path=PATH, --partition=PARTTION\n\ 50 -p, --path=PATH, --partition=PARTITION\n\
51 Path or partition (may be repeated)\n\ 51 Path or partition (may be repeated)\n\
52 -x, --exclude_device=PATH <STRING>\n\ 52 -x, --exclude_device=PATH <STRING>\n\
53 Ignore device (only works if -p unspecified)\n\ 53 Ignore device (only works if -p unspecified)\n\
54 -X, --exclude-type=TYPE <STRING>\n\ 54 -X, --exclude-type=TYPE <STRING>\n\
@@ -186,8 +186,9 @@ main (int argc, char **argv)
186 char mntp[MAX_INPUT_BUFFER]; 186 char mntp[MAX_INPUT_BUFFER];
187 char *output = ""; 187 char *output = "";
188 char *details = ""; 188 char *details = "";
189 float free_space, free_space_pct, total_space;
189 190
190 struct mount_entry *me; 191 struct mount_entry *me;
191 struct fs_usage fsp; 192 struct fs_usage fsp;
192 char *disk; 193 char *disk;
193 194
@@ -196,7 +197,7 @@ main (int argc, char **argv)
196 if (process_arguments (argc, argv) != OK) 197 if (process_arguments (argc, argv) != OK)
197 usage ("Could not parse arguments\n"); 198 usage ("Could not parse arguments\n");
198 199
199 for (me = mount_list; me; me = me->me_next) { 200 for (me = mount_list; me; me = me->me_next) {
200 201
201 if ((dev_select_list && 202 if ((dev_select_list &&
202 walk_name_list (dev_select_list, me->me_devname)) || 203 walk_name_list (dev_select_list, me->me_devname)) ||
@@ -225,19 +226,22 @@ main (int argc, char **argv)
225 if (disk_result==STATE_OK && erronly && !verbose) 226 if (disk_result==STATE_OK && erronly && !verbose)
226 continue; 227 continue;
227 228
228 if (disk_result!=STATE_OK || verbose>=0) 229 free_space = (float)fsp.fsu_bavail*fsp.fsu_blocksize/mult;
229 asprintf (&output, "%s [%llu %s (%2.0f%%) free on %s]", 230 free_space_pct = (float)fsp.fsu_bavail*100/fsp.fsu_blocks;
231 total_space = (float)fsp.fsu_blocks*fsp.fsu_blocksize/mult;
232 if (disk_result!=STATE_OK || verbose>=0)
233 asprintf (&output, "%s [%.0f %s (%2.0f%%) free on %s]",
230 output, 234 output,
231 fsp.fsu_bavail*fsp.fsu_blocksize/mult, 235 free_space,
232 units, 236 units,
233 (double)fsp.fsu_bavail*100/fsp.fsu_blocks, 237 free_space_pct,
234 (!strcmp(file_system, "none") || display_mntp) ? me->me_devname : me->me_mountdir); 238 (!strcmp(file_system, "none") || display_mntp) ? me->me_devname : me->me_mountdir);
235 asprintf (&details, "%s\n%llu of %llu %s (%2.0f%%) free on %s (type %s mounted on %s)", 239 asprintf (&details, "%s\n%.0f of %.0f %s (%2.0f%%) free on %s (type %s mounted on %s)",
236 details, 240 details,
237 fsp.fsu_bavail*fsp.fsu_blocksize/mult, 241 free_space,
238 fsp.fsu_blocks*fsp.fsu_blocksize/mult, 242 total_space,
239 units, 243 units,
240 (double)fsp.fsu_bavail*100/fsp.fsu_blocks, 244 free_space_pct,
241 me->me_devname, 245 me->me_devname,
242 me->me_type, 246 me->me_type,
243 me->me_mountdir); 247 me->me_mountdir);