Patch #: 142 Type: operational change Priority: none Modification: assist code portability with msghdr structure Submitted: Earle Ake Submitted: David Hornsby Archived: munnari.OZ.AU mac/cap.patches/cap60.patch142 Application: 'cd cap60; patch -p < cap60.patches/cap60.patch142' Summary: msghdr structure elements msg_accrights* not universal File: cap60/lib/cap/abkip.c *** lib/cap/abkip.c.orig Thu Jan 14 23:48:50 1993 --- lib/cap/abkip.c Thu May 6 00:06:58 1993 *************** *** 1,7 **** /* ! * $Author: djh $ $Date: 1993/01/14 12:48:39 $ ! * $Header: /mac/src/cap60/lib/cap/RCS/abkip.c,v 2.3 1993/01/14 12:48:39 djh Rel djh $ ! * $Revision: 2.3 $ */ /* --- 1,7 ---- /* ! * $Author: djh $ $Date: 1993/05/05 14:06:38 $ ! * $Header: /mac/src/cap60/lib/cap/RCS/abkip.c,v 2.4 1993/05/05 14:06:38 djh Rel djh $ ! * $Revision: 2.4 $ */ /* *************** *** 114,119 **** --- 114,135 ---- # endif #endif + #ifdef NEEDNETBUF + #ifdef NEEDMSGHDR + struct msghdr { + caddr_t msg_name; /* name to send to */ + int msg_namelen; /* size of name */ + struct iovec *msg_iov; /* io vec */ + int msg_iovlen; /* length */ + int msg_accrights; /* dummy */ + int msg_accrightslen; + }; + #endif NEEDMSGHDR + #endif NEEDNETBUF + + struct msghdr msgr; + struct msghdr msgw; + /* for forwarding using ip_resolve */ private struct in_addr ipaddr_src; /* ip address */ private word ddp_srcnet; /* ddp network part */ *************** *** 248,253 **** --- 264,272 ---- ddpskt2udpport[i] = -1; /* mark unknown */ #endif UAB_MKIP + bzero((char *)&msgr, sizeof(msgr)); + bzero((char *)&msgw, sizeof(msgw)); + rebport = htons(rebPort); /* swap to netorder */ portrange = getPRange(); /* which port range to use ? */ init_fdlistening(); *************** *** 377,392 **** } #ifdef NEEDNETBUF - #ifdef NEEDMSGHDR - struct msghdr { - caddr_t msg_name; /* name to send to */ - int msg_namelen; /* size of name */ - struct iovec *msg_iov; /* io vec */ - int msg_iovlen; /* length */ - int msg_accrights; /* dummy */ - int msg_accrightslen; - }; - #endif NEEDMSGHDR /* buffer larger than maximum ddp pkt by far */ private char net_buffer[ddpMaxData*2]; --- 396,401 ---- *************** *** 462,479 **** unsigned short skt; struct iovec *iov; { - struct msghdr msg; int err; abfsin.sin_addr = addr; abfsin.sin_port = skt; ! msg.msg_name = (caddr_t) &abfsin; ! msg.msg_namelen = sizeof(abfsin); ! msg.msg_iov = iov; ! msg.msg_iovlen = iovlen; ! msg.msg_accrights = 0; ! msg.msg_accrightslen = 0; ! if ((err = sendmsg(abfd,&msg,0)) < 0) perror("abwrite"); return(err); } --- 471,485 ---- unsigned short skt; struct iovec *iov; { int err; abfsin.sin_addr = addr; abfsin.sin_port = skt; ! msgw.msg_name = (caddr_t) &abfsin; ! msgw.msg_namelen = sizeof(abfsin); ! msgw.msg_iov = iov; ! msgw.msg_iovlen = iovlen; ! if ((err = sendmsg(abfd,&msgw,0)) < 0) perror("abwrite"); return(err); } *************** *** 481,494 **** abread(fd, iov, iovlen) struct iovec *iov; { ! msg.msg_name = (caddr_t) &from_sin; ! msg.msg_namelen = sizeof(from_sin); ! msg.msg_iov = iov; ! msg.msg_iovlen = iovlen; ! msg.msg_accrights = 0; ! msg.msg_accrightslen = 0; ! if ((err = recvmsg(fd,&msg,0)) < 0) perror("abread"); return(err); } --- 487,499 ---- abread(fd, iov, iovlen) struct iovec *iov; { + int err; ! msgr.msg_name = (caddr_t) &from_sin; ! msgr.msg_namelen = sizeof(from_sin); ! msgr.msg_iov = iov; ! msgr.msg_iovlen = iovlen; ! if ((err = recvmsg(fd,&msgr,0)) < 0) perror("abread"); return(err); } *************** *** 504,520 **** struct iovec *iov; int iovlen; { - struct msghdr msg; int len; LAP *lap; ! msg.msg_name = (caddr_t) &from_sin; ! msg.msg_namelen = sizeof(from_sin); ! msg.msg_iov = iov; ! msg.msg_iovlen = iovlen; ! msg.msg_accrights = 0; ! msg.msg_accrightslen = 0; ! if ((len = recvmsg(fd,&msg,0)) < 0) { perror("abread"); return(len); } --- 509,522 ---- struct iovec *iov; int iovlen; { int len; LAP *lap; ! msgr.msg_name = (caddr_t) &from_sin; ! msgr.msg_namelen = sizeof(from_sin); ! msgr.msg_iov = iov; ! msgr.msg_iovlen = iovlen; ! if ((len = recvmsg(fd,&msgr,0)) < 0) { perror("abread"); return(len); } *************** *** 568,574 **** struct iovec *iov; int iovlen; { - struct msghdr msg; word destskt, ddp2ipskt(); struct in_addr desthost; DDP *ddp; --- 570,575 ---- *************** *** 606,621 **** abfsin.sin_addr = xdesthost; abfsin.sin_port = htons(mrebPort); #endif UAB_MKIP ! msg.msg_name = (caddr_t) &abfsin; ! msg.msg_namelen = sizeof(abfsin); ! msg.msg_iov = iov; ! msg.msg_iovlen = iovlen; ! msg.msg_accrights = 0; ! msg.msg_accrightslen = 0; #ifndef UAB_MKIP ! if ((err = sendmsg(fd,&msg,0)) < 0) #else UAB_MKIP ! if ((err = sendmsg(abfd,&msg,0)) < 0) #endif UAB_MKIP perror("abwrite"); return(err); --- 607,620 ---- abfsin.sin_addr = xdesthost; abfsin.sin_port = htons(mrebPort); #endif UAB_MKIP ! msgw.msg_name = (caddr_t) &abfsin; ! msgw.msg_namelen = sizeof(abfsin); ! msgw.msg_iov = iov; ! msgw.msg_iovlen = iovlen; #ifndef UAB_MKIP ! if ((err = sendmsg(fd,&msgw,0)) < 0) #else UAB_MKIP ! if ((err = sendmsg(abfd,&msgw,0)) < 0) #endif UAB_MKIP perror("abwrite"); return(err); *** lib/cap/abversion.c.orig Tue May 4 23:55:09 1993 --- lib/cap/abversion.c Thu May 6 00:09:09 1993 *************** *** 1,7 **** /* ! * $Author: djh $ $Date: 1993/05/04 13:55:04 $ ! * $Header: /mac/src/cap60/lib/cap/RCS/abversion.c,v 2.41 1993/05/04 13:55:04 djh Rel djh $ ! * $Revision: 2.41 $ */ /* --- 1,7 ---- /* ! * $Author: djh $ $Date: 1993/05/05 14:09:03 $ ! * $Header: /mac/src/cap60/lib/cap/RCS/abversion.c,v 2.42 1993/05/05 14:09:03 djh Rel djh $ ! * $Revision: 2.42 $ */ /* *************** *** 31,37 **** myversion.cv_name = "CAP"; myversion.cv_version = 6; myversion.cv_subversion = 0; ! myversion.cv_patchlevel = 141; myversion.cv_rmonth = "May"; myversion.cv_ryear = "1993"; switch (lap_proto) { --- 31,37 ---- myversion.cv_name = "CAP"; myversion.cv_version = 6; myversion.cv_subversion = 0; ! myversion.cv_patchlevel = 142; myversion.cv_rmonth = "May"; myversion.cv_ryear = "1993"; switch (lap_proto) { *** README.orig Tue May 4 23:55:59 1993 --- README Thu May 6 00:09:57 1993 *************** *** 2,8 **** CAP - Columbia AppleTalk Package for UNIX o RELEASE NOTES ! o CAP Distribution 6.0, Patch Level 141, May 1993 Notice ------ --- 2,8 ---- CAP - Columbia AppleTalk Package for UNIX o RELEASE NOTES ! o CAP Distribution 6.0, Patch Level 142, May 1993 Notice ------