Remove dial on demand

dialer ran a program when a name could not be resolved, for dial-up
links; with nscache it did not even run. The command is still accepted
and ignored, so configurations using it keep loading.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Vladimir Dubrovin 2026-10-13 15:36:23 +03:00
parent ca0b5e0c88
commit 18c0ebda0f
5 changed files with 6 additions and 18 deletions

View File

@ -579,9 +579,7 @@ for a record naming an IPv6 address - and
\fBnserver\fR must be set as well: without it the system resolver is used and \fBnserver\fR must be set as well: without it the system resolver is used and
static records are never consulted. If 0.0.0.0 static records are never consulted. If 0.0.0.0
is used as a hostaddr host will never resolve, it can be used to is used as a hostaddr host will never resolve, it can be used to
blacklist something or together with blacklist something.
.B dialer
command to set up UDL for dialing.
.br .br
.B fakeresolve .B fakeresolve
@ -593,10 +591,8 @@ redirected to a parent proxy with \fBhttp\fR, \fBsocks4+\fR, \fBconnect+\fR or \
.BR dialer .BR dialer
\fI<progname>\fR \fI<progname>\fR
.br .br
Execute progname if external name can\'t be resolved. Ignored: dial on demand is no longer supported. The command is accepted so
Hint: if you use nscache, dialer may not work, because names will that configurations using it still load.
be resolved through cache. In this case you can use something like
http://dial.right.now/ from browser to set up connection.
.br .br

View File

@ -288,7 +288,6 @@ struct extparam conf = {
.filters = NULL, .filters = NULL,
.authfuncs = NULL, .authfuncs = NULL,
.stdlog = NULL, .stdlog = NULL,
.demanddialprog = NULL,
.stringtable = NULL, .stringtable = NULL,
.logtime = (time_t)0, .logtime = (time_t)0,
.time = (time_t)0, .time = (time_t)0,
@ -956,8 +955,6 @@ uint32_t getip(unsigned char *name){
} }
} }
if((tmpresolv=resolvfunc)){ if((tmpresolv=resolvfunc)){
if((*tmpresolv)(AF_INET, name, (unsigned char *)&retval)) return retval;
if(conf.demanddialprog) system(conf.demanddialprog);
return (*tmpresolv)(AF_INET, name, (unsigned char *)&retval)?retval:0; return (*tmpresolv)(AF_INET, name, (unsigned char *)&retval)?retval:0;
} }
#ifndef NOSTDRESOLVE #ifndef NOSTDRESOLVE
@ -969,10 +966,6 @@ uint32_t getip(unsigned char *name){
_3proxy_mutex_lock(&gethostbyname_mutex); _3proxy_mutex_lock(&gethostbyname_mutex);
#endif #endif
hp=gethostbyname((char *)name); hp=gethostbyname((char *)name);
if (!hp && conf.demanddialprog) {
system(conf.demanddialprog);
hp=gethostbyname((char *)name);
}
retval = hp?*(uint32_t *)hp->h_addr:0; retval = hp?*(uint32_t *)hp->h_addr:0;
#if !defined(_WIN32) && !defined(GETHOSTBYNAME_R) #if !defined(_WIN32) && !defined(GETHOSTBYNAME_R)
_3proxy_mutex_unlock(&gethostbyname_mutex); _3proxy_mutex_unlock(&gethostbyname_mutex);

View File

@ -757,9 +757,9 @@ static int h_nsrecord(int argc, unsigned char **argv){
return 0; return 0;
} }
/* dialer: running a program when a name does not resolve is gone; the
command is still taken, and ignored, so configurations keep loading */
static int h_dialer(int argc, unsigned char **argv){ static int h_dialer(int argc, unsigned char **argv){
if(conf.demanddialprog) free(conf.demanddialprog);
conf.demanddialprog = strdup((char *)argv[1]);
return 0; return 0;
} }

View File

@ -882,7 +882,6 @@ struct extparam {
struct filter * filters; struct filter * filters;
struct auth *authfuncs; struct auth *authfuncs;
FILE *stdlog; FILE *stdlog;
char* demanddialprog;
unsigned char **stringtable; unsigned char **stringtable;
time_t logtime, time; time_t logtime, time;
unsigned logdumpsrv, logdumpcli; unsigned logdumpsrv, logdumpcli;

View File

@ -154,7 +154,7 @@ takes effect, or that services come back.
### DNS ### DNS
`fakeresolve` `nscache6` `dialer`. `fakeresolve` `nscache6`.
### Known limitations, deliberately not asserted ### Known limitations, deliberately not asserted