rem: { closesocket((SOAP_SOCKET)soap->master);
add: { soap->fclosesocket(soap, (SOAP_SOCKET)soap->master);
context: soap_done(struct soap *soap){#ifndef WITH_LEAN  int i;#endif  soap_free(soap);  while (soap->clist)  { struct soap_clist *p = soap->clist->next;    SOAP_FREE(soap->clist);    soap->clist = p;  }  soap->keep_alive = 0; /* to force close the socket */  soap_closesock(soap);#ifdef WITH_COOKIES  soap_free_cookies(soap);#endif  while (soap->plugins)  { register struct soap_plugin *p = soap->plugins->next;    DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Removing plugin '%s'\n", soap->plugins->id));    if (soap->plugins->fcopy || !soap->copy)      soap->plugins->fdelete(soap, soap->plugins);    SOAP_FREE(soap->plugins);    soap->plugins = p;  }  soap->fplugin = fplugin;  soap->fpost = http_post;  soap->fget = http_get;  soap->fposthdr = http_post_header;  soap->fresponse = http_response;  soap->fparse = http_parse;  soap->fparsehdr = http_parse_header;#ifndef MAC_CARBON  soap->faccept = tcp_accept;  soap->fopen = tcp_connect;  soap->fclose = tcp_disconnect;  soap->fsend = fsend;  soap->frecv = frecv;#endif  soap->fprepare = NULL;  soap->fignore = NULL;#ifdef WITH_OPENSSL  if (soap->session)  { SSL_SESSION_free(soap->session);    soap->session = NULL;  }#endif  if (!soap->copy)  { if (soap_valid_socket(soap->master))    { closesocket((SOAP_SOCKET)soap->master);      soap->master = SOAP_INVALID_SOCKET;    }#ifdef WITH_OPENSSL    if (soap->ctx)    { SSL_CTX_free(soap->ctx);      soap->ctx = NULL;    }#endif  }#ifndef WITH_LEAN  for (i = 0; i < SOAP_MAXLOGS; i++)  { soap_close_logfile(soap, i);    if (soap->logfile[i])    { SOAP_FREE((void*)soap->logfile[i]);      soap->logfile[i] = NULL;    }  }#endif}