Improved error reporting for parity settings

This commit is contained in:
Cristian Maglie
2016-10-22 15:48:43 +02:00
parent a3909960d3
commit c534e6fb45
2 changed files with 12 additions and 0 deletions

View File

@@ -176,15 +176,23 @@ func setTermSettingsParity(parity Parity, settings *syscall.Termios) error {
settings.Cflag &^= tcCMSPAR
settings.Iflag |= syscall.INPCK
case MarkParity:
if tcCMSPAR == 0 {
return &PortError{code: InvalidParity}
}
settings.Cflag |= syscall.PARENB
settings.Cflag |= syscall.PARODD
settings.Cflag |= tcCMSPAR
settings.Iflag |= syscall.INPCK
case SpaceParity:
if tcCMSPAR == 0 {
return &PortError{code: InvalidParity}
}
settings.Cflag |= syscall.PARENB
settings.Cflag &^= syscall.PARODD
settings.Cflag |= tcCMSPAR
settings.Iflag |= syscall.INPCK
default:
return &PortError{code: InvalidParity}
}
return nil
}