7c33392001-09-27Martin Nilsson // Locale stuff. // <locale-token project="roxen_config"> _ </locale-token>
d6a8312001-01-01Martin Nilsson #include <roxen.h> #define _(X,Y) _DEF_LOCALE("roxen_config",X,Y) constant box = "large"; constant box_initial = 0;
9d4d592001-01-01Martin Nilsson String box_name = _(367,"Server status"); String box_doc = _(368,"Various global server statistics");
d6a8312001-01-01Martin Nilsson  string add_row( string item, string value ) { return "<tr><td>" + item + ":</td><td>" + value + "</td></tr>"; } string parse( RequestID id ) { int dt = (time() - roxen->start_time+1); string contents = "";
9d4d592001-01-01Martin Nilsson  contents += add_row( _(369, "Server started"),
d6a8312001-01-01Martin Nilsson  Roxen.strftime( "%Y-%m-%d %H:%M:%S", roxen->start_time) );
9d4d592001-01-01Martin Nilsson  contents += add_row( _(370, "Server uptime"),
d6a8312001-01-01Martin Nilsson  Roxen.msectos( dt*1000 )); array ru; if(!catch(ru=rusage())) { int tmp; if(ru[0]) tmp = ru[0]/(time() - roxen->start_time+1);
9d4d592001-01-01Martin Nilsson  contents += add_row( _(371, "CPU-time used"),
d6a8312001-01-01Martin Nilsson  Roxen.msectos(ru[0]+ru[1]) + (tmp?(" ("+tmp/10+"."+tmp%10+"%)"):"")); } mapping total = ([]); foreach(roxen->configurations, Configuration conf) { if(!conf->sent || !conf->received || !conf->hsent) continue; total->sent += conf->sent; total->hsent += conf->hsent; total->received += conf->received; total->requests += conf->requests; }
9d4d592001-01-01Martin Nilsson  contents += add_row( _(2,"Sent data"), Roxen.sizetostring(total->sent) +
d6a8312001-01-01Martin Nilsson  sprintf(" (%.2f kbit/%s)", ((((float)total->sent)/(1024.0*1024.0)/dt) * 8192.0), _(3,"sec")) );
9d4d592001-01-01Martin Nilsson  contents += add_row( _(4,"Sent headers"), Roxen.sizetostring(total->hsent)); contents += add_row( _(234,"Requests"), total->requests +
d6a8312001-01-01Martin Nilsson  sprintf(" (%.2f/%s)", (((float)total->requests*60.0)/dt), _(6,"min")) );
9d4d592001-01-01Martin Nilsson  contents += add_row( _(7,"Received data"), Roxen.sizetostring(total->sent));
d6a8312001-01-01Martin Nilsson 
9d4d592001-01-01Martin Nilsson  return ("<box type='"+box+"' title='"+box_name+"'><table cellpadding='0'>"+ contents+"</table></box>");
d6a8312001-01-01Martin Nilsson }