| 574 } |
574 } |
| 575 } else if(xmlns == NULL) { |
575 } else if(xmlns == NULL) { |
| 576 /* The rest of the cases used to check xmlns individually. */ |
576 /* The rest of the cases used to check xmlns individually. */ |
| 577 continue; |
577 continue; |
| 578 } else if(!strcmp(y->name, "delay") && !strcmp(xmlns, "urn:xmpp:delay")) { |
578 } else if(!strcmp(y->name, "delay") && !strcmp(xmlns, "urn:xmpp:delay")) { |
| 579 /* XXX: compare the time. urn:xmpp:delay can happen on presence packets that aren't really and truly delayed */ |
579 /* XXX: compare the time. jabber:x:delay can happen on presence packets that aren't really and truly delayed */ |
| 580 delayed = TRUE; |
580 delayed = TRUE; |
| 581 stamp = xmlnode_get_attrib(y, "stamp"); |
581 stamp = xmlnode_get_attrib(y, "stamp"); |
| 582 } else if(!strcmp(y->name, "c") && !strcmp(xmlns, "http://jabber.org/protocol/caps")) { |
582 } else if(!strcmp(y->name, "c") && !strcmp(xmlns, "http://jabber.org/protocol/caps")) { |
| 583 caps = y; /* store for later, when creating buddy resource */ |
583 caps = y; /* store for later, when creating buddy resource */ |
| 584 } else if (g_str_equal(y->name, "nick") && g_str_equal(xmlns, "http://jabber.org/protocol/nick")) { |
584 } else if (g_str_equal(y->name, "nick") && g_str_equal(xmlns, "http://jabber.org/protocol/nick")) { |
| 585 nickname = xmlnode_get_data(y); |
585 nickname = xmlnode_get_data(y); |
| 586 } else if(!strcmp(y->name, "x")) { |
586 } else if(!strcmp(y->name, "x")) { |
| 587 if(!strcmp(xmlns, "http://jabber.org/protocol/muc#user")) { |
587 if(!strcmp(xmlns, "jabber:x:delay")) { |
| |
588 /* XXX: compare the time. jabber:x:delay can happen on presence packets that aren't really and truly delayed */ |
| |
589 delayed = TRUE; |
| |
590 stamp = xmlnode_get_attrib(y, "stamp"); |
| |
591 } else if(!strcmp(xmlns, "http://jabber.org/protocol/muc#user")) { |
| 588 xmlnode *z; |
592 xmlnode *z; |
| 589 |
593 |
| 590 muc = TRUE; |
594 muc = TRUE; |
| 591 if((z = xmlnode_get_child(y, "status"))) { |
595 if((z = xmlnode_get_child(y, "status"))) { |
| 592 const char *code = xmlnode_get_attrib(z, "code"); |
596 const char *code = xmlnode_get_attrib(z, "code"); |