From 3f920c737d70814a195c9675542d737fc0b3987a Mon Sep 17 00:00:00 2001 From: tradke Date: Thu, 15 Mar 2001 16:17:36 +0000 Subject: Clean up the temporary advertised file at termination. git-svn-id: http://svn.cactuscode.org/arrangements/CactusPUGHIO/IsoSurfacer/trunk@40 bfcf8e34-485d-4d46-a995-1fd6fa6fb178 --- src/Sockets.c | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/src/Sockets.c b/src/Sockets.c index 8c37b3e..d449528 100644 --- a/src/Sockets.c +++ b/src/Sockets.c @@ -142,6 +142,8 @@ static isoSocket *datasocklist = NULL; static int chosen_controlport = 0; static int chosen_dataport = 0; +static char *advertised_filename = NULL; + /******************************************************************** ********************* External Routines ********************** @@ -167,9 +169,8 @@ int Iso_SetupServer(cGH *GH,isosurfacerGH *myGH,int dataport, int controlport, i int realdport; int realcport; ioAdvertisedFileDesc advertised_file; - FILE *tempfile; + FILE *advertised_file_fd; char hostname[1025]; - char tempfilename[L_tmpnam]; myGH = myGH; @@ -213,18 +214,19 @@ int Iso_SetupServer(cGH *GH,isosurfacerGH *myGH,int dataport, int controlport, i " host '%s' control port %d data port %d", hostname, chosen_controlport, chosen_dataport); - tempfile = NULL; - if (tmpnam (tempfilename)) + advertised_file_fd = NULL; + advertised_filename = (char *) malloc (L_tmpnam); + if (advertised_filename && tmpnam (advertised_filename)) { - tempfile = fopen (tempfilename, "w"); + advertised_file_fd = fopen (advertised_filename, "w"); } - if (tempfile) + if (advertised_file_fd) { - fprintf (tempfile, "Hostname: %s\n", hostname); - fprintf (tempfile, "Control port: %d\n", chosen_controlport); - fprintf (tempfile, "Data port: %d\n", chosen_dataport); - fclose (tempfile); + fprintf (advertised_file_fd, "Hostname: %s\n", hostname); + fprintf (advertised_file_fd, "Control port: %d\n", chosen_controlport); + fprintf (advertised_file_fd, "Data port: %d\n", chosen_dataport); + fclose (advertised_file_fd); /* FIXME: this can go after the old filename scheme has gone */ advertised_file.slice = ""; @@ -233,15 +235,17 @@ int Iso_SetupServer(cGH *GH,isosurfacerGH *myGH,int dataport, int controlport, i advertised_file.description = "Streamed isosurface geometry data"; advertised_file.mimetype = "data/streamed-isosurfaces"; - IOUtil_AdvertiseFile (GH, tempfilename, &advertised_file); + IOUtil_AdvertiseFile (GH, advertised_filename, &advertised_file); } else { CCTK_WARN (2, "Couldn't create unique temporary file ! " "Isosurfacer data streaming was not advertised."); + free (advertised_filename); + advertised_filename = NULL; } - return 0; + return (0); } /*@@ @@ -271,7 +275,14 @@ int Iso_ShutdownServer(void) } } - return 0; + /* remove advertised file and free filename */ + if (advertised_filename) + { + remove (advertised_filename); + free (advertised_filename); + } + + return (0); } /*@@ -- cgit v1.2.3