Commit c14c147742d51bcf8d96bbdfbbeeec8e57a24bd3
1 parent
ff4a13ea
Exists in
master
and in
2 other branches
Adjustments on file-transfer object.
Showing
5 changed files
with
95 additions
and
9 deletions
Show diff stats
src/core/ft/ft.c
... | ... | @@ -290,8 +290,7 @@ static void set_ft_state(H3270FT *session, LIB3270_FT_STATE state); |
290 | 290 | } |
291 | 291 | |
292 | 292 | // Set options |
293 | - session->dft_buffersize = dft; | |
294 | - set_dft_buffersize(session); | |
293 | + lib3270_set_dft_buffersize(session, dft); | |
295 | 294 | |
296 | 295 | // Create & Initialize ft control structure. |
297 | 296 | ftHandle = lib3270_malloc(sizeof(H3270FT)+strlen(local)+strlen(remote)+3); |
... | ... | @@ -339,6 +338,61 @@ static void set_ft_state(H3270FT *session, LIB3270_FT_STATE state); |
339 | 338 | return ftHandle; |
340 | 339 | } |
341 | 340 | |
341 | + LIB3270_EXPORT int lib3270_ft_set_lrecl(H3270 *hSession, int lrecl) | |
342 | + { | |
343 | + CHECK_SESSION_HANDLE(hSession); | |
344 | + | |
345 | + if(!hSession->ft) | |
346 | + return errno = EINVAL; | |
347 | + | |
348 | + | |
349 | + return 0; | |
350 | + } | |
351 | + | |
352 | + LIB3270_EXPORT int lib3270_ft_set_blksize(H3270 *hSession, int blksize) | |
353 | + { | |
354 | + CHECK_SESSION_HANDLE(hSession); | |
355 | + | |
356 | + if(!hSession->ft) | |
357 | + return errno = EINVAL; | |
358 | + | |
359 | + | |
360 | + return 0; | |
361 | + } | |
362 | + | |
363 | + LIB3270_EXPORT int lib3270_ft_set_primspace(H3270 *hSession, int primspace) | |
364 | + { | |
365 | + CHECK_SESSION_HANDLE(hSession); | |
366 | + | |
367 | + if(!hSession->ft) | |
368 | + return errno = EINVAL; | |
369 | + | |
370 | + | |
371 | + return 0; | |
372 | + } | |
373 | + | |
374 | + LIB3270_EXPORT int lib3270_ft_set_secspace(H3270 *hSession, int secspace) | |
375 | + { | |
376 | + CHECK_SESSION_HANDLE(hSession); | |
377 | + | |
378 | + if(!hSession->ft) | |
379 | + return errno = EINVAL; | |
380 | + | |
381 | + | |
382 | + return 0; | |
383 | + } | |
384 | + | |
385 | + LIB3270_EXPORT int lib3270_ft_set_option(H3270 *hSession, LIB3270_FT_OPTION option) | |
386 | + { | |
387 | + CHECK_SESSION_HANDLE(hSession); | |
388 | + | |
389 | + if(!hSession->ft) | |
390 | + return errno = EINVAL; | |
391 | + | |
392 | + | |
393 | + return 0; | |
394 | + } | |
395 | + | |
342 | 396 | LIB3270_EXPORT int lib3270_reset_ft_callbacks(H3270 *hSession) |
343 | 397 | { |
344 | 398 | CHECK_SESSION_HANDLE(hSession); | ... | ... |
src/core/ft/ft_dft.c
... | ... | @@ -42,6 +42,7 @@ |
42 | 42 | #endif // WIN32 |
43 | 43 | |
44 | 44 | #include <lib3270.h> |
45 | +#include <lib3270/filetransfer.h> | |
45 | 46 | #include <internals.h> |
46 | 47 | |
47 | 48 | #if defined(X3270_FT) /*[*/ |
... | ... | @@ -375,7 +376,7 @@ static void dft_get_request(H3270 *hSession) |
375 | 376 | } |
376 | 377 | |
377 | 378 | /* Read a buffer's worth. */ |
378 | - set_dft_buffersize(hSession); | |
379 | + lib3270_set_dft_buffersize(hSession,hSession->dft_buffersize); | |
379 | 380 | space3270out(hSession,hSession->dft_buffersize); |
380 | 381 | numbytes = hSession->dft_buffersize - 27; /* always read 5 bytes less than we're allowed */ |
381 | 382 | bufptr = hSession->output.buf + 17; |
... | ... | @@ -589,9 +590,7 @@ void dft_read_modified(H3270 *hSession) |
589 | 590 | } |
590 | 591 | } |
591 | 592 | |
592 | -/** | |
593 | - * Update the buffersize for generating a Query Reply. | |
594 | - */ | |
593 | +/* | |
595 | 594 | void set_dft_buffersize(H3270 *hSession) |
596 | 595 | { |
597 | 596 | if (hSession->dft_buffersize == 0) |
... | ... | @@ -603,6 +602,25 @@ void set_dft_buffersize(H3270 *hSession) |
603 | 602 | if (hSession->dft_buffersize < DFT_MIN_BUF) |
604 | 603 | hSession->dft_buffersize = DFT_MIN_BUF; |
605 | 604 | } |
606 | - | |
605 | +*/ | |
607 | 606 | |
608 | 607 | #endif /*]*/ |
608 | + | |
609 | + LIB3270_EXPORT int lib3270_set_dft_buffersize(H3270 *hSession, int dft_buffersize) | |
610 | + { | |
611 | + CHECK_SESSION_HANDLE(hSession); | |
612 | + | |
613 | + hSession->dft_buffersize = dft_buffersize; | |
614 | + | |
615 | + if (hSession->dft_buffersize == 0) | |
616 | + hSession->dft_buffersize = DFT_BUF; | |
617 | + | |
618 | + if (hSession->dft_buffersize > DFT_MAX_BUF) | |
619 | + hSession->dft_buffersize = DFT_MAX_BUF; | |
620 | + | |
621 | + if (hSession->dft_buffersize < DFT_MIN_BUF) | |
622 | + hSession->dft_buffersize = DFT_MIN_BUF; | |
623 | + | |
624 | + return 0; | |
625 | + } | |
626 | + | ... | ... |
src/core/sf.c
... | ... | @@ -37,6 +37,7 @@ |
37 | 37 | */ |
38 | 38 | |
39 | 39 | #include <internals.h> |
40 | +#include <lib3270/filetransfer.h> | |
40 | 41 | #include <lib3270/trace.h> |
41 | 42 | |
42 | 43 | #include <errno.h> |
... | ... | @@ -997,7 +998,7 @@ static void do_qr_charsets(H3270 *hSession) |
997 | 998 | #if defined(X3270_FT) /*[*/ |
998 | 999 | static void do_qr_ddm(H3270 *hSession) |
999 | 1000 | { |
1000 | - set_dft_buffersize(hSession); | |
1001 | + lib3270_set_dft_buffersize(hSession,hSession->dft_buffersize); | |
1001 | 1002 | |
1002 | 1003 | trace_ds(hSession,"> QueryReply(DistributedDataManagement)\n"); |
1003 | 1004 | space3270out(hSession,8); | ... | ... |
src/include/ft_dftc.h
... | ... | @@ -16,4 +16,4 @@ |
16 | 16 | |
17 | 17 | LIB3270_INTERNAL void ft_dft_data(H3270 *hSession, unsigned char *data, int length); |
18 | 18 | LIB3270_INTERNAL void dft_read_modified(H3270 *hSession); |
19 | -LIB3270_INTERNAL void set_dft_buffersize(H3270 *hSession); | |
19 | +//LIB3270_INTERNAL void set_dft_buffersize(H3270 *hSession); | ... | ... |
src/include/lib3270/filetransfer.h
... | ... | @@ -196,6 +196,19 @@ |
196 | 196 | |
197 | 197 | LIB3270_EXPORT struct lib3270_ft_callbacks * lib3270_get_ft_callbacks(H3270 *session, unsigned short sz); |
198 | 198 | |
199 | + LIB3270_EXPORT int lib3270_ft_set_lrecl(H3270 *hSession, int lrecl); | |
200 | + LIB3270_EXPORT int lib3270_ft_set_blksize(H3270 *hSession, int blksize); | |
201 | + LIB3270_EXPORT int lib3270_ft_set_primspace(H3270 *hSession, int primspace); | |
202 | + LIB3270_EXPORT int lib3270_ft_set_secspace(H3270 *hSession, int secspace); | |
203 | + | |
204 | + /** | |
205 | + * @brief Update the buffersize for generating a Query Reply. | |
206 | + */ | |
207 | + LIB3270_EXPORT int lib3270_set_dft_buffersize(H3270 *hSession, int dft_buffersize); | |
208 | + | |
209 | + | |
210 | + LIB3270_EXPORT int lib3270_ft_set_option(H3270 *hSession, LIB3270_FT_OPTION option); | |
211 | + | |
199 | 212 | /** |
200 | 213 | * @brief Send file. |
201 | 214 | * | ... | ... |