summaryrefslogblamecommitdiffstats
path: root/login-utils/islocal.c
blob: a4cfb16abfad5d35fd2c34e479f6cb0fbd929689 (plain) (tree)

































                                                                            
/* islocal.c - returns true if user is registered in the local
   /etc/passwd file. Written by Alvaro Martinez Echevarria, 
   alvaro@enano.etsit.upm.es, to allow peaceful coexistence with yp. Nov 94.
   Hacked a bit by poe@daimi.aau.dk
   See also ftp://ftp.daimi.aau.dk/pub/linux/poe/admutil*
*/

#include <stdio.h>
#include <string.h>

#define MAX_LENGTH	1024

int
is_local(char *user)
{
	FILE *fd;
	char line[MAX_LENGTH];
	int local = 0;

        if(!(fd = fopen("/etc/passwd", "r"))) {
                puts("Can't read /etc/passwd, exiting.");
                exit(1);
        }

        while(fgets(line, MAX_LENGTH, fd) > 0) {
                if(!strncmp(line, user, strlen(user))) {
			local = 1;
			break;
                }
	}
	fclose(fd);
	return local;
}