ports/123437: comms/qpage -- hangup problems and ident requests
Douglas K. Rand
rand at meridian-enviro.com
Mon May 5 21:30:01 UTC 2008
>Number: 123437
>Category: ports
>Synopsis: comms/qpage -- hangup problems and ident requests
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Mon May 05 21:30:00 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator: Douglas K. Rand
>Release: FreeBSD 6.2-RELEASE-p3 i386
>Organization:
Meridian Environmental Technology, Inc.
>Environment:
System: FreeBSD delta.meridian-enviro.com 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Fri Feb 29 22:49:00 CST 2008 root at delta.meridian-enviro.com:/usr/obj/usr/src/sys/DELTA i386
>Description:
If you set identtimeout to 0 it is supposed to supress getting
the submitting user. It does stop qpage from explicitly making
its own ident request, but it doesn't stop qpage from having
TCP Wrappers make the request for it.
Also, at times we end up with the modem not getting hung up.
There is a logic error where it tries to hangup the modem
by dropping DTR and setting the line speed to 0. But it then
executes a return from the function, skipping the very next
check which is to see if carrier detect is still present, and
then trying to hang up the modem with "+++" and then a "ATH0".
Both patches have been submitted to the qpage author.
>How-To-Repeat:
For ident, use qpage via a firewall that is dropping ident
packets, it takes 10 seconds to establish the connection.
For the hangup I am not able to routinely recreate the problem
of the modem not hanging up, but I still believe there is a
logic error in the code.
>Fix:
The attached patches.
--- srvrsnpp.c.orig Mon May 5 15:53:26 2008
+++ srvrsnpp.c Mon May 5 15:54:40 2008
@@ -1056,7 +1056,12 @@
fromhost(&request);
- ptr = eval_user(&request);
+ /*
+ ** If we aren't doing an ident request, don't ask
+ ** TCP Wrappers to do it either
+ */
+ if (IdentTimeout) ptr = eval_user(&request);
+ else ptr = NULL;
if (ptr && strcmp(ptr, STRING_UNKNOWN) != 0)
p->ident = strdup(ptr);
--- ixo.c.orig Mon May 5 15:55:36 2008
+++ ixo.c Mon May 5 15:56:29 2008
@@ -368,7 +368,6 @@
if (tcsetattr(fd, TCSANOW, &ti) < 0) {
qpage_log(LOG_DEBUG, "tcsetattr(): %s", strerror(errno));
closemodem(fd);
- return;
}
/*
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list