annotate src/uicommon/gftpuicallbacks.c @ 633:05c67a33b071

2004-12-2 Brian Masney <masneyb@gftp.org> * src/gtk/gtkui.c (gftpui_run_function_callback) src/uicommon/gftpui.h - added toggled variable to the gftpui_callback_data structure. If the edit dialog had a checkbox in it, then put the checkbox value in the toggled variable * src/gtk/gtkui.c (gftpui_site_dialog) src/uicommon/gftpuicallbacks.c (gftpui_common_run_site) - allow the user to not send the prepend the command with the SITE keyword * docs/website/index.html.in docs/website/bats.gif docs/website/generate-gftp-website.pl - updated bug reporting section. Added link and graphic for the National Speleological Society (NSS)
author masneyb
date Thu, 02 Dec 2004 23:19:31 +0000
parents fa0838b22b14
children b282e346bd25
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
1 /*****************************************************************************/
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
2 /* gftpui.c - UI related functions for gFTP. All of these functions must be */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
3 /* reentrant. */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
4 /* Copyright (C) 1998-2003 Brian Masney <masneyb@gftp.org> */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
5 /* */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
6 /* This program is free software; you can redistribute it and/or modify */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
7 /* it under the terms of the GNU General Public License as published by */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
8 /* the Free Software Foundation; either version 2 of the License, or */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
9 /* (at your option) any later version. */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
10 /* */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
11 /* This program is distributed in the hope that it will be useful, */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
12 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
13 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
14 /* GNU General Public License for more details. */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
15 /* */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
16 /* You should have received a copy of the GNU General Public License */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
17 /* along with this program; if not, write to the Free Software */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
18 /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
19 /*****************************************************************************/
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
20
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
21 #include "gftpui.h"
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
22 static const char cvsid[] = "$Id$";
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
23
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
24 int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
25 gftpui_common_run_mkdir (gftpui_callback_data * cdata)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
26 {
367
d5409bf03ff1 2003-1-18 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
27 return (gftp_make_directory (cdata->request, cdata->input_string));
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
28 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
29
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
30
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
31 int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
32 gftpui_common_run_rename (gftpui_callback_data * cdata)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
33 {
367
d5409bf03ff1 2003-1-18 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
34 return (gftp_rename_file (cdata->request, cdata->source_string,
d5409bf03ff1 2003-1-18 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
35 cdata->input_string));
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
36 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
37
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
38
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
39 int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
40 gftpui_common_run_site (gftpui_callback_data * cdata)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
41 {
633
05c67a33b071 2004-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 598
diff changeset
42 return (gftp_site_cmd (cdata->request, cdata->toggled, cdata->input_string));
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
43 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
44
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
45
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
46 int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
47 gftpui_common_run_chdir (gftpui_callback_data * cdata)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
48 {
367
d5409bf03ff1 2003-1-18 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
49 return (gftp_set_directory (cdata->request, cdata->input_string));
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
50 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
51
350
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
52
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
53 int
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
54 gftpui_common_run_chmod (gftpui_callback_data * cdata)
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
55 {
367
d5409bf03ff1 2003-1-18 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
56 return (gftp_chmod (cdata->request, cdata->source_string,
d5409bf03ff1 2003-1-18 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
57 strtol (cdata->input_string, NULL, 10)));
350
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
58 }
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
59
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
60
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
61 int
355
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
62 gftpui_common_run_ls (gftpui_callback_data * cdata)
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
63 {
443
6b1e4bd20ae4 2004-3-21 Brian Masney <masneyb@gftp.org>
masneyb
parents: 387
diff changeset
64 int got, matched_filespec, have_dotdot, ret;
387
2f5ce7fb5aad 2003-2-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 367
diff changeset
65 char *sortcol_var, *sortasds_var;
355
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
66 intptr_t sortcol, sortasds;
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
67 gftp_file * fle;
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
68
443
6b1e4bd20ae4 2004-3-21 Brian Masney <masneyb@gftp.org>
masneyb
parents: 387
diff changeset
69 ret = gftp_list_files (cdata->request);
6b1e4bd20ae4 2004-3-21 Brian Masney <masneyb@gftp.org>
masneyb
parents: 387
diff changeset
70 if (ret < 0)
6b1e4bd20ae4 2004-3-21 Brian Masney <masneyb@gftp.org>
masneyb
parents: 387
diff changeset
71 return (ret);
355
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
72
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
73 have_dotdot = 0;
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
74 cdata->request->gotbytes = 0;
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
75 cdata->files = NULL;
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
76 fle = g_malloc0 (sizeof (*fle));
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
77 while ((got = gftp_get_next_file (cdata->request, NULL, fle)) > 0 ||
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
78 got == GFTP_ERETRYABLE)
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
79 {
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
80 if (cdata->source_string == NULL)
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
81 matched_filespec = 1;
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
82 else
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
83 matched_filespec = gftp_match_filespec (fle->file,
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
84 cdata->source_string);
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
85
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
86 if (got < 0 || strcmp (fle->file, ".") == 0 || !matched_filespec)
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
87 {
598
fa0838b22b14 2004-10-29 Brian Masney <masneyb@gftp.org>
masneyb
parents: 592
diff changeset
88 gftp_file_destroy (fle, 0);
355
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
89 continue;
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
90 }
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
91 else if (strcmp (fle->file, "..") == 0)
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
92 have_dotdot = 1;
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
93
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
94 cdata->request->gotbytes += got;
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
95 cdata->files = g_list_prepend (cdata->files, fle);
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
96 fle = g_malloc0 (sizeof (*fle));
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
97 }
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
98 g_free (fle);
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
99
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
100 gftp_end_transfer (cdata->request);
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
101 cdata->request->gotbytes = -1;
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
102
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
103 if (!have_dotdot)
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
104 {
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
105 fle = g_malloc0 (sizeof (*fle));
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
106 fle->file = g_strdup ("..");
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
107 fle->user = g_malloc0 (1);
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
108 fle->group = g_malloc0 (1);
592
741fc54b4869 2004-10-7 Brian Masney <masneyb@gftp.org>
masneyb
parents: 514
diff changeset
109 fle->st_mode = S_IFDIR | S_IRUSR | S_IWUSR | S_IXUSR;
355
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
110 cdata->files = g_list_prepend (cdata->files, fle);
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
111 }
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
112
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
113 if (cdata->files != NULL)
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
114 {
387
2f5ce7fb5aad 2003-2-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 367
diff changeset
115 if (cdata->request->protonum == GFTP_LOCAL_NUM)
2f5ce7fb5aad 2003-2-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 367
diff changeset
116 {
2f5ce7fb5aad 2003-2-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 367
diff changeset
117 sortasds_var = "local_sortasds";
2f5ce7fb5aad 2003-2-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 367
diff changeset
118 sortcol_var = "local_sortcol";
2f5ce7fb5aad 2003-2-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 367
diff changeset
119 }
2f5ce7fb5aad 2003-2-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 367
diff changeset
120 else
2f5ce7fb5aad 2003-2-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 367
diff changeset
121 {
2f5ce7fb5aad 2003-2-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 367
diff changeset
122 sortasds_var = "remote_sortasds";
2f5ce7fb5aad 2003-2-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 367
diff changeset
123 sortcol_var = "remote_sortcol";
2f5ce7fb5aad 2003-2-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 367
diff changeset
124 }
2f5ce7fb5aad 2003-2-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 367
diff changeset
125
2f5ce7fb5aad 2003-2-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 367
diff changeset
126 gftp_lookup_global_option (sortcol_var, &sortcol);
2f5ce7fb5aad 2003-2-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 367
diff changeset
127 gftp_lookup_global_option (sortasds_var, &sortasds);
355
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
128
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
129 cdata->files = gftp_sort_filelist (cdata->files, sortcol, sortasds);
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
130 }
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
131
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
132 return (1);
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
133 }
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
134
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
135
507
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
136 static void
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
137 _gftpui_common_del_purge_cache (gpointer key, gpointer value,
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
138 gpointer user_data)
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
139 {
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
140 gftp_delete_cache_entry (NULL, key, 0);
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
141 g_free (key);
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
142 }
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
143
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
144
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
145 static int
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
146 _gftpui_common_rm_list (gftpui_callback_data * cdata)
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
147 {
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
148 char *tempstr, description[BUFSIZ];
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
149 gftp_file * tempfle;
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
150 GHashTable * rmhash;
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
151 GList * templist;
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
152 int success, ret;
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
153
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
154 for (templist = cdata->files;
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
155 templist->next != NULL;
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
156 templist = templist->next);
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
157
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
158 if (cdata->request->use_cache)
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
159 rmhash = g_hash_table_new (string_hash_function, string_hash_compare);
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
160 else
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
161 rmhash = NULL;
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
162
514
e55d8b35d809 2004-7-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 507
diff changeset
163 ret = 0;
507
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
164 for (; templist != NULL; templist = templist->prev)
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
165 {
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
166 tempfle = templist->data;
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
167
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
168 if (S_ISDIR (tempfle->st_mode))
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
169 success = gftp_remove_directory (cdata->request, tempfle->file);
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
170 else
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
171 success = gftp_remove_file (cdata->request, tempfle->file);
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
172
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
173 if (success < 0)
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
174 ret = success;
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
175 else if (rmhash != NULL)
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
176 {
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
177 gftp_generate_cache_description (cdata->request, description,
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
178 sizeof (description), 0);
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
179 if (g_hash_table_lookup (rmhash, description) == NULL)
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
180 {
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
181 tempstr = g_strdup (description);
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
182 g_hash_table_insert (rmhash, tempstr, NULL);
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
183 }
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
184 }
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
185
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
186 if (!GFTP_IS_CONNECTED (cdata->request))
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
187 break;
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
188 }
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
189
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
190 if (rmhash != NULL)
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
191 {
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
192 g_hash_table_foreach (rmhash, _gftpui_common_del_purge_cache, NULL);
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
193 g_hash_table_destroy (rmhash);
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
194 }
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
195
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
196 return (ret);
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
197 }
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
198
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
199
355
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
200 int
350
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
201 gftpui_common_run_delete (gftpui_callback_data * cdata)
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
202 {
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
203 int ret;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
204
507
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
205 if (cdata->files != NULL)
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
206 ret = _gftpui_common_rm_list (cdata);
350
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
207 else
507
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
208 ret = gftp_remove_file (cdata->request, cdata->input_string);
350
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
209
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
210 return (ret);
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
211 }
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
212
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
213
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
214 int
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
215 gftpui_common_run_rmdir (gftpui_callback_data * cdata)
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
216 {
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
217 int ret;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
218
507
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
219 if (cdata->files != NULL)
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
220 ret = _gftpui_common_rm_list (cdata);
350
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
221 else
507
34a4c6ec453c 2004-7-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
222 ret = gftp_remove_directory (cdata->request, cdata->input_string);
350
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
223
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
224 return (ret);
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
225 }
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
226
367
d5409bf03ff1 2003-1-18 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
227
d5409bf03ff1 2003-1-18 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
228 int
d5409bf03ff1 2003-1-18 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
229 gftpui_common_run_connect (gftpui_callback_data * cdata)
d5409bf03ff1 2003-1-18 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
230 {
d5409bf03ff1 2003-1-18 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
231 return (gftp_connect (cdata->request));
d5409bf03ff1 2003-1-18 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
232 }
d5409bf03ff1 2003-1-18 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
233