keepalive.c is a program which keeps your TCP connection alive. It sends null characters at an interval, keeping your connection from timing out. It is transparent to the user.
df09ebf6757775e0c6fd15aae4838cc8a09f356ada4ac2c983c7b73089c277b6
/*
* keepalive.c
*
* simple program to keep a gateway telnet connection alive.
*
*/
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char **argv)
{
int sleep_dur = 30;
int output_char = '\0';
if(argc > 3 ||
(argc > 1 &&
(strcmp("-h", argv[1]) == 0 || strcmp("--help", argv[1]) == 0)))
{
fprintf(stderr, "usage: %s [interval] [ascii char number]\n", argv[0]);
exit(0);
}
if(argc > 1)
{
sleep_dur = atoi(argv[1]);
if(sleep_dur < 1)
{
fprintf(stderr, "invalid sleep duration: %d\n", sleep_dur);
exit(1);
}
}
if(argc > 2)
{
output_char = atoi(argv[2]);
}
while(isatty(STDOUT_FILENO))
{
putc(output_char, stdout);
fflush(stdout);
sleep(sleep_dur);
}
return 0;
}