From 95b628bd0726f9543aa878f47508250a9cea9be5 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 2 Feb 2021 11:18:38 -0300 Subject: [PATCH] spliting filetransfer set methods. --- lib3270.cbp | 3 +++ src/core/ft/ft.c | 68 ++------------------------------------------------------------------ src/core/ft/set.c | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/core/session.c | 6 ------ src/include/lib3270/filetransfer.h | 1 - src/include/lib3270/session.h | 3 --- 6 files changed, 105 insertions(+), 76 deletions(-) create mode 100644 src/core/ft/set.c diff --git a/lib3270.cbp b/lib3270.cbp index 46ec40b..f13bf9f 100644 --- a/lib3270.cbp +++ b/lib3270.cbp @@ -98,6 +98,9 @@ + + diff --git a/src/core/ft/ft.c b/src/core/ft/ft.c index 22eb649..0d84d40 100644 --- a/src/core/ft/ft.c +++ b/src/core/ft/ft.c @@ -328,70 +328,6 @@ static void set_ft_state(H3270FT *session, LIB3270_FT_STATE state); return ftHandle; } - LIB3270_EXPORT int lib3270_ft_set_lrecl(H3270 *hSession, int lrecl) - { - CHECK_SESSION_HANDLE(hSession); - - if(!hSession->ft) - return errno = EINVAL; - - hSession->ft->lrecl = lrecl; - - return 0; - } - - LIB3270_EXPORT int lib3270_ft_set_blksize(H3270 *hSession, int blksize) - { - CHECK_SESSION_HANDLE(hSession); - - if(!hSession->ft) - return errno = EINVAL; - - hSession->ft->blksize = blksize; - - return 0; - } - - LIB3270_EXPORT int lib3270_ft_set_primspace(H3270 *hSession, int primspace) - { - CHECK_SESSION_HANDLE(hSession); - - if(!hSession->ft) - return errno = EINVAL; - - hSession->ft->primspace = primspace; - - return 0; - } - - LIB3270_EXPORT int lib3270_ft_set_secspace(H3270 *hSession, int secspace) - { - CHECK_SESSION_HANDLE(hSession); - - if(!hSession->ft) - return errno = EINVAL; - - hSession->ft->secspace = secspace; - - return 0; - } - - LIB3270_EXPORT int lib3270_ft_set_options(H3270 *hSession, LIB3270_FT_OPTION options) - { - CHECK_SESSION_HANDLE(hSession); - - if(!hSession->ft) - return errno = EINVAL; - - hSession->ft->ascii_flag = (options & LIB3270_FT_OPTION_ASCII) ? 1 : 0; - hSession->ft->cr_flag = (options & LIB3270_FT_OPTION_CRLF) ? 1 : 0; - hSession->ft->remap_flag = (options & LIB3270_FT_OPTION_REMAP) ? 1 : 0; - hSession->ft->unix_text = (options & LIB3270_FT_OPTION_UNIX) ? 1 : 0; - hSession->ft->flags |= options; - - return 0; - } - LIB3270_EXPORT int lib3270_reset_ft_callbacks(H3270 *hSession) { CHECK_SESSION_HANDLE(hSession); @@ -762,7 +698,7 @@ LIB3270_EXPORT int lib3270_send(H3270 *hSession, const char *from, const char *t if(hSession->ft) return EBUSY; - return hSession->cbk.send(hSession,from,to,args); + return ENOTSUP; } LIB3270_EXPORT int lib3270_receive(H3270 *hSession, const char *from, const char *to, const char **args) @@ -772,6 +708,6 @@ LIB3270_EXPORT int lib3270_receive(H3270 *hSession, const char *from, const char if(hSession->ft) return EBUSY; - return hSession->cbk.receive(hSession,from,to,args); + return ENOTSUP; } diff --git a/src/core/ft/set.c b/src/core/ft/set.c new file mode 100644 index 0000000..2279779 --- /dev/null +++ b/src/core/ft/set.c @@ -0,0 +1,100 @@ +/* + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a + * aplicativos mainframe. Registro no INPI sob o nome G3270. Registro no INPI sob o nome G3270. + * + * Copyright (C) <2008> + * + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela + * Free Software Foundation. + * + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para + * obter mais detalhes. + * + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin + * St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Este programa está nomeado como set.c e possui - linhas de código. + * + * Contatos: + * + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) + * + */ + +#include +#include +#include +#include +#include + +/*---[ Implement ]-------------------------------------------------------------------------------------------------------*/ + + LIB3270_EXPORT int lib3270_ft_set_lrecl(H3270 *hSession, int lrecl) + { + CHECK_SESSION_HANDLE(hSession); + + if(!hSession->ft) + return errno = EINVAL; + + hSession->ft->lrecl = lrecl; + + return 0; + } + + LIB3270_EXPORT int lib3270_ft_set_blksize(H3270 *hSession, int blksize) + { + CHECK_SESSION_HANDLE(hSession); + + if(!hSession->ft) + return errno = EINVAL; + + hSession->ft->blksize = blksize; + + return 0; + } + + LIB3270_EXPORT int lib3270_ft_set_primspace(H3270 *hSession, int primspace) + { + CHECK_SESSION_HANDLE(hSession); + + if(!hSession->ft) + return errno = EINVAL; + + hSession->ft->primspace = primspace; + + return 0; + } + + LIB3270_EXPORT int lib3270_ft_set_secspace(H3270 *hSession, int secspace) + { + CHECK_SESSION_HANDLE(hSession); + + if(!hSession->ft) + return errno = EINVAL; + + hSession->ft->secspace = secspace; + + return 0; + } + + LIB3270_EXPORT int lib3270_ft_set_options(H3270 *hSession, LIB3270_FT_OPTION options) + { + CHECK_SESSION_HANDLE(hSession); + + if(!hSession->ft) + return errno = EINVAL; + + hSession->ft->ascii_flag = (options & LIB3270_FT_OPTION_ASCII) ? 1 : 0; + hSession->ft->cr_flag = (options & LIB3270_FT_OPTION_CRLF) ? 1 : 0; + hSession->ft->remap_flag = (options & LIB3270_FT_OPTION_REMAP) ? 1 : 0; + hSession->ft->unix_text = (options & LIB3270_FT_OPTION_UNIX) ? 1 : 0; + hSession->ft->flags |= options; + + return 0; + } diff --git a/src/core/session.c b/src/core/session.c index 5601889..a07adcd 100644 --- a/src/core/session.c +++ b/src/core/session.c @@ -254,10 +254,6 @@ static int default_action(H3270 GNUC_UNUSED(*hSession), const char GNUC_UNUSED(* return ENOENT; } -static int default_ft(H3270 GNUC_UNUSED(*hSession), const char GNUC_UNUSED(*from), const char GNUC_UNUSED(*to), const char GNUC_UNUSED(**args)) { - return ENOTSUP; -} - void lib3270_reset_callbacks(H3270 *hSession) { // Default calls @@ -288,8 +284,6 @@ void lib3270_reset_callbacks(H3270 *hSession) hSession->cbk.update_url = default_update_url; hSession->cbk.action = default_action; hSession->cbk.reconnect = lib3270_reconnect; - hSession->cbk.send = default_ft; - hSession->cbk.receive = default_ft; lib3270_set_popup_handler(hSession, NULL); diff --git a/src/include/lib3270/filetransfer.h b/src/include/lib3270/filetransfer.h index 1921b29..ceb22d1 100644 --- a/src/include/lib3270/filetransfer.h +++ b/src/include/lib3270/filetransfer.h @@ -206,7 +206,6 @@ */ LIB3270_EXPORT int lib3270_set_dft_buffersize(H3270 *hSession, int dft_buffersize); - LIB3270_EXPORT int lib3270_ft_set_options(H3270 *hSession, LIB3270_FT_OPTION options); /** diff --git a/src/include/lib3270/session.h b/src/include/lib3270/session.h index 25f4251..69f98b3 100644 --- a/src/include/lib3270/session.h +++ b/src/include/lib3270/session.h @@ -81,9 +81,6 @@ int (*reconnect)(H3270 *hSession,int seconds); - int (*send)(H3270 *hSession, const char *from, const char *to, const char **args); - int (*receive)(H3270 *hSession, const char *from, const char *to, const char **args); - }; /** -- libgit2 0.21.2