$NetBSD: patch-aa,v 1.3 2014/02/16 15:45:52 wiedi Exp $ --- sredird.c.orig 2002-01-14 10:40:44.000000000 +0000 +++ sredird.c @@ -77,14 +77,17 @@ #include #include #include +#if defined(__sun) +#include +#endif #include #include #include #include #include -#include #include #include +#include #include #include @@ -656,10 +659,14 @@ unsigned long int GetPortSpeed(int PortF return(57600UL); case B115200: return(115200UL); +#ifdef B230400 case B230400: return(230400UL); +#endif +#ifdef B460800 case B460800: return(460800UL); +#endif default: return(0UL); } @@ -1038,9 +1045,11 @@ void SetPortSpeed(int PortFd, unsigned l case 230400UL: Speed = B230400; break; +#ifdef B460800 case 460800UL: Speed = B460800; break; +#endif default: LogMsg(LOG_WARNING,"Unknwon baud rate requested, setting to 9600."); Speed = B9600; @@ -1770,7 +1779,8 @@ int main(int argc, char * argv[]) int SockParm; /* Out buffer ticks count */ - clock_t OutBTicks = times(NULL); + struct tms Tms; + clock_t OutBTicks = times(&Tms); /* Out buffer clock ticks limit */ clock_t MaxBTicks; @@ -1882,7 +1892,15 @@ int main(int argc, char * argv[]) tcgetattr(DeviceFd,&PortSettings); /* Set the serial port to raw mode */ +#if defined(__sun) + PortSettings.c_iflag &= ~(IMAXBEL|IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON); + PortSettings.c_oflag &= ~OPOST; + PortSettings.c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN); + PortSettings.c_cflag &= ~(CSIZE|PARENB); + PortSettings.c_cflag |= CS8; +#else cfmakeraw(&PortSettings); +#endif /* Enable HANGUP on close and disable modem control line handling */ PortSettings.c_cflag = (PortSettings.c_cflag | HUPCL) | CLOCAL; @@ -1907,10 +1925,10 @@ int main(int argc, char * argv[]) */ SockParm = IPTOS_LOWDELAY; setsockopt(STDIN_FILENO,SOL_SOCKET,SO_KEEPALIVE,&SockParmEnable,sizeof(SockParmEnable)); - setsockopt(STDIN_FILENO,SOL_IP,IP_TOS,&SockParm,sizeof(SockParm)); + setsockopt(STDIN_FILENO,IPPROTO_IP,IP_TOS,&SockParm,sizeof(SockParm)); setsockopt(STDIN_FILENO,SOL_SOCKET,SO_OOBINLINE,&SockParmEnable,sizeof(SockParmEnable)); setsockopt(STDOUT_FILENO,SOL_SOCKET,SO_KEEPALIVE,&SockParmEnable,sizeof(SockParmEnable)); - setsockopt(STDOUT_FILENO,SOL_IP,IP_TOS,&SockParm,sizeof(SockParm)); + setsockopt(STDOUT_FILENO,IPPROTO_IP,IP_TOS,&SockParm,sizeof(SockParm)); /* Make reads/writes unblocking */ ioctl(STDOUT_FILENO,FIONBIO,&SockParmEnable);