示例#1
0
文件: switch.c 项目: miyakz1192/trema
static void
secure_channel_read( int fd, void* data ) {
  UNUSED( fd );
  UNUSED( data );

  if ( recv_from_secure_channel( &switch_info ) < 0 ) {
    switch_event_disconnected( &switch_info );
    return;
  }

  if ( switch_info.recv_queue->length > 0 ) {
    int ret = handle_messages_from_secure_channel( &switch_info );
    if ( ret < 0 ) {
      stop_event_handler();
      stop_messenger();
    }
  }
}
示例#2
0
文件: switch.c 项目: s-zenke/trema
static void
secure_channel_fd_isset( fd_set *read_set, fd_set *write_set ) {
  if ( switch_info.secure_channel_fd < 0 ) {
    return;
  }
  if ( FD_ISSET( switch_info.secure_channel_fd, read_set ) ) {
    if ( recv_from_secure_channel( &switch_info ) < 0 ) {
      switch_event_disconnected( &switch_info );
      return;
    }
  }
  if ( FD_ISSET( switch_info.secure_channel_fd, write_set ) ) {
    if ( flush_secure_channel( &switch_info ) < 0 ) {
      switch_event_disconnected( &switch_info );
      return;
    }
  }

  if ( switch_info.recv_queue->length > 0 ) {
    handle_messages_from_secure_channel( &switch_info );
  }
}