const char *host, struct sockaddr * addr)
const char *host, struct sockaddr * addr, socklen_t addrlen)
record_login(pid_t pid, const char *ttyname, const char *user, uid_t uid,    const char *host, struct sockaddr * addr){	int fd;	struct lastlog ll;	char *lastlog;	struct utmp u;	/* Construct an utmp/wtmp entry. */	memset(&u, 0, sizeof(u));	strncpy(u.ut_line, ttyname + 5, sizeof(u.ut_line));	u.ut_time = time(NULL);	strncpy(u.ut_name, user, sizeof(u.ut_name));	strncpy(u.ut_host, host, sizeof(u.ut_host));	login(&u);	lastlog = _PATH_LASTLOG;	/* Update lastlog unless actually recording a logout. */	if (strcmp(user, "") != 0) {		/*		 * It is safer to bzero the lastlog structure first because		 * some systems might have some extra fields in it (e.g. SGI)		 */		memset(&ll, 0, sizeof(ll));		/* Update lastlog. */		ll.ll_time = time(NULL);		strncpy(ll.ll_line, ttyname + 5, sizeof(ll.ll_line));		strncpy(ll.ll_host, host, sizeof(ll.ll_host));		fd = open(lastlog, O_RDWR);		if (fd >= 0) {			lseek(fd, (off_t) ((long) uid * sizeof(ll)), SEEK_SET);			if (write(fd, &ll, sizeof(ll)) != sizeof(ll))				log("Could not write %.100s: %.100s", lastlog, strerror(errno));			close(fd);		}	}}