[w3m-dev 03382] Interrupt in no_proxy_check()
* url.c (check_no_proxy): SIGINT trap by KeyAbort From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
This commit is contained in:
@@ -1,3 +1,8 @@
|
|||||||
|
2002-11-07 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
|
||||||
|
|
||||||
|
* [w3m-dev 03382] Interrupt in no_proxy_check()
|
||||||
|
* url.c (check_no_proxy): SIGINT trap by KeyAbort
|
||||||
|
|
||||||
2002-11-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
|
2002-11-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
|
||||||
|
|
||||||
* [w3m-dev 03380] fix configure
|
* [w3m-dev 03380] fix configure
|
||||||
@@ -4360,4 +4365,4 @@ a * [w3m-dev 03276] compile error on EWS4800
|
|||||||
* release-0-2-1
|
* release-0-2-1
|
||||||
* import w3m-0.2.1
|
* import w3m-0.2.1
|
||||||
|
|
||||||
$Id: ChangeLog,v 1.481 2002/11/06 14:58:02 ukai Exp $
|
$Id: ChangeLog,v 1.482 2002/11/06 15:03:25 ukai Exp $
|
||||||
|
|||||||
32
url.c
32
url.c
@@ -1,4 +1,4 @@
|
|||||||
/* $Id: url.c,v 1.54 2002/11/04 08:47:38 ukai Exp $ */
|
/* $Id: url.c,v 1.55 2002/11/06 15:03:26 ukai Exp $ */
|
||||||
#include "fm.h"
|
#include "fm.h"
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
@@ -1943,6 +1943,8 @@ int
|
|||||||
check_no_proxy(char *domain)
|
check_no_proxy(char *domain)
|
||||||
{
|
{
|
||||||
TextListItem *tl;
|
TextListItem *tl;
|
||||||
|
volatile int ret = 0;
|
||||||
|
MySignalHandler(*volatile trap) (SIGNAL_ARG) = NULL;
|
||||||
|
|
||||||
if (NO_proxy_domains == NULL || NO_proxy_domains->nitem == 0 ||
|
if (NO_proxy_domains == NULL || NO_proxy_domains->nitem == 0 ||
|
||||||
domain == NULL)
|
domain == NULL)
|
||||||
@@ -1957,6 +1959,13 @@ check_no_proxy(char *domain)
|
|||||||
/*
|
/*
|
||||||
* to check noproxy by network addr
|
* to check noproxy by network addr
|
||||||
*/
|
*/
|
||||||
|
if (SETJMP(AbortLoading) != 0) {
|
||||||
|
ret = 0;
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
trap = signal(SIGINT, KeyAbort);
|
||||||
|
if (fmInitialized)
|
||||||
|
term_cbreak();
|
||||||
{
|
{
|
||||||
#ifndef INET6
|
#ifndef INET6
|
||||||
struct hostent *he;
|
struct hostent *he;
|
||||||
@@ -1965,8 +1974,10 @@ check_no_proxy(char *domain)
|
|||||||
char addr[4 * 16], buf[5];
|
char addr[4 * 16], buf[5];
|
||||||
|
|
||||||
he = gethostbyname(domain);
|
he = gethostbyname(domain);
|
||||||
if (!he)
|
if (!he) {
|
||||||
return (0);
|
ret = 0;
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
for (h_addr_list = (unsigned char **)he->h_addr_list; *h_addr_list;
|
for (h_addr_list = (unsigned char **)he->h_addr_list; *h_addr_list;
|
||||||
h_addr_list++) {
|
h_addr_list++) {
|
||||||
sprintf(addr, "%d", h_addr_list[0][0]);
|
sprintf(addr, "%d", h_addr_list[0][0]);
|
||||||
@@ -1975,8 +1986,10 @@ check_no_proxy(char *domain)
|
|||||||
strcat(addr, buf);
|
strcat(addr, buf);
|
||||||
}
|
}
|
||||||
for (tl = NO_proxy_domains->first; tl != NULL; tl = tl->next) {
|
for (tl = NO_proxy_domains->first; tl != NULL; tl = tl->next) {
|
||||||
if (strncmp(tl->ptr, addr, strlen(tl->ptr)) == 0)
|
if (strncmp(tl->ptr, addr, strlen(tl->ptr)) == 0) {
|
||||||
return (1);
|
ret = 1;
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else /* INET6 */
|
#else /* INET6 */
|
||||||
@@ -2016,7 +2029,8 @@ check_no_proxy(char *domain)
|
|||||||
for (tl = NO_proxy_domains->first; tl != NULL; tl = tl->next) {
|
for (tl = NO_proxy_domains->first; tl != NULL; tl = tl->next) {
|
||||||
if (strncmp(tl->ptr, addr, strlen(tl->ptr)) == 0) {
|
if (strncmp(tl->ptr, addr, strlen(tl->ptr)) == 0) {
|
||||||
freeaddrinfo(res0);
|
freeaddrinfo(res0);
|
||||||
return 1;
|
ret = 1;
|
||||||
|
goto end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2027,7 +2041,11 @@ check_no_proxy(char *domain)
|
|||||||
}
|
}
|
||||||
#endif /* INET6 */
|
#endif /* INET6 */
|
||||||
}
|
}
|
||||||
return 0;
|
end:
|
||||||
|
if (fmInitialized)
|
||||||
|
term_raw();
|
||||||
|
signal(SIGINT, trap);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
char *
|
char *
|
||||||
|
|||||||
Reference in New Issue
Block a user