$OpenBSD: patch-SePort_c,v 1.1 2002/02/20 21:46:49 naddy Exp $ --- SePort.c.orig Wed Apr 21 15:38:31 1993 +++ SePort.c Wed Feb 20 22:31:21 2002 @@ -56,8 +56,8 @@ #define MAX_INPUT _POSIX_MAX_INPUT #endif -extern char TtyReadChar(); -extern int TtyReadStr(), +extern int TtyReadChar(), + TtyReadStr(), TtyTimedReadChar(), TtyReadLine(), TtyTimedWaitFor(), @@ -627,19 +627,25 @@ mbaud(s) #endif break; #if USE_NONSTD_BAUD -#ifdef linux case 57600: +#ifdef linux baudrate = B38400; ser_io.flags &= ~ASYNC_SPD_MASK; ser_io.flags |= ASYNC_SPD_HI; +#else + baudrate = B57600; +#endif break; case 115200: +#ifdef linux baudrate = B38400; ser_io.flags &= ~ASYNC_SPD_MASK; ser_io.flags |= ASYNC_SPD_VHI; +#else + baudrate = B115200; +#endif break; #endif -#endif default: return (-1); } @@ -691,6 +697,14 @@ mbaud(s) #endif #endif return 38400; +#if USE_NONSTD_BAUD +#ifndef linux + case B57600: + return(57600); + case B115200: + return(115200); +#endif +#endif } SeError("Consistency error in baud rate"); @@ -865,7 +879,7 @@ MdmReadStr(buf) * MdmReadChar: reads one character from the modem. */ -char +int MdmReadChar(readChar) char *readChar; { @@ -997,6 +1011,7 @@ lock_tty() pid_t pid, lckpid; char *modemname; + int killret; #if LF_USE_ASCII_PID char pidstr[20], lckpidstr[20]; @@ -1063,11 +1078,13 @@ relink: #endif lockPid = (pid_t) lckpid; - if (kill(lckpid, 0) == 0) { - SeErrorF("Device %s is locked by process %d", modem_port, lckpid, ""); - unlink(ltmp); - return -1; - } + killret = kill(lockPid, 0); + if(killret == 0 || (killret == -1 && errno != ESRCH)) { + SeErrorF("Device %s is locked by process %d.", + modem_port, lckpid, ""); + unlink(ltmp); + return -1; + } } }