Changeset 5bd21df
- Timestamp:
- 2007-12-02T17:25:57Z (17 years ago)
- Branches:
- master
- Children:
- fc5d06d
- Parents:
- 911cc4f
- Location:
- protocols/jabber
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
protocols/jabber/conference.c
r911cc4f r5bd21df 24 24 #include "jabber.h" 25 25 26 static xt_status jabber_chat_join_failed( struct im_connection *ic, struct xt_node *node, struct xt_node *orig ); 27 26 28 struct groupchat *jabber_chat_join( struct im_connection *ic, char *room, char *nick, char *password ) 27 29 { … … 35 37 xt_add_attr( node, "xmlns", XMLNS_MUC ); 36 38 node = jabber_make_packet( "presence", NULL, roomjid, node ); 39 jabber_cache_add( ic, node, jabber_chat_join_failed ); 37 40 38 41 if( !jabber_write_packet( ic, node ) ) 39 42 { 40 43 g_free( roomjid ); 41 xt_free_node( node );42 44 return NULL; 43 45 } 44 xt_free_node( node );45 46 46 47 jc = g_new0( struct jabber_chat, 1 ); … … 63 64 64 65 return c; 66 } 67 68 static xt_status jabber_chat_join_failed( struct im_connection *ic, struct xt_node *node, struct xt_node *orig ) 69 { 70 struct jabber_error *err; 71 struct jabber_buddy *bud; 72 char *room; 73 74 room = xt_find_attr( orig, "to" ); 75 bud = jabber_buddy_by_jid( ic, room, 0 ); 76 77 err = jabber_error_parse( xt_find_node( node->children, "error" ), XMLNS_STANZA_ERROR ); 78 if( err ) 79 { 80 imcb_error( ic, "Error joining groupchat %s: %s%s%s", 81 bud->bare_jid, err->code, err->text ? ": " : "", 82 err->text ? err->text : "" ); 83 jabber_error_free( err ); 84 } 85 86 if( bud ) 87 jabber_chat_free( jabber_chat_by_jid( ic, bud->bare_jid ) ); 88 } 89 90 struct groupchat *jabber_chat_by_jid( struct im_connection *ic, const char *name ) 91 { 92 char *normalized = jabber_normalize( name ); 93 struct groupchat *ret; 94 struct jabber_chat *jc; 95 96 for( ret = ic->groupchats; ret; ret = ret->next ) 97 { 98 jc = ret->data; 99 if( strcmp( normalized, jc->name ) == 0 ) 100 break; 101 } 102 g_free( normalized ); 103 104 return ret; 65 105 } 66 106 … … 148 188 char *s; 149 189 150 if( ( chat = jabber_chat_by_ name( ic, bud->bare_jid ) ) == NULL )190 if( ( chat = jabber_chat_by_jid( ic, bud->bare_jid ) ) == NULL ) 151 191 { 152 192 /* How could this happen?? We could do kill( self, 11 ) … … 250 290 return; 251 291 } 252 else if( ( chat = jabber_chat_by_ name( ic, bud->bare_jid ) ) == NULL )292 else if( ( chat = jabber_chat_by_jid( ic, bud->bare_jid ) ) == NULL ) 253 293 { 254 294 /* How could this happen?? We could do kill( self, 11 ) -
protocols/jabber/jabber.c
r911cc4f r5bd21df 270 270 return jabber_write( ic, message, strlen( message ) ); 271 271 272 if( ( s = strchr( who, '=' ) ) && jabber_chat_by_ name( ic, s + 1 ) )272 if( ( s = strchr( who, '=' ) ) && jabber_chat_by_jid( ic, s + 1 ) ) 273 273 bud = jabber_buddy_by_ext_jid( ic, who, 0 ); 274 274 else … … 397 397 if( strchr( room, '@' ) == NULL ) 398 398 imcb_error( ic, "Invalid room name: %s", room ); 399 else if( jabber_chat_by_ name( ic, room ) )399 else if( jabber_chat_by_jid( ic, room ) ) 400 400 imcb_error( ic, "Already present in chat `%s'", room ); 401 401 else -
protocols/jabber/jabber.h
r911cc4f r5bd21df 208 208 int jabber_buddy_remove( struct im_connection *ic, char *full_jid ); 209 209 int jabber_buddy_remove_bare( struct im_connection *ic, char *bare_jid ); 210 struct groupchat *jabber_chat_by_name( struct im_connection *ic, const char *name );211 210 time_t jabber_get_timestamp( struct xt_node *xt ); 212 211 struct jabber_error *jabber_error_parse( struct xt_node *node, char *xmlns ); … … 231 230 /* conference.c */ 232 231 struct groupchat *jabber_chat_join( struct im_connection *ic, char *room, char *nick, char *password ); 232 struct groupchat *jabber_chat_by_jid( struct im_connection *ic, const char *name ); 233 233 void jabber_chat_free( struct groupchat *c ); 234 234 int jabber_chat_msg( struct groupchat *ic, char *message, int flags ); -
protocols/jabber/jabber_util.c
r911cc4f r5bd21df 614 614 } 615 615 616 struct groupchat *jabber_chat_by_name( struct im_connection *ic, const char *name )617 {618 char *normalized = jabber_normalize( name );619 struct groupchat *ret;620 struct jabber_chat *jc;621 622 for( ret = ic->groupchats; ret; ret = ret->next )623 {624 jc = ret->data;625 if( strcmp( normalized, jc->name ) == 0 )626 break;627 }628 g_free( normalized );629 630 return ret;631 }632 633 616 time_t jabber_get_timestamp( struct xt_node *xt ) 634 617 { … … 682 665 struct jabber_error *jabber_error_parse( struct xt_node *node, char *xmlns ) 683 666 { 684 struct jabber_error *err = g_new0( struct jabber_error, 1 );667 struct jabber_error *err; 685 668 struct xt_node *c; 686 669 char *s; 687 670 671 if( node == NULL ) 672 return NULL; 673 674 err = g_new0( struct jabber_error, 1 ); 688 675 err->type = xt_find_attr( node, "type" ); 689 676 -
protocols/jabber/presence.c
r911cc4f r5bd21df 40 40 { 41 41 *s = 0; 42 if( jabber_chat_by_ name( ic, from ) )42 if( jabber_chat_by_jid( ic, from ) ) 43 43 is_chat = 1; 44 44 *s = '/'; … … 164 164 else if( strcmp( type, "error" ) == 0 ) 165 165 { 166 return jabber_cache_handle_packet( ic, node ); 167 168 /* 166 169 struct jabber_error *err; 167 168 170 if( ( c = xt_find_node( node->children, "error" ) ) ) 169 171 { … … 173 175 err->text ? err->text : "" ); 174 176 jabber_error_free( err ); 175 } 176 /* What else to do with it? */ 177 } */ 177 178 } 178 179
Note: See TracChangeset
for help on using the changeset viewer.