# HG changeset patch # User Elliott Sales de Andrade # Date 1273044564 0 # Node ID b491612862dc205be803b6e31317af8785283388 # Parent 6936ffd13cb94131260f5906c2ef7ab5316e9805 Try and reduce some code duplication. diff -r 6936ffd13cb9 -r b491612862dc libpurple/protocols/msn/directconn.c --- a/libpurple/protocols/msn/directconn.c Wed May 05 07:26:57 2010 +0000 +++ b/libpurple/protocols/msn/directconn.c Wed May 05 07:29:24 2010 +0000 @@ -610,10 +610,22 @@ } static void +msn_dc_send_handshake_with_nonce(MsnDirectConn *dc, MsnDirectConnPacket *p) +{ + const gchar *h; + + h = msn_dc_serialize_binary_header(dc); + memcpy(p->data, h, DC_PACKET_HEADER_SIZE); + + memcpy(p->data + offsetof(MsnDcContext, ack_id), dc->nonce, 16); + + msn_dc_enqueue_packet(dc, p); +} + +static void msn_dc_send_handshake(MsnDirectConn *dc) { MsnDirectConnPacket *p; - const gchar *h; p = msn_dc_new_packet(DC_PACKET_HEADER_SIZE); @@ -624,29 +636,20 @@ dc->header.length = 0; dc->header.flags = 0x100; - h = msn_dc_serialize_binary_header(dc); - memcpy(p->data, h, DC_PACKET_HEADER_SIZE); - memcpy(p->data + offsetof(MsnDcContext, ack_id), dc->nonce, 16); - - msn_dc_enqueue_packet(dc, p); + msn_dc_send_handshake_with_nonce(dc, p); } static void msn_dc_send_handshake_reply(MsnDirectConn *dc) { MsnDirectConnPacket *p; - const gchar *h; p = msn_dc_new_packet(DC_PACKET_HEADER_SIZE); dc->header.id = dc->slpcall->slplink->slp_seq_id++; dc->header.length = 0; - h = msn_dc_serialize_binary_header(dc); - memcpy(p->data, h, DC_PACKET_HEADER_SIZE); - memcpy(p->data + offsetof(MsnDcContext, ack_id), dc->nonce, 16); - - msn_dc_enqueue_packet(dc, p); + msn_dc_send_handshake_with_nonce(dc, p); } static gboolean