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

Comparing projects/libstatgrab/src/libstatgrab/os_info.c (file contents):
Revision 1.14 by tdb, Mon Feb 16 14:55:32 2004 UTC vs.
Revision 1.19 by ats, Sun Jul 18 21:30:11 2004 UTC

# Line 1 | Line 1
1   /*
2 < * i-scream central monitoring system
2 > * i-scream libstatgrab
3   * http://www.i-scream.org
4   * Copyright (C) 2000-2004 i-scream
5   *
# Line 47 | Line 47
47   #include <sys/time.h>
48   #endif
49  
50 < general_stat_t *get_general_stats(){
50 > sg_host_info *sg_get_host_info(){
51  
52 <        static general_stat_t general_stat;    
52 >        static sg_host_info general_stat;      
53          static struct utsname os;
54  
55   #ifdef SOLARIS
# Line 69 | Line 69 | general_stat_t *get_general_stats(){
69   #endif
70  
71          if((uname(&os)) < 0){
72 +                sg_set_error_with_errno(SG_ERROR_UNAME, NULL);
73                  return NULL;
74          }
75          
76          general_stat.os_name = os.sysname;
77 <        general_stat.os_release = os.release;
78 <        general_stat.os_version = os.version;
79 <        general_stat.platform = os.machine;
80 <        general_stat.hostname = os.nodename;
77 >        general_stat.os_release = os.release;
78 >        general_stat.os_version = os.version;
79 >        general_stat.platform = os.machine;
80 >        general_stat.hostname = os.nodename;
81  
82          /* get uptime */
83   #ifdef SOLARIS
84          if ((kc = kstat_open()) == NULL) {
85 +                sg_set_error(SG_ERROR_KSTAT_OPEN, NULL);
86                  return NULL;
87          }
88          if((ksp=kstat_lookup(kc, "unix", -1, "system_misc"))==NULL){
89 +                sg_set_error(SG_ERROR_KSTAT_LOOKUP, "unix,-1,system_misc");
90                  return NULL;
91          }
92          if (kstat_read(kc, ksp, 0) == -1) {
93 +                sg_set_error(SG_ERROR_KSTAT_READ, NULL);
94                  return NULL;
95          }
96          if((kn=kstat_data_lookup(ksp, "boot_time")) == NULL){
97 +                sg_set_error(SG_ERROR_KSTAT_DATA_LOOKUP, "boot_time");
98                  return NULL;
99          }
100          boottime=(kn->value.ui32);
# Line 101 | Line 106 | general_stat_t *get_general_stats(){
106   #endif
107   #if defined(LINUX) || defined(CYGWIN)
108          if ((f=fopen("/proc/uptime", "r")) == NULL) {
109 +                sg_set_error_with_errno(SG_ERROR_OPEN, "/proc/uptime");
110                  return NULL;
111          }
112          if((fscanf(f,"%lu %*d",&general_stat.uptime)) != 1){
113 +                sg_set_error(SG_ERROR_PARSE, NULL);
114                  return NULL;
115          }
116          fclose(f);
# Line 113 | Line 120 | general_stat_t *get_general_stats(){
120          mib[1] = KERN_BOOTTIME;
121          size = sizeof boottime;
122          if (sysctl(mib, 2, &boottime, &size, NULL, 0) < 0){
123 +                sg_set_error_with_errno(SG_ERROR_SYSCTL,
124 +                                        "CTL_KERN.KERN_BOOTTIME");
125                  return NULL;
126          }
127          time(&curtime);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines