ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/ihost/libstatgrab/disk_stat.c
(Generate patch)

Comparing projects/cms/source/ihost/libstatgrab/disk_stat.c (file contents):
Revision 1.8 by pajs, Sun May 19 12:33:53 2002 UTC vs.
Revision 1.13 by tdb, Wed May 29 19:41:59 2002 UTC

# Line 1 | Line 1
1   /*
2   * i-scream central monitoring system
3 + * http://www.i-scream.org.uk
4   * Copyright (C) 2000-2002 i-scream
5   *
6   * This program is free software; you can redistribute it and/or
# Line 17 | Line 18
18   * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19   */
20  
21 + #ifdef HAVE_CONFIG_H
22 + #include "config.h"
23 + #endif
24 +
25   #include <stdlib.h>
26   #include <stdio.h>
27   #include "ukcprog.h"
# Line 116 | Line 121 | char *get_disk_stats(){
121          }
122  
123   #endif
124 < #ifdef linux
125 <        if ((f=fopen("/etc/mtab", "r" ))==NULL){
124 > #ifdef LINUX
125 >        if ((f=setmntent("/etc/mtab", "r" ))==NULL){
126                  errf("Failed to open mounts (%m)");
127                  return NULL;
128          }
# Line 154 | Line 159 | char *get_disk_stats(){
159                  sd=sd_ptr;
160          }
161  
162 <        if ((fclose(f)) != 0) {
158 <                errf("Failed to close file (%m)");
159 <                return NULL;
160 <        }
162 >        endmntent(f);
163  
164   #endif
165   #ifdef FREEBSD
# Line 199 | Line 201 | char *get_disk_stats(){
201          sd_ptr=sd;
202          xml_disk_stats=strdup("<disk>");
203          
204 <        while(sd_ptr!=NULL){
204 >        for(counter=0;sd_ptr!=NULL;counter++){
205                  xml_disk_stats_ptr=xml_disk_stats;
206                  if((xml_disk_stats=strf("%s<p%d name=\"%s\" mount=\"%s\" kbytes=\"%ld\" used=\"%ld\" avail=\"%ld\" totalinodes=\"%ld\" freeinodes=\"%ld\"></p%d>", xml_disk_stats, counter, sd_ptr->disk->device_name, sd_ptr->disk->mnt_point, sd_ptr->disk->size, sd_ptr->disk->used, sd_ptr->disk->avail, sd_ptr->disk->t_inodes, sd_ptr->disk->f_inodes, counter)) == NULL){
207                          errf("strf failed (%m)");
# Line 207 | Line 209 | char *get_disk_stats(){
209                  }
210                  free(xml_disk_stats_ptr);
211                  sd_ptr=sd_ptr->next_disk;
210                counter++;
212          }
213          xml_disk_stats_ptr=xml_disk_stats;
214          xml_disk_stats=strf("%s</disk>",xml_disk_stats);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines