diff options
Diffstat (limited to 'app-misc/sshsleeper/files/sshsleeper.c')
| -rw-r--r-- | app-misc/sshsleeper/files/sshsleeper.c | 38 | 
1 files changed, 38 insertions, 0 deletions
diff --git a/app-misc/sshsleeper/files/sshsleeper.c b/app-misc/sshsleeper/files/sshsleeper.c new file mode 100644 index 0000000..a88c4bc --- /dev/null +++ b/app-misc/sshsleeper/files/sshsleeper.c @@ -0,0 +1,38 @@ +#include <stdio.h> +#include <unistd.h> +#include <string.h> + +#define BUFSIZE 128 + +int main() { +    int i; +    unsigned int val; +    int slpsec = 3600; +     +    char buf[BUFSIZE+1]; +     +    FILE *f = fopen("/etc/sshsleeper.conf", "r"); +    if (f) { +	while (fgets(buf, BUFSIZE, f)) { +		// check if we are facing a long string +	    if (strlen(buf) >= BUFSIZE) { +		while ((fgets(buf, BUFSIZE, f))&&(strlen(buf) >= BUFSIZE)); +	    } +	     +	    for (i = 0; buf[i] == ' '; i++); +	    if (strncmp(buf, "duration", 8)) continue; +	    for (i += 8; buf[i] == ' '; i++); +	    if (sscanf(buf + i, "%u", &val) != 1) continue; +	     +	    if (val > 0) { +		slpsec = val; +		break; +	    } +		 +	} +	fclose(f); +    } +     +    printf("Sleeping for %u seconds\n", slpsec); +    sleep(slpsec); +}  | 
