Commit 82efb83295af6712b5fdbf0ecb6ddee0c8a12b21
1 parent
70dea602
Exists in
master
and in
3 other branches
Working on LDAP support for windows.
Showing
5 changed files
with
29 additions
and
16 deletions
Show diff stats
lib3270.cbp
| ... | ... | @@ -139,15 +139,15 @@ |
| 139 | 139 | <Unit filename="src/lib3270/ft_dft.c"> |
| 140 | 140 | <Option compilerVar="CC" /> |
| 141 | 141 | </Unit> |
| 142 | - <Unit filename="src/lib3270/glue.c"> | |
| 143 | - <Option compilerVar="CC" /> | |
| 144 | - </Unit> | |
| 145 | 142 | <Unit filename="src/lib3270/host.c"> |
| 146 | 143 | <Option compilerVar="CC" /> |
| 147 | 144 | </Unit> |
| 148 | 145 | <Unit filename="src/lib3270/html.c"> |
| 149 | 146 | <Option compilerVar="CC" /> |
| 150 | 147 | </Unit> |
| 148 | + <Unit filename="src/lib3270/init.c"> | |
| 149 | + <Option compilerVar="CC" /> | |
| 150 | + </Unit> | |
| 151 | 151 | <Unit filename="src/lib3270/iocalls.c"> |
| 152 | 152 | <Option compilerVar="CC" /> |
| 153 | 153 | </Unit> | ... | ... |
src/lib3270/linux/connect.c
| ... | ... | @@ -246,7 +246,10 @@ static void net_connected(H3270 *hSession, int fd unused, LIB3270_IO_FLAG flag u |
| 246 | 246 | if(hSession->ssl.enabled) |
| 247 | 247 | { |
| 248 | 248 | hSession->ssl.host = 1; |
| 249 | - ssl_init(hSession); | |
| 249 | + | |
| 250 | + if(ssl_init(hSession)) | |
| 251 | + return errno = ENOTCONN; | |
| 252 | + | |
| 250 | 253 | } |
| 251 | 254 | debug("** SSL init %s","ends"); |
| 252 | 255 | #endif // HAVE_LIBSSL | ... | ... |
src/lib3270/ssl/negotiate.c
| ... | ... | @@ -18,14 +18,12 @@ |
| 18 | 18 | * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin |
| 19 | 19 | * St, Fifth Floor, Boston, MA 02110-1301 USA |
| 20 | 20 | * |
| 21 | - * Este programa está nomeado como ssl.c e possui - linhas de código. | |
| 21 | + * Este programa está nomeado como - e possui - linhas de código. | |
| 22 | 22 | * |
| 23 | 23 | * Contatos: |
| 24 | 24 | * |
| 25 | 25 | * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) |
| 26 | 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 | 27 | * |
| 30 | 28 | * |
| 31 | 29 | * References: | ... | ... |
src/lib3270/ssl/windows/getcrl.c
| ... | ... | @@ -79,6 +79,7 @@ typedef struct _curldata |
| 79 | 79 | { |
| 80 | 80 | size_t length; |
| 81 | 81 | SSL_ERROR_MESSAGE * message; |
| 82 | + char errbuf[CURL_ERROR_SIZE]; | |
| 82 | 83 | unsigned char contents[CRL_DATA_LENGTH]; |
| 83 | 84 | } CURLDATA; |
| 84 | 85 | |
| ... | ... | @@ -188,6 +189,8 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) |
| 188 | 189 | curl_easy_setopt(hCurl, CURLOPT_URL, consturl); |
| 189 | 190 | curl_easy_setopt(hCurl, CURLOPT_FOLLOWLOCATION, 1L); |
| 190 | 191 | |
| 192 | + curl_easy_setopt(hCurl, CURLOPT_ERRORBUFFER, crl_data); | |
| 193 | + | |
| 191 | 194 | curl_easy_setopt(hCurl, CURLOPT_WRITEFUNCTION, internal_curl_write_callback); |
| 192 | 195 | curl_easy_setopt(hCurl, CURLOPT_WRITEDATA, (void *) crl_data); |
| 193 | 196 | |
| ... | ... | @@ -197,8 +200,18 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) |
| 197 | 200 | { |
| 198 | 201 | message->error = hSession->ssl.error = 0; |
| 199 | 202 | message->title = N_( "Security error" ); |
| 200 | - message->text = N_( "Error loading CRL" ); | |
| 201 | - message->description = curl_easy_strerror(res); | |
| 203 | + | |
| 204 | + if(crl_data->errbuf[0]) | |
| 205 | + { | |
| 206 | + message->text = curl_easy_strerror(res); | |
| 207 | + message->description = crl_data->errbuf; | |
| 208 | + } | |
| 209 | + else | |
| 210 | + { | |
| 211 | + message->text = N_( "Error loading CRL" ); | |
| 212 | + message->description = curl_easy_strerror(res); | |
| 213 | + } | |
| 214 | + | |
| 202 | 215 | lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->description); |
| 203 | 216 | return NULL; |
| 204 | 217 | } | ... | ... |
src/lib3270/windows/connect.c
| ... | ... | @@ -249,14 +249,11 @@ int lib3270_reconnect(H3270 *hSession, int seconds) |
| 249 | 249 | |
| 250 | 250 | lib3270_st_changed(hSession, LIB3270_STATE_RESOLVING, True); |
| 251 | 251 | |
| 252 | - // s = getaddrinfo(hSession->host.current, hSession->host.srvc, &hints, &result); | |
| 253 | 252 | if(lib3270_run_task(hSession, background_connect, &host) || hSession->sock < 0) |
| 254 | 253 | { |
| 255 | - char buffer[4096]; | |
| 256 | - char msg[4096]; | |
| 257 | - | |
| 258 | - snprintf(buffer,4095,_( "Can't connect to %s"), lib3270_get_url(hSession)); | |
| 254 | + lib3270_autoptr(char) message = lib3270_strdup_printf(_( "Can't connect to %s"), lib3270_get_url(hSession)); | |
| 259 | 255 | |
| 256 | + char msg[4096]; | |
| 260 | 257 | strncpy(msg,host.message,4095); |
| 261 | 258 | |
| 262 | 259 | #ifdef HAVE_ICONV |
| ... | ... | @@ -283,7 +280,7 @@ int lib3270_reconnect(H3270 *hSession, int seconds) |
| 283 | 280 | lib3270_popup_dialog( hSession, |
| 284 | 281 | LIB3270_NOTIFY_ERROR, |
| 285 | 282 | _( "Connection error" ), |
| 286 | - buffer, | |
| 283 | + message, | |
| 287 | 284 | "%s", |
| 288 | 285 | msg); |
| 289 | 286 | |
| ... | ... | @@ -298,7 +295,9 @@ int lib3270_reconnect(H3270 *hSession, int seconds) |
| 298 | 295 | if(hSession->ssl.enabled) |
| 299 | 296 | { |
| 300 | 297 | hSession->ssl.host = 1; |
| 301 | - ssl_init(hSession); | |
| 298 | + if(ssl_init(hSession)) | |
| 299 | + return errno = ENOTCONN; | |
| 300 | + | |
| 302 | 301 | } |
| 303 | 302 | #endif // HAVE_LIBSSL |
| 304 | 303 | ... | ... |