Example #1
0
void owl_global_set_doaimevents(owl_global *g)
{
  if (g->aim_event_source)
    return;
  g->aim_event_source = owl_aim_event_source_new(owl_global_get_aimsess(g));
  g_source_attach(g->aim_event_source, NULL);
}
Example #2
0
int owl_select_aim_hack(fd_set *rfds, fd_set *wfds)
{
  aim_conn_t *cur;
  aim_session_t *sess;
  int max_fd;

  FD_ZERO(rfds);
  FD_ZERO(wfds);
  max_fd = 0;
  sess = owl_global_get_aimsess(&g);
  for (cur = sess->connlist, max_fd = 0; cur; cur = cur->next) {
    if (cur->fd != -1) {
      FD_SET(cur->fd, rfds);
      if (cur->status & AIM_CONN_STATUS_INPROGRESS) {
        /* Yes, we're checking writable sockets here. Without it, AIM
           login is really slow. */
        FD_SET(cur->fd, wfds);
      }
      
      if (cur->fd > max_fd)
        max_fd = cur->fd;
    }
  }
  return max_fd;
}