- char buf[1024];
- int len;
- if( giDoor_ChildStatus || (len = read(stdout_pair[0], buf, sizeof buf)) < 0)
- {
- #if DEBUG
- int child_exit;
- waitpid(childPid, &child_exit, 0);
- printf("Door_DoDispense: fread fail (child status %i)\n", child_exit);
- #endif
- return -1;
- }
- buf[len] = '\0';
-
- #if DEBUG
- printf("Door_DoDispense: buf = %i '%s'\n", len, buf);
- #endif
- }
-
- // Send password
- if( giDoor_ChildStatus || fputs(gsDoor_Password, child_stdin) <= 0 ) {
- #if DEBUG
- int child_exit;
- waitpid(childPid, &child_exit, 0);
- printf("Door_DoDispense: fputs password fail (child status %i)\n", child_exit);
- #endif
- return -1;
- }
- fputs("\n", child_stdin);
-
-
- #if DEBUG
- printf("Door_DoDispense: Door unlock\n");
- #endif
-
- // ATH1 - Unlock door
- if( giDoor_ChildStatus || fputs("ATH1\n", child_stdin) <= 0) {
- #if DEBUG
- printf("Door_DoDispense: fputs unlock\n");
- #endif
- return -1;
+ struct termios info;
+ tcgetattr(door_serial_handle, &info);
+ info.c_cflag &= ~CLOCAL;
+ tcsetattr(door_serial_handle, TCSANOW, &info);