[Prev][Next][Index][Thread]
porting qmail to Sequent Dynix/ptx 3.2.0/TLI socket emulation library
-
To: djb-qmail@xxxxxxxxxxxxxxxxxxxx
-
Subject: porting qmail to Sequent Dynix/ptx 3.2.0/TLI socket emulation library
-
From: Julie Baumler <a4jb@xxxxxxxxxxxxxxxxx>
-
Date: Wed, 04 Jun 1997 15:14:46 -0700 (PDT)
-
Delivered-to: mailing list djb-qmail@xxxxxxxxxxxxxxxxxxxx
-
Delivered-to: djb-qmail@xxxxxxxxxxxxxxxxxxxx
-
Mailing-List: contact djb-qmail-help@xxxxxxxxxxxxxxxxxxxx; run by ezmlm
Hello-
I'm trying to port qmail 1.01 to Sequent Dynix/ptx version 3.2.0 (sort of
sysVr<4ish using the TLI socket emulation library). After some work I
have gotten it to compile, but it only passes the preinstallation tests
that send messages to the local machine. Some investigation shows that
the problem is with qmail-remote. I'm sure the problem has to do with the
poor socket emulation library, but I'm really stumped for any ideas of how
to fix it beyond waiting for this machine to reach the end of its useful
life (sometime this year, thank god!) Does anyone have qmail running on
any similar machine or have any suggestions for what I can do?
More details about what I'm seeing below.
Thanks,
Julie
-------------------------------------------------------------------------------
Julie L. Baumler | Card Catalog Public Access
System Administrator PSULIB | telnet psulib.cc.pdx.edu
Portland State University | login: dialin
Voice: (503) 725-3369 | password: psu
Email: a4jb@xxxxxxxxxxxxxxxxx |
-------------------------------------------------------------------------------
The error message from qmail-remote is:
ZSystem resources temporarily unavailable. (#4.3.0)
By the graces of DBX, I can see that this is coming from line 417 of
qmail-remote.c:
if (ipme_init() != 1) temp_oserr();
DBX also shows me that when reading from the socket, in ipme_init, it
never gets anything and eventually drops out at line 62 of ipme.c when len
gets to be over 200000
from ipme.c:
lines 49-64 of ipme_init():
if ((s = socket(AF_INET,SOCK_STREAM,0)) == -1) return -1;
len = 256;
for (;;) {
if (!stralloc_ready(&buf,len)) { close(s); return 0; }
buf.len = 0;
ifc.ifc_buf = buf.s;
ifc.ifc_len = len;
if (ioctl(s,SIOCGIFCONF,&ifc) >= 0) /* > is for System V */
if (ifc.ifc_len + sizeof(*ifr) + 64 < len) { /* what a stupid interface */
buf.len = ifc.ifc_len;
break;
}
if (len > 200000) { close(s); return -1; }
len += 100 + (len >> 2);
}
Follow-Ups: