Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/jabber/message.c

    r31dbb90a r0e788f5  
    44*  Jabber module - Handling of message(s) (tags), etc                       *
    55*                                                                           *
    6 *  Copyright 2006 Wilmer van der Gaast <wilmer@gaast.net>                   *
     6*  Copyright 2006-2012 Wilmer van der Gaast <wilmer@gaast.net>              *
    77*                                                                           *
    88*  This program is free software; you can redistribute it and/or modify     *
     
    2929        char *from = xt_find_attr( node, "from" );
    3030        char *type = xt_find_attr( node, "type" );
     31        char *id = xt_find_attr( node, "id" );
    3132        struct xt_node *body = xt_find_node( node->children, "body" ), *c;
     33        struct xt_node *request = xt_find_node( node->children, "request" );
    3234        struct jabber_buddy *bud = NULL;
    3335        char *s, *room = NULL, *reason = NULL;
     
    3537        if( !from )
    3638                return XT_HANDLED; /* Consider this packet corrupted. */
     39
     40        if( request && id )
     41        {
     42                /* Send a message receipt (XEP-0184), looking like this:
     43                 * <message
     44                 *  from='kingrichard@royalty.england.lit/throne'
     45                 *  id='bi29sg183b4v'
     46                 *  to='northumberland@shakespeare.lit/westminster'>
     47                 *  <received xmlns='urn:xmpp:receipts' id='richard2-4.1.247'/>
     48                 * </message> */
     49                struct xt_node *received, *receipt;
     50               
     51                received = xt_new_node( "received", NULL, NULL );
     52                xt_add_attr( received, "xmlns", XMLNS_RECEIPTS );
     53                xt_add_attr( received, "id", id );
     54                receipt = jabber_make_packet( "message", NULL, from, received );
     55
     56                jabber_write_packet( ic, receipt );
     57                xt_free_node( receipt );
     58        }
    3759       
    3860        bud = jabber_buddy_by_jid( ic, from, GET_BUDDY_EXACT );
Note: See TracChangeset for help on using the changeset viewer.