示例#1
0
void gest(char *login, char *buffer)
{
  t_datalist *datalist;

  datalist = recup_datalist(NULL);
  if ((datalist = find_login(login, datalist)))
    printf("chat trouver\n");
  else
  {
	  datalist = creat_datalist(login);
      printf("chat creer\n");
  }
  datalist->data[datalist->cpt_max] = buffer;
  datalist->cpt_max++;
}
示例#2
0
void
radwtmp()
{
        int wfd;
        struct stat stb;
        int bl;
        struct radutmp *bp;
        int bytes;
        struct tm *tm;
        char ct[256];
        WTMP *pp;
	int acct_enabled = 0;
		
        if ((wfd = open(file, O_RDONLY, 0)) < 0 || fstat(wfd, &stb) == -1) {
                grad_log(GRAD_LOG_ERR|GRAD_LOG_PERROR, 
                         _("can't open file %s"), file);
                exit(1);
        }
        bl = (stb.st_size + sizeof(buf) - 1) / sizeof(buf);
        
        grad_set_signal(SIGINT, sig_int);
        stop = 0;

        /*time(&buf[0].ut_time);*/
        
        while (!stop && --bl >= 0) {
                if (lseek(wfd, (off_t)(bl * sizeof(buf)), SEEK_SET) == -1 ||
                    (bytes = read(wfd, buf, sizeof(buf))) == -1)
                        grad_log(GRAD_LOG_ERR, "%s", file);
                for (bp = &buf[bytes / sizeof(buf[0]) - 1]; !stop && bp >= buf;
		     --bp) {
                        switch (bp->type) {
                        case P_LOGIN:
                                if (pp = find_logout(bp)) {
                                        if (want(bp)) {
                                                print_entry(pp, bp, 0);
                                                if (maxrec != -1 && !--maxrec)
                                                        return;
                                        }
                                        delete_logout(pp, bp);
                                } else if (pp = find_restart(bp)) {
                                        if (want(bp)) {
                                                print_entry(pp, bp, 0);
                                                if (maxrec != -1 && !--maxrec)
                                                        return;
                                        }
                                } else if (pp = find_login(bp)) {
                                        /* Ignore duplicate logins */
                                        if (strncmp(pp->ut.session_id,
                                                   bp->session_id,
                                                   RUT_IDSIZE) == 0)
                                                break; 
                                        /*
                                         * This login misses logout
                                         */
                                        if (want(bp)) {
                                                print_entry(pp, bp,
                                                            mark_missing_stops);
                                                if (maxrec != -1 && !--maxrec)
                                                        return;
                                        }
                                        /* Update login information */
                                        pp->ut = *bp;
                                } else {
                                        if (want(bp)) {
                                                print_entry(NULL, bp, 0);
                                                if (maxrec != -1 && !--maxrec)
                                                        return;
                                        }
                                }
                                break;
                        case P_IDLE:
                                /*if (!find_logout_sid(bp))*/
                                        add_logout(bp);
                                break;
                        case P_NAS_SHUTDOWN:
                        case P_NAS_START:
                                add_nas_restart(bp);
                                if (want(bp)) {
                                        print_reboot_entry(bp);
                                        if (maxrec != -1 && !--maxrec)
                                                return;
                                }
                                break;
			case P_ACCT_DISABLED:
				if (!acct_enabled) {
					printf(_("System accounting is disabled\n"));
					stop = 1;
				} else
					print_acct_toggle(bp);
				break;
			case P_ACCT_ENABLED:
				acct_enabled = 1;
				print_acct_toggle(bp);
				break;
                        default:
                                break;
                        }
                }
        }
        
        tm = localtime(&buf[0].time);
        strftime(ct, sizeof(ct), "%c", tm);
        printf(_("\nradwtmp begins %s\n"), ct);
}