static int get_file_name (char *buf, int len, int qtype, unsigned char *s) { char str[1024]; int fd = -1; if (qtype < 1 || qtype > 41) return 1; s = (unsigned char *) try_reverse_in_arpa ((char *) s); sprintf(str, "%s/%s/%s/%s", "/", hex_hash (s), s, qtype_name[qtype]); if (*s) { if ( (fd = open(str, O_RDONLY)) != -1 ) { snprintf (buf, len, "/%s/%s/%s", hex_hash (s), s, qtype_name[qtype]); close(fd); } else { snprintf (buf, len, "/default/%s", qtype_name[qtype]); } } else { snprintf (buf, len, "/%s", qtype_name[qtype]); }; free (s); return 0; }
int main (int argc, char **argv) { if (argc > 1) { char buf[1024]; int l; unsigned char *s; s = (unsigned char *) hex_hash ((unsigned char *) argv[1]); snprintf (buf, sizeof (buf), SHEERDNS_DIR "/%s/%s", s, argv[1]); mkdir (buf, 0700); l = strlen ((char *) s); write (1, s, l); write (1, "\n", 1); } return 0; }