1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
|
2002-06-08 Roland McGrath <roland@frob.com>
* ftpconn.h (ftp_conn_add_stat_fun_t) [_FILE_OFFSET_BITS != 64]:
Use struct stat64 in place of struct stat.
2002-05-07 Roland McGrath <roland@frob.com>
* xfer.c (ftp_conn_start_open_actv_data): size_t -> socklen_t
(ftp_conn_finish_open_actv_data): Likewise.
2002-04-13 Moritz Schulte <moritz@chaosdorf.de>
* unix.c: Include <libgen.h>.
(struct get_stats_state): New member: searched_name.
(ftp_conn_unix_start_get_stats): Return EINVAL if trying to list
the root node without listing its content; set searched_name to
the dirname.
(ftp_conn_unix_cont_get_stats): If searching for the list info of
one entry, skip all other entries.
2001-12-22 Roland McGrath <roland@frob.com>
* ftpconn.h (ftp_conn_validate_syshooks): Don't make this extern
inline defn conditional on [__OPTIMIZE__].
1999-08-11 Thomas Bushnell, BSG <tb@mit.edu>
* open.c (ftp_conn_sysify): Handle REPLY_NO_LOGIN from "syst".
(ftp_conn_open): Ignore error from ftp_conn_sysify; it's ok if we
can't successfully deal. If we didn't sysify successfully before
login, then try again afterwards.
1998-10-20 Roland McGrath <roland@baalperazim.frob.com>
* unix.c (ftp_conn_unix_cont_get_stats): Add braces to silence gcc
warning.
* open.c (ftp_conn_sysify): Likewise.
(ftp_conn_login): Likewise.
* cwd.c (ftp_conn_cdup): Likewise.
(ftp_conn_cwd): Likewise.
(_cache_cwd): Likewise.
* addr.c (ftp_conn_send_actv_addr): Likewise.
(ftp_conn_get_pasv_addr): Likewise.
1997-09-04 Miles Bader <miles@gnu.ai.mit.edu>
* ftpconn.h [!FTP_CONN_EI] (FTP_CONN_EI): New macro.
(ftp_conn_validate_syshooks): Use FTP_CONN_EI instead of
`static inline'.
Protect with __OPTIMIZE__.
* ftpconn.h (struct ftp_conn): Remove ACTV_DATA_CONN_QUEUE field.
* create.c (ftp_conn_create): Don't initialize
CONN->actv_data_conn_queue.
* open.c (ftp_conn_close): Don't cleanup CONN->actv_data_conn_queue.
* xfer.c (ftp_conn_start_open_actv_data): Always generate a new data
connection (it doesn't work to always listen on a single address).
(ftp_conn_finish_open_actv_data): Close the listen queue after
looking for a connection.
(ftp_conn_abort_open_actv_data): Close the data queue socket.
1997-09-02 Miles Bader <miles@gnu.ai.mit.edu>
* xfer.c (ftp_conn_start_open_actv_data): If necessary, reopen the
control connection for getsockname.
1997-08-27 Miles Bader <miles@gnu.ai.mit.edu>
* ftpconn.h (struct ftp_conn): Add the ACTV_DATA_ADDR and
ACTV_DATA_CONN_QUEUE fields.
* create.c (ftp_conn_free): Free the ACTV_DATA_ADDR field.
(ftp_conn_create): Initialiaze the ACTV_DATA_ADDR &
ACTV_DATA_CONN_QUEUE fields.
* open.c (ftp_conn_close): Close CONN->actv_data_conn_queue if necessary.
* xfer.c (ftp_conn_start_open_actv_data): Renamed ftp_conn_open_actv_data.
Correctly generate data address.
(ftp_conn_start_open_data): Renamed from ftp_conn_open_data.
(ftp_conn_finish_open_data, ftp_conn_finish_open_actv_data): New
functions.
(ftp_conn_start_transfer): Use ftp_conn_start_open_data and
ftp_conn_finish_open_data instead of ftp_conn_open_data.
1997-08-26 Miles Bader <miles@gnu.ai.mit.edu>
* xfer.c (ftp_conn_open_actv_data): New function.
(ftp_conn_open_data): Use an active data connection if passive
doesn't work.
* ftpconn.h (struct ftp_conn): Add USE_PASSIVE field.
* create.c (ftp_conn_create): Initialize USE_PASSIVE field.
* open.c (ftp_conn_open): Set SIN_LEN field correctly.
1997-08-19 Miles Bader <miles@gnu.ai.mit.edu>
* create.c (ftp_conn_create): Initialize the SYSHOOKS_VALID field.
1997-08-15 Miles Bader <miles@gnu.ai.mit.edu>
* fname.c (ftp_conn_append_name, ftp_conn_basename): Make sure
CONN's SYSHOOKS field is valid before using it.
* ftpconn.h (struct ftp_conn): Add SYSHOOKS_VALID field.
(ftp_conn_validate_syshooks): New inline function.
* open.c (ftp_conn_sysify): Set SYSHOOKS_VALID.
* set-type.c (ftp_conn_set_type): If there's no connection, don't
open a new one, just save the type for later.
1997-08-09 Miles Bader <miles@gnu.ai.mit.edu>
* names.c (ftp_conn_cont_get_names): Check for interrupts.
* unix.c (ftp_conn_unix_cont_get_stats): Likewise.
* reply.c (ftp_conn_getline): Likewise.
* ftpconn.h (struct ftp_conn_hooks): Add INTERRUPT_CHECK field.
1997-08-08 Miles Bader <miles@gnu.ai.mit.edu>
* rmt.c (ftp_conn_rmt_transfer): If we get an error, close SRC_CONN
instead of aborting it, to avoid problems with some ftp servers.
* create.c (ftp_conn_create): Don't open the connection here.
* names.c (ftp_conn_cont_get_names): Use BASENAME hook instead of
FIX_NLIST_NAME.
(ftp_conn_start_get_names): Don't set DIR field.
(struct get_names_state): Remove DIR field.
(ftp_conn_cont_get_names): Don't free DIR field.
* ftpconn.h (struct ftp_conn_syshooks): Add APPEND_NAME and
BASENAME fields; remove FIX_NLIST_NAME field.
(ftp_conn_unix_append_name, ftp_conn_unix_basename): New declarations.
(ftp_conn_unix_fix_nlist_name): Declaration removed.
(ftp_conn_append_name, ftp_conn_basename): New declarations.
* unix.c (ftp_conn_unix_cont_get_stats): Pass only directory-
relative names to the callback function.
(ftp_conn_unix_append_name, ftp_conn_unix_basename): New functions.
(ftp_conn_unix_fix_nlist_name): Function removed.
(struct ftp_conn_unix_syshooks): Initialize APPEND_NAME and
BASENAME fields; remove FIX_NLIST_NAME initialization.
* fname.c: New file.
* Makefile (SRCS): Add fname.c
1997-08-07 Miles Bader <miles@gnu.ai.mit.edu>
* ftpconn.h (struct ftp_conn_syshooks): Add FIX_NLIST_NAME field.
(ftp_conn_unix_fix_nlist_name): New declaration.
* names.c (ftp_conn_cont_get_names): Support FIX_NLIST_NAME hook.
Free S->dir if necessary. Close or abort connection when done.
(struct get_names_state): Add DIR field.
(ftp_conn_start_get_names): Fill in S->dir field if necessary.
* unix.c (ftp_conn_unix_fix_nlist_name): New function.
(ftp_conn_unix_syshooks): Add ftp_conn_unix_fix_nlist_name.
1997-08-06 Miles Bader <miles@gnu.ai.mit.edu>
* open.c (ftp_conn_sysify): Handle REPLY_UNIMP_CMD for "syst".
* unix.c (parse_dir_entry): Re-enable mktime calls.
1997-08-04 Miles Bader <miles@gnu.ai.mit.edu>
* unix.c (ftp_conn_unix_cont_get_stats): If returning with an
error, ignore any return from ftp_conn_finish_transfer.
Wed Jun 4 14:17:30 1997 Miles Bader <miles@gnu.ai.mit.edu>
* Makefile (ftpcp, ftpdir): Rules removed.
* ftpcp.c, ftpdir.c: Files removed.
Thu May 29 17:24:40 1997 Miles Bader <miles@gnu.ai.mit.edu>
* ftpcp.c (doc): Update.
(econnect, eopen_wr, eopen_rd, efinish): New functions.
(struct epoint): Remove FD field.
Rename RMT_FILE & RMT_HOST to FILE & HOST.
(main): Remove array of epoints & loops, & just use RD & WR,
calling the e* functions above.
Support DST being a directory.
Wed May 14 15:22:17 1997 Miles Bader <miles@gnu.ai.mit.edu>
* open.c (ftp_conn_login): Correct defaulting of username.
Tue May 13 16:37:18 1997 Miles Bader <miles@gnu.ai.mit.edu>
* unix.c (ftp_conn_unix_cont_get_stats): Clean up our ftp transfer
when we're done.
Mon May 12 10:57:54 1997 Miles Bader <miles@gnu.ai.mit.edu>
* unix.c (ftp_conn_unix_cont_get_stats): Only abort when
necessary.
(ftp_conn_unix_start_get_stats): Allocate enough memory for REQ.
* cmd.c (ftp_conn_abort): Use ftp_conn_get_raw_reply instead of
ftp_conn_get_reply. Accept REPLY_ABORT_OK as a final reply.
* reply.c (ftp_conn_get_raw_reply): Renamed from ftp_conn_get_reply.
(ftp_conn_get_reply): New function.
* ftpconn.h (ftp_conn_get_raw_reply): New declaration.
Fri May 9 17:55:25 1997 Miles Bader <miles@gnu.ai.mit.edu>
* priv.h (REPLY_ABORT_OK): New macro.
* ftpdir.c (ftpdir2): Deal with new semantics of CONTENTS argument
to ftp_conn_get_stats.
* unix.c (struct get_stats_state): Add ADDED_SLASH field.
(ftp_conn_unix_start_get_stats): Don't use asprintf.
Set ADDED_SLASH field.
(ftp_conn_unix_cont_get_stats): Remove any initial `./' we added.
Abort CONN if we return an error.
Thu May 8 14:22:08 1997 Miles Bader <miles@gnu.ai.mit.edu>
* open.c (ftp_conn_open): Cast 2nd arg in connect call to `struct
sockaddr *'.
* cmd.c: Include <string.h>.
* stats.c (ftp_conn_start_get_stats, ftp_conn_get_stats):
Rename FORCE_DIR argument to CONTENTS.
* ftpconn.h (ftp_conn_get_stats, ftp_conn_start_get_stats,
ftp_conn_unix_start_get_stats): Rename FORCE_DIR argument to CONTENTS.
(struct ftp_conn_syshooks): Rename FORCE_DIR argument of
START_GET_STATS field type to CONTENTS.
* unix.c (struct get_stats_state): Add CONTENTS field.
(ftp_conn_unix_start_get_stats): Initialize it.
Change FORCE_DIR argument to CONTENTS.
Pass -A flag.
Prepend ./ to NAME if it doesn't contain a slash.
Reject names containg possible meta-characters.
* unix.c: Only include <hurd/hurd_types.h> if
HAVE_HURD_HURD_TYPES_H is defined.
(parse_dir_entry): Only set stat->st_fstype if FSTYPE_FTP is defined.
Only set stat->st_author if HAVE_STAT_ST_AUTHOR is defined.
* Makefile (CPPFLAGS): Add -DHAVE_HURD_HURD_TYPES_H.
Wed May 7 12:35:21 1997 Miles Bader <miles@gnu.ai.mit.edu>
* Makefile (SRCS): ftpconn.c replaced by resulting split files.
* errs.c: New file.
* ftpconn.c (ftp_conn_poss_file_errs): Moved to errs.c.
* open.c: New file.
* ftpconn.c (ftp_conn_login, ftp_conn_hello, ftp_conn_set_syshooks,
ftp_conn_choose_syshooks, ftp_conn_sysify, ftp_conn_open,
ftp_conn_close): Functions moved to open.c.
* ftpconn.c (ftp_conn_poss_file_errs): Renamed from
poss_file_errs; all references changed.
Made not static.
* xfer.c: New file.
* ftpconn.c (ftp_conn_finish_transfer, ftp_conn_start_transfer,
ftp_conn_open_data, ftp_conn_start_retrieve, ftp_conn_start_list,
ftp_conn_start_dir, ftp_conn_start_store): Functions moved to xfer.c.
* addr.c: New file.
* ftpconn.c p(ftp_conn_get_pasv_addr, ftp_conn_send_actv_addr):
Functions moved to addr.c.
* create.c: New file.
* ftpconn.c (ftp_conn_create, ftp_conn_free): Functions moved to create.c.
* priv.h: New file.
* xinl.c: New file.
* ftpconn.c (unexpected_reply): Function moved to priv.h.
(REPLY_*): Macros moved to priv.h.
* rmt.c: New file.
* ftpconn.c (ftp_conn_rmt_copy, ftp_conn_rmt_transfer): Functions
moved to rmt.c.
* cwd.c: New file.
* ftpconn.c (ftp_conn_cdup, ftp_conn_cwd, ftp_conn_get_cwd,
_cache_cwd): Functions moved to cwd.c.
* set-type.c: New file.
* ftpconn.c (ftp_conn_set_type): Function moved to set-type.c.
* stats.c: New file.
* ftpconn.c (ftp_conn_start_get_stats, ftp_conn_cont_get_stats,
ftp_conn_get_stats): Functions moved to stats.c.
* names.c: New file.
* ftpconn.h (ftp_conn_add_name_fun_t): New type.
(ftp_conn_start_get_names, ftp_conn_cont_get_names,
ftp_conn_get_names): New functions.
* unix.c (struct get_stats_state): Add NAME_LEN & NAME_ALLOCED fields.
(ftp_conn_unix_cont_get_stats): Retain S's name buffer between
entries, only growing it when needed; leave any copying to the client.
* ftpconn.h (ftp_conn_add_stat_fun_t): Make first 3 params const.
Update comment to say they should be copied if retained.
* Makefile (installhdrsubdir): New variable.
|