start unix net_info impl
This commit is contained in:
		
							parent
							
								
									66a262afa8
								
							
						
					
					
						commit
						6077527e24
					
				
							
								
								
									
										47
									
								
								src/sigar.c
									
									
									
									
									
								
							
							
						
						
									
										47
									
								
								src/sigar.c
									
									
									
									
									
								
							@ -750,6 +750,12 @@ SIGAR_DECLARE(int) sigar_who_list_get(sigar_t *sigar,
 | 
			
		||||
    return SIGAR_ENOTIMPL;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
SIGAR_DECLARE(int) sigar_net_info_get(sigar_t *sigar,
 | 
			
		||||
                                      sigar_net_info_t *netinfo)
 | 
			
		||||
{
 | 
			
		||||
    return SIGAR_ENOTIMPL;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
SIGAR_DECLARE(int) sigar_resource_limit_get(sigar_t *sigar,
 | 
			
		||||
                                            sigar_resource_limit_t *rlimit)
 | 
			
		||||
{
 | 
			
		||||
@ -836,6 +842,47 @@ int sigar_who_list_get(sigar_t *sigar,
 | 
			
		||||
    return SIGAR_OK;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int sigar_net_info_get(sigar_t *sigar,
 | 
			
		||||
                       sigar_net_info_t *netinfo)
 | 
			
		||||
{
 | 
			
		||||
    char buffer[BUFSIZ], *ptr;
 | 
			
		||||
    FILE *fp;
 | 
			
		||||
 | 
			
		||||
    if (!(fp = fopen("/etc/resolv.conf", "r"))) {
 | 
			
		||||
        return errno;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    SIGAR_ZERO(netinfo);
 | 
			
		||||
 | 
			
		||||
    while ((ptr = fgets(buffer, sizeof(buffer), fp))) {
 | 
			
		||||
        int len;
 | 
			
		||||
 | 
			
		||||
        SIGAR_SKIP_SPACE(ptr);
 | 
			
		||||
        if (!(ptr = strstr(ptr, "nameserver "))) {
 | 
			
		||||
            continue;
 | 
			
		||||
        }
 | 
			
		||||
        ptr += 11;
 | 
			
		||||
        SIGAR_SKIP_SPACE(ptr);
 | 
			
		||||
 | 
			
		||||
        len = strlen(ptr);
 | 
			
		||||
        ptr[len-1] = '\0'; /* chop \n */
 | 
			
		||||
 | 
			
		||||
        if (!netinfo->primary_dns[0]) {
 | 
			
		||||
            SIGAR_SSTRCPY(netinfo->primary_dns, ptr);
 | 
			
		||||
        }
 | 
			
		||||
        else if (!netinfo->secondary_dns[0]) {
 | 
			
		||||
            SIGAR_SSTRCPY(netinfo->secondary_dns, ptr);
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fclose(fp);
 | 
			
		||||
 | 
			
		||||
    return SIGAR_OK;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#include <sys/resource.h>
 | 
			
		||||
 | 
			
		||||
#define OffsetOf(structure, field) \
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user