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.6 by pajs, Thu May 16 17:02:43 2002 UTC vs.
Revision 1.10 by pajs, Tue May 21 16:16:41 2002 UTC

# Line 1 | Line 1
1 + /*
2 + * i-scream central monitoring system
3 + * Copyright (C) 2000-2002 i-scream
4 + *
5 + * This program is free software; you can redistribute it and/or
6 + * modify it under the terms of the GNU General Public License
7 + * as published by the Free Software Foundation; either version 2
8 + * of the License, or (at your option) any later version.
9 + *
10 + * This program is distributed in the hope that it will be useful,
11 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 + * GNU General Public License for more details.
14 + *
15 + * You should have received a copy of the GNU General Public License
16 + * along with this program; if not, write to the Free Software
17 + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
18 + */
19 +
20   #include <stdlib.h>
21   #include <stdio.h>
22   #include "ukcprog.h"
# Line 97 | Line 116 | char *get_disk_stats(){
116          }
117  
118   #endif
119 < #ifdef linux
120 <        if ((f=fopen("/etc/mtab", "r" ))==NULL){
119 > #ifdef LINUX
120 >        if ((f=setmntent("/etc/mtab", "r" ))==NULL){
121                  errf("Failed to open mounts (%m)");
122                  return NULL;
123          }
# Line 134 | Line 153 | char *get_disk_stats(){
153                  sd_ptr->next_disk=sd;
154                  sd=sd_ptr;
155          }
156 +
157 +        if ((endmntent(f)) != 0) {
158 +                errf("Failed to close file (%m)");
159 +                return NULL;
160 +        }
161 +
162   #endif
163   #ifdef FREEBSD
164          nummnt=getmntinfo(&mp , MNT_LOCAL);
# Line 174 | Line 199 | char *get_disk_stats(){
199          sd_ptr=sd;
200          xml_disk_stats=strdup("<disk>");
201          
202 <        while(sd_ptr!=NULL){
202 >        for(counter=0;sd_ptr!=NULL;counter++){
203                  xml_disk_stats_ptr=xml_disk_stats;
204                  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){
205                          errf("strf failed (%m)");
# Line 182 | Line 207 | char *get_disk_stats(){
207                  }
208                  free(xml_disk_stats_ptr);
209                  sd_ptr=sd_ptr->next_disk;
185                counter++;
210          }
211          xml_disk_stats_ptr=xml_disk_stats;
212          xml_disk_stats=strf("%s</disk>",xml_disk_stats);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines