65 lines
1.5 KiB
C
65 lines
1.5 KiB
C
#include <lib.h>
|
|
#include <vendor_types.h>
|
|
inherit LIB_ITEM;
|
|
|
|
int count = 0;
|
|
int interval = 0;
|
|
string keepalive = "";
|
|
|
|
void create(){
|
|
::create();
|
|
|
|
SetKeyName("pinger");
|
|
SetId( ({"pinger"}) );
|
|
SetShort("a pinger");
|
|
SetLong("This thing can be set to periodically output a string, "
|
|
"with the purpose of keeping fickle telnet connections up. "
|
|
"\nTo set the interval: interval <heartbeats> \n"
|
|
"To set the string: vassily <string>"
|
|
"\n\nNote: This object is deprecated. Use the command "
|
|
"'keepalive' instead.");
|
|
SetNoCondition(1);
|
|
SetMass(20);
|
|
AddSave( ({ "count", "interval", "keepalive" }) );
|
|
set_heart_beat(1);
|
|
}
|
|
|
|
int SetInterval(string str){
|
|
interval = atoi(str);
|
|
if(!intp(interval)){
|
|
write("That is not a valid integer.");
|
|
return 1;
|
|
}
|
|
|
|
write("Interval set to "+interval+" heartbeats.");
|
|
return 1;
|
|
}
|
|
|
|
int SetKeepalive(string str){
|
|
if(!str || str == "") keepalive = "\n";
|
|
else keepalive = str;
|
|
write("Keepalive set.");
|
|
return 1;
|
|
}
|
|
|
|
void init(){
|
|
::init();
|
|
add_action("SetInterval","interval");
|
|
add_action("SetKeepalive","vassily");
|
|
}
|
|
|
|
void heart_beat(){
|
|
count++;
|
|
if(interval > 0 && count > interval){
|
|
count = 0;
|
|
if(living(environment(this_object())) &&
|
|
true()){
|
|
#ifndef __DSLIB__
|
|
tell_object(environment(this_object()),keepalive);
|
|
#else
|
|
send_nullbyte(environment(this_object()));
|
|
#endif
|
|
}
|
|
}
|
|
}
|