dpz@soliloquy.rutgers.edu (David P. Zimmerman) (07/10/87)
I have been trying to get sendmail to coexist peacefully with Sun's YP service, and ran across something that I thought exceedingly weird. I am hoping someone can explain the meaning of it. Some background: We use UCB sendmail in place of the Sun sendmail, and have symbolic links from /usr/lib/aliases.{dir,pag} to their counterparts down in /usr/etc/yp/domainname. For the clients, slave servers, and clients of the slave servers, we have MX records pointing to the master server. After modifying /usr/lib/aliases and doing a "make aliases" in /etc/yp, the ypxfr would die with a "no local order number" message. Likewise, the ypxfr_2perday mail.aliases call on the slave servers would die, complaining that it couldn't find out who the master server of the map was. I understand why, but don't like any of it. Following this is a diff of my changes to sendmail that seems to work for both sendmail and YP, but I am not confident about it, seeing how this scheme of mallocing an extra byte is used in many other places in sendmail. My problem is that /etc/yp/makedbm "corrects" the key length (I call "makedbm -u | makedbm -" in /etc/yp/Makefile to get the YP info in there). Could someone explain that extra byte? If it is necessary, I think I can hack around it. Thanks... dpz *** alias.c.BEFOREDPZ Wed Mar 25 21:54:24 1987 --- alias.c Tue Jul 7 20:44:09 1987 *************** *** 137,143 /* create a key for fetch */ lhs.dptr = name; ! lhs.dsize = strlen(name) + 1; rhs = fetch(lhs); return (rhs.dptr); # else DBM --- 137,143 ----- /* create a key for fetch */ lhs.dptr = name; ! lhs.dsize = strlen(name); rhs = fetch(lhs); return (rhs.dptr); # else DBM *************** *** 488,495 ** Insert alias into symbol table or DBM file */ ! lhssize = strlen(al.q_user) + 1; ! rhssize = strlen(rhs) + 1; # ifdef DBM if (init) --- 488,495 ----- ** Insert alias into symbol table or DBM file */ ! lhssize = strlen(al.q_user); ! rhssize = strlen(rhs); # ifdef DBM if (init) -- David P. Zimmerman rutgers!dpz dpz@rutgers.edu