Commit 7a080aaac7efb9d7c8c1f9c3bc80e91604d4f035

Authored by Perry Werneck
1 parent a2a4a18c

Removing unused files

Small adjustments in windows logging
Adding bindings for the "load from file" method.
lib3270.cbp
... ... @@ -122,9 +122,6 @@
122 122 <Unit filename="src/core/properties.c">
123 123 <Option compilerVar="CC" />
124 124 </Unit>
125   - <Unit filename="src/core/resolver.c">
126   - <Option compilerVar="CC" />
127   - </Unit>
128 125 <Unit filename="src/core/resources.c">
129 126 <Option compilerVar="CC" />
130 127 </Unit>
... ...
src/core/init.c
... ... @@ -137,14 +137,12 @@ int lib3270_unloaded(void)
137 137  
138 138 BOOL WINAPI DllMain(HANDLE GNUC_UNUSED(hinst), DWORD dwcallpurpose, LPVOID GNUC_UNUSED(lpvResvd))
139 139 {
140   -// Trace("%s - Library %s",__FUNCTION__,(dwcallpurpose == DLL_PROCESS_ATTACH) ? "Loaded" : "Unloaded");
141   -
142 140 switch(dwcallpurpose)
143 141 {
144 142 case DLL_PROCESS_ATTACH:
  143 + hEventLog = RegisterEventSource(NULL, LIB3270_STRINGIZE_VALUE_OF(LIB3270_NAME));
145 144 get_version_info();
146 145 lib3270_loaded();
147   - hEventLog = RegisterEventSource(NULL, LIB3270_STRINGIZE_VALUE_OF(LIB3270_NAME));
148 146 break;
149 147  
150 148 case DLL_PROCESS_DETACH:
... ...
src/core/resolver.c
... ... @@ -1,182 +0,0 @@
1   -/*
2   - * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
3   - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
4   - * aplicativos mainframe. Registro no INPI sob o nome G3270. Registro no INPI sob o nome G3270.
5   - *
6   - * Copyright (C) <2008> <Banco do Brasil S.A.>
7   - *
8   - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
9   - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
10   - * Free Software Foundation.
11   - *
12   - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
13   - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
14   - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
15   - * obter mais detalhes.
16   - *
17   - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
18   - * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
19   - * St, Fifth Floor, Boston, MA 02110-1301 USA
20   - *
21   - * Este programa está nomeado como resolver.c e possui 254 linhas de código.
22   - *
23   - * Contatos:
24   - *
25   - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
26   - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
27   - * licinio@bb.com.br (Licínio Luis Branco)
28   - * kraucer@bb.com.br (Kraucer Fernandes Mazuco)
29   - * macmiranda@bb.com.br (Marco Aurélio Caldas Miranda)
30   - *
31   - */
32   -
33   -/*
34   - * resolver.c
35   - * Hostname resolution.
36   - */
37   -
38   -#ifdef WIN32
39   -
40   - // Compiling for WinXP or later: Expose getaddrinfo()/freeaddrinfo().
41   - #undef _WIN32_WINNT
42   - #define _WIN32_WINNT 0x0501
43   -
44   - #include <winsock2.h>
45   - #include <windows.h>
46   - #include <ws2tcpip.h>
47   -
48   - #include <lib3270-internals.h>
49   -
50   -#else
51   -
52   - #include <lib3270-internals.h>
53   -
54   - #include <sys/socket.h>
55   - #include <netinet/in.h>
56   - #include <netdb.h>
57   -
58   -#endif /*]*/
59   -
60   -#include <stdio.h>
61   -#include <string.h>
62   -// #include "api.h"
63   -
64   -#include "resolverc.h"
65   -#include "statusc.h"
66   -#include "w3miscc.h"
67   -
68   -#pragma pack(1)
69   -struct parms
70   -{
71   - unsigned short sz;
72   - const char *host;
73   - char *portname;
74   - unsigned short *pport;
75   - struct sockaddr *sa;
76   - socklen_t *sa_len;
77   - char *errmsg;
78   - int em_len;
79   -};
80   -#pragma pack()
81   -
82   -/*
83   - * Resolve a hostname and port.
84   - * Returns 0 for success, -1 for fatal error (name resolution impossible),
85   - * -2 for simple error (cannot resolve the name).
86   - */ /*
87   -static int cresolve_host_and_port(H3270 *h, struct parms *p)
88   -{
89   -#if defined( HAVE_GETADDRINFO ) || defined(WIN32)
90   -
91   - struct addrinfo hints, *res;
92   - int rc;
93   -
94   - // Use getaddrinfo() to resolve the hostname and port together.
95   - (void) memset(&hints, '\0', sizeof(struct addrinfo));
96   - hints.ai_flags = 0;
97   - hints.ai_family = PF_UNSPEC;
98   - hints.ai_socktype = SOCK_STREAM;
99   - hints.ai_protocol = IPPROTO_TCP;
100   - rc = getaddrinfo(p->host, p->portname, &hints, &res);
101   -
102   - if (rc)
103   - {
104   -#ifdef WIN32
105   - #warning gai_strerror on windows is returning message in local_charset, need to set it to utf-8!
106   - snprintf(p->errmsg, p->em_len, _( "Error %d resolving %s" ) , rc, p->host);
107   -#else
108   - snprintf(p->errmsg, p->em_len, _( "Error resolving %s: %s" ), p->host, gai_strerror(rc));
109   -#endif // WIN32
110   - return -2;
111   - }
112   -
113   - switch (res->ai_family)
114   - {
115   - case AF_INET:
116   - *p->pport = ntohs(((struct sockaddr_in *)res->ai_addr)->sin_port);
117   - break;
118   - case AF_INET6:
119   - *p->pport = ntohs(((struct sockaddr_in6 *)res->ai_addr)->sin6_port);
120   - break;
121   - default:
122   - snprintf(p->errmsg, p->em_len, _( "%s: unknown family %d" ), p->host,res->ai_family);
123   - freeaddrinfo(res);
124   - return -1;
125   - }
126   -
127   - (void) memcpy(p->sa, res->ai_addr, res->ai_addrlen);
128   - *p->sa_len = res->ai_addrlen;
129   -
130   - freeaddrinfo(res);
131   -
132   -#else
133   -
134   - struct hostent *hp;
135   - struct servent *sp;
136   - unsigned short port;
137   - unsigned long lport;
138   - char *ptr;
139   - struct sockaddr_in *sin = (struct sockaddr_in *) p->sa;
140   -
141   - // Get the port number.
142   - lport = strtoul(p->portname, &ptr, 0);
143   - if (ptr == p->portname || *ptr != '\0' || lport == 0L || lport & ~0xffff)
144   - {
145   - if (!(sp = getservbyname(p->portname, "tcp")))
146   - {
147   - snprintf(p->errmsg, p->em_len,_( "Unknown port number or service: %s" ),p->portname);
148   - return -1;
149   - }
150   - port = sp->s_port;
151   - }
152   - else
153   - {
154   - port = htons((unsigned short)lport);
155   - }
156   - *p->pport = ntohs(port);
157   -
158   - // Use gethostbyname() to resolve the hostname.
159   - hp = gethostbyname(p->host);
160   - if (hp == (struct hostent *) 0)
161   - {
162   - sin->sin_family = AF_INET;
163   - sin->sin_addr.s_addr = inet_addr(p->host);
164   - if (sin->sin_addr.s_addr == (unsigned long)-1)
165   - {
166   - snprintf(p->errmsg, p->em_len, _( "Unknown host:\n%s" ), p->host);
167   - return -2;
168   - }
169   - }
170   - else
171   - {
172   - sin->sin_family = hp->h_addrtype;
173   - (void) memmove(&sin->sin_addr, hp->h_addr, hp->h_length);
174   - }
175   - sin->sin_port = port;
176   - *p->sa_len = sizeof(struct sockaddr_in);
177   -
178   -#endif // HAVE_GETADDRINFO
179   -
180   - return 0;
181   -} */
182   -
src/core/session.c
... ... @@ -207,7 +207,6 @@ static int print(H3270 *session, LIB3270_CONTENT_OPTION GNUC_UNUSED(mode))
207 207 {
208 208 lib3270_write_log(session, "print", "%s", "Printing is unavailable");
209 209 lib3270_popup_dialog(session, LIB3270_NOTIFY_WARNING, _( "Can't print" ), _( "Unable to print" ), "%s", strerror(ENOTSUP));
210   -
211 210 return errno = ENOTSUP;
212 211 }
213 212  
... ... @@ -218,6 +217,13 @@ static int save(H3270 *session, LIB3270_CONTENT_OPTION GNUC_UNUSED(mode), const
218 217 return errno = ENOTSUP;
219 218 }
220 219  
  220 +static int load(H3270 *session, const char GNUC_UNUSED(*filename))
  221 +{
  222 + lib3270_write_log(session, "load", "%s", "Loading from file is unavailable");
  223 + lib3270_popup_dialog(session, LIB3270_NOTIFY_WARNING, _( "Can't load" ), _( "Unable to load from file" ), "%s", strerror(ENOTSUP));
  224 + return errno = ENOTSUP;
  225 +}
  226 +
221 227 static void message(H3270 *session, LIB3270_NOTIFY GNUC_UNUSED(id), const char *title, const char *msg, const char *text)
222 228 {
223 229 #ifdef ANDROID
... ... @@ -289,7 +295,6 @@ static void set_peer_certificate)(const void GNUC_UNUSED(*cert))
289 295  
290 296 static void default_update_luname(H3270 GNUC_UNUSED(*session), const char GNUC_UNUSED(*name))
291 297 {
292   -
293 298 }
294 299  
295 300 void lib3270_reset_callbacks(H3270 *hSession)
... ... @@ -322,9 +327,9 @@ void lib3270_reset_callbacks(H3270 *hSession)
322 327 hSession->cbk.set_timer = set_timer;
323 328 hSession->cbk.print = print;
324 329 hSession->cbk.save = save;
  330 + hSession->cbk.load = load;
325 331 hSession->cbk.set_peer_certificate = set_peer_certificate;
326 332 hSession->cbk.update_luname = default_update_luname;
327   -
328 333 }
329 334  
330 335 static void lib3270_session_init(H3270 *hSession, const char *model, const char *charset)
... ...
src/core/util.c
... ... @@ -628,6 +628,14 @@ LIB3270_EXPORT int lib3270_print_copy(H3270 *hSession)
628 628 return hSession->cbk.print(hSession,LIB3270_CONTENT_COPY);
629 629 }
630 630  
  631 +LIB3270_EXPORT int lib3270_load(H3270 *hSession, const char *filename)
  632 +{
  633 + if(check_online_session(hSession))
  634 + return errno = ENOTCONN;
  635 +
  636 + return hSession->cbk.load(hSession, filename);
  637 +}
  638 +
631 639 LIB3270_EXPORT int lib3270_save(H3270 *hSession, LIB3270_CONTENT_OPTION mode, const char *filename)
632 640 {
633 641 return hSession->cbk.save(hSession, mode, filename);
... ... @@ -635,6 +643,9 @@ LIB3270_EXPORT int lib3270_save(H3270 *hSession, LIB3270_CONTENT_OPTION mode, co
635 643  
636 644 LIB3270_EXPORT int lib3270_save_all(H3270 *hSession, const char *filename)
637 645 {
  646 + if(check_online_session(hSession))
  647 + return errno = ENOTCONN;
  648 +
638 649 return lib3270_save(hSession,LIB3270_CONTENT_ALL,filename);
639 650 }
640 651  
... ... @@ -642,6 +653,7 @@ LIB3270_EXPORT int lib3270_save_selected(H3270 *hSession, const char *filename)
642 653 {
643 654 if(lib3270_has_selection(hSession))
644 655 return lib3270_save(hSession,LIB3270_CONTENT_SELECTED,filename);
  656 +
645 657 return errno = ENODATA;
646 658 }
647 659  
... ... @@ -650,7 +662,6 @@ LIB3270_EXPORT int lib3270_save_copy(H3270 *hSession, const char *filename)
650 662 return lib3270_save(hSession,LIB3270_CONTENT_COPY,filename);
651 663 }
652 664  
653   -
654 665 LIB3270_EXPORT LIB3270_POINTER lib3270_get_pointer(H3270 *hSession, int baddr)
655 666 {
656 667 static const struct _ptr {
... ...
src/include/lib3270.h
... ... @@ -838,6 +838,16 @@
838 838 LIB3270_EXPORT int lib3270_save_copy(H3270 *hSession, const char *filename);
839 839  
840 840 /**
  841 + * @brief Paste from file.
  842 + *
  843 + * @param hSession Session Handle.
  844 + * @param filename File name.
  845 + *
  846 + * @return 0 if ok, error code if not.
  847 + */
  848 + LIB3270_EXPORT int lib3270_load(H3270 *hSession, const char *filename);
  849 +
  850 + /**
841 851 * @brief Get buffer contents.
842 852 *
843 853 * @param h Session handle.
... ...
src/include/lib3270/session.h
... ... @@ -74,8 +74,10 @@
74 74 void (*set_selection)(H3270 *session, unsigned char on);
75 75 void (*ctlr_done)(H3270 *session);
76 76 void (*autostart)(H3270 *session);
  77 +
77 78 int (*print)(H3270 *session, LIB3270_CONTENT_OPTION mode);
78 79 int (*save)(H3270 *session, LIB3270_CONTENT_OPTION mode, const char *filename);
  80 + int (*load)(H3270 *hSession, const char *filename);
79 81  
80 82 void (*message)(H3270 *session, LIB3270_NOTIFY id , const char *title, const char *message, const char *text);
81 83 void (*popup)(H3270 *session, LIB3270_NOTIFY id, const char *title, const char *msg, const char *fmt, va_list);
... ...
src/ssl/negotiate.c
... ... @@ -313,7 +313,6 @@ int ssl_negotiate(H3270 *hSession)
313 313 else
314 314 lib3270_popup_dialog(hSession, LIB3270_NOTIFY_ERROR, msg.title, msg.text, "%s", ERR_reason_error_string(msg.error));
315 315  
316   -
317 316 return rc;
318 317  
319 318 }
... ...