diff lib/protocols.c @ 67:aa971a4bb16f

2002-11-27 Brian Masney <masneyb@gftp.org> * Officially release 2.0.14rc1 * lib/cache.c - take out a warning message * lib/misc.c lib/protocols.c lib/gftp.h lib/gtk/dnd.c lib/transfer.c - add second argument (free_request) to gftp_request_destroy * lib/protocols.c (gftp_parse_url) - make sure the request structure is cleared before we start to modify it * src/gtk/gftp-text.c - fixed crash if you didn't enter a username
author masneyb
date Wed, 27 Nov 2002 14:29:57 +0000
parents cd3e457cbc85
children e2b30d0c97a4
line wrap: on
line diff
--- a/lib/protocols.c	Wed Nov 27 02:23:51 2002 +0000
+++ b/lib/protocols.c	Wed Nov 27 14:29:57 2002 +0000
@@ -35,7 +35,7 @@
 
 
 void
-gftp_request_destroy (gftp_request * request)
+gftp_request_destroy (gftp_request * request, int free_request)
 {
   g_return_if_fail (request != NULL);
 
@@ -76,8 +76,18 @@
     g_free (request->protocol_data);
   if (request->sftpserv_path)
     g_free (request->sftpserv_path);
+
   memset (request, 0, sizeof (*request));
-  g_free (request);
+
+  if (free_request)
+    g_free (request);
+  else
+    {
+      request->sockfd = -1;
+      request->datafd = -1;
+      request->cachefd = -1;
+      request->data_type = GFTP_TYPE_BINARY;
+    }
 }
 
 
@@ -368,12 +378,17 @@
 gftp_parse_url (gftp_request * request, const char *url)
 {
   char *pos, *endpos, *endhostpos, *str, tempchar;
+  gftp_logging_func logging_function;
   const char *stpos;
   int len, i;
 
   g_return_val_if_fail (request != NULL, -2);
   g_return_val_if_fail (url != NULL, -2);
 
+  logging_function = request->logging_function;
+  gftp_request_destroy (request, 0);
+  request->logging_function = logging_function;
+
   for (stpos = url; *stpos == ' '; stpos++);
 
   if ((pos = strstr (stpos, "://")) != NULL)