diff -rc src/bin/named/ns_main.c src-mpe/bin/named/ns_main.c *** src/bin/named/ns_main.c Sun Jun 8 16:36:40 1997 --- src-mpe/bin/named/ns_main.c Fri Jun 6 10:50:57 1997 *************** *** 479,490 **** --- 479,497 ---- (void) close(rfd); return; } + #ifdef MPE + /* An error on MPE is indicated by -1, not simply non-zero. */ + if (fcntl(rfd, F_SETFL, n|PORT_NONBLOCK) == -1) { + #else if (fcntl(rfd, F_SETFL, n|PORT_NONBLOCK) != 0) { + #endif ns_info(ns_log_default, "fcntl(rfd, NONBLOCK): %s", strerror(errno)); (void) close(rfd); return; } + #ifndef MPE + /* SO_SNDBUF exists for MPE, but is not supported and will error. */ if (setsockopt(rfd, SOL_SOCKET, SO_SNDBUF, (char*)&sbufsize, sizeof sbufsize) < 0) { ns_info(ns_log_default, "setsockopt(rfd, SO_SNDBUF, %d): %s", *************** *** 492,497 **** --- 499,505 ---- (void) close(rfd); return; } + #endif if (setsockopt(rfd, SOL_SOCKET, SO_KEEPALIVE, (char *)&on, sizeof on) < 0) { ns_info(ns_log_default, "setsockopt(rfd, KEEPALIVE): %s", diff -rc src/bin/named-xfer/named-xfer.c src-mpe/bin/named-xfer/named-xfer.c *** src/bin/named-xfer/named-xfer.c Sun Jun 8 16:36:42 1997 --- src-mpe/bin/named-xfer/named-xfer.c Fri Jun 6 10:50:59 1997 *************** *** 1150,1156 **** --- 1150,1161 ---- } errno = 0; salen = sizeof sa; + #ifdef MPE + /* recvfrom() a stream will error with EOPNOTSUPP on MPE. */ + n = recv(fd, buf, len, 0); + #else n = recvfrom(fd, buf, len, 0, (struct sockaddr *)&sa, &salen); + #endif if (n == 0 && errno == 0) { #if defined(NETREAD_BROKEN) if (++retries < 42) /* doug adams */ diff -rc src/lib/irs/dns_gr.c src-mpe/lib/irs/dns_gr.c *** src/lib/irs/dns_gr.c Mon Nov 18 01:09:15 1996 --- src-mpe/lib/irs/dns_gr.c Sun Jun 8 15:27:55 1997 *************** *** 189,195 **** --- 189,198 ---- goto cleanup; *cp++ = '\0'; + #ifndef MPE + /* MPE lacks gr_passwd */ pvt->group.gr_passwd = cp; + #endif if (!(cp = strchr(cp, ':'))) goto cleanup; *cp++ = '\0'; diff -rc src/lib/irs/gen_gr.c src-mpe/lib/irs/gen_gr.c *** src/lib/irs/gen_gr.c Mon Dec 30 23:13:53 1996 --- src-mpe/lib/irs/gen_gr.c Sun Jun 8 15:28:56 1997 *************** *** 307,313 **** --- 307,316 ---- assert((nnew == 0) == (n == 0)); if (!preserve) { n += strlen(src->gr_name) + 1; + #ifndef MPE + /* MPE lacks gr_passwd */ n += strlen(src->gr_passwd) + 1; + #endif } if (n == 0) { /* No work to do. */ *************** *** 336,344 **** --- 339,350 ---- pvt->group.gr_name = cp; strcpy(cp, src->gr_name); cp += strlen(src->gr_name) + 1; + #ifndef MPE + /* MPE lacks gr_passwd */ pvt->group.gr_passwd = cp; strcpy(cp, src->gr_passwd); cp += strlen(src->gr_passwd) + 1; + #endif } assert(cp >= pvt->membuf && cp <= &pvt->membuf[pvt->membufsize]); } diff -rc src/lib/irs/irs_p.h src-mpe/lib/irs/irs_p.h *** src/lib/irs/irs_p.h Mon Nov 11 19:19:33 1996 --- src-mpe/lib/irs/irs_p.h Wed May 28 13:51:27 1997 *************** *** 34,37 **** --- 34,43 ---- gid_t, gid_t *, int *); extern struct irs_ng * irs_nul_ng(struct irs_acc *); + #ifdef MPE + /* MPE requires sfcntl() for sockets and fcntl() for everything else. IRS + is all "everything else", so undo the normal MPE #define fcntl sfcntl. */ + #undef fcntl + #endif + #endif diff -rc src/lib/irs/lcl_gr.c src-mpe/lib/irs/lcl_gr.c *** src/lib/irs/lcl_gr.c Thu Apr 24 15:34:14 1997 --- src-mpe/lib/irs/lcl_gr.c Sun Jun 8 15:29:45 1997 *************** *** 283,291 **** --- 283,294 ---- goto corrupt; /* Skip past the password field. */ + #ifndef MPE + /* MPE lacks gr_passwd. Heck, MPE lacks /etc/group. */ pvt->group.gr_passwd = strsep(&bp, ":"); if (bp == '\0') goto corrupt; + #endif /* Checking for a gid. */ if ((p = strsep(&bp, ":")) == NULL) diff -rc src/lib/irs/nis_gr.c src-mpe/lib/irs/nis_gr.c *** src/lib/irs/nis_gr.c Tue Nov 26 01:53:50 1996 --- src-mpe/lib/irs/nis_gr.c Sun Jun 8 15:30:27 1997 *************** *** 265,271 **** --- 265,274 ---- goto cleanup; *cp++ = '\0'; + #ifndef MPE + /* MPE lacks gr_passwd. Heck, MPE lacks NIS. */ pvt->group.gr_passwd = cp; + #endif if (!(cp = strchr(cp, ':'))) goto cleanup; *cp++ = '\0';