X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4a201b7ceece70d2bc461ac48c8b746a36d07243..3eef4e948ebd9b1d8c9d26a6dedd535109856554:/src/gras/Virtu/rl_dns.c diff --git a/src/gras/Virtu/rl_dns.c b/src/gras/Virtu/rl_dns.c index f237901239..8e7f9e96aa 100644 --- a/src/gras/Virtu/rl_dns.c +++ b/src/gras/Virtu/rl_dns.c @@ -1,6 +1,7 @@ /* rl_dns - name resolution (real life) */ -/* Copyright (c) 2003, 2004 Martin Quinson. All rights reserved. */ +/* Copyright (c) 2005, 2009, 2010. The SimGrid Team. + * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -13,12 +14,11 @@ const char *gras_os_myname(void) { - static char *myname = NULL; + static char myname[255]; + static int initialized = 0; - if (myname) - return (const char *) myname; - - myname = xbt_new(char, 255); + if (initialized) + return myname; if (gethostname(myname, 255) == -1) { #ifdef HAVE_SYS_SOCKET_H @@ -31,7 +31,7 @@ const char *gras_os_myname(void) endhostent(); if (tmp) { - strncat(myname, tmp->h_name, 255); + strncpy(myname, tmp->h_name, 255); } else { /* Erm. localhost cannot be resolved. There's something wrong in the user DNS setting */ sprintf(myname, "(misconfigured host)"); @@ -43,5 +43,6 @@ const char *gras_os_myname(void) myname[254] = '\0'; + initialized = 1; return myname; }