Commit c14c147742d51bcf8d96bbdfbbeeec8e57a24bd3

Authored by Perry Werneck
1 parent ff4a13ea
Exists in master and in 2 other branches develop, macos

Adjustments on file-transfer object.

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 *
... ...