Annotation of embedaddon/hping2/gethostname.c, revision 1.1
1.1 ! misho 1: /*
! 2: * $smu-mark$
! 3: * $name: gethostname.c$
! 4: * $author: Salvatore Sanfilippo <antirez@invece.org>$
! 5: * $copyright: Copyright (C) 1999 by Salvatore Sanfilippo$
! 6: * $license: This software is under GPL version 2 of license$
! 7: * $date: Fri Nov 5 11:55:47 MET 1999$
! 8: * $rev: 8$
! 9: */
! 10:
! 11: #include <stdio.h>
! 12: #include <netdb.h>
! 13: #include <sys/types.h>
! 14: #include <sys/socket.h>
! 15: #include <netinet/in.h>
! 16: #include <arpa/inet.h>
! 17: #include <string.h>
! 18:
! 19: size_t strlcpy(char *dst, const char *src, size_t siz);
! 20:
! 21: char *get_hostname(char* addr)
! 22: {
! 23: static char answer[1024];
! 24: static char lastreq[1024] = {'\0'}; /* last request */
! 25: struct hostent *he;
! 26: struct in_addr naddr;
! 27: static char *last_answerp = NULL;
! 28:
! 29: printf(" get hostname..."); fflush(stdout);
! 30: printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b"
! 31: " "
! 32: "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
! 33:
! 34: if (!strcmp(addr, lastreq))
! 35: return last_answerp;
! 36:
! 37: strlcpy(lastreq, addr, 1024);
! 38: inet_aton(addr, &naddr);
! 39: he = gethostbyaddr((char*)&naddr, 4, AF_INET);
! 40:
! 41: if (he == NULL) {
! 42: last_answerp = NULL;
! 43: return NULL;
! 44: }
! 45:
! 46: strlcpy(answer, he->h_name, 1024);
! 47: last_answerp = answer;
! 48:
! 49: return answer;
! 50: }
! 51:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>