diff options
Diffstat (limited to 'okclient.c')
-rw-r--r-- | okclient.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/okclient.c b/okclient.c new file mode 100644 index 0000000..a648c02 --- /dev/null +++ b/okclient.c @@ -0,0 +1,26 @@ +#include <sys/types.h> +#include <sys/stat.h> +#include "str.h" +#include "ip4.h" +#include "okclient.h" + +static char fn[3 + IP4_FMT]; + +int okclient(char ip[4]) +{ + struct stat st; + int i; + + fn[0] = 'i'; + fn[1] = 'p'; + fn[2] = '/'; + fn[3 + ip4_fmt(fn + 3,ip)] = 0; + + for (;;) { + if (stat(fn,&st) == 0) return 1; + /* treat temporary error as rejection */ + i = str_rchr(fn,'.'); + if (!fn[i]) return 0; + fn[i] = 0; + } +} |