annotate src/text/gftp-text.c @ 28:b3e16d1f19c9

2002-09-24 Brian Masney <masneyb@gftp.org> * configure.in - take [external] off of AM_GNU_GETTEXT * de.po, ja.po, nl.po, no.po, pl.po, sv.po, zh_CN.po - fixed several format modifiers on some strings
author masneyb
date Tue, 24 Sep 2002 13:00:16 +0000
parents ddb983d8574b
children c8ec7877432e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1 /*****************************************************************************/
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
2 /* gftp-text.c - text port of gftp */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
3 /* Copyright (C) 1998-2002 Brian Masney <masneyb@gftp.org> */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
4 /* */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
5 /* This program is free software; you can redistribute it and/or modify */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
6 /* it under the terms of the GNU General Public License as published by */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
7 /* the Free Software Foundation; either version 2 of the License, or */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
8 /* (at your option) any later version. */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
9 /* */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
10 /* This program is distributed in the hope that it will be useful, */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
11 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
12 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
13 /* GNU General Public License for more details. */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
14 /* */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
15 /* You should have received a copy of the GNU General Public License */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
16 /* along with this program; if not, write to the Free Software */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
17 /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
18 /*****************************************************************************/
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
19
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
20 #include "gftp-text.h"
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
21
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
22 static gftp_request * gftp_text_locreq = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
23 static gftp_request * gftp_text_remreq = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
24 static volatile int cancel = 0;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
25 static int configuration_changed = 0,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
26 number_commands = 30;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
27
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
28 struct _gftp_text_methods gftp_text_methods[] = {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
29 {N_("about"), 2, gftp_text_about, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
30 N_("Shows gFTP information")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
31 {N_("ascii"), 2, gftp_text_ascii, &gftp_text_remreq,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
32 N_("Sets the current file transfer mode to Ascii (only for FTP)")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
33 {N_("binary"), 1, gftp_text_binary, &gftp_text_remreq,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
34 N_("Sets the current file transfer mode to Binary (only for FTP)")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
35 {N_("cd"), 2, gftp_text_cd, &gftp_text_remreq,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
36 N_("Changes the remote working directory")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
37 {N_("chdir"), 3, gftp_text_cd, &gftp_text_remreq,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
38 N_("Changes the remote working directory")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
39 {N_("chmod"), 3, gftp_text_chmod, &gftp_text_remreq,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
40 N_("Changes the permissions of a remote file")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
41 {N_("close"), 2, gftp_text_close, &gftp_text_remreq,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
42 N_("Disconnects from the remote site")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
43 {N_("delete"), 1, gftp_text_delete, &gftp_text_remreq,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
44 N_("Removes a remote file")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
45 {N_("get"), 1, gftp_text_mget_file, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
46 N_("Downloads remote file(s)")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
47 {N_("help"), 1, gftp_text_help, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
48 N_("Shows this help screen")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
49 {N_("lcd"), 3, gftp_text_cd, &gftp_text_locreq,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
50 N_("Changes the local working directory")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
51 {N_("lchdir"), 4, gftp_text_cd, &gftp_text_locreq,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
52 N_("Changes the local working directory")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
53 {N_("lchmod"), 4, gftp_text_chmod, &gftp_text_locreq,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
54 N_("Changes the permissions of a local file")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
55 {N_("ldelete"), 2, gftp_text_delete, &gftp_text_locreq,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
56 N_("Removes a local file")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
57 {N_("lls"), 2, gftp_text_ls, &gftp_text_locreq,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
58 N_("Shows the directory listing for the current local directory")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
59 {N_("lmkdir"), 2, gftp_text_mkdir, &gftp_text_locreq,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
60 N_("Creates a local directory")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
61 {N_("lpwd"), 2, gftp_text_pwd, &gftp_text_locreq,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
62 N_("Show current local directory")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
63 {N_("lrename"), 3, gftp_text_rename, &gftp_text_locreq,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
64 N_("Rename a local file")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
65 {N_("lrmdir"), 3, gftp_text_rmdir, &gftp_text_locreq,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
66 N_("Remove a local directory")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
67 {N_("ls"), 2, gftp_text_ls, &gftp_text_remreq,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
68 N_("Shows the directory listing for the current remote directory")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
69 {N_("mget"), 2, gftp_text_mget_file, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
70 N_("Downloads remote file(s)")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
71 {N_("mkdir"), 2, gftp_text_mkdir, &gftp_text_remreq,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
72 N_("Creates a remote directory")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
73 {N_("mput"), 2, gftp_text_mput_file, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
74 N_("Uploads local file(s)")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
75 {N_("open"), 1, gftp_text_open, &gftp_text_remreq,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
76 N_("Opens a connection to a remote site")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
77 {N_("put"), 2, gftp_text_mput_file, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
78 N_("Uploads local file(s)")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
79 {N_("pwd"), 2, gftp_text_pwd, &gftp_text_remreq,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
80 N_("Show current remote directory")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
81 {N_("quit"), 1, gftp_text_quit, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
82 N_("Exit from gFTP")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
83 {N_("rename"), 2, gftp_text_rename, &gftp_text_remreq,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
84 N_("Rename a remote file")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
85 {N_("rmdir"), 2, gftp_text_rmdir, &gftp_text_remreq,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
86 N_("Remove a remote directory")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
87 {N_("set"), 1, gftp_text_set, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
88 N_("Show configuration file variables. You can also set variables by set var=val")},
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
89 {NULL, 0, NULL, NULL, NULL}};
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
90
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
91 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
92 main (int argc, char **argv)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
93 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
94 gftp_request * request;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
95 size_t len, cmdlen;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
96 char *pos, *stpos;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
97 int i;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
98 #ifdef HAVE_LIBREADLINE
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
99 char *tempstr, prompt[20];
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
100 #else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
101 char tempstr[512];
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
102 #endif
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
103
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
104 #ifdef HAVE_GETTEXT
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
105 setlocale (LC_ALL, "");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
106 bindtextdomain ("gftp", LOCALE_DIR);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
107 textdomain ("gftp");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
108 #endif
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
109
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
110 signal (SIGCHLD, sig_child);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
111 signal (SIGPIPE, SIG_IGN);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
112
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
113 gftp_read_config_file (argv, 0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
114
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
115 /* SSH doesn't support reading the password with askpass via the command
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
116 line */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
117 ssh_use_askpass = sshv2_use_sftp_subsys = 0;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
118
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
119 if (gftp_parse_command_line (&argc, &argv) != 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
120 exit (0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
121
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
122 gftp_text_remreq = gftp_request_new ();
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
123 gftp_text_remreq->logging_function = gftp_text_log;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
124
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
125 gftp_text_locreq = gftp_request_new ();
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
126 gftp_text_locreq->logging_function = gftp_text_log;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
127 gftp_protocols[GFTP_LOCAL_NUM].init (gftp_text_locreq);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
128 if (startup_directory != NULL && *startup_directory != '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
129 gftp_set_directory (gftp_text_locreq, startup_directory);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
130 gftp_connect (gftp_text_locreq);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
131
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
132 gftp_text_log (gftp_logging_misc, NULL, "%s, Copyright (C) 1998-2002 Brian Masney <", version);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
133 gftp_text_log (gftp_logging_recv, NULL, "masneyb@gftp.org");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
134 gftp_text_log (gftp_logging_misc, NULL, _(">.\nIf you have any questions, comments, or suggestions about this program, please feel free to email them to me. You can always find out the latest news about gFTP from my website at http://www.gftp.org/\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
135 gftp_text_log (gftp_logging_misc, NULL, "\n");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
136 gftp_text_log (gftp_logging_misc, NULL, _("gFTP comes with ABSOLUTELY NO WARRANTY; for details, see the COPYING file. This is free software, and you are welcome to redistribute it under certain conditions; for details, see the COPYING file\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
137 gftp_text_log (gftp_logging_misc, NULL, "\n");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
138
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
139 if (argc == 3 && strcmp (argv[1], "-d") == 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
140 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
141 if ((pos = strrchr (argv[2], '/')) != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
142 *pos = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
143 gftp_text_open (gftp_text_remreq, argv[2], NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
144
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
145 if (pos != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
146 *pos = '/';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
147
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
148 gftp_text_mget_file (gftp_text_remreq, pos + 1, NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
149 exit (0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
150 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
151 else if (argc == 2)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
152 gftp_text_open (gftp_text_remreq, argv[1], NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
153
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
154 #ifdef HAVE_LIBREADLINE
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
155 g_snprintf (prompt, sizeof (prompt), "%sftp%s> ", COLOR_BLUE, COLOR_DEFAULT);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
156 while ((tempstr = readline (prompt)))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
157 #else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
158 printf ("%sftp%s> ", COLOR_BLUE, COLOR_DEFAULT);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
159 while (fgets (tempstr, sizeof (tempstr), stdin) != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
160 #endif
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
161 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
162 len = strlen (tempstr);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
163 if (tempstr[len - 1] == '\n')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
164 tempstr[--len] = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
165 if (tempstr[len - 1] == '\r')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
166 tempstr[--len] = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
167
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
168 for (stpos = tempstr; *stpos == ' '; stpos++);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
169
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
170 for (pos = tempstr + len - 1;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
171 (*pos == ' ' || *pos == '\t') && pos > tempstr;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
172 pos--)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
173 *pos = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
174
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
175 if (*stpos == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
176 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
177 #ifndef HAVE_LIBREADLINE
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
178 printf ("%sftp%s> ", COLOR_BLUE, COLOR_DEFAULT);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
179 #endif
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
180 continue;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
181 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
182
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
183 #ifdef HAVE_LIBREADLINE
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
184 add_history (tempstr);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
185 #endif
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
186
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
187 if ((pos = strchr (stpos, ' ')) != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
188 *pos = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
189 cmdlen = strlen (stpos);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
190
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
191 for (i=0; gftp_text_methods[i].command != NULL; i++)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
192 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
193 if (strcmp (gftp_text_methods[i].command, stpos) == 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
194 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
195 else if (cmdlen >= gftp_text_methods[i].minlen &&
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
196 strncmp (gftp_text_methods[i].command, stpos, cmdlen) == 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
197 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
198 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
199
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
200 if (pos != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
201 pos++;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
202 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
203 pos = "";
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
204
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
205 if (gftp_text_methods[i].command != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
206 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
207 if (gftp_text_methods[i].request != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
208 request = *gftp_text_methods[i].request;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
209 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
210 request = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
211
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
212 if (gftp_text_methods[i].func (request, pos, NULL) == 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
213 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
214 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
215 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
216 gftp_text_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
217 _("Error: Command not recognized\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
218
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
219 #ifdef HAVE_LIBREADLINE
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
220 free (tempstr);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
221 #else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
222 printf ("%sftp%s> ", COLOR_BLUE, COLOR_DEFAULT);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
223 #endif
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
224 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
225
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
226 if (logfd != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
227 fclose (logfd);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
228 gftp_text_quit (NULL, NULL, NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
229
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
230 return (0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
231 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
232
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
233
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
234 void
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
235 gftp_text_log (gftp_logging_level level, void *ptr, const char *string, ...)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
236 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
237 char tempstr[512], *stpos, *endpos;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
238 va_list argp;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
239 int sw;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
240
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
241 g_return_if_fail (string != NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
242
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
243 switch (level)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
244 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
245 case gftp_logging_send:
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
246 printf ("%s", COLOR_GREEN);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
247 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
248 case gftp_logging_recv:
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
249 printf ("%s", COLOR_YELLOW);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
250 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
251 case gftp_logging_error:
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
252 printf ("%s", COLOR_RED);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
253 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
254 default:
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
255 printf ("%s", COLOR_DEFAULT);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
256 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
257 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
258
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
259 va_start (argp, string);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
260 g_vsnprintf (tempstr, sizeof (tempstr), string, argp);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
261 va_end (argp);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
262
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
263 if (logfd != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
264 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
265 fwrite (tempstr, 1, strlen (tempstr), logfd);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
266 if (ferror (logfd))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
267 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
268 fclose (logfd);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
269 logfd = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
270 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
271 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
272 fflush (logfd);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
273 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
274
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
275 sw = gftp_text_get_win_size ();
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
276 stpos = tempstr;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
277 endpos = tempstr + 1;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
278 do
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
279 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
280 if (strlen (stpos) <= sw)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
281 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
282 printf ("%s", stpos);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
283 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
284 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
285 for (endpos = stpos + sw - 1; *endpos != ' ' && endpos > stpos; endpos--);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
286 if (endpos != stpos)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
287 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
288 *endpos = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
289 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
290 printf ("%s\n", stpos);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
291 stpos = endpos + 1;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
292 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
293 while (stpos != endpos);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
294
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
295 printf ("%s", COLOR_DEFAULT);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
296 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
297
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
298
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
299 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
300 gftp_text_open (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
301 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
302 char tempstr[255], *pos;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
303
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
304 if (GFTP_IS_CONNECTED (request))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
305 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
306 gftp_disconnect (request);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
307 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
308
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
309 if (*command == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
310 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
311 gftp_text_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
312 _("usage: open [[ftp://][user:pass@]ftp-site[:port][/directory]]\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
313 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
314 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
315
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
316 if (gftp_parse_url (request, command) < 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
317 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
318 gftp_text_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
319 _("Could not parse URL %s\n"), command);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
320 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
321 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
322
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
323 if (strcmp (GFTP_GET_USERNAME (request), "anonymous") == 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
324 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
325 if ((pos = gftp_text_ask_question ("Username [anonymous]", 1, tempstr,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
326 sizeof (tempstr))) != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
327 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
328 gftp_set_username (request, pos);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
329 if (request->password)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
330 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
331 g_free (request->password);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
332 request->password = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
333 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
334 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
335 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
336
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
337 if (strcmp (GFTP_GET_USERNAME (request), "anonymous") != 0 &&
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
338 (request->password == NULL || *request->password == '\0'))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
339 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
340 if ((pos = gftp_text_ask_question ("Password", 0, tempstr,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
341 sizeof (tempstr))) == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
342 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
343 gftp_set_password (request, pos);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
344 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
345
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
346 gftp_connect (request);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
347 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
348 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
349
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
350
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
351 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
352 gftp_text_close (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
353 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
354 gftp_disconnect (request);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
355 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
356 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
357
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
358
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
359 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
360 gftp_text_about (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
361 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
362 char *str;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
363
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
364 gftp_text_log (gftp_logging_misc, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
365 "%s. Copyright (C) 1998-2002 Brian Masney <masneyb@gftp.org>\n", version);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
366
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
367 str = _("Translated by");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
368 if (strcmp (str, "Translated by") != 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
369 gftp_text_log (gftp_logging_misc, NULL, "%s\n", str);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
370 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
371 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
372
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
373
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
374 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
375 gftp_text_quit (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
376 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
377 gftp_clear_cache_files ();
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
378 if (configuration_changed)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
379 gftp_write_config_file ();
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
380 return (0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
381 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
382
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
383
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
384 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
385 gftp_text_pwd (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
386 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
387 if (!GFTP_IS_CONNECTED (request))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
388 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
389 gftp_text_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
390 _("Error: Not connected to a remote site\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
391 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
392 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
393 gftp_text_log (gftp_logging_misc, NULL, "%s\n", request->directory);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
394 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
395 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
396
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
397
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
398 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
399 gftp_text_cd (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
400 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
401 char *newdir = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
402
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
403 if (!GFTP_IS_CONNECTED (request))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
404 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
405 gftp_text_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
406 _("Error: Not connected to a remote site\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
407 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
408 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
409 else if (*command == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
410 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
411 gftp_text_log (gftp_logging_error, NULL, _("usage: chdir <directory>\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
412 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
413 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
414 else if (request->protonum == GFTP_LOCAL_NUM &&
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
415 (newdir = expand_path (command)) == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
416 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
417 gftp_text_log (gftp_logging_error, NULL, _("usage: chdir <directory>\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
418 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
419 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
420
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
421 gftp_set_directory (request, newdir != NULL ? newdir : command);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
422
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
423 if (newdir != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
424 g_free (newdir);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
425
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
426 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
427 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
428
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
429
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
430 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
431 gftp_text_mkdir (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
432 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
433 if (!GFTP_IS_CONNECTED (request))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
434 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
435 gftp_text_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
436 _("Error: Not connected to a remote site\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
437 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
438 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
439
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
440 if (*command == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
441 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
442 gftp_text_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
443 _("usage: mkdir <new directory>\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
444 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
445 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
446 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
447 gftp_make_directory (request, command);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
448 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
449 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
450 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
451
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
452
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
453 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
454 gftp_text_rmdir (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
455 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
456 if (!GFTP_IS_CONNECTED (request))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
457 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
458 gftp_text_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
459 _("Error: Not connected to a remote site\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
460 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
461 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
462
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
463 if (*command == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
464 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
465 gftp_text_log (gftp_logging_error, NULL, _("usage: rmdir <directory>\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
466 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
467 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
468 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
469 gftp_remove_directory (request, command);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
470 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
471 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
472 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
473
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
474
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
475 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
476 gftp_text_delete (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
477 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
478 if (!GFTP_IS_CONNECTED (request))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
479 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
480 gftp_text_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
481 _("Error: Not connected to a remote site\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
482 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
483 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
484
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
485 if (*command == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
486 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
487 gftp_text_log (gftp_logging_error, NULL,_("usage: delete <file>\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
488 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
489 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
490 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
491 gftp_remove_file (request, command);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
492 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
493 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
494 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
495
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
496
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
497 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
498 gftp_text_rename (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
499 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
500 char *pos;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
501
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
502 if (!GFTP_IS_CONNECTED (request))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
503 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
504 gftp_text_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
505 _("Error: Not connected to a remote site\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
506 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
507 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
508
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
509 if ((pos = strchr (command, ' ')) != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
510 *pos++ = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
511
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
512 if (*command == '\0' || pos == NULL || *pos == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
513 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
514 gftp_text_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
515 _("usage: rename <old name> <new name>\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
516 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
517 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
518 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
519 gftp_rename_file (request, command, pos);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
520 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
521 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
522 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
523
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
524
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
525 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
526 gftp_text_chmod (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
527 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
528 char *pos;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
529
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
530 if (!GFTP_IS_CONNECTED (request))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
531 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
532 gftp_text_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
533 _("Error: Not connected to a remote site\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
534 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
535 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
536
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
537 if ((pos = strchr (command, ' ')) != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
538 *pos++ = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
539
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
540 if (*command == '\0' || pos == NULL || *pos == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
541 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
542 gftp_text_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
543 _("usage: chmod <mode> <file>\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
544 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
545 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
546 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
547 gftp_chmod (request, pos, strtol (command, NULL, 10));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
548 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
549 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
550 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
551
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
552
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
553 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
554 gftp_text_ls (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
555 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
556 char *color, buf[20], *filespec;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
557 time_t curtime;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
558 gftp_file fle;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
559
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
560 time (&curtime);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
561 if (!GFTP_IS_CONNECTED (request))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
562 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
563 gftp_text_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
564 _("Error: Not connected to a remote site\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
565 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
566 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
567
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
568 filespec = *command != '\0' ? command : NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
569 if (gftp_list_files (request) != 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
570 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
571
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
572 while (gftp_get_next_file (request, filespec, &fle) > 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
573 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
574 if (strcmp (fle.file, ".") == 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
575 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
576 gftp_file_destroy (&fle);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
577 continue;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
578 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
579
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
580 if (*fle.attribs == 'd')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
581 color = COLOR_BLUE;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
582 else if (*fle.attribs == 'l')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
583 color = COLOR_WHITE;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
584 else if (strchr (fle.attribs, 'x') != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
585 color = COLOR_GREEN;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
586 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
587 color = COLOR_DEFAULT;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
588
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
589 if (curtime > fle.datetime + 6 * 30 * 24 * 60 * 60 ||
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
590 curtime < fle.datetime - 60 * 60)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
591 strftime (buf, sizeof (buf), "%b %d %Y", localtime (&fle.datetime));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
592 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
593 strftime (buf, sizeof (buf), "%b %d %H:%M", localtime (&fle.datetime));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
594
16
ddb983d8574b * Improved directory sorting algorithm
masneyb
parents: 1
diff changeset
595 #if defined (_LARGEFILE_SOURCE)
ddb983d8574b * Improved directory sorting algorithm
masneyb
parents: 1
diff changeset
596 printf ("%s %8s %8s %10lld %s %s%s%s\n",
ddb983d8574b * Improved directory sorting algorithm
masneyb
parents: 1
diff changeset
597 #else
ddb983d8574b * Improved directory sorting algorithm
masneyb
parents: 1
diff changeset
598 printf ("%s %8s %8s %10ld %s %s%s%s\n",
ddb983d8574b * Improved directory sorting algorithm
masneyb
parents: 1
diff changeset
599 #endif
ddb983d8574b * Improved directory sorting algorithm
masneyb
parents: 1
diff changeset
600 fle.attribs, fle.user, fle.group,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
601 fle.size, buf, color, fle.file, COLOR_DEFAULT);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
602 gftp_file_destroy (&fle);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
603 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
604 gftp_end_transfer (request);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
605 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
606 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
607
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
608
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
609 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
610 gftp_text_binary (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
611 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
612 if (!GFTP_IS_CONNECTED (gftp_text_remreq))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
613 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
614 gftp_text_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
615 _("Error: Not connected to a remote site\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
616 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
617 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
618
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
619 gftp_set_data_type (gftp_text_remreq, GFTP_TYPE_BINARY);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
620 gftp_set_data_type (gftp_text_locreq, GFTP_TYPE_BINARY);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
621 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
622 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
623
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
624
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
625 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
626 gftp_text_ascii (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
627 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
628 if (!GFTP_IS_CONNECTED (gftp_text_remreq))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
629 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
630 gftp_text_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
631 _("Error: Not connected to a remote site\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
632 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
633 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
634
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
635 gftp_set_data_type (gftp_text_remreq, GFTP_TYPE_ASCII);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
636 gftp_set_data_type (gftp_text_locreq, GFTP_TYPE_ASCII);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
637 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
638 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
639
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
640
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
641 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
642 gftp_text_mget_file (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
643 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
644 gftp_transfer * transfer;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
645 gftp_file * fle;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
646
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
647 if (!GFTP_IS_CONNECTED (gftp_text_remreq))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
648 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
649 gftp_text_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
650 _("Error: Not connected to a remote site\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
651 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
652 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
653
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
654 if (*command == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
655 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
656 gftp_text_log (gftp_logging_error, NULL, _("usage: mget <filespec>\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
657 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
658 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
659
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
660 transfer = g_malloc0 (sizeof (*transfer));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
661 transfer->fromreq = gftp_text_remreq;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
662 transfer->toreq = gftp_text_locreq;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
663 transfer->transfer_direction = GFTP_DIRECTION_DOWNLOAD;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
664
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
665 /* FIXME - ask whether to resume/skip/overwrite */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
666 if (gftp_list_files (transfer->fromreq) != 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
667 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
668 transfer->fromreq = transfer->toreq = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
669 free_tdata (transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
670 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
671 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
672 fle = g_malloc0 (sizeof (*fle));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
673 while (gftp_get_next_file (transfer->fromreq, command, fle) > 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
674 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
675 if (strcmp (fle->file, ".") == 0 || strcmp (fle->file, "..") == 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
676 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
677 gftp_file_destroy (fle);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
678 continue;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
679 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
680 transfer->files = g_list_append (transfer->files, fle);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
681 fle = g_malloc (sizeof (*fle));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
682 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
683 g_free (fle);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
684 gftp_end_transfer (transfer->fromreq);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
685
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
686 if (transfer->files == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
687 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
688 transfer->fromreq = transfer->toreq = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
689 free_tdata (transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
690 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
691 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
692
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
693 if (gftp_get_all_subdirs (transfer, NULL) != 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
694 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
695 transfer->fromreq = transfer->toreq = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
696 free_tdata (transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
697 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
698 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
699
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
700 if (transfer->files == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
701 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
702 transfer->fromreq = transfer->toreq = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
703 free_tdata (transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
704 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
705 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
706
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
707 gftp_text_transfer_files (transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
708 transfer->fromreq = transfer->toreq = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
709 free_tdata (transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
710 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
711 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
712
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
713
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
714 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
715 gftp_text_mput_file (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
716 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
717 gftp_transfer * transfer;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
718 gftp_file * fle;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
719
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
720 if (!GFTP_IS_CONNECTED (gftp_text_remreq))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
721 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
722 gftp_text_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
723 _("Error: Not connected to a remote site\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
724 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
725 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
726
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
727 if (*command == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
728 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
729 gftp_text_log (gftp_logging_error, NULL, _("usage: mput <filespec>\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
730 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
731 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
732
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
733 transfer = g_malloc0 (sizeof (*transfer));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
734 transfer->fromreq = gftp_text_locreq;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
735 transfer->toreq = gftp_text_remreq;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
736 transfer->transfer_direction = GFTP_DIRECTION_UPLOAD;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
737
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
738 if (gftp_list_files (transfer->fromreq) != 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
739 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
740 transfer->fromreq = transfer->toreq = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
741 free_tdata (transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
742 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
743 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
744 fle = g_malloc (sizeof (*fle));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
745 while (gftp_get_next_file (transfer->fromreq, command, fle) > 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
746 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
747 if (strcmp (fle->file, ".") == 0 || strcmp (fle->file, "..") == 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
748 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
749 gftp_file_destroy (fle);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
750 continue;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
751 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
752 transfer->files = g_list_append (transfer->files, fle);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
753 fle = g_malloc (sizeof (*fle));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
754 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
755 g_free (fle);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
756 gftp_end_transfer (transfer->fromreq);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
757
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
758 if (transfer->files == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
759 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
760 transfer->fromreq = transfer->toreq = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
761 free_tdata (transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
762 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
763 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
764
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
765 if (gftp_get_all_subdirs (transfer, NULL) != 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
766 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
767 transfer->fromreq = transfer->toreq = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
768 free_tdata (transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
769 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
770 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
771
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
772 if (transfer->files == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
773 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
774 transfer->fromreq = transfer->toreq = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
775 free_tdata (transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
776 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
777 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
778
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
779 gftp_text_transfer_files (transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
780 transfer->fromreq = transfer->toreq = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
781 free_tdata (transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
782 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
783 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
784
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
785
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
786 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
787 gftp_text_transfer_files (gftp_transfer * transfer)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
788 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
789 char *tempstr, buf[8192], *progress = "|/-\\";
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
790 struct timeval updatetime;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
791 long fromsize, total;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
792 gftp_file * curfle;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
793 int i, j, sw, tot;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
794 ssize_t num_read;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
795
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
796 for (transfer->curfle = transfer->files;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
797 transfer->curfle != NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
798 transfer->curfle = transfer->curfle->next)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
799 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
800 curfle = transfer->curfle->data;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
801 if (curfle->transfer_action == GFTP_TRANS_ACTION_SKIP)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
802 continue;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
803
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
804 if (curfle->isdir && transfer->toreq->mkdir != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
805 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
806 transfer->toreq->mkdir (transfer->toreq, curfle->destfile);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
807 continue;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
808 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
809
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
810 if (maxkbs > 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
811 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
812 gftp_text_log (gftp_logging_misc, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
813 _("File transfer will be throttled to %.2f KB/s\n"),
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
814 maxkbs);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
815 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
816
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
817 transfer->curtrans = curfle->startsize;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
818 fromsize = gftp_transfer_file (transfer->fromreq, curfle->file, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
819 curfle->startsize, transfer->toreq, curfle->destfile,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
820 NULL, curfle->startsize);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
821 if (fromsize < 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
822 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
823
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
824 gettimeofday (&transfer->starttime, NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
825 memcpy (&transfer->lasttime, &transfer->starttime,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
826 sizeof (transfer->lasttime));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
827 memset (&updatetime, 0, sizeof (updatetime));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
828
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
829 total = 0;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
830 i = 0;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
831 while (!cancel && (num_read = gftp_get_next_file_chunk (transfer->fromreq,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
832 buf, sizeof (buf))) > 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
833 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
834 printf ("\r%c ", progress[i++]);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
835 fflush (stdout);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
836 if (progress[i] == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
837 i = 0;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
838
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
839 total += num_read;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
840 gftp_text_calc_kbs (transfer, num_read);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
841 if (transfer->lasttime.tv_sec - updatetime.tv_sec >= 1 || total >= fromsize)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
842 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
843 sw = gftp_text_get_win_size () - 20;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
844 tot = (float) total / (float) fromsize * (float) sw;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
845
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
846 if (tot > sw)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
847 tot = sw;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
848 printf ("[");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
849 for (j=0; j<tot; j++)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
850 printf ("=");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
851 for (j=0; j<sw-tot; j++)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
852 printf (" ");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
853 printf ("] @ %.2fKB/s", transfer->kbs);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
854 fflush (stdout);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
855 memcpy (&updatetime, &transfer->lasttime, sizeof (updatetime));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
856 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
857
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
858 if (GFTP_GET_DATA_TYPE (transfer->fromreq) == GFTP_TYPE_ASCII)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
859 tempstr = gftp_convert_ascii (buf, &num_read, 1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
860 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
861 tempstr = buf;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
862
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
863 if (gftp_put_next_file_chunk (transfer->toreq, tempstr, num_read) < 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
864 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
865 num_read = -1;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
866 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
867 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
868
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
869 /* We don't have to free tempstr for a download because new memory is
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
870 not allocated for it in that case */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
871 if (GFTP_GET_DATA_TYPE (transfer->fromreq) ==
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
872 GFTP_TYPE_ASCII && !transfer->transfer_direction)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
873 g_free (tempstr);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
874 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
875 printf ("\n");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
876
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
877 if (num_read < 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
878 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
879 gftp_text_log (gftp_logging_misc, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
880 _("Could not download %s\n"), curfle->file);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
881 gftp_disconnect (transfer->fromreq);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
882 gftp_disconnect (transfer->toreq);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
883 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
884 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
885 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
886 gftp_text_log (gftp_logging_misc, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
887 _("Successfully transferred %s\n"), curfle->file);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
888 gftp_end_transfer (transfer->fromreq);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
889 gftp_end_transfer (transfer->toreq);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
890 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
891
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
892 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
893 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
894 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
895
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
896
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
897 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
898 gftp_text_help (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
899 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
900 int i, j, ele, numrows, numcols = 6;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
901
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
902 if (command != NULL && *command != '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
903 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
904 for (i=0; gftp_text_methods[i].command != NULL; i++)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
905 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
906 if (strcmp (gftp_text_methods[i].command, command) == 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
907 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
908 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
909
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
910 if (gftp_text_methods[i].cmd_description != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
911 printf ("%s\n", _(gftp_text_methods[i].cmd_description));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
912 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
913 *command = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
914 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
915
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
916 if (command == NULL || *command == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
917 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
918 numrows = number_commands / numcols;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
919 if (number_commands % numcols != 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
920 numrows++;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
921
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
922 printf (_("Supported commands:\n\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
923 for (i=0; i<numrows; i++)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
924 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
925 printf (" ");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
926 for (j=0; j<numcols; j++)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
927 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
928 ele = i + j * numrows;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
929 if (ele >= number_commands)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
930 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
931 printf ("%-10s", gftp_text_methods[ele].command);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
932 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
933 printf ("\n");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
934 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
935
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
936 printf ("\n");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
937 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
938 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
939 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
940
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
941
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
942 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
943 gftp_text_set (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
944 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
945 char *pos, *backpos;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
946 int i;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
947
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
948 if (command == NULL || *command == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
949 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
950 for (i=0; config_file_vars[i].key != NULL; i++)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
951 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
952 switch (config_file_vars[i].type)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
953 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
954 case CONFIG_CHARTEXT:
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
955 printf ("%s = %s\n", config_file_vars[i].key,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
956 *(char **) config_file_vars[i].var);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
957 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
958 case CONFIG_INTTEXT:
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
959 case CONFIG_CHECKBOX:
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
960 printf ("%s = %d\n", config_file_vars[i].key,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
961 *(int *) config_file_vars[i].var);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
962 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
963 case CONFIG_FLOATTEXT:
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
964 printf ("%s = %.2f\n", config_file_vars[i].key,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
965 *(float *) config_file_vars[i].var);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
966 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
967 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
968 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
969 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
970 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
971 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
972 if ((pos = strchr (command, '=')) == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
973 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
974 gftp_text_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
975 _("usage: set [variable = value]\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
976 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
977 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
978 *pos = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
979
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
980 for (backpos = pos - 1;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
981 (*backpos == ' ' || *backpos == '\t') && backpos > command;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
982 backpos--)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
983 *backpos = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
984 for (++pos; *pos == ' ' || *pos == '\t'; pos++);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
985
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
986 for (i=0; config_file_vars[i].key != NULL; i++)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
987 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
988 if (strcmp (config_file_vars[i].key, command) == 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
989 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
990 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
991
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
992 if (config_file_vars[i].key == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
993 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
994 gftp_text_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
995 _("Error: Variable %s is not a valid configuration variable.\n"), command);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
996 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
997 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
998
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
999 configuration_changed = 1;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1000 switch (config_file_vars[i].type)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1001 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1002 case CONFIG_CHARTEXT:
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1003 if (*(char **) config_file_vars[i].var != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1004 g_free (*(char **) config_file_vars[i].var);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1005 *(char **) config_file_vars[i].var = g_strconcat (pos, NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1006 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1007 case CONFIG_CHECKBOX:
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1008 *(int *) config_file_vars[i].var = *pos == '1' ? 1 : 0;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1009 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1010 case CONFIG_INTTEXT:
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1011 *(int *) config_file_vars[i].var = strtol (pos, NULL, 10);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1012 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1013 case CONFIG_FLOATTEXT:
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1014 *(float *) config_file_vars[i].var = strtod (pos, NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1015 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1016 default:
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1017 gftp_text_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1018 _("Error: You cannot change this variable\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1019 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1020 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1021 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1022
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1023 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1024 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1025
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1026
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1027 char *
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1028 gftp_text_ask_question (const char *question, int echo, char *buf, size_t size)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1029 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1030 struct termios term, oldterm;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1031 sigset_t sig, sigsave;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1032 char *pos, *termname;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1033 FILE *infd, *outfd;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1034
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1035 if (!echo)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1036 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1037 sigemptyset (&sig);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1038 sigaddset (&sig, SIGINT);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1039 sigaddset (&sig, SIGTSTP);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1040 sigprocmask (SIG_BLOCK, &sig, &sigsave);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1041
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1042 termname = ctermid (NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1043 if ((infd = fopen (termname, "r+")) == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1044 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1045
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1046 gftp_text_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1047 "Cannot open controlling terminal %s\n", termname);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1048 return (NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1049 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1050 outfd = infd;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1051
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1052 tcgetattr (0, &term);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1053 oldterm = term;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1054 term.c_lflag &= ~(ECHO | ECHOE | ECHOK | ECHONL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1055 tcsetattr (fileno (infd), TCSAFLUSH, &term);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1056 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1057 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1058 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1059 infd = stdin;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1060 outfd = stdout;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1061 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1062
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1063 fprintf (outfd, "%s%s%s: ", COLOR_BLUE, question, COLOR_DEFAULT);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1064
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1065 if (fgets (buf, size, infd) == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1066 return (NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1067 buf[size - 1] = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1068
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1069 if (!echo)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1070 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1071 fprintf (outfd, "\n");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1072 tcsetattr (fileno (infd), TCSAFLUSH, &oldterm);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1073 fclose (outfd);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1074 sigprocmask (SIG_SETMASK, &sigsave, NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1075 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1076
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1077 for (pos = buf + strlen (buf) - 1; *pos == ' ' || *pos == '\r' ||
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1078 *pos == '\n'; pos--);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1079 *(pos+1) = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1080
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1081 for (pos = buf; *pos == ' '; pos++);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1082 if (*pos == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1083 return (NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1084
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1085 return (pos);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1086 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1087
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1088
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1089 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1090 gftp_text_get_win_size (void)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1091 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1092 struct winsize size;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1093 int ret;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1094
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1095 if (ioctl (0, TIOCGWINSZ, (char *) &size) < 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1096 ret = 80;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1097 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1098 ret = size.ws_col;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1099 return (ret);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1100 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1101
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1102
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1103 void
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1104 gftp_text_calc_kbs (gftp_transfer * tdata, ssize_t num_read)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1105 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1106 unsigned long waitusecs;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1107 double difftime, curkbs;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1108 gftp_file * tempfle;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1109 struct timeval tv;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1110 unsigned long toadd;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1111
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1112 gettimeofday (&tv, NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1113
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1114 tempfle = tdata->curfle->data;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1115 tdata->trans_bytes += num_read;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1116 tdata->curtrans += num_read;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1117 tdata->stalled = 0;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1118
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1119 difftime = (tv.tv_sec - tdata->starttime.tv_sec) + ((double) (tv.tv_usec - tdata->starttime.tv_usec) / 1000000.0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1120 if (difftime == 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1121 tdata->kbs = (double) tdata->trans_bytes / 1024.0;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1122 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1123 tdata->kbs = (double) tdata->trans_bytes / 1024.0 / difftime;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1124
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1125 difftime = (tv.tv_sec - tdata->lasttime.tv_sec) + ((double) (tv.tv_usec - tdata->lasttime.tv_usec) / 1000000.0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1126
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1127 if (difftime <= 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1128 curkbs = (double) (num_read / 1024.0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1129 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1130 curkbs = (double) (num_read / 1024.0 / difftime);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1131
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1132 if (tdata->fromreq->maxkbs > 0 &&
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1133 curkbs > tdata->fromreq->maxkbs)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1134 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1135 waitusecs = (double) num_read / 1024.0 / tdata->fromreq->maxkbs * 1000000.0 - difftime;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1136
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1137 if (waitusecs > 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1138 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1139 difftime += ((double) waitusecs / 1000000.0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1140 usleep (waitusecs);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1141 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1142 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1143
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1144 /* I don't call gettimeofday (&tdata->lasttime) here because this will use
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1145 less system resources. This will be close enough for what we need */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1146 difftime += tdata->lasttime.tv_usec / 1000000.0;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1147 toadd = (long) difftime;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1148 difftime -= toadd;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1149 tdata->lasttime.tv_sec += toadd;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1150 tdata->lasttime.tv_usec = difftime * 1000000.0;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1151 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1152
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1153
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1154 void
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1155 sig_child (int signo)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1156 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1157 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1158
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1159
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1160 #if !defined (HAVE_GETADDRINFO) || !defined (HAVE_GAI_STRERROR)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1161
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1162 struct hostent *
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1163 r_gethostbyname (const char *name, struct hostent *result_buf, int *h_errnop)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1164 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1165 struct hostent *hent;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1166
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1167 if ((hent = gethostbyname (name)) == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1168 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1169 if (h_errnop)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1170 *h_errnop = h_errno;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1171 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1172 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1173 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1174 *result_buf = *hent;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1175 hent = result_buf;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1176 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1177 return (hent);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1178 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1179
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1180
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1181 struct servent *
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1182 r_getservbyname (const char *name, const char *proto,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1183 struct servent *result_buf, int *h_errnop)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1184 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1185 struct servent *sent;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1186
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1187 if ((sent = getservbyname (name, proto)) == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1188 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1189 if (h_errnop)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1190 *h_errnop = h_errno;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1191 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1192 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1193 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1194 *result_buf = *sent;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1195 sent = result_buf;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1196 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1197 return (sent);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1198 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1199
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1200 #endif /* HAVE_GETADDRINFO */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1201