void main(int argc, char **argv) { struct char_data ch; struct obj_data *o,*p; FILE *f,*g; char s[80]; int i,look,count; object_list=NULL; if (argc!=2) { fprintf(stderr,"purge <min days>\n"); exit(1); } time_frame=atoi(argv[1])*DAY; if (time_frame<30*DAY) { fprintf(stderr,"purge <min days>\n\nmin days must be>=30.\n"); exit(1); } f=fopen("players.new","r"); if (!f) { perror("players.new"); exit(1); } g=fopen("immortals","w"); if (!g) { perror("immortals"); exit(1); } count=0; while (fgets(s,80,f)) { s[strlen(s)-1]='\0'; fprintf(stderr, "%d:%s%c[K",count++,s,27); bzero(&ch,sizeof(struct char_data)); if (new_load_char(&ch,s)>0) { if (should_delete(&ch)) { printf("%-20s %4d %3d\n",s,ch.player.level, (time(0)-ch.specials.last_logon)/DAY); unlink(name_to_path(s)); } else if (ch.player.level>=2000) fprintf(g,"%-20s %4d %7d %7d\n",ch.player.name,ch.player.level, ch.build_lo, ch.build_hi); while (object_list) { struct obj_data *o; o=object_list->next; free_obj(object_list); object_list=o; } } else { printf("Couldn't load %s\n",s); unlink(name_to_path(s)); } } fclose(f); fclose(g); }
void utp_socket_manager::tick(ptime now) { for (socket_map_t::iterator i = m_utp_sockets.begin() , end(m_utp_sockets.end()); i != end;) { if (should_delete(i->second)) { delete_utp_impl(i->second); if (m_last_socket == i->second) m_last_socket = 0; m_utp_sockets.erase(i++); continue; } tick_utp_impl(i->second, now); ++i; } }