aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2010-03-24 16:31:55 +0000
committerIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2010-03-24 16:31:55 +0000
commite2dc7d09e7ecedb2806cc636711f88a1f4c84647 (patch)
tree96b864dcea282f01ad7b597c7c6fbdece6f0c2e4
parent10361a661b3c470c4dfea949c98daab1fb310a63 (diff)
call shutdown before closesocket()
svn path=/trunk/externals/iem/iemnet/; revision=13256
-rw-r--r--shared.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/shared.c b/shared.c
index 1a46a92..dae0be0 100644
--- a/shared.c
+++ b/shared.c
@@ -579,7 +579,10 @@ void iemnet__receiver_destroy(t_iemnet_receiver*rec) {
if(rec->data)iemnet__chunk_destroy(rec->data);
if(rec->flist)iemnet__floatlist_destroy(rec->flist);
clock_free(rec->clock);
- sys_closesocket(rec->sockfd);
+ rec->clock=NULL;
+
+ shutdown(rec->sockfd, 2); /* needed on linux, since the recv won't shutdown on sys_closesocket() alone */
+ sys_closesocket(rec->sockfd);
rec->sockfd=0;
fprintf(stderr, "receiverdestroy join thread\n");