aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortradke <tradke@bfcf8e34-485d-4d46-a995-1fd6fa6fb178>2001-03-15 16:17:36 +0000
committertradke <tradke@bfcf8e34-485d-4d46-a995-1fd6fa6fb178>2001-03-15 16:17:36 +0000
commit3f920c737d70814a195c9675542d737fc0b3987a (patch)
treee20ed0ff75cbd159854f4005f410f92245fbd2bf
parent0f72278385362c60c5ec9696fae1e434c6498a00 (diff)
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
-rw-r--r--src/Sockets.c37
1 files 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);
}
/*@@