Beispiel #1
0
static void send_peers(pcu_aa_tree t)
{
  if (pcu_aa_empty(t))
    return;
  pcu_msg_peer* peer;
  peer = (pcu_msg_peer*)t;
  pcu_mpi_send(&(peer->message),pcu_user_comm);
  send_peers(t->left);
  send_peers(t->right);
}
Beispiel #2
0
void pcu_msg_send(pcu_msg* m)
{
  if (m->state != pack_state)
    reel_fail("PCU_Comm_Send called at the wrong time");
  send_peers(m->peers);
  m->state = send_recv_state;
}
Beispiel #3
0
static void handle_direct_packet(Group_Chats *g_c, int groupnumber, const uint8_t *data, uint16_t length,
                                 int close_index)
{
    if (length == 0)
        return;

    switch (data[0]) {
        case PEER_QUERY_ID: {
            Group_c *g = get_group_c(g_c, groupnumber);

            if (!g)
                return;

            send_peers(g_c, groupnumber, g->close[close_index].number, g->close[close_index].group_number);
        }

        break;

        case PEER_RESPONSE_ID: {
            handle_send_peers(g_c, groupnumber, data + 1, length - 1);
        }

        break;

    }
}
Beispiel #4
0
static void handle_direct_packet(Group_Chats *g_c, int groupnumber, const uint8_t *data, uint16_t length,
                                 int close_index)
{
    if (length == 0)
        return;

    switch (data[0]) {
        case PEER_KILL_ID: {
            Group_c *g = get_group_c(g_c, groupnumber);

            if (!g)
                return;

            if (!g->close[close_index].closest) {
                g->close[close_index].type = GROUPCHAT_CLOSE_NONE;
                kill_friend_connection(g_c->fr_c, g->close[close_index].number);
            }
        }

        case PEER_QUERY_ID: {
            Group_c *g = get_group_c(g_c, groupnumber);

            if (!g)
                return;

            send_peers(g_c, groupnumber, g->close[close_index].number, g->close[close_index].group_number);
        }

        break;

        case PEER_RESPONSE_ID: {
            handle_send_peers(g_c, groupnumber, data + 1, length - 1);
        }

        break;

    }
}