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++; }
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); }