Mercurial > pidgin
comparison libpurple/protocols/jabber/jabber.c @ 15822:32c366eeeb99
sed -ie 's/gaim/purple/g'
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Mon, 19 Mar 2007 07:01:17 +0000 |
parents | 51dd9ae01585 |
children | 87ea711b9781 |
comparison
equal
deleted
inserted
replaced
15821:84b0f9b23ede | 15822:32c366eeeb99 |
---|---|
1 /* | 1 /* |
2 * gaim - Jabber Protocol Plugin | 2 * purple - Jabber Protocol Plugin |
3 * | 3 * |
4 * Copyright (C) 2003, Nathan Walp <faceprint@faceprint.com> | 4 * Copyright (C) 2003, Nathan Walp <faceprint@faceprint.com> |
5 * | 5 * |
6 * This program is free software; you can redistribute it and/or modify | 6 * This program is free software; you can redistribute it and/or modify |
7 * it under the terms of the GNU General Public License as published by | 7 * it under the terms of the GNU General Public License as published by |
52 #include "si.h" | 52 #include "si.h" |
53 #include "xdata.h" | 53 #include "xdata.h" |
54 | 54 |
55 #define JABBER_CONNECT_STEPS (js->gsc ? 8 : 5) | 55 #define JABBER_CONNECT_STEPS (js->gsc ? 8 : 5) |
56 | 56 |
57 static GaimPlugin *my_protocol = NULL; | 57 static PurplePlugin *my_protocol = NULL; |
58 | 58 |
59 static void jabber_stream_init(JabberStream *js) | 59 static void jabber_stream_init(JabberStream *js) |
60 { | 60 { |
61 char *open_stream; | 61 char *open_stream; |
62 | 62 |
77 { | 77 { |
78 const char *type = xmlnode_get_attrib(packet, "type"); | 78 const char *type = xmlnode_get_attrib(packet, "type"); |
79 if(type && !strcmp(type, "result")) { | 79 if(type && !strcmp(type, "result")) { |
80 jabber_stream_set_state(js, JABBER_STREAM_CONNECTED); | 80 jabber_stream_set_state(js, JABBER_STREAM_CONNECTED); |
81 } else { | 81 } else { |
82 gaim_connection_error(js->gc, _("Error initializing session")); | 82 purple_connection_error(js->gc, _("Error initializing session")); |
83 } | 83 } |
84 } | 84 } |
85 | 85 |
86 static void jabber_session_init(JabberStream *js) | 86 static void jabber_session_init(JabberStream *js) |
87 { | 87 { |
108 char *full_jid; | 108 char *full_jid; |
109 if((jid = xmlnode_get_child(bind, "jid")) && (full_jid = xmlnode_get_data(jid))) { | 109 if((jid = xmlnode_get_child(bind, "jid")) && (full_jid = xmlnode_get_data(jid))) { |
110 JabberBuddy *my_jb = NULL; | 110 JabberBuddy *my_jb = NULL; |
111 jabber_id_free(js->user); | 111 jabber_id_free(js->user); |
112 if(!(js->user = jabber_id_new(full_jid))) { | 112 if(!(js->user = jabber_id_new(full_jid))) { |
113 gaim_connection_error(js->gc, _("Invalid response from server.")); | 113 purple_connection_error(js->gc, _("Invalid response from server.")); |
114 } | 114 } |
115 if((my_jb = jabber_buddy_find(js, full_jid, TRUE))) | 115 if((my_jb = jabber_buddy_find(js, full_jid, TRUE))) |
116 my_jb->subscription |= JABBER_SUB_BOTH; | 116 my_jb->subscription |= JABBER_SUB_BOTH; |
117 g_free(full_jid); | 117 g_free(full_jid); |
118 } | 118 } |
119 } else { | 119 } else { |
120 char *msg = jabber_parse_error(js, packet); | 120 char *msg = jabber_parse_error(js, packet); |
121 gaim_connection_error(js->gc, msg); | 121 purple_connection_error(js->gc, msg); |
122 g_free(msg); | 122 g_free(msg); |
123 } | 123 } |
124 | 124 |
125 jabber_session_init(js); | 125 jabber_session_init(js); |
126 } | 126 } |
159 | 159 |
160 static void jabber_stream_handle_error(JabberStream *js, xmlnode *packet) | 160 static void jabber_stream_handle_error(JabberStream *js, xmlnode *packet) |
161 { | 161 { |
162 char *msg = jabber_parse_error(js, packet); | 162 char *msg = jabber_parse_error(js, packet); |
163 | 163 |
164 gaim_connection_error(js->gc, msg); | 164 purple_connection_error(js->gc, msg); |
165 g_free(msg); | 165 g_free(msg); |
166 } | 166 } |
167 | 167 |
168 static void tls_init(JabberStream *js); | 168 static void tls_init(JabberStream *js); |
169 | 169 |
170 void jabber_process_packet(JabberStream *js, xmlnode *packet) | 170 void jabber_process_packet(JabberStream *js, xmlnode *packet) |
171 { | 171 { |
172 gaim_signal_emit(my_protocol, "jabber-receiving-xmlnode", js->gc, &packet); | 172 purple_signal_emit(my_protocol, "jabber-receiving-xmlnode", js->gc, &packet); |
173 | 173 |
174 /* if the signal leaves us with a null packet, we're done */ | 174 /* if the signal leaves us with a null packet, we're done */ |
175 if(NULL == packet) | 175 if(NULL == packet) |
176 return; | 176 return; |
177 | 177 |
202 jabber_auth_handle_failure(js, packet); | 202 jabber_auth_handle_failure(js, packet); |
203 } else if(!strcmp(packet->name, "proceed")) { | 203 } else if(!strcmp(packet->name, "proceed")) { |
204 if(js->state == JABBER_STREAM_AUTHENTICATING && !js->gsc) | 204 if(js->state == JABBER_STREAM_AUTHENTICATING && !js->gsc) |
205 tls_init(js); | 205 tls_init(js); |
206 } else { | 206 } else { |
207 gaim_debug(GAIM_DEBUG_WARNING, "jabber", "Unknown packet: %s\n", | 207 purple_debug(PURPLE_DEBUG_WARNING, "jabber", "Unknown packet: %s\n", |
208 packet->name); | 208 packet->name); |
209 } | 209 } |
210 } | 210 } |
211 | 211 |
212 static int jabber_do_send(JabberStream *js, const char *data, int len) | 212 static int jabber_do_send(JabberStream *js, const char *data, int len) |
213 { | 213 { |
214 int ret; | 214 int ret; |
215 | 215 |
216 if (js->gsc) | 216 if (js->gsc) |
217 ret = gaim_ssl_write(js->gsc, data, len); | 217 ret = purple_ssl_write(js->gsc, data, len); |
218 else | 218 else |
219 ret = write(js->fd, data, len); | 219 ret = write(js->fd, data, len); |
220 | 220 |
221 return ret; | 221 return ret; |
222 } | 222 } |
223 | 223 |
224 static void jabber_send_cb(gpointer data, gint source, GaimInputCondition cond) | 224 static void jabber_send_cb(gpointer data, gint source, PurpleInputCondition cond) |
225 { | 225 { |
226 JabberStream *js = data; | 226 JabberStream *js = data; |
227 int ret, writelen; | 227 int ret, writelen; |
228 writelen = gaim_circ_buffer_get_max_read(js->write_buffer); | 228 writelen = purple_circ_buffer_get_max_read(js->write_buffer); |
229 | 229 |
230 if (writelen == 0) { | 230 if (writelen == 0) { |
231 gaim_input_remove(js->writeh); | 231 purple_input_remove(js->writeh); |
232 js->writeh = 0; | 232 js->writeh = 0; |
233 return; | 233 return; |
234 } | 234 } |
235 | 235 |
236 ret = jabber_do_send(js, js->write_buffer->outptr, writelen); | 236 ret = jabber_do_send(js, js->write_buffer->outptr, writelen); |
237 | 237 |
238 if (ret < 0 && errno == EAGAIN) | 238 if (ret < 0 && errno == EAGAIN) |
239 return; | 239 return; |
240 else if (ret <= 0) { | 240 else if (ret <= 0) { |
241 gaim_connection_error(js->gc, _("Write error")); | 241 purple_connection_error(js->gc, _("Write error")); |
242 return; | 242 return; |
243 } | 243 } |
244 | 244 |
245 gaim_circ_buffer_mark_read(js->write_buffer, ret); | 245 purple_circ_buffer_mark_read(js->write_buffer, ret); |
246 } | 246 } |
247 | 247 |
248 void jabber_send_raw(JabberStream *js, const char *data, int len) | 248 void jabber_send_raw(JabberStream *js, const char *data, int len) |
249 { | 249 { |
250 int ret; | 250 int ret; |
251 | 251 |
252 /* because printing a tab to debug every minute gets old */ | 252 /* because printing a tab to debug every minute gets old */ |
253 if(strcmp(data, "\t")) | 253 if(strcmp(data, "\t")) |
254 gaim_debug(GAIM_DEBUG_MISC, "jabber", "Sending%s: %s\n", | 254 purple_debug(PURPLE_DEBUG_MISC, "jabber", "Sending%s: %s\n", |
255 js->gsc ? " (ssl)" : "", data); | 255 js->gsc ? " (ssl)" : "", data); |
256 | 256 |
257 /* If we've got a security layer, we need to encode the data, | 257 /* If we've got a security layer, we need to encode the data, |
258 * splitting it on the maximum buffer length negotiated */ | 258 * splitting it on the maximum buffer length negotiated */ |
259 | 259 |
260 gaim_signal_emit(my_protocol, "jabber-sending-text", js->gc, &data); | 260 purple_signal_emit(my_protocol, "jabber-sending-text", js->gc, &data); |
261 if (data == NULL) | 261 if (data == NULL) |
262 return; | 262 return; |
263 | 263 |
264 #ifdef HAVE_CYRUS_SASL | 264 #ifdef HAVE_CYRUS_SASL |
265 if (js->sasl_maxbuf>0) { | 265 if (js->sasl_maxbuf>0) { |
289 ret = -1; | 289 ret = -1; |
290 errno = EAGAIN; | 290 errno = EAGAIN; |
291 } | 291 } |
292 | 292 |
293 if (ret < 0 && errno != EAGAIN) | 293 if (ret < 0 && errno != EAGAIN) |
294 gaim_connection_error(js->gc, _("Write error")); | 294 purple_connection_error(js->gc, _("Write error")); |
295 else if (ret < olen) { | 295 else if (ret < olen) { |
296 if (ret < 0) | 296 if (ret < 0) |
297 ret = 0; | 297 ret = 0; |
298 if (js->writeh == 0) | 298 if (js->writeh == 0) |
299 js->writeh = gaim_input_add( | 299 js->writeh = purple_input_add( |
300 js->gsc ? js->gsc->fd : js->fd, | 300 js->gsc ? js->gsc->fd : js->fd, |
301 GAIM_INPUT_WRITE, | 301 PURPLE_INPUT_WRITE, |
302 jabber_send_cb, js); | 302 jabber_send_cb, js); |
303 gaim_circ_buffer_append(js->write_buffer, | 303 purple_circ_buffer_append(js->write_buffer, |
304 out + ret, olen - ret); | 304 out + ret, olen - ret); |
305 } | 305 } |
306 } | 306 } |
307 return; | 307 return; |
308 } | 308 } |
317 ret = -1; | 317 ret = -1; |
318 errno = EAGAIN; | 318 errno = EAGAIN; |
319 } | 319 } |
320 | 320 |
321 if (ret < 0 && errno != EAGAIN) | 321 if (ret < 0 && errno != EAGAIN) |
322 gaim_connection_error(js->gc, _("Write error")); | 322 purple_connection_error(js->gc, _("Write error")); |
323 else if (ret < len) { | 323 else if (ret < len) { |
324 if (ret < 0) | 324 if (ret < 0) |
325 ret = 0; | 325 ret = 0; |
326 if (js->writeh == 0) | 326 if (js->writeh == 0) |
327 js->writeh = gaim_input_add( | 327 js->writeh = purple_input_add( |
328 js->gsc ? js->gsc->fd : js->fd, | 328 js->gsc ? js->gsc->fd : js->fd, |
329 GAIM_INPUT_WRITE, jabber_send_cb, js); | 329 PURPLE_INPUT_WRITE, jabber_send_cb, js); |
330 gaim_circ_buffer_append(js->write_buffer, | 330 purple_circ_buffer_append(js->write_buffer, |
331 data + ret, len - ret); | 331 data + ret, len - ret); |
332 } | 332 } |
333 return; | 333 return; |
334 } | 334 } |
335 | 335 |
336 static int jabber_prpl_send_raw(GaimConnection *gc, const char *buf, int len) | 336 static int jabber_prpl_send_raw(PurpleConnection *gc, const char *buf, int len) |
337 { | 337 { |
338 JabberStream *js = (JabberStream*)gc->proto_data; | 338 JabberStream *js = (JabberStream*)gc->proto_data; |
339 jabber_send_raw(js, buf, len); | 339 jabber_send_raw(js, buf, len); |
340 return len; | 340 return len; |
341 } | 341 } |
343 void jabber_send(JabberStream *js, xmlnode *packet) | 343 void jabber_send(JabberStream *js, xmlnode *packet) |
344 { | 344 { |
345 char *txt; | 345 char *txt; |
346 int len; | 346 int len; |
347 | 347 |
348 gaim_signal_emit(my_protocol, "jabber-sending-xmlnode", js->gc, &packet); | 348 purple_signal_emit(my_protocol, "jabber-sending-xmlnode", js->gc, &packet); |
349 | 349 |
350 /* if we get NULL back, we're done processing */ | 350 /* if we get NULL back, we're done processing */ |
351 if(NULL == packet) | 351 if(NULL == packet) |
352 return; | 352 return; |
353 | 353 |
354 txt = xmlnode_to_str(packet, &len); | 354 txt = xmlnode_to_str(packet, &len); |
355 jabber_send_raw(js, txt, len); | 355 jabber_send_raw(js, txt, len); |
356 g_free(txt); | 356 g_free(txt); |
357 } | 357 } |
358 | 358 |
359 static void jabber_keepalive(GaimConnection *gc) | 359 static void jabber_keepalive(PurpleConnection *gc) |
360 { | 360 { |
361 jabber_send_raw(gc->proto_data, "\t", -1); | 361 jabber_send_raw(gc->proto_data, "\t", -1); |
362 } | 362 } |
363 | 363 |
364 static void | 364 static void |
365 jabber_recv_cb_ssl(gpointer data, GaimSslConnection *gsc, | 365 jabber_recv_cb_ssl(gpointer data, PurpleSslConnection *gsc, |
366 GaimInputCondition cond) | 366 PurpleInputCondition cond) |
367 { | 367 { |
368 GaimConnection *gc = data; | 368 PurpleConnection *gc = data; |
369 JabberStream *js = gc->proto_data; | 369 JabberStream *js = gc->proto_data; |
370 int len; | 370 int len; |
371 static char buf[4096]; | 371 static char buf[4096]; |
372 | 372 |
373 /* TODO: It should be possible to make this check unnecessary */ | 373 /* TODO: It should be possible to make this check unnecessary */ |
374 if(!GAIM_CONNECTION_IS_VALID(gc)) { | 374 if(!PURPLE_CONNECTION_IS_VALID(gc)) { |
375 gaim_ssl_close(gsc); | 375 purple_ssl_close(gsc); |
376 return; | 376 return; |
377 } | 377 } |
378 | 378 |
379 while((len = gaim_ssl_read(gsc, buf, sizeof(buf) - 1)) > 0) { | 379 while((len = purple_ssl_read(gsc, buf, sizeof(buf) - 1)) > 0) { |
380 buf[len] = '\0'; | 380 buf[len] = '\0'; |
381 gaim_debug(GAIM_DEBUG_INFO, "jabber", "Recv (ssl)(%d): %s\n", len, buf); | 381 purple_debug(PURPLE_DEBUG_INFO, "jabber", "Recv (ssl)(%d): %s\n", len, buf); |
382 jabber_parser_process(js, buf, len); | 382 jabber_parser_process(js, buf, len); |
383 if(js->reinit) | 383 if(js->reinit) |
384 jabber_stream_init(js); | 384 jabber_stream_init(js); |
385 } | 385 } |
386 | 386 |
387 if(errno == EAGAIN) | 387 if(errno == EAGAIN) |
388 return; | 388 return; |
389 else | 389 else |
390 gaim_connection_error(gc, _("Read Error")); | 390 purple_connection_error(gc, _("Read Error")); |
391 } | 391 } |
392 | 392 |
393 static void | 393 static void |
394 jabber_recv_cb(gpointer data, gint source, GaimInputCondition condition) | 394 jabber_recv_cb(gpointer data, gint source, PurpleInputCondition condition) |
395 { | 395 { |
396 GaimConnection *gc = data; | 396 PurpleConnection *gc = data; |
397 JabberStream *js = gc->proto_data; | 397 JabberStream *js = gc->proto_data; |
398 int len; | 398 int len; |
399 static char buf[4096]; | 399 static char buf[4096]; |
400 | 400 |
401 if(!GAIM_CONNECTION_IS_VALID(gc)) | 401 if(!PURPLE_CONNECTION_IS_VALID(gc)) |
402 return; | 402 return; |
403 | 403 |
404 if((len = read(js->fd, buf, sizeof(buf) - 1)) > 0) { | 404 if((len = read(js->fd, buf, sizeof(buf) - 1)) > 0) { |
405 #ifdef HAVE_CYRUS_SASL | 405 #ifdef HAVE_CYRUS_SASL |
406 if (js->sasl_maxbuf>0) { | 406 if (js->sasl_maxbuf>0) { |
407 const char *out; | 407 const char *out; |
408 unsigned int olen; | 408 unsigned int olen; |
409 sasl_decode(js->sasl, buf, len, &out, &olen); | 409 sasl_decode(js->sasl, buf, len, &out, &olen); |
410 if (olen>0) { | 410 if (olen>0) { |
411 gaim_debug(GAIM_DEBUG_INFO, "jabber", "RecvSASL (%u): %s\n", olen, out); | 411 purple_debug(PURPLE_DEBUG_INFO, "jabber", "RecvSASL (%u): %s\n", olen, out); |
412 jabber_parser_process(js,out,olen); | 412 jabber_parser_process(js,out,olen); |
413 if(js->reinit) | 413 if(js->reinit) |
414 jabber_stream_init(js); | 414 jabber_stream_init(js); |
415 } | 415 } |
416 return; | 416 return; |
417 } | 417 } |
418 #endif | 418 #endif |
419 buf[len] = '\0'; | 419 buf[len] = '\0'; |
420 gaim_debug(GAIM_DEBUG_INFO, "jabber", "Recv (%d): %s\n", len, buf); | 420 purple_debug(PURPLE_DEBUG_INFO, "jabber", "Recv (%d): %s\n", len, buf); |
421 jabber_parser_process(js, buf, len); | 421 jabber_parser_process(js, buf, len); |
422 if(js->reinit) | 422 if(js->reinit) |
423 jabber_stream_init(js); | 423 jabber_stream_init(js); |
424 } else if(errno == EAGAIN) { | 424 } else if(errno == EAGAIN) { |
425 return; | 425 return; |
426 } else { | 426 } else { |
427 gaim_connection_error(gc, _("Read Error")); | 427 purple_connection_error(gc, _("Read Error")); |
428 } | 428 } |
429 } | 429 } |
430 | 430 |
431 static void | 431 static void |
432 jabber_login_callback_ssl(gpointer data, GaimSslConnection *gsc, | 432 jabber_login_callback_ssl(gpointer data, PurpleSslConnection *gsc, |
433 GaimInputCondition cond) | 433 PurpleInputCondition cond) |
434 { | 434 { |
435 GaimConnection *gc = data; | 435 PurpleConnection *gc = data; |
436 JabberStream *js; | 436 JabberStream *js; |
437 | 437 |
438 /* TODO: It should be possible to make this check unnecessary */ | 438 /* TODO: It should be possible to make this check unnecessary */ |
439 if(!GAIM_CONNECTION_IS_VALID(gc)) { | 439 if(!PURPLE_CONNECTION_IS_VALID(gc)) { |
440 gaim_ssl_close(gsc); | 440 purple_ssl_close(gsc); |
441 return; | 441 return; |
442 } | 442 } |
443 | 443 |
444 js = gc->proto_data; | 444 js = gc->proto_data; |
445 | 445 |
446 if(js->state == JABBER_STREAM_CONNECTING) | 446 if(js->state == JABBER_STREAM_CONNECTING) |
447 jabber_send_raw(js, "<?xml version='1.0' ?>", -1); | 447 jabber_send_raw(js, "<?xml version='1.0' ?>", -1); |
448 jabber_stream_set_state(js, JABBER_STREAM_INITIALIZING); | 448 jabber_stream_set_state(js, JABBER_STREAM_INITIALIZING); |
449 gaim_ssl_input_add(gsc, jabber_recv_cb_ssl, gc); | 449 purple_ssl_input_add(gsc, jabber_recv_cb_ssl, gc); |
450 } | 450 } |
451 | 451 |
452 | 452 |
453 static void | 453 static void |
454 jabber_login_callback(gpointer data, gint source, const gchar *error) | 454 jabber_login_callback(gpointer data, gint source, const gchar *error) |
455 { | 455 { |
456 GaimConnection *gc = data; | 456 PurpleConnection *gc = data; |
457 JabberStream *js = gc->proto_data; | 457 JabberStream *js = gc->proto_data; |
458 | 458 |
459 if (source < 0) { | 459 if (source < 0) { |
460 gaim_connection_error(gc, _("Couldn't connect to host")); | 460 purple_connection_error(gc, _("Couldn't connect to host")); |
461 return; | 461 return; |
462 } | 462 } |
463 | 463 |
464 js->fd = source; | 464 js->fd = source; |
465 | 465 |
466 if(js->state == JABBER_STREAM_CONNECTING) | 466 if(js->state == JABBER_STREAM_CONNECTING) |
467 jabber_send_raw(js, "<?xml version='1.0' ?>", -1); | 467 jabber_send_raw(js, "<?xml version='1.0' ?>", -1); |
468 | 468 |
469 jabber_stream_set_state(js, JABBER_STREAM_INITIALIZING); | 469 jabber_stream_set_state(js, JABBER_STREAM_INITIALIZING); |
470 gc->inpa = gaim_input_add(js->fd, GAIM_INPUT_READ, jabber_recv_cb, gc); | 470 gc->inpa = purple_input_add(js->fd, PURPLE_INPUT_READ, jabber_recv_cb, gc); |
471 } | 471 } |
472 | 472 |
473 static void | 473 static void |
474 jabber_ssl_connect_failure(GaimSslConnection *gsc, GaimSslErrorType error, | 474 jabber_ssl_connect_failure(PurpleSslConnection *gsc, PurpleSslErrorType error, |
475 gpointer data) | 475 gpointer data) |
476 { | 476 { |
477 GaimConnection *gc = data; | 477 PurpleConnection *gc = data; |
478 JabberStream *js; | 478 JabberStream *js; |
479 | 479 |
480 /* If the connection is already disconnected, we don't need to do anything else */ | 480 /* If the connection is already disconnected, we don't need to do anything else */ |
481 if(!GAIM_CONNECTION_IS_VALID(gc)) | 481 if(!PURPLE_CONNECTION_IS_VALID(gc)) |
482 return; | 482 return; |
483 | 483 |
484 js = gc->proto_data; | 484 js = gc->proto_data; |
485 js->gsc = NULL; | 485 js->gsc = NULL; |
486 | 486 |
487 switch(error) { | 487 switch(error) { |
488 case GAIM_SSL_CONNECT_FAILED: | 488 case PURPLE_SSL_CONNECT_FAILED: |
489 gaim_connection_error(gc, _("Connection Failed")); | 489 purple_connection_error(gc, _("Connection Failed")); |
490 break; | 490 break; |
491 case GAIM_SSL_HANDSHAKE_FAILED: | 491 case PURPLE_SSL_HANDSHAKE_FAILED: |
492 gaim_connection_error(gc, _("SSL Handshake Failed")); | 492 purple_connection_error(gc, _("SSL Handshake Failed")); |
493 break; | 493 break; |
494 } | 494 } |
495 } | 495 } |
496 | 496 |
497 static void tls_init(JabberStream *js) | 497 static void tls_init(JabberStream *js) |
498 { | 498 { |
499 gaim_input_remove(js->gc->inpa); | 499 purple_input_remove(js->gc->inpa); |
500 js->gc->inpa = 0; | 500 js->gc->inpa = 0; |
501 js->gsc = gaim_ssl_connect_fd(js->gc->account, js->fd, | 501 js->gsc = purple_ssl_connect_fd(js->gc->account, js->fd, |
502 jabber_login_callback_ssl, jabber_ssl_connect_failure, js->gc); | 502 jabber_login_callback_ssl, jabber_ssl_connect_failure, js->gc); |
503 } | 503 } |
504 | 504 |
505 static void jabber_login_connect(JabberStream *js, const char *server, int port) | 505 static void jabber_login_connect(JabberStream *js, const char *server, int port) |
506 { | 506 { |
507 #ifdef HAVE_CYRUS_SASL | 507 #ifdef HAVE_CYRUS_SASL |
508 js->serverFQDN = g_strdup(server); | 508 js->serverFQDN = g_strdup(server); |
509 #endif | 509 #endif |
510 | 510 |
511 if (gaim_proxy_connect(js->gc, js->gc->account, server, | 511 if (purple_proxy_connect(js->gc, js->gc->account, server, |
512 port, jabber_login_callback, js->gc) == NULL) | 512 port, jabber_login_callback, js->gc) == NULL) |
513 gaim_connection_error(js->gc, _("Unable to create socket")); | 513 purple_connection_error(js->gc, _("Unable to create socket")); |
514 } | 514 } |
515 | 515 |
516 static void srv_resolved_cb(GaimSrvResponse *resp, int results, gpointer data) | 516 static void srv_resolved_cb(PurpleSrvResponse *resp, int results, gpointer data) |
517 { | 517 { |
518 JabberStream *js; | 518 JabberStream *js; |
519 | 519 |
520 js = data; | 520 js = data; |
521 js->srv_query_data = NULL; | 521 js->srv_query_data = NULL; |
523 if(results) { | 523 if(results) { |
524 jabber_login_connect(js, resp->hostname, resp->port); | 524 jabber_login_connect(js, resp->hostname, resp->port); |
525 g_free(resp); | 525 g_free(resp); |
526 } else { | 526 } else { |
527 jabber_login_connect(js, js->user->domain, | 527 jabber_login_connect(js, js->user->domain, |
528 gaim_account_get_int(js->gc->account, "port", 5222)); | 528 purple_account_get_int(js->gc->account, "port", 5222)); |
529 } | 529 } |
530 } | 530 } |
531 | 531 |
532 | 532 |
533 | 533 |
534 static void | 534 static void |
535 jabber_login(GaimAccount *account) | 535 jabber_login(PurpleAccount *account) |
536 { | 536 { |
537 GaimConnection *gc = gaim_account_get_connection(account); | 537 PurpleConnection *gc = purple_account_get_connection(account); |
538 const char *connect_server = gaim_account_get_string(account, | 538 const char *connect_server = purple_account_get_string(account, |
539 "connect_server", ""); | 539 "connect_server", ""); |
540 JabberStream *js; | 540 JabberStream *js; |
541 JabberBuddy *my_jb = NULL; | 541 JabberBuddy *my_jb = NULL; |
542 | 542 |
543 gc->flags |= GAIM_CONNECTION_HTML; | 543 gc->flags |= PURPLE_CONNECTION_HTML; |
544 js = gc->proto_data = g_new0(JabberStream, 1); | 544 js = gc->proto_data = g_new0(JabberStream, 1); |
545 js->gc = gc; | 545 js->gc = gc; |
546 js->fd = -1; | 546 js->fd = -1; |
547 js->iq_callbacks = g_hash_table_new_full(g_str_hash, g_str_equal, | 547 js->iq_callbacks = g_hash_table_new_full(g_str_hash, g_str_equal, |
548 g_free, g_free); | 548 g_free, g_free); |
551 js->buddies = g_hash_table_new_full(g_str_hash, g_str_equal, | 551 js->buddies = g_hash_table_new_full(g_str_hash, g_str_equal, |
552 g_free, (GDestroyNotify)jabber_buddy_free); | 552 g_free, (GDestroyNotify)jabber_buddy_free); |
553 js->chats = g_hash_table_new_full(g_str_hash, g_str_equal, | 553 js->chats = g_hash_table_new_full(g_str_hash, g_str_equal, |
554 g_free, (GDestroyNotify)jabber_chat_free); | 554 g_free, (GDestroyNotify)jabber_chat_free); |
555 js->chat_servers = g_list_append(NULL, g_strdup("conference.jabber.org")); | 555 js->chat_servers = g_list_append(NULL, g_strdup("conference.jabber.org")); |
556 js->user = jabber_id_new(gaim_account_get_username(account)); | 556 js->user = jabber_id_new(purple_account_get_username(account)); |
557 js->next_id = g_random_int(); | 557 js->next_id = g_random_int(); |
558 js->write_buffer = gaim_circ_buffer_new(512); | 558 js->write_buffer = purple_circ_buffer_new(512); |
559 | 559 |
560 if(!js->user) { | 560 if(!js->user) { |
561 gaim_connection_error(gc, _("Invalid Jabber ID")); | 561 purple_connection_error(gc, _("Invalid Jabber ID")); |
562 return; | 562 return; |
563 } | 563 } |
564 | 564 |
565 if(!js->user->resource) { | 565 if(!js->user->resource) { |
566 char *me; | 566 char *me; |
569 js->user->node = js->user->domain; | 569 js->user->node = js->user->domain; |
570 js->user->domain = g_strdup("jabber.org"); | 570 js->user->domain = g_strdup("jabber.org"); |
571 } | 571 } |
572 me = g_strdup_printf("%s@%s/%s", js->user->node, js->user->domain, | 572 me = g_strdup_printf("%s@%s/%s", js->user->node, js->user->domain, |
573 js->user->resource); | 573 js->user->resource); |
574 gaim_account_set_username(account, me); | 574 purple_account_set_username(account, me); |
575 g_free(me); | 575 g_free(me); |
576 } | 576 } |
577 | 577 |
578 if((my_jb = jabber_buddy_find(js, gaim_account_get_username(account), TRUE))) | 578 if((my_jb = jabber_buddy_find(js, purple_account_get_username(account), TRUE))) |
579 my_jb->subscription |= JABBER_SUB_BOTH; | 579 my_jb->subscription |= JABBER_SUB_BOTH; |
580 | 580 |
581 jabber_stream_set_state(js, JABBER_STREAM_CONNECTING); | 581 jabber_stream_set_state(js, JABBER_STREAM_CONNECTING); |
582 | 582 |
583 /* if they've got old-ssl mode going, we probably want to ignore SRV lookups */ | 583 /* if they've got old-ssl mode going, we probably want to ignore SRV lookups */ |
584 if(gaim_account_get_bool(js->gc->account, "old_ssl", FALSE)) { | 584 if(purple_account_get_bool(js->gc->account, "old_ssl", FALSE)) { |
585 if(gaim_ssl_is_supported()) { | 585 if(purple_ssl_is_supported()) { |
586 js->gsc = gaim_ssl_connect(js->gc->account, | 586 js->gsc = purple_ssl_connect(js->gc->account, |
587 connect_server[0] ? connect_server : js->user->domain, | 587 connect_server[0] ? connect_server : js->user->domain, |
588 gaim_account_get_int(account, "port", 5223), jabber_login_callback_ssl, | 588 purple_account_get_int(account, "port", 5223), jabber_login_callback_ssl, |
589 jabber_ssl_connect_failure, js->gc); | 589 jabber_ssl_connect_failure, js->gc); |
590 } else { | 590 } else { |
591 gaim_connection_error(js->gc, _("SSL support unavailable")); | 591 purple_connection_error(js->gc, _("SSL support unavailable")); |
592 } | 592 } |
593 } | 593 } |
594 | 594 |
595 /* no old-ssl, so if they've specified a connect server, we'll use that, otherwise we'll | 595 /* no old-ssl, so if they've specified a connect server, we'll use that, otherwise we'll |
596 * invoke the magic of SRV lookups, to figure out host and port */ | 596 * invoke the magic of SRV lookups, to figure out host and port */ |
597 if(!js->gsc) { | 597 if(!js->gsc) { |
598 if(connect_server[0]) { | 598 if(connect_server[0]) { |
599 jabber_login_connect(js, connect_server, gaim_account_get_int(account, "port", 5222)); | 599 jabber_login_connect(js, connect_server, purple_account_get_int(account, "port", 5222)); |
600 } else { | 600 } else { |
601 js->srv_query_data = gaim_srv_resolve("xmpp-client", | 601 js->srv_query_data = purple_srv_resolve("xmpp-client", |
602 "tcp", js->user->domain, srv_resolved_cb, js); | 602 "tcp", js->user->domain, srv_resolved_cb, js); |
603 } | 603 } |
604 } | 604 } |
605 } | 605 } |
606 | 606 |
607 | 607 |
608 static gboolean | 608 static gboolean |
609 conn_close_cb(gpointer data) | 609 conn_close_cb(gpointer data) |
610 { | 610 { |
611 JabberStream *js = data; | 611 JabberStream *js = data; |
612 GaimAccount *account = gaim_connection_get_account(js->gc); | 612 PurpleAccount *account = purple_connection_get_account(js->gc); |
613 | 613 |
614 gaim_account_disconnect(account); | 614 purple_account_disconnect(account); |
615 | 615 |
616 return FALSE; | 616 return FALSE; |
617 } | 617 } |
618 | 618 |
619 static void | 619 static void |
620 jabber_connection_schedule_close(JabberStream *js) | 620 jabber_connection_schedule_close(JabberStream *js) |
621 { | 621 { |
622 gaim_timeout_add(0, conn_close_cb, js); | 622 purple_timeout_add(0, conn_close_cb, js); |
623 } | 623 } |
624 | 624 |
625 static void | 625 static void |
626 jabber_registration_result_cb(JabberStream *js, xmlnode *packet, gpointer data) | 626 jabber_registration_result_cb(JabberStream *js, xmlnode *packet, gpointer data) |
627 { | 627 { |
629 char *buf; | 629 char *buf; |
630 | 630 |
631 if(!strcmp(type, "result")) { | 631 if(!strcmp(type, "result")) { |
632 buf = g_strdup_printf(_("Registration of %s@%s successful"), | 632 buf = g_strdup_printf(_("Registration of %s@%s successful"), |
633 js->user->node, js->user->domain); | 633 js->user->node, js->user->domain); |
634 gaim_notify_info(NULL, _("Registration Successful"), | 634 purple_notify_info(NULL, _("Registration Successful"), |
635 _("Registration Successful"), buf); | 635 _("Registration Successful"), buf); |
636 g_free(buf); | 636 g_free(buf); |
637 } else { | 637 } else { |
638 char *msg = jabber_parse_error(js, packet); | 638 char *msg = jabber_parse_error(js, packet); |
639 | 639 |
640 if(!msg) | 640 if(!msg) |
641 msg = g_strdup(_("Unknown Error")); | 641 msg = g_strdup(_("Unknown Error")); |
642 | 642 |
643 gaim_notify_error(NULL, _("Registration Failed"), | 643 purple_notify_error(NULL, _("Registration Failed"), |
644 _("Registration Failed"), msg); | 644 _("Registration Failed"), msg); |
645 g_free(msg); | 645 g_free(msg); |
646 } | 646 } |
647 jabber_connection_schedule_close(js); | 647 jabber_connection_schedule_close(js); |
648 } | 648 } |
649 | 649 |
650 static void | 650 static void |
651 jabber_register_cb(JabberStream *js, GaimRequestFields *fields) | 651 jabber_register_cb(JabberStream *js, PurpleRequestFields *fields) |
652 { | 652 { |
653 GList *groups, *flds; | 653 GList *groups, *flds; |
654 xmlnode *query, *y; | 654 xmlnode *query, *y; |
655 JabberIq *iq; | 655 JabberIq *iq; |
656 char *username; | 656 char *username; |
657 | 657 |
658 iq = jabber_iq_new_query(js, JABBER_IQ_SET, "jabber:iq:register"); | 658 iq = jabber_iq_new_query(js, JABBER_IQ_SET, "jabber:iq:register"); |
659 query = xmlnode_get_child(iq->node, "query"); | 659 query = xmlnode_get_child(iq->node, "query"); |
660 | 660 |
661 for(groups = gaim_request_fields_get_groups(fields); groups; | 661 for(groups = purple_request_fields_get_groups(fields); groups; |
662 groups = groups->next) { | 662 groups = groups->next) { |
663 for(flds = gaim_request_field_group_get_fields(groups->data); | 663 for(flds = purple_request_field_group_get_fields(groups->data); |
664 flds; flds = flds->next) { | 664 flds; flds = flds->next) { |
665 GaimRequestField *field = flds->data; | 665 PurpleRequestField *field = flds->data; |
666 const char *id = gaim_request_field_get_id(field); | 666 const char *id = purple_request_field_get_id(field); |
667 const char *value = gaim_request_field_string_get_value(field); | 667 const char *value = purple_request_field_string_get_value(field); |
668 | 668 |
669 if(!strcmp(id, "username")) { | 669 if(!strcmp(id, "username")) { |
670 y = xmlnode_new_child(query, "username"); | 670 y = xmlnode_new_child(query, "username"); |
671 } else if(!strcmp(id, "password")) { | 671 } else if(!strcmp(id, "password")) { |
672 y = xmlnode_new_child(query, "password"); | 672 y = xmlnode_new_child(query, "password"); |
706 } | 706 } |
707 } | 707 } |
708 | 708 |
709 username = g_strdup_printf("%s@%s/%s", js->user->node, js->user->domain, | 709 username = g_strdup_printf("%s@%s/%s", js->user->node, js->user->domain, |
710 js->user->resource); | 710 js->user->resource); |
711 gaim_account_set_username(js->gc->account, username); | 711 purple_account_set_username(js->gc->account, username); |
712 g_free(username); | 712 g_free(username); |
713 | 713 |
714 jabber_iq_set_callback(iq, jabber_registration_result_cb, NULL); | 714 jabber_iq_set_callback(iq, jabber_registration_result_cb, NULL); |
715 | 715 |
716 jabber_iq_send(iq); | 716 jabber_iq_send(iq); |
717 | 717 |
718 } | 718 } |
719 | 719 |
720 static void | 720 static void |
721 jabber_register_cancel_cb(JabberStream *js, GaimRequestFields *fields) | 721 jabber_register_cancel_cb(JabberStream *js, PurpleRequestFields *fields) |
722 { | 722 { |
723 jabber_connection_schedule_close(js); | 723 jabber_connection_schedule_close(js); |
724 } | 724 } |
725 | 725 |
726 static void jabber_register_x_data_cb(JabberStream *js, xmlnode *result, gpointer data) | 726 static void jabber_register_x_data_cb(JabberStream *js, xmlnode *result, gpointer data) |
742 const char *type; | 742 const char *type; |
743 if(!(type = xmlnode_get_attrib(packet, "type")) || strcmp(type, "result")) | 743 if(!(type = xmlnode_get_attrib(packet, "type")) || strcmp(type, "result")) |
744 return; | 744 return; |
745 | 745 |
746 if(js->registration) { | 746 if(js->registration) { |
747 GaimRequestFields *fields; | 747 PurpleRequestFields *fields; |
748 GaimRequestFieldGroup *group; | 748 PurpleRequestFieldGroup *group; |
749 GaimRequestField *field; | 749 PurpleRequestField *field; |
750 xmlnode *query, *x, *y; | 750 xmlnode *query, *x, *y; |
751 char *instructions; | 751 char *instructions; |
752 | 752 |
753 /* get rid of the login thingy */ | 753 /* get rid of the login thingy */ |
754 gaim_connection_set_state(js->gc, GAIM_CONNECTED); | 754 purple_connection_set_state(js->gc, PURPLE_CONNECTED); |
755 | 755 |
756 query = xmlnode_get_child(packet, "query"); | 756 query = xmlnode_get_child(packet, "query"); |
757 | 757 |
758 if(xmlnode_get_child(query, "registered")) { | 758 if(xmlnode_get_child(query, "registered")) { |
759 gaim_notify_error(NULL, _("Already Registered"), | 759 purple_notify_error(NULL, _("Already Registered"), |
760 _("Already Registered"), NULL); | 760 _("Already Registered"), NULL); |
761 jabber_connection_schedule_close(js); | 761 jabber_connection_schedule_close(js); |
762 return; | 762 return; |
763 } | 763 } |
764 | 764 |
771 xmlnode *url; | 771 xmlnode *url; |
772 | 772 |
773 if((url = xmlnode_get_child(x, "url"))) { | 773 if((url = xmlnode_get_child(x, "url"))) { |
774 char *href; | 774 char *href; |
775 if((href = xmlnode_get_data(url))) { | 775 if((href = xmlnode_get_data(url))) { |
776 gaim_notify_uri(NULL, href); | 776 purple_notify_uri(NULL, href); |
777 g_free(href); | 777 g_free(href); |
778 js->gc->wants_to_die = TRUE; | 778 js->gc->wants_to_die = TRUE; |
779 jabber_connection_schedule_close(js); | 779 jabber_connection_schedule_close(js); |
780 return; | 780 return; |
781 } | 781 } |
782 } | 782 } |
783 } | 783 } |
784 | 784 |
785 /* as a last resort, use the old jabber:iq:register syntax */ | 785 /* as a last resort, use the old jabber:iq:register syntax */ |
786 | 786 |
787 fields = gaim_request_fields_new(); | 787 fields = purple_request_fields_new(); |
788 group = gaim_request_field_group_new(NULL); | 788 group = purple_request_field_group_new(NULL); |
789 gaim_request_fields_add_group(fields, group); | 789 purple_request_fields_add_group(fields, group); |
790 | 790 |
791 field = gaim_request_field_string_new("username", _("Username"), | 791 field = purple_request_field_string_new("username", _("Username"), |
792 js->user->node, FALSE); | 792 js->user->node, FALSE); |
793 gaim_request_field_group_add_field(group, field); | 793 purple_request_field_group_add_field(group, field); |
794 | 794 |
795 field = gaim_request_field_string_new("password", _("Password"), | 795 field = purple_request_field_string_new("password", _("Password"), |
796 gaim_connection_get_password(js->gc), FALSE); | 796 purple_connection_get_password(js->gc), FALSE); |
797 gaim_request_field_string_set_masked(field, TRUE); | 797 purple_request_field_string_set_masked(field, TRUE); |
798 gaim_request_field_group_add_field(group, field); | 798 purple_request_field_group_add_field(group, field); |
799 | 799 |
800 if(xmlnode_get_child(query, "name")) { | 800 if(xmlnode_get_child(query, "name")) { |
801 field = gaim_request_field_string_new("name", _("Name"), | 801 field = purple_request_field_string_new("name", _("Name"), |
802 gaim_account_get_alias(js->gc->account), FALSE); | 802 purple_account_get_alias(js->gc->account), FALSE); |
803 gaim_request_field_group_add_field(group, field); | 803 purple_request_field_group_add_field(group, field); |
804 } | 804 } |
805 if(xmlnode_get_child(query, "email")) { | 805 if(xmlnode_get_child(query, "email")) { |
806 field = gaim_request_field_string_new("email", _("E-mail"), | 806 field = purple_request_field_string_new("email", _("E-mail"), |
807 NULL, FALSE); | 807 NULL, FALSE); |
808 gaim_request_field_group_add_field(group, field); | 808 purple_request_field_group_add_field(group, field); |
809 } | 809 } |
810 if(xmlnode_get_child(query, "nick")) { | 810 if(xmlnode_get_child(query, "nick")) { |
811 field = gaim_request_field_string_new("nick", _("Nickname"), | 811 field = purple_request_field_string_new("nick", _("Nickname"), |
812 NULL, FALSE); | 812 NULL, FALSE); |
813 gaim_request_field_group_add_field(group, field); | 813 purple_request_field_group_add_field(group, field); |
814 } | 814 } |
815 if(xmlnode_get_child(query, "first")) { | 815 if(xmlnode_get_child(query, "first")) { |
816 field = gaim_request_field_string_new("first", _("First name"), | 816 field = purple_request_field_string_new("first", _("First name"), |
817 NULL, FALSE); | 817 NULL, FALSE); |
818 gaim_request_field_group_add_field(group, field); | 818 purple_request_field_group_add_field(group, field); |
819 } | 819 } |
820 if(xmlnode_get_child(query, "last")) { | 820 if(xmlnode_get_child(query, "last")) { |
821 field = gaim_request_field_string_new("last", _("Last name"), | 821 field = purple_request_field_string_new("last", _("Last name"), |
822 NULL, FALSE); | 822 NULL, FALSE); |
823 gaim_request_field_group_add_field(group, field); | 823 purple_request_field_group_add_field(group, field); |
824 } | 824 } |
825 if(xmlnode_get_child(query, "address")) { | 825 if(xmlnode_get_child(query, "address")) { |
826 field = gaim_request_field_string_new("address", _("Address"), | 826 field = purple_request_field_string_new("address", _("Address"), |
827 NULL, FALSE); | 827 NULL, FALSE); |
828 gaim_request_field_group_add_field(group, field); | 828 purple_request_field_group_add_field(group, field); |
829 } | 829 } |
830 if(xmlnode_get_child(query, "city")) { | 830 if(xmlnode_get_child(query, "city")) { |
831 field = gaim_request_field_string_new("city", _("City"), | 831 field = purple_request_field_string_new("city", _("City"), |
832 NULL, FALSE); | 832 NULL, FALSE); |
833 gaim_request_field_group_add_field(group, field); | 833 purple_request_field_group_add_field(group, field); |
834 } | 834 } |
835 if(xmlnode_get_child(query, "state")) { | 835 if(xmlnode_get_child(query, "state")) { |
836 field = gaim_request_field_string_new("state", _("State"), | 836 field = purple_request_field_string_new("state", _("State"), |
837 NULL, FALSE); | 837 NULL, FALSE); |
838 gaim_request_field_group_add_field(group, field); | 838 purple_request_field_group_add_field(group, field); |
839 } | 839 } |
840 if(xmlnode_get_child(query, "zip")) { | 840 if(xmlnode_get_child(query, "zip")) { |
841 field = gaim_request_field_string_new("zip", _("Postal code"), | 841 field = purple_request_field_string_new("zip", _("Postal code"), |
842 NULL, FALSE); | 842 NULL, FALSE); |
843 gaim_request_field_group_add_field(group, field); | 843 purple_request_field_group_add_field(group, field); |
844 } | 844 } |
845 if(xmlnode_get_child(query, "phone")) { | 845 if(xmlnode_get_child(query, "phone")) { |
846 field = gaim_request_field_string_new("phone", _("Phone"), | 846 field = purple_request_field_string_new("phone", _("Phone"), |
847 NULL, FALSE); | 847 NULL, FALSE); |
848 gaim_request_field_group_add_field(group, field); | 848 purple_request_field_group_add_field(group, field); |
849 } | 849 } |
850 if(xmlnode_get_child(query, "url")) { | 850 if(xmlnode_get_child(query, "url")) { |
851 field = gaim_request_field_string_new("url", _("URL"), | 851 field = purple_request_field_string_new("url", _("URL"), |
852 NULL, FALSE); | 852 NULL, FALSE); |
853 gaim_request_field_group_add_field(group, field); | 853 purple_request_field_group_add_field(group, field); |
854 } | 854 } |
855 if(xmlnode_get_child(query, "date")) { | 855 if(xmlnode_get_child(query, "date")) { |
856 field = gaim_request_field_string_new("date", _("Date"), | 856 field = purple_request_field_string_new("date", _("Date"), |
857 NULL, FALSE); | 857 NULL, FALSE); |
858 gaim_request_field_group_add_field(group, field); | 858 purple_request_field_group_add_field(group, field); |
859 } | 859 } |
860 | 860 |
861 if((y = xmlnode_get_child(query, "instructions"))) | 861 if((y = xmlnode_get_child(query, "instructions"))) |
862 instructions = xmlnode_get_data(y); | 862 instructions = xmlnode_get_data(y); |
863 else | 863 else |
864 instructions = g_strdup(_("Please fill out the information below " | 864 instructions = g_strdup(_("Please fill out the information below " |
865 "to register your new account.")); | 865 "to register your new account.")); |
866 | 866 |
867 gaim_request_fields(js->gc, _("Register New Jabber Account"), | 867 purple_request_fields(js->gc, _("Register New Jabber Account"), |
868 _("Register New Jabber Account"), instructions, fields, | 868 _("Register New Jabber Account"), instructions, fields, |
869 _("Register"), G_CALLBACK(jabber_register_cb), | 869 _("Register"), G_CALLBACK(jabber_register_cb), |
870 _("Cancel"), G_CALLBACK(jabber_register_cancel_cb), js); | 870 _("Cancel"), G_CALLBACK(jabber_register_cancel_cb), js); |
871 | 871 |
872 g_free(instructions); | 872 g_free(instructions); |
879 | 879 |
880 iq = jabber_iq_new_query(js, JABBER_IQ_GET, "jabber:iq:register"); | 880 iq = jabber_iq_new_query(js, JABBER_IQ_GET, "jabber:iq:register"); |
881 jabber_iq_send(iq); | 881 jabber_iq_send(iq); |
882 } | 882 } |
883 | 883 |
884 static void jabber_register_account(GaimAccount *account) | 884 static void jabber_register_account(PurpleAccount *account) |
885 { | 885 { |
886 GaimConnection *gc = gaim_account_get_connection(account); | 886 PurpleConnection *gc = purple_account_get_connection(account); |
887 JabberStream *js; | 887 JabberStream *js; |
888 JabberBuddy *my_jb = NULL; | 888 JabberBuddy *my_jb = NULL; |
889 const char *connect_server = gaim_account_get_string(account, | 889 const char *connect_server = purple_account_get_string(account, |
890 "connect_server", ""); | 890 "connect_server", ""); |
891 const char *server; | 891 const char *server; |
892 | 892 |
893 js = gc->proto_data = g_new0(JabberStream, 1); | 893 js = gc->proto_data = g_new0(JabberStream, 1); |
894 js->gc = gc; | 894 js->gc = gc; |
895 js->registration = TRUE; | 895 js->registration = TRUE; |
896 js->iq_callbacks = g_hash_table_new_full(g_str_hash, g_str_equal, | 896 js->iq_callbacks = g_hash_table_new_full(g_str_hash, g_str_equal, |
897 g_free, g_free); | 897 g_free, g_free); |
898 js->disco_callbacks = g_hash_table_new_full(g_str_hash, g_str_equal, | 898 js->disco_callbacks = g_hash_table_new_full(g_str_hash, g_str_equal, |
899 g_free, g_free); | 899 g_free, g_free); |
900 js->user = jabber_id_new(gaim_account_get_username(account)); | 900 js->user = jabber_id_new(purple_account_get_username(account)); |
901 js->next_id = g_random_int(); | 901 js->next_id = g_random_int(); |
902 | 902 |
903 if(!js->user) { | 903 if(!js->user) { |
904 gaim_connection_error(gc, _("Invalid Jabber ID")); | 904 purple_connection_error(gc, _("Invalid Jabber ID")); |
905 return; | 905 return; |
906 } | 906 } |
907 | 907 |
908 js->write_buffer = gaim_circ_buffer_new(512); | 908 js->write_buffer = purple_circ_buffer_new(512); |
909 | 909 |
910 if(!js->user->resource) { | 910 if(!js->user->resource) { |
911 char *me; | 911 char *me; |
912 js->user->resource = g_strdup("Home"); | 912 js->user->resource = g_strdup("Home"); |
913 if(!js->user->node) { | 913 if(!js->user->node) { |
914 js->user->node = js->user->domain; | 914 js->user->node = js->user->domain; |
915 js->user->domain = g_strdup("jabber.org"); | 915 js->user->domain = g_strdup("jabber.org"); |
916 } | 916 } |
917 me = g_strdup_printf("%s@%s/%s", js->user->node, js->user->domain, | 917 me = g_strdup_printf("%s@%s/%s", js->user->node, js->user->domain, |
918 js->user->resource); | 918 js->user->resource); |
919 gaim_account_set_username(account, me); | 919 purple_account_set_username(account, me); |
920 g_free(me); | 920 g_free(me); |
921 } | 921 } |
922 | 922 |
923 if((my_jb = jabber_buddy_find(js, gaim_account_get_username(account), TRUE))) | 923 if((my_jb = jabber_buddy_find(js, purple_account_get_username(account), TRUE))) |
924 my_jb->subscription |= JABBER_SUB_BOTH; | 924 my_jb->subscription |= JABBER_SUB_BOTH; |
925 | 925 |
926 server = connect_server[0] ? connect_server : js->user->domain; | 926 server = connect_server[0] ? connect_server : js->user->domain; |
927 | 927 |
928 jabber_stream_set_state(js, JABBER_STREAM_CONNECTING); | 928 jabber_stream_set_state(js, JABBER_STREAM_CONNECTING); |
929 | 929 |
930 if(gaim_account_get_bool(account, "old_ssl", FALSE)) { | 930 if(purple_account_get_bool(account, "old_ssl", FALSE)) { |
931 if(gaim_ssl_is_supported()) { | 931 if(purple_ssl_is_supported()) { |
932 js->gsc = gaim_ssl_connect(account, server, | 932 js->gsc = purple_ssl_connect(account, server, |
933 gaim_account_get_int(account, "port", 5222), | 933 purple_account_get_int(account, "port", 5222), |
934 jabber_login_callback_ssl, jabber_ssl_connect_failure, gc); | 934 jabber_login_callback_ssl, jabber_ssl_connect_failure, gc); |
935 } else { | 935 } else { |
936 gaim_connection_error(gc, _("SSL support unavailable")); | 936 purple_connection_error(gc, _("SSL support unavailable")); |
937 } | 937 } |
938 } | 938 } |
939 | 939 |
940 if(!js->gsc) { | 940 if(!js->gsc) { |
941 if (connect_server[0]) { | 941 if (connect_server[0]) { |
942 jabber_login_connect(js, server, | 942 jabber_login_connect(js, server, |
943 gaim_account_get_int(account, | 943 purple_account_get_int(account, |
944 "port", 5222)); | 944 "port", 5222)); |
945 } else { | 945 } else { |
946 js->srv_query_data = gaim_srv_resolve("xmpp-client", | 946 js->srv_query_data = purple_srv_resolve("xmpp-client", |
947 "tcp", | 947 "tcp", |
948 js->user->domain, | 948 js->user->domain, |
949 srv_resolved_cb, | 949 srv_resolved_cb, |
950 js); | 950 js); |
951 } | 951 } |
952 } | 952 } |
953 } | 953 } |
954 | 954 |
955 static void jabber_close(GaimConnection *gc) | 955 static void jabber_close(PurpleConnection *gc) |
956 { | 956 { |
957 JabberStream *js = gc->proto_data; | 957 JabberStream *js = gc->proto_data; |
958 | 958 |
959 /* Don't perform any actions on the ssl connection | 959 /* Don't perform any actions on the ssl connection |
960 * if we were forcibly disconnected because it will crash | 960 * if we were forcibly disconnected because it will crash |
962 */ | 962 */ |
963 if (!gc->disconnect_timeout) | 963 if (!gc->disconnect_timeout) |
964 jabber_send_raw(js, "</stream:stream>", -1); | 964 jabber_send_raw(js, "</stream:stream>", -1); |
965 | 965 |
966 if (js->srv_query_data) | 966 if (js->srv_query_data) |
967 gaim_srv_cancel(js->srv_query_data); | 967 purple_srv_cancel(js->srv_query_data); |
968 | 968 |
969 if(js->gsc) { | 969 if(js->gsc) { |
970 #ifdef HAVE_OPENSSL | 970 #ifdef HAVE_OPENSSL |
971 if (!gc->disconnect_timeout) | 971 if (!gc->disconnect_timeout) |
972 #endif | 972 #endif |
973 gaim_ssl_close(js->gsc); | 973 purple_ssl_close(js->gsc); |
974 } else if (js->fd > 0) { | 974 } else if (js->fd > 0) { |
975 if(js->gc->inpa) | 975 if(js->gc->inpa) |
976 gaim_input_remove(js->gc->inpa); | 976 purple_input_remove(js->gc->inpa); |
977 close(js->fd); | 977 close(js->fd); |
978 } | 978 } |
979 | 979 |
980 jabber_buddy_remove_all_pending_buddy_info_requests(js); | 980 jabber_buddy_remove_all_pending_buddy_info_requests(js); |
981 | 981 |
999 g_free(js->stream_id); | 999 g_free(js->stream_id); |
1000 if(js->user) | 1000 if(js->user) |
1001 jabber_id_free(js->user); | 1001 jabber_id_free(js->user); |
1002 if(js->avatar_hash) | 1002 if(js->avatar_hash) |
1003 g_free(js->avatar_hash); | 1003 g_free(js->avatar_hash); |
1004 gaim_circ_buffer_destroy(js->write_buffer); | 1004 purple_circ_buffer_destroy(js->write_buffer); |
1005 if(js->writeh) | 1005 if(js->writeh) |
1006 gaim_input_remove(js->writeh); | 1006 purple_input_remove(js->writeh); |
1007 #ifdef HAVE_CYRUS_SASL | 1007 #ifdef HAVE_CYRUS_SASL |
1008 if(js->sasl) | 1008 if(js->sasl) |
1009 sasl_dispose(&js->sasl); | 1009 sasl_dispose(&js->sasl); |
1010 if(js->sasl_mechs) | 1010 if(js->sasl_mechs) |
1011 g_string_free(js->sasl_mechs, TRUE); | 1011 g_string_free(js->sasl_mechs, TRUE); |
1027 js->state = state; | 1027 js->state = state; |
1028 switch(state) { | 1028 switch(state) { |
1029 case JABBER_STREAM_OFFLINE: | 1029 case JABBER_STREAM_OFFLINE: |
1030 break; | 1030 break; |
1031 case JABBER_STREAM_CONNECTING: | 1031 case JABBER_STREAM_CONNECTING: |
1032 gaim_connection_update_progress(js->gc, _("Connecting"), 1, | 1032 purple_connection_update_progress(js->gc, _("Connecting"), 1, |
1033 JABBER_CONNECT_STEPS); | 1033 JABBER_CONNECT_STEPS); |
1034 break; | 1034 break; |
1035 case JABBER_STREAM_INITIALIZING: | 1035 case JABBER_STREAM_INITIALIZING: |
1036 gaim_connection_update_progress(js->gc, _("Initializing Stream"), | 1036 purple_connection_update_progress(js->gc, _("Initializing Stream"), |
1037 js->gsc ? 5 : 2, JABBER_CONNECT_STEPS); | 1037 js->gsc ? 5 : 2, JABBER_CONNECT_STEPS); |
1038 jabber_stream_init(js); | 1038 jabber_stream_init(js); |
1039 break; | 1039 break; |
1040 case JABBER_STREAM_AUTHENTICATING: | 1040 case JABBER_STREAM_AUTHENTICATING: |
1041 gaim_connection_update_progress(js->gc, _("Authenticating"), | 1041 purple_connection_update_progress(js->gc, _("Authenticating"), |
1042 js->gsc ? 6 : 3, JABBER_CONNECT_STEPS); | 1042 js->gsc ? 6 : 3, JABBER_CONNECT_STEPS); |
1043 if(js->protocol_version == JABBER_PROTO_0_9 && js->registration) { | 1043 if(js->protocol_version == JABBER_PROTO_0_9 && js->registration) { |
1044 jabber_register_start(js); | 1044 jabber_register_start(js); |
1045 } else if(js->auth_type == JABBER_AUTH_IQ_AUTH) { | 1045 } else if(js->auth_type == JABBER_AUTH_IQ_AUTH) { |
1046 jabber_auth_start_old(js); | 1046 jabber_auth_start_old(js); |
1047 } | 1047 } |
1048 break; | 1048 break; |
1049 case JABBER_STREAM_REINITIALIZING: | 1049 case JABBER_STREAM_REINITIALIZING: |
1050 gaim_connection_update_progress(js->gc, _("Re-initializing Stream"), | 1050 purple_connection_update_progress(js->gc, _("Re-initializing Stream"), |
1051 (js->gsc ? 7 : 4), JABBER_CONNECT_STEPS); | 1051 (js->gsc ? 7 : 4), JABBER_CONNECT_STEPS); |
1052 | 1052 |
1053 /* The stream will be reinitialized later, in jabber_recv_cb_ssl() */ | 1053 /* The stream will be reinitialized later, in jabber_recv_cb_ssl() */ |
1054 js->reinit = TRUE; | 1054 js->reinit = TRUE; |
1055 | 1055 |
1056 break; | 1056 break; |
1057 case JABBER_STREAM_CONNECTED: | 1057 case JABBER_STREAM_CONNECTED: |
1058 gaim_connection_set_state(js->gc, GAIM_CONNECTED); | 1058 purple_connection_set_state(js->gc, PURPLE_CONNECTED); |
1059 jabber_disco_items_server(js); | 1059 jabber_disco_items_server(js); |
1060 break; | 1060 break; |
1061 } | 1061 } |
1062 } | 1062 } |
1063 | 1063 |
1064 char *jabber_get_next_id(JabberStream *js) | 1064 char *jabber_get_next_id(JabberStream *js) |
1065 { | 1065 { |
1066 return g_strdup_printf("gaim%x", js->next_id++); | 1066 return g_strdup_printf("purple%x", js->next_id++); |
1067 } | 1067 } |
1068 | 1068 |
1069 | 1069 |
1070 static void jabber_idle_set(GaimConnection *gc, int idle) | 1070 static void jabber_idle_set(PurpleConnection *gc, int idle) |
1071 { | 1071 { |
1072 JabberStream *js = gc->proto_data; | 1072 JabberStream *js = gc->proto_data; |
1073 | 1073 |
1074 js->idle = idle ? time(NULL) - idle : idle; | 1074 js->idle = idle ? time(NULL) - idle : idle; |
1075 } | 1075 } |
1076 | 1076 |
1077 static const char *jabber_list_icon(GaimAccount *a, GaimBuddy *b) | 1077 static const char *jabber_list_icon(PurpleAccount *a, PurpleBuddy *b) |
1078 { | 1078 { |
1079 return "jabber"; | 1079 return "jabber"; |
1080 } | 1080 } |
1081 | 1081 |
1082 static const char* jabber_list_emblem(GaimBuddy *b) | 1082 static const char* jabber_list_emblem(PurpleBuddy *b) |
1083 { | 1083 { |
1084 JabberStream *js; | 1084 JabberStream *js; |
1085 JabberBuddy *jb = NULL; | 1085 JabberBuddy *jb = NULL; |
1086 | 1086 |
1087 if(!b->account->gc) | 1087 if(!b->account->gc) |
1089 | 1089 |
1090 js = b->account->gc->proto_data; | 1090 js = b->account->gc->proto_data; |
1091 if(js) | 1091 if(js) |
1092 jb = jabber_buddy_find(js, b->name, FALSE); | 1092 jb = jabber_buddy_find(js, b->name, FALSE); |
1093 | 1093 |
1094 if(!GAIM_BUDDY_IS_ONLINE(b)) { | 1094 if(!PURPLE_BUDDY_IS_ONLINE(b)) { |
1095 if(jb && (jb->subscription & JABBER_SUB_PENDING || | 1095 if(jb && (jb->subscription & JABBER_SUB_PENDING || |
1096 !(jb->subscription & JABBER_SUB_TO))) | 1096 !(jb->subscription & JABBER_SUB_TO))) |
1097 return "not-authorized"; | 1097 return "not-authorized"; |
1098 } | 1098 } |
1099 return NULL; | 1099 return NULL; |
1100 } | 1100 } |
1101 | 1101 |
1102 static char *jabber_status_text(GaimBuddy *b) | 1102 static char *jabber_status_text(PurpleBuddy *b) |
1103 { | 1103 { |
1104 JabberBuddy *jb = jabber_buddy_find(b->account->gc->proto_data, b->name, | 1104 JabberBuddy *jb = jabber_buddy_find(b->account->gc->proto_data, b->name, |
1105 FALSE); | 1105 FALSE); |
1106 char *ret = NULL; | 1106 char *ret = NULL; |
1107 | 1107 |
1108 if(jb && !GAIM_BUDDY_IS_ONLINE(b) && (jb->subscription & JABBER_SUB_PENDING || !(jb->subscription & JABBER_SUB_TO))) { | 1108 if(jb && !PURPLE_BUDDY_IS_ONLINE(b) && (jb->subscription & JABBER_SUB_PENDING || !(jb->subscription & JABBER_SUB_TO))) { |
1109 ret = g_strdup(_("Not Authorized")); | 1109 ret = g_strdup(_("Not Authorized")); |
1110 } else if(jb && !GAIM_BUDDY_IS_ONLINE(b) && jb->error_msg) { | 1110 } else if(jb && !PURPLE_BUDDY_IS_ONLINE(b) && jb->error_msg) { |
1111 ret = g_strdup(jb->error_msg); | 1111 ret = g_strdup(jb->error_msg); |
1112 } else { | 1112 } else { |
1113 char *stripped; | 1113 char *stripped; |
1114 | 1114 |
1115 if(!(stripped = gaim_markup_strip_html(jabber_buddy_get_status_msg(jb)))) { | 1115 if(!(stripped = purple_markup_strip_html(jabber_buddy_get_status_msg(jb)))) { |
1116 GaimStatus *status = gaim_presence_get_active_status(gaim_buddy_get_presence(b)); | 1116 PurpleStatus *status = purple_presence_get_active_status(purple_buddy_get_presence(b)); |
1117 | 1117 |
1118 if(!gaim_status_is_available(status)) | 1118 if(!purple_status_is_available(status)) |
1119 stripped = g_strdup(gaim_status_get_name(status)); | 1119 stripped = g_strdup(purple_status_get_name(status)); |
1120 } | 1120 } |
1121 | 1121 |
1122 if(stripped) { | 1122 if(stripped) { |
1123 ret = g_markup_escape_text(stripped, -1); | 1123 ret = g_markup_escape_text(stripped, -1); |
1124 g_free(stripped); | 1124 g_free(stripped); |
1126 } | 1126 } |
1127 | 1127 |
1128 return ret; | 1128 return ret; |
1129 } | 1129 } |
1130 | 1130 |
1131 static void jabber_tooltip_text(GaimBuddy *b, GaimNotifyUserInfo *user_info, gboolean full) | 1131 static void jabber_tooltip_text(PurpleBuddy *b, PurpleNotifyUserInfo *user_info, gboolean full) |
1132 { | 1132 { |
1133 JabberBuddy *jb; | 1133 JabberBuddy *jb; |
1134 | 1134 |
1135 g_return_if_fail(b != NULL); | 1135 g_return_if_fail(b != NULL); |
1136 g_return_if_fail(b->account != NULL); | 1136 g_return_if_fail(b->account != NULL); |
1160 sub = _("None (To pending)"); | 1160 sub = _("None (To pending)"); |
1161 else | 1161 else |
1162 sub = _("None"); | 1162 sub = _("None"); |
1163 } | 1163 } |
1164 | 1164 |
1165 gaim_notify_user_info_add_pair(user_info, _("Subscription"), sub); | 1165 purple_notify_user_info_add_pair(user_info, _("Subscription"), sub); |
1166 } | 1166 } |
1167 | 1167 |
1168 for(l=jb->resources; l; l = l->next) { | 1168 for(l=jb->resources; l; l = l->next) { |
1169 char *text = NULL; | 1169 char *text = NULL; |
1170 char *res = NULL; | 1170 char *res = NULL; |
1173 | 1173 |
1174 jbr = l->data; | 1174 jbr = l->data; |
1175 | 1175 |
1176 if(jbr->status) { | 1176 if(jbr->status) { |
1177 char *tmp; | 1177 char *tmp; |
1178 text = gaim_strreplace(jbr->status, "\n", "<br />\n"); | 1178 text = purple_strreplace(jbr->status, "\n", "<br />\n"); |
1179 tmp = gaim_markup_strip_html(text); | 1179 tmp = purple_markup_strip_html(text); |
1180 g_free(text); | 1180 g_free(text); |
1181 text = g_markup_escape_text(tmp, -1); | 1181 text = g_markup_escape_text(tmp, -1); |
1182 g_free(tmp); | 1182 g_free(tmp); |
1183 } | 1183 } |
1184 | 1184 |
1185 if(jbr->name) | 1185 if(jbr->name) |
1186 res = g_strdup_printf(" (%s)", jbr->name); | 1186 res = g_strdup_printf(" (%s)", jbr->name); |
1187 | 1187 |
1188 state = jabber_buddy_state_get_name(jbr->state); | 1188 state = jabber_buddy_state_get_name(jbr->state); |
1189 if (text != NULL && !gaim_utf8_strcasecmp(state, text)) { | 1189 if (text != NULL && !purple_utf8_strcasecmp(state, text)) { |
1190 g_free(text); | 1190 g_free(text); |
1191 text = NULL; | 1191 text = NULL; |
1192 } | 1192 } |
1193 | 1193 |
1194 label = g_strdup_printf("%s%s", | 1194 label = g_strdup_printf("%s%s", |
1196 value = g_strdup_printf("%s%s%s", | 1196 value = g_strdup_printf("%s%s%s", |
1197 state, | 1197 state, |
1198 (text ? ": " : ""), | 1198 (text ? ": " : ""), |
1199 (text ? text : "")); | 1199 (text ? text : "")); |
1200 | 1200 |
1201 gaim_notify_user_info_add_pair(user_info, label, value); | 1201 purple_notify_user_info_add_pair(user_info, label, value); |
1202 | 1202 |
1203 g_free(label); | 1203 g_free(label); |
1204 g_free(value); | 1204 g_free(value); |
1205 g_free(text); | 1205 g_free(text); |
1206 g_free(res); | 1206 g_free(res); |
1207 } | 1207 } |
1208 | 1208 |
1209 if(!GAIM_BUDDY_IS_ONLINE(b) && jb->error_msg) { | 1209 if(!PURPLE_BUDDY_IS_ONLINE(b) && jb->error_msg) { |
1210 gaim_notify_user_info_add_pair(user_info, _("Error"), jb->error_msg); | 1210 purple_notify_user_info_add_pair(user_info, _("Error"), jb->error_msg); |
1211 } | 1211 } |
1212 } | 1212 } |
1213 } | 1213 } |
1214 | 1214 |
1215 static GList *jabber_status_types(GaimAccount *account) | 1215 static GList *jabber_status_types(PurpleAccount *account) |
1216 { | 1216 { |
1217 GaimStatusType *type; | 1217 PurpleStatusType *type; |
1218 GList *types = NULL; | 1218 GList *types = NULL; |
1219 GaimValue *priority_value; | 1219 PurpleValue *priority_value; |
1220 | 1220 |
1221 priority_value = gaim_value_new(GAIM_TYPE_INT); | 1221 priority_value = purple_value_new(PURPLE_TYPE_INT); |
1222 gaim_value_set_int(priority_value, 1); | 1222 purple_value_set_int(priority_value, 1); |
1223 type = gaim_status_type_new_with_attrs(GAIM_STATUS_AVAILABLE, | 1223 type = purple_status_type_new_with_attrs(PURPLE_STATUS_AVAILABLE, |
1224 jabber_buddy_state_get_status_id(JABBER_BUDDY_STATE_ONLINE), | 1224 jabber_buddy_state_get_status_id(JABBER_BUDDY_STATE_ONLINE), |
1225 NULL, TRUE, TRUE, FALSE, | 1225 NULL, TRUE, TRUE, FALSE, |
1226 "priority", _("Priority"), priority_value, | 1226 "priority", _("Priority"), priority_value, |
1227 "message", _("Message"), gaim_value_new(GAIM_TYPE_STRING), | 1227 "message", _("Message"), purple_value_new(PURPLE_TYPE_STRING), |
1228 NULL); | 1228 NULL); |
1229 types = g_list_append(types, type); | 1229 types = g_list_append(types, type); |
1230 | 1230 |
1231 priority_value = gaim_value_new(GAIM_TYPE_INT); | 1231 priority_value = purple_value_new(PURPLE_TYPE_INT); |
1232 gaim_value_set_int(priority_value, 1); | 1232 purple_value_set_int(priority_value, 1); |
1233 type = gaim_status_type_new_with_attrs(GAIM_STATUS_AVAILABLE, | 1233 type = purple_status_type_new_with_attrs(PURPLE_STATUS_AVAILABLE, |
1234 jabber_buddy_state_get_status_id(JABBER_BUDDY_STATE_CHAT), | 1234 jabber_buddy_state_get_status_id(JABBER_BUDDY_STATE_CHAT), |
1235 _("Chatty"), TRUE, TRUE, FALSE, | 1235 _("Chatty"), TRUE, TRUE, FALSE, |
1236 "priority", _("Priority"), priority_value, | 1236 "priority", _("Priority"), priority_value, |
1237 "message", _("Message"), gaim_value_new(GAIM_TYPE_STRING), | 1237 "message", _("Message"), purple_value_new(PURPLE_TYPE_STRING), |
1238 NULL); | 1238 NULL); |
1239 types = g_list_append(types, type); | 1239 types = g_list_append(types, type); |
1240 | 1240 |
1241 priority_value = gaim_value_new(GAIM_TYPE_INT); | 1241 priority_value = purple_value_new(PURPLE_TYPE_INT); |
1242 gaim_value_set_int(priority_value, 0); | 1242 purple_value_set_int(priority_value, 0); |
1243 type = gaim_status_type_new_with_attrs(GAIM_STATUS_AWAY, | 1243 type = purple_status_type_new_with_attrs(PURPLE_STATUS_AWAY, |
1244 jabber_buddy_state_get_status_id(JABBER_BUDDY_STATE_AWAY), | 1244 jabber_buddy_state_get_status_id(JABBER_BUDDY_STATE_AWAY), |
1245 NULL, TRUE, TRUE, FALSE, | 1245 NULL, TRUE, TRUE, FALSE, |
1246 "priority", _("Priority"), priority_value, | 1246 "priority", _("Priority"), priority_value, |
1247 "message", _("Message"), gaim_value_new(GAIM_TYPE_STRING), | 1247 "message", _("Message"), purple_value_new(PURPLE_TYPE_STRING), |
1248 NULL); | 1248 NULL); |
1249 types = g_list_append(types, type); | 1249 types = g_list_append(types, type); |
1250 | 1250 |
1251 priority_value = gaim_value_new(GAIM_TYPE_INT); | 1251 priority_value = purple_value_new(PURPLE_TYPE_INT); |
1252 gaim_value_set_int(priority_value, 0); | 1252 purple_value_set_int(priority_value, 0); |
1253 type = gaim_status_type_new_with_attrs(GAIM_STATUS_EXTENDED_AWAY, | 1253 type = purple_status_type_new_with_attrs(PURPLE_STATUS_EXTENDED_AWAY, |
1254 jabber_buddy_state_get_status_id(JABBER_BUDDY_STATE_XA), | 1254 jabber_buddy_state_get_status_id(JABBER_BUDDY_STATE_XA), |
1255 NULL, TRUE, TRUE, FALSE, | 1255 NULL, TRUE, TRUE, FALSE, |
1256 "priority", _("Priority"), priority_value, | 1256 "priority", _("Priority"), priority_value, |
1257 "message", _("Message"), gaim_value_new(GAIM_TYPE_STRING), | 1257 "message", _("Message"), purple_value_new(PURPLE_TYPE_STRING), |
1258 NULL); | 1258 NULL); |
1259 types = g_list_append(types, type); | 1259 types = g_list_append(types, type); |
1260 | 1260 |
1261 priority_value = gaim_value_new(GAIM_TYPE_INT); | 1261 priority_value = purple_value_new(PURPLE_TYPE_INT); |
1262 gaim_value_set_int(priority_value, 0); | 1262 purple_value_set_int(priority_value, 0); |
1263 type = gaim_status_type_new_with_attrs(GAIM_STATUS_UNAVAILABLE, | 1263 type = purple_status_type_new_with_attrs(PURPLE_STATUS_UNAVAILABLE, |
1264 jabber_buddy_state_get_status_id(JABBER_BUDDY_STATE_DND), | 1264 jabber_buddy_state_get_status_id(JABBER_BUDDY_STATE_DND), |
1265 _("Do Not Disturb"), TRUE, TRUE, FALSE, | 1265 _("Do Not Disturb"), TRUE, TRUE, FALSE, |
1266 "priority", _("Priority"), priority_value, | 1266 "priority", _("Priority"), priority_value, |
1267 "message", _("Message"), gaim_value_new(GAIM_TYPE_STRING), | 1267 "message", _("Message"), purple_value_new(PURPLE_TYPE_STRING), |
1268 NULL); | 1268 NULL); |
1269 types = g_list_append(types, type); | 1269 types = g_list_append(types, type); |
1270 | 1270 |
1271 /* | 1271 /* |
1272 if(js->protocol_version == JABBER_PROTO_0_9) | 1272 if(js->protocol_version == JABBER_PROTO_0_9) |
1273 m = g_list_append(m, _("Invisible")); | 1273 m = g_list_append(m, _("Invisible")); |
1274 */ | 1274 */ |
1275 | 1275 |
1276 type = gaim_status_type_new_with_attrs(GAIM_STATUS_OFFLINE, | 1276 type = purple_status_type_new_with_attrs(PURPLE_STATUS_OFFLINE, |
1277 jabber_buddy_state_get_status_id(JABBER_BUDDY_STATE_UNAVAILABLE), | 1277 jabber_buddy_state_get_status_id(JABBER_BUDDY_STATE_UNAVAILABLE), |
1278 NULL, FALSE, TRUE, FALSE, | 1278 NULL, FALSE, TRUE, FALSE, |
1279 "message", _("Message"), gaim_value_new(GAIM_TYPE_STRING), | 1279 "message", _("Message"), purple_value_new(PURPLE_TYPE_STRING), |
1280 NULL); | 1280 NULL); |
1281 types = g_list_append(types, type); | 1281 types = g_list_append(types, type); |
1282 | 1282 |
1283 return types; | 1283 return types; |
1284 } | 1284 } |
1290 const char *type; | 1290 const char *type; |
1291 | 1291 |
1292 type = xmlnode_get_attrib(packet, "type"); | 1292 type = xmlnode_get_attrib(packet, "type"); |
1293 | 1293 |
1294 if(type && !strcmp(type, "result")) { | 1294 if(type && !strcmp(type, "result")) { |
1295 gaim_notify_info(js->gc, _("Password Changed"), _("Password Changed"), | 1295 purple_notify_info(js->gc, _("Password Changed"), _("Password Changed"), |
1296 _("Your password has been changed.")); | 1296 _("Your password has been changed.")); |
1297 } else { | 1297 } else { |
1298 char *msg = jabber_parse_error(js, packet); | 1298 char *msg = jabber_parse_error(js, packet); |
1299 | 1299 |
1300 gaim_notify_error(js->gc, _("Error changing password"), | 1300 purple_notify_error(js->gc, _("Error changing password"), |
1301 _("Error changing password"), msg); | 1301 _("Error changing password"), msg); |
1302 g_free(msg); | 1302 g_free(msg); |
1303 } | 1303 } |
1304 } | 1304 } |
1305 | 1305 |
1306 static void jabber_password_change_cb(JabberStream *js, | 1306 static void jabber_password_change_cb(JabberStream *js, |
1307 GaimRequestFields *fields) | 1307 PurpleRequestFields *fields) |
1308 { | 1308 { |
1309 const char *p1, *p2; | 1309 const char *p1, *p2; |
1310 JabberIq *iq; | 1310 JabberIq *iq; |
1311 xmlnode *query, *y; | 1311 xmlnode *query, *y; |
1312 | 1312 |
1313 p1 = gaim_request_fields_get_string(fields, "password1"); | 1313 p1 = purple_request_fields_get_string(fields, "password1"); |
1314 p2 = gaim_request_fields_get_string(fields, "password2"); | 1314 p2 = purple_request_fields_get_string(fields, "password2"); |
1315 | 1315 |
1316 if(strcmp(p1, p2)) { | 1316 if(strcmp(p1, p2)) { |
1317 gaim_notify_error(js->gc, NULL, _("New passwords do not match."), NULL); | 1317 purple_notify_error(js->gc, NULL, _("New passwords do not match."), NULL); |
1318 return; | 1318 return; |
1319 } | 1319 } |
1320 | 1320 |
1321 iq = jabber_iq_new_query(js, JABBER_IQ_SET, "jabber:iq:register"); | 1321 iq = jabber_iq_new_query(js, JABBER_IQ_SET, "jabber:iq:register"); |
1322 | 1322 |
1331 | 1331 |
1332 jabber_iq_set_callback(iq, jabber_password_change_result_cb, NULL); | 1332 jabber_iq_set_callback(iq, jabber_password_change_result_cb, NULL); |
1333 | 1333 |
1334 jabber_iq_send(iq); | 1334 jabber_iq_send(iq); |
1335 | 1335 |
1336 gaim_account_set_password(js->gc->account, p1); | 1336 purple_account_set_password(js->gc->account, p1); |
1337 } | 1337 } |
1338 | 1338 |
1339 static void jabber_password_change(GaimPluginAction *action) | 1339 static void jabber_password_change(PurplePluginAction *action) |
1340 { | 1340 { |
1341 | 1341 |
1342 GaimConnection *gc = (GaimConnection *) action->context; | 1342 PurpleConnection *gc = (PurpleConnection *) action->context; |
1343 JabberStream *js = gc->proto_data; | 1343 JabberStream *js = gc->proto_data; |
1344 GaimRequestFields *fields; | 1344 PurpleRequestFields *fields; |
1345 GaimRequestFieldGroup *group; | 1345 PurpleRequestFieldGroup *group; |
1346 GaimRequestField *field; | 1346 PurpleRequestField *field; |
1347 | 1347 |
1348 fields = gaim_request_fields_new(); | 1348 fields = purple_request_fields_new(); |
1349 group = gaim_request_field_group_new(NULL); | 1349 group = purple_request_field_group_new(NULL); |
1350 gaim_request_fields_add_group(fields, group); | 1350 purple_request_fields_add_group(fields, group); |
1351 | 1351 |
1352 field = gaim_request_field_string_new("password1", _("Password"), | 1352 field = purple_request_field_string_new("password1", _("Password"), |
1353 "", FALSE); | 1353 "", FALSE); |
1354 gaim_request_field_string_set_masked(field, TRUE); | 1354 purple_request_field_string_set_masked(field, TRUE); |
1355 gaim_request_field_group_add_field(group, field); | 1355 purple_request_field_group_add_field(group, field); |
1356 | 1356 |
1357 field = gaim_request_field_string_new("password2", _("Password (again)"), | 1357 field = purple_request_field_string_new("password2", _("Password (again)"), |
1358 "", FALSE); | 1358 "", FALSE); |
1359 gaim_request_field_string_set_masked(field, TRUE); | 1359 purple_request_field_string_set_masked(field, TRUE); |
1360 gaim_request_field_group_add_field(group, field); | 1360 purple_request_field_group_add_field(group, field); |
1361 | 1361 |
1362 gaim_request_fields(js->gc, _("Change Jabber Password"), | 1362 purple_request_fields(js->gc, _("Change Jabber Password"), |
1363 _("Change Jabber Password"), _("Please enter your new password"), | 1363 _("Change Jabber Password"), _("Please enter your new password"), |
1364 fields, _("OK"), G_CALLBACK(jabber_password_change_cb), | 1364 fields, _("OK"), G_CALLBACK(jabber_password_change_cb), |
1365 _("Cancel"), NULL, js); | 1365 _("Cancel"), NULL, js); |
1366 } | 1366 } |
1367 | 1367 |
1368 static GList *jabber_actions(GaimPlugin *plugin, gpointer context) | 1368 static GList *jabber_actions(PurplePlugin *plugin, gpointer context) |
1369 { | 1369 { |
1370 GList *m = NULL; | 1370 GList *m = NULL; |
1371 GaimPluginAction *act; | 1371 PurplePluginAction *act; |
1372 | 1372 |
1373 act = gaim_plugin_action_new(_("Set User Info..."), | 1373 act = purple_plugin_action_new(_("Set User Info..."), |
1374 jabber_setup_set_info); | 1374 jabber_setup_set_info); |
1375 m = g_list_append(m, act); | 1375 m = g_list_append(m, act); |
1376 | 1376 |
1377 /* if (js->protocol_options & CHANGE_PASSWORD) { */ | 1377 /* if (js->protocol_options & CHANGE_PASSWORD) { */ |
1378 act = gaim_plugin_action_new(_("Change Password..."), | 1378 act = purple_plugin_action_new(_("Change Password..."), |
1379 jabber_password_change); | 1379 jabber_password_change); |
1380 m = g_list_append(m, act); | 1380 m = g_list_append(m, act); |
1381 /* } */ | 1381 /* } */ |
1382 | 1382 |
1383 act = gaim_plugin_action_new(_("Search for Users..."), | 1383 act = purple_plugin_action_new(_("Search for Users..."), |
1384 jabber_user_search_begin); | 1384 jabber_user_search_begin); |
1385 m = g_list_append(m, act); | 1385 m = g_list_append(m, act); |
1386 | 1386 |
1387 return m; | 1387 return m; |
1388 } | 1388 } |
1389 | 1389 |
1390 static GaimChat *jabber_find_blist_chat(GaimAccount *account, const char *name) | 1390 static PurpleChat *jabber_find_blist_chat(PurpleAccount *account, const char *name) |
1391 { | 1391 { |
1392 GaimBlistNode *gnode, *cnode; | 1392 PurpleBlistNode *gnode, *cnode; |
1393 JabberID *jid; | 1393 JabberID *jid; |
1394 | 1394 |
1395 if(!(jid = jabber_id_new(name))) | 1395 if(!(jid = jabber_id_new(name))) |
1396 return NULL; | 1396 return NULL; |
1397 | 1397 |
1398 for(gnode = gaim_get_blist()->root; gnode; gnode = gnode->next) { | 1398 for(gnode = purple_get_blist()->root; gnode; gnode = gnode->next) { |
1399 for(cnode = gnode->child; cnode; cnode = cnode->next) { | 1399 for(cnode = gnode->child; cnode; cnode = cnode->next) { |
1400 GaimChat *chat = (GaimChat*)cnode; | 1400 PurpleChat *chat = (PurpleChat*)cnode; |
1401 const char *room, *server; | 1401 const char *room, *server; |
1402 if(!GAIM_BLIST_NODE_IS_CHAT(cnode)) | 1402 if(!PURPLE_BLIST_NODE_IS_CHAT(cnode)) |
1403 continue; | 1403 continue; |
1404 | 1404 |
1405 if(chat->account != account) | 1405 if(chat->account != account) |
1406 continue; | 1406 continue; |
1407 | 1407 |
1419 } | 1419 } |
1420 jabber_id_free(jid); | 1420 jabber_id_free(jid); |
1421 return NULL; | 1421 return NULL; |
1422 } | 1422 } |
1423 | 1423 |
1424 static void jabber_convo_closed(GaimConnection *gc, const char *who) | 1424 static void jabber_convo_closed(PurpleConnection *gc, const char *who) |
1425 { | 1425 { |
1426 JabberStream *js = gc->proto_data; | 1426 JabberStream *js = gc->proto_data; |
1427 JabberID *jid; | 1427 JabberID *jid; |
1428 JabberBuddy *jb; | 1428 JabberBuddy *jb; |
1429 JabberBuddyResource *jbr; | 1429 JabberBuddyResource *jbr; |
1589 } else { | 1589 } else { |
1590 return NULL; | 1590 return NULL; |
1591 } | 1591 } |
1592 } | 1592 } |
1593 | 1593 |
1594 static GaimCmdRet jabber_cmd_chat_config(GaimConversation *conv, | 1594 static PurpleCmdRet jabber_cmd_chat_config(PurpleConversation *conv, |
1595 const char *cmd, char **args, char **error, void *data) | 1595 const char *cmd, char **args, char **error, void *data) |
1596 { | 1596 { |
1597 JabberChat *chat = jabber_chat_find_by_conv(conv); | 1597 JabberChat *chat = jabber_chat_find_by_conv(conv); |
1598 jabber_chat_request_room_configure(chat); | 1598 jabber_chat_request_room_configure(chat); |
1599 return GAIM_CMD_RET_OK; | 1599 return PURPLE_CMD_RET_OK; |
1600 } | 1600 } |
1601 | 1601 |
1602 static GaimCmdRet jabber_cmd_chat_register(GaimConversation *conv, | 1602 static PurpleCmdRet jabber_cmd_chat_register(PurpleConversation *conv, |
1603 const char *cmd, char **args, char **error, void *data) | 1603 const char *cmd, char **args, char **error, void *data) |
1604 { | 1604 { |
1605 JabberChat *chat = jabber_chat_find_by_conv(conv); | 1605 JabberChat *chat = jabber_chat_find_by_conv(conv); |
1606 jabber_chat_register(chat); | 1606 jabber_chat_register(chat); |
1607 return GAIM_CMD_RET_OK; | 1607 return PURPLE_CMD_RET_OK; |
1608 } | 1608 } |
1609 | 1609 |
1610 static GaimCmdRet jabber_cmd_chat_topic(GaimConversation *conv, | 1610 static PurpleCmdRet jabber_cmd_chat_topic(PurpleConversation *conv, |
1611 const char *cmd, char **args, char **error, void *data) | 1611 const char *cmd, char **args, char **error, void *data) |
1612 { | 1612 { |
1613 JabberChat *chat = jabber_chat_find_by_conv(conv); | 1613 JabberChat *chat = jabber_chat_find_by_conv(conv); |
1614 jabber_chat_change_topic(chat, args ? args[0] : NULL); | 1614 jabber_chat_change_topic(chat, args ? args[0] : NULL); |
1615 return GAIM_CMD_RET_OK; | 1615 return PURPLE_CMD_RET_OK; |
1616 } | 1616 } |
1617 | 1617 |
1618 static GaimCmdRet jabber_cmd_chat_nick(GaimConversation *conv, | 1618 static PurpleCmdRet jabber_cmd_chat_nick(PurpleConversation *conv, |
1619 const char *cmd, char **args, char **error, void *data) | 1619 const char *cmd, char **args, char **error, void *data) |
1620 { | 1620 { |
1621 JabberChat *chat = jabber_chat_find_by_conv(conv); | 1621 JabberChat *chat = jabber_chat_find_by_conv(conv); |
1622 | 1622 |
1623 if(!args || !args[0]) | 1623 if(!args || !args[0]) |
1624 return GAIM_CMD_RET_FAILED; | 1624 return PURPLE_CMD_RET_FAILED; |
1625 | 1625 |
1626 jabber_chat_change_nick(chat, args[0]); | 1626 jabber_chat_change_nick(chat, args[0]); |
1627 return GAIM_CMD_RET_OK; | 1627 return PURPLE_CMD_RET_OK; |
1628 } | 1628 } |
1629 | 1629 |
1630 static GaimCmdRet jabber_cmd_chat_part(GaimConversation *conv, | 1630 static PurpleCmdRet jabber_cmd_chat_part(PurpleConversation *conv, |
1631 const char *cmd, char **args, char **error, void *data) | 1631 const char *cmd, char **args, char **error, void *data) |
1632 { | 1632 { |
1633 JabberChat *chat = jabber_chat_find_by_conv(conv); | 1633 JabberChat *chat = jabber_chat_find_by_conv(conv); |
1634 jabber_chat_part(chat, args ? args[0] : NULL); | 1634 jabber_chat_part(chat, args ? args[0] : NULL); |
1635 return GAIM_CMD_RET_OK; | 1635 return PURPLE_CMD_RET_OK; |
1636 } | 1636 } |
1637 | 1637 |
1638 static GaimCmdRet jabber_cmd_chat_ban(GaimConversation *conv, | 1638 static PurpleCmdRet jabber_cmd_chat_ban(PurpleConversation *conv, |
1639 const char *cmd, char **args, char **error, void *data) | 1639 const char *cmd, char **args, char **error, void *data) |
1640 { | 1640 { |
1641 JabberChat *chat = jabber_chat_find_by_conv(conv); | 1641 JabberChat *chat = jabber_chat_find_by_conv(conv); |
1642 | 1642 |
1643 if(!args || !args[0]) | 1643 if(!args || !args[0]) |
1644 return GAIM_CMD_RET_FAILED; | 1644 return PURPLE_CMD_RET_FAILED; |
1645 | 1645 |
1646 if(!jabber_chat_ban_user(chat, args[0], args[1])) { | 1646 if(!jabber_chat_ban_user(chat, args[0], args[1])) { |
1647 *error = g_strdup_printf(_("Unable to ban user %s"), args[0]); | 1647 *error = g_strdup_printf(_("Unable to ban user %s"), args[0]); |
1648 return GAIM_CMD_RET_FAILED; | 1648 return PURPLE_CMD_RET_FAILED; |
1649 } | 1649 } |
1650 | 1650 |
1651 return GAIM_CMD_RET_OK; | 1651 return PURPLE_CMD_RET_OK; |
1652 } | 1652 } |
1653 | 1653 |
1654 static GaimCmdRet jabber_cmd_chat_affiliate(GaimConversation *conv, | 1654 static PurpleCmdRet jabber_cmd_chat_affiliate(PurpleConversation *conv, |
1655 const char *cmd, char **args, char **error, void *data) | 1655 const char *cmd, char **args, char **error, void *data) |
1656 { | 1656 { |
1657 JabberChat *chat = jabber_chat_find_by_conv(conv); | 1657 JabberChat *chat = jabber_chat_find_by_conv(conv); |
1658 | 1658 |
1659 if (!args || !args[0] || !args[1]) | 1659 if (!args || !args[0] || !args[1]) |
1660 return GAIM_CMD_RET_FAILED; | 1660 return PURPLE_CMD_RET_FAILED; |
1661 | 1661 |
1662 if (strcmp(args[1], "owner") != 0 && | 1662 if (strcmp(args[1], "owner") != 0 && |
1663 strcmp(args[1], "admin") != 0 && | 1663 strcmp(args[1], "admin") != 0 && |
1664 strcmp(args[1], "member") != 0 && | 1664 strcmp(args[1], "member") != 0 && |
1665 strcmp(args[1], "outcast") != 0 && | 1665 strcmp(args[1], "outcast") != 0 && |
1666 strcmp(args[1], "none") != 0) { | 1666 strcmp(args[1], "none") != 0) { |
1667 *error = g_strdup_printf(_("Unknown affiliation: \"%s\""), args[1]); | 1667 *error = g_strdup_printf(_("Unknown affiliation: \"%s\""), args[1]); |
1668 return GAIM_CMD_RET_FAILED; | 1668 return PURPLE_CMD_RET_FAILED; |
1669 } | 1669 } |
1670 | 1670 |
1671 if (!jabber_chat_affiliate_user(chat, args[0], args[1])) { | 1671 if (!jabber_chat_affiliate_user(chat, args[0], args[1])) { |
1672 *error = g_strdup_printf(_("Unable to affiliate user %s as \"%s\""), args[0], args[1]); | 1672 *error = g_strdup_printf(_("Unable to affiliate user %s as \"%s\""), args[0], args[1]); |
1673 return GAIM_CMD_RET_FAILED; | 1673 return PURPLE_CMD_RET_FAILED; |
1674 } | 1674 } |
1675 | 1675 |
1676 return GAIM_CMD_RET_OK; | 1676 return PURPLE_CMD_RET_OK; |
1677 } | 1677 } |
1678 | 1678 |
1679 static GaimCmdRet jabber_cmd_chat_role(GaimConversation *conv, | 1679 static PurpleCmdRet jabber_cmd_chat_role(PurpleConversation *conv, |
1680 const char *cmd, char **args, char **error, void *data) | 1680 const char *cmd, char **args, char **error, void *data) |
1681 { | 1681 { |
1682 JabberChat *chat; | 1682 JabberChat *chat; |
1683 | 1683 |
1684 if (!args || !args[0] || !args[1]) | 1684 if (!args || !args[0] || !args[1]) |
1685 return GAIM_CMD_RET_FAILED; | 1685 return PURPLE_CMD_RET_FAILED; |
1686 | 1686 |
1687 if (strcmp(args[1], "moderator") != 0 && | 1687 if (strcmp(args[1], "moderator") != 0 && |
1688 strcmp(args[1], "participant") != 0 && | 1688 strcmp(args[1], "participant") != 0 && |
1689 strcmp(args[1], "visitor") != 0 && | 1689 strcmp(args[1], "visitor") != 0 && |
1690 strcmp(args[1], "none") != 0) { | 1690 strcmp(args[1], "none") != 0) { |
1691 *error = g_strdup_printf(_("Unknown role: \"%s\""), args[1]); | 1691 *error = g_strdup_printf(_("Unknown role: \"%s\""), args[1]); |
1692 return GAIM_CMD_RET_FAILED; | 1692 return PURPLE_CMD_RET_FAILED; |
1693 } | 1693 } |
1694 | 1694 |
1695 chat = jabber_chat_find_by_conv(conv); | 1695 chat = jabber_chat_find_by_conv(conv); |
1696 | 1696 |
1697 if (!jabber_chat_role_user(chat, args[0], args[1])) { | 1697 if (!jabber_chat_role_user(chat, args[0], args[1])) { |
1698 *error = g_strdup_printf(_("Unable to set role \"%s\" for user: %s"), | 1698 *error = g_strdup_printf(_("Unable to set role \"%s\" for user: %s"), |
1699 args[1], args[0]); | 1699 args[1], args[0]); |
1700 return GAIM_CMD_RET_FAILED; | 1700 return PURPLE_CMD_RET_FAILED; |
1701 } | 1701 } |
1702 | 1702 |
1703 return GAIM_CMD_RET_OK; | 1703 return PURPLE_CMD_RET_OK; |
1704 } | 1704 } |
1705 | 1705 |
1706 static GaimCmdRet jabber_cmd_chat_invite(GaimConversation *conv, | 1706 static PurpleCmdRet jabber_cmd_chat_invite(PurpleConversation *conv, |
1707 const char *cmd, char **args, char **error, void *data) | 1707 const char *cmd, char **args, char **error, void *data) |
1708 { | 1708 { |
1709 if(!args || !args[0]) | 1709 if(!args || !args[0]) |
1710 return GAIM_CMD_RET_FAILED; | 1710 return PURPLE_CMD_RET_FAILED; |
1711 | 1711 |
1712 jabber_chat_invite(gaim_conversation_get_gc(conv), | 1712 jabber_chat_invite(purple_conversation_get_gc(conv), |
1713 gaim_conv_chat_get_id(GAIM_CONV_CHAT(conv)), args[1] ? args[1] : "", | 1713 purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv)), args[1] ? args[1] : "", |
1714 args[0]); | 1714 args[0]); |
1715 | 1715 |
1716 return GAIM_CMD_RET_OK; | 1716 return PURPLE_CMD_RET_OK; |
1717 } | 1717 } |
1718 | 1718 |
1719 static GaimCmdRet jabber_cmd_chat_join(GaimConversation *conv, | 1719 static PurpleCmdRet jabber_cmd_chat_join(PurpleConversation *conv, |
1720 const char *cmd, char **args, char **error, void *data) | 1720 const char *cmd, char **args, char **error, void *data) |
1721 { | 1721 { |
1722 JabberChat *chat = jabber_chat_find_by_conv(conv); | 1722 JabberChat *chat = jabber_chat_find_by_conv(conv); |
1723 GHashTable *components; | 1723 GHashTable *components; |
1724 | 1724 |
1725 if(!args || !args[0]) | 1725 if(!args || !args[0]) |
1726 return GAIM_CMD_RET_FAILED; | 1726 return PURPLE_CMD_RET_FAILED; |
1727 | 1727 |
1728 components = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, NULL); | 1728 components = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, NULL); |
1729 | 1729 |
1730 g_hash_table_replace(components, "room", args[0]); | 1730 g_hash_table_replace(components, "room", args[0]); |
1731 g_hash_table_replace(components, "server", chat->server); | 1731 g_hash_table_replace(components, "server", chat->server); |
1732 g_hash_table_replace(components, "handle", chat->handle); | 1732 g_hash_table_replace(components, "handle", chat->handle); |
1733 if(args[1]) | 1733 if(args[1]) |
1734 g_hash_table_replace(components, "password", args[1]); | 1734 g_hash_table_replace(components, "password", args[1]); |
1735 | 1735 |
1736 jabber_chat_join(gaim_conversation_get_gc(conv), components); | 1736 jabber_chat_join(purple_conversation_get_gc(conv), components); |
1737 | 1737 |
1738 g_hash_table_destroy(components); | 1738 g_hash_table_destroy(components); |
1739 return GAIM_CMD_RET_OK; | 1739 return PURPLE_CMD_RET_OK; |
1740 } | 1740 } |
1741 | 1741 |
1742 static GaimCmdRet jabber_cmd_chat_kick(GaimConversation *conv, | 1742 static PurpleCmdRet jabber_cmd_chat_kick(PurpleConversation *conv, |
1743 const char *cmd, char **args, char **error, void *data) | 1743 const char *cmd, char **args, char **error, void *data) |
1744 { | 1744 { |
1745 JabberChat *chat = jabber_chat_find_by_conv(conv); | 1745 JabberChat *chat = jabber_chat_find_by_conv(conv); |
1746 | 1746 |
1747 if(!args || !args[0]) | 1747 if(!args || !args[0]) |
1748 return GAIM_CMD_RET_FAILED; | 1748 return PURPLE_CMD_RET_FAILED; |
1749 | 1749 |
1750 if(!jabber_chat_kick_user(chat, args[0], args[1])) { | 1750 if(!jabber_chat_kick_user(chat, args[0], args[1])) { |
1751 *error = g_strdup_printf(_("Unable to kick user %s"), args[0]); | 1751 *error = g_strdup_printf(_("Unable to kick user %s"), args[0]); |
1752 return GAIM_CMD_RET_FAILED; | 1752 return PURPLE_CMD_RET_FAILED; |
1753 } | 1753 } |
1754 | 1754 |
1755 return GAIM_CMD_RET_OK; | 1755 return PURPLE_CMD_RET_OK; |
1756 } | 1756 } |
1757 | 1757 |
1758 static GaimCmdRet jabber_cmd_chat_msg(GaimConversation *conv, | 1758 static PurpleCmdRet jabber_cmd_chat_msg(PurpleConversation *conv, |
1759 const char *cmd, char **args, char **error, void *data) | 1759 const char *cmd, char **args, char **error, void *data) |
1760 { | 1760 { |
1761 JabberChat *chat = jabber_chat_find_by_conv(conv); | 1761 JabberChat *chat = jabber_chat_find_by_conv(conv); |
1762 char *who; | 1762 char *who; |
1763 | 1763 |
1764 who = g_strdup_printf("%s@%s/%s", chat->room, chat->server, args[0]); | 1764 who = g_strdup_printf("%s@%s/%s", chat->room, chat->server, args[0]); |
1765 | 1765 |
1766 jabber_message_send_im(gaim_conversation_get_gc(conv), who, args[1], 0); | 1766 jabber_message_send_im(purple_conversation_get_gc(conv), who, args[1], 0); |
1767 | 1767 |
1768 g_free(who); | 1768 g_free(who); |
1769 return GAIM_CMD_RET_OK; | 1769 return PURPLE_CMD_RET_OK; |
1770 } | 1770 } |
1771 | 1771 |
1772 static gboolean jabber_offline_message(const GaimBuddy *buddy) | 1772 static gboolean jabber_offline_message(const PurpleBuddy *buddy) |
1773 { | 1773 { |
1774 return TRUE; | 1774 return TRUE; |
1775 } | 1775 } |
1776 | 1776 |
1777 static void jabber_register_commands(void) | 1777 static void jabber_register_commands(void) |
1778 { | 1778 { |
1779 gaim_cmd_register("config", "", GAIM_CMD_P_PRPL, | 1779 purple_cmd_register("config", "", PURPLE_CMD_P_PRPL, |
1780 GAIM_CMD_FLAG_CHAT | GAIM_CMD_FLAG_PRPL_ONLY, | 1780 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY, |
1781 "prpl-jabber", jabber_cmd_chat_config, | 1781 "prpl-jabber", jabber_cmd_chat_config, |
1782 _("config: Configure a chat room."), NULL); | 1782 _("config: Configure a chat room."), NULL); |
1783 gaim_cmd_register("configure", "", GAIM_CMD_P_PRPL, | 1783 purple_cmd_register("configure", "", PURPLE_CMD_P_PRPL, |
1784 GAIM_CMD_FLAG_CHAT | GAIM_CMD_FLAG_PRPL_ONLY, | 1784 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY, |
1785 "prpl-jabber", jabber_cmd_chat_config, | 1785 "prpl-jabber", jabber_cmd_chat_config, |
1786 _("configure: Configure a chat room."), NULL); | 1786 _("configure: Configure a chat room."), NULL); |
1787 gaim_cmd_register("nick", "s", GAIM_CMD_P_PRPL, | 1787 purple_cmd_register("nick", "s", PURPLE_CMD_P_PRPL, |
1788 GAIM_CMD_FLAG_CHAT | GAIM_CMD_FLAG_PRPL_ONLY, | 1788 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY, |
1789 "prpl-jabber", jabber_cmd_chat_nick, | 1789 "prpl-jabber", jabber_cmd_chat_nick, |
1790 _("nick <new nickname>: Change your nickname."), | 1790 _("nick <new nickname>: Change your nickname."), |
1791 NULL); | 1791 NULL); |
1792 gaim_cmd_register("part", "s", GAIM_CMD_P_PRPL, | 1792 purple_cmd_register("part", "s", PURPLE_CMD_P_PRPL, |
1793 GAIM_CMD_FLAG_CHAT | GAIM_CMD_FLAG_PRPL_ONLY | | 1793 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY | |
1794 GAIM_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber", | 1794 PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber", |
1795 jabber_cmd_chat_part, _("part [room]: Leave the room."), | 1795 jabber_cmd_chat_part, _("part [room]: Leave the room."), |
1796 NULL); | 1796 NULL); |
1797 gaim_cmd_register("register", "", GAIM_CMD_P_PRPL, | 1797 purple_cmd_register("register", "", PURPLE_CMD_P_PRPL, |
1798 GAIM_CMD_FLAG_CHAT | GAIM_CMD_FLAG_PRPL_ONLY, | 1798 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY, |
1799 "prpl-jabber", jabber_cmd_chat_register, | 1799 "prpl-jabber", jabber_cmd_chat_register, |
1800 _("register: Register with a chat room."), NULL); | 1800 _("register: Register with a chat room."), NULL); |
1801 /* XXX: there needs to be a core /topic cmd, methinks */ | 1801 /* XXX: there needs to be a core /topic cmd, methinks */ |
1802 gaim_cmd_register("topic", "s", GAIM_CMD_P_PRPL, | 1802 purple_cmd_register("topic", "s", PURPLE_CMD_P_PRPL, |
1803 GAIM_CMD_FLAG_CHAT | GAIM_CMD_FLAG_PRPL_ONLY | | 1803 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY | |
1804 GAIM_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber", | 1804 PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber", |
1805 jabber_cmd_chat_topic, | 1805 jabber_cmd_chat_topic, |
1806 _("topic [new topic]: View or change the topic."), | 1806 _("topic [new topic]: View or change the topic."), |
1807 NULL); | 1807 NULL); |
1808 gaim_cmd_register("ban", "ws", GAIM_CMD_P_PRPL, | 1808 purple_cmd_register("ban", "ws", PURPLE_CMD_P_PRPL, |
1809 GAIM_CMD_FLAG_CHAT | GAIM_CMD_FLAG_PRPL_ONLY | | 1809 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY | |
1810 GAIM_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber", | 1810 PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber", |
1811 jabber_cmd_chat_ban, | 1811 jabber_cmd_chat_ban, |
1812 _("ban <user> [room]: Ban a user from the room."), | 1812 _("ban <user> [room]: Ban a user from the room."), |
1813 NULL); | 1813 NULL); |
1814 gaim_cmd_register("affiliate", "ws", GAIM_CMD_P_PRPL, | 1814 purple_cmd_register("affiliate", "ws", PURPLE_CMD_P_PRPL, |
1815 GAIM_CMD_FLAG_CHAT | GAIM_CMD_FLAG_PRPL_ONLY | | 1815 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY | |
1816 GAIM_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber", | 1816 PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber", |
1817 jabber_cmd_chat_affiliate, | 1817 jabber_cmd_chat_affiliate, |
1818 _("affiliate <user> <owner|admin|member|outcast|none>: Set a user's affiliation with the room."), | 1818 _("affiliate <user> <owner|admin|member|outcast|none>: Set a user's affiliation with the room."), |
1819 NULL); | 1819 NULL); |
1820 gaim_cmd_register("role", "ws", GAIM_CMD_P_PRPL, | 1820 purple_cmd_register("role", "ws", PURPLE_CMD_P_PRPL, |
1821 GAIM_CMD_FLAG_CHAT | GAIM_CMD_FLAG_PRPL_ONLY | | 1821 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY | |
1822 GAIM_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber", | 1822 PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber", |
1823 jabber_cmd_chat_role, | 1823 jabber_cmd_chat_role, |
1824 _("role <user> <moderator|participant|visitor|none>: Set a user's role in the room."), | 1824 _("role <user> <moderator|participant|visitor|none>: Set a user's role in the room."), |
1825 NULL); | 1825 NULL); |
1826 gaim_cmd_register("invite", "ws", GAIM_CMD_P_PRPL, | 1826 purple_cmd_register("invite", "ws", PURPLE_CMD_P_PRPL, |
1827 GAIM_CMD_FLAG_CHAT | GAIM_CMD_FLAG_PRPL_ONLY | | 1827 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY | |
1828 GAIM_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber", | 1828 PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber", |
1829 jabber_cmd_chat_invite, | 1829 jabber_cmd_chat_invite, |
1830 _("invite <user> [message]: Invite a user to the room."), | 1830 _("invite <user> [message]: Invite a user to the room."), |
1831 NULL); | 1831 NULL); |
1832 gaim_cmd_register("join", "ws", GAIM_CMD_P_PRPL, | 1832 purple_cmd_register("join", "ws", PURPLE_CMD_P_PRPL, |
1833 GAIM_CMD_FLAG_CHAT | GAIM_CMD_FLAG_PRPL_ONLY | | 1833 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY | |
1834 GAIM_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber", | 1834 PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber", |
1835 jabber_cmd_chat_join, | 1835 jabber_cmd_chat_join, |
1836 _("join: <room> [server]: Join a chat on this server."), | 1836 _("join: <room> [server]: Join a chat on this server."), |
1837 NULL); | 1837 NULL); |
1838 gaim_cmd_register("kick", "ws", GAIM_CMD_P_PRPL, | 1838 purple_cmd_register("kick", "ws", PURPLE_CMD_P_PRPL, |
1839 GAIM_CMD_FLAG_CHAT | GAIM_CMD_FLAG_PRPL_ONLY | | 1839 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY | |
1840 GAIM_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber", | 1840 PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber", |
1841 jabber_cmd_chat_kick, | 1841 jabber_cmd_chat_kick, |
1842 _("kick <user> [room]: Kick a user from the room."), | 1842 _("kick <user> [room]: Kick a user from the room."), |
1843 NULL); | 1843 NULL); |
1844 gaim_cmd_register("msg", "ws", GAIM_CMD_P_PRPL, | 1844 purple_cmd_register("msg", "ws", PURPLE_CMD_P_PRPL, |
1845 GAIM_CMD_FLAG_CHAT | GAIM_CMD_FLAG_PRPL_ONLY, | 1845 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY, |
1846 "prpl-jabber", jabber_cmd_chat_msg, | 1846 "prpl-jabber", jabber_cmd_chat_msg, |
1847 _("msg <user> <message>: Send a private message to another user."), | 1847 _("msg <user> <message>: Send a private message to another user."), |
1848 NULL); | 1848 NULL); |
1849 } | 1849 } |
1850 | 1850 |
1851 static GaimPluginProtocolInfo prpl_info = | 1851 static PurplePluginProtocolInfo prpl_info = |
1852 { | 1852 { |
1853 OPT_PROTO_CHAT_TOPIC | OPT_PROTO_UNIQUE_CHATNAME | OPT_PROTO_MAIL_CHECK, | 1853 OPT_PROTO_CHAT_TOPIC | OPT_PROTO_UNIQUE_CHATNAME | OPT_PROTO_MAIL_CHECK, |
1854 NULL, /* user_splits */ | 1854 NULL, /* user_splits */ |
1855 NULL, /* protocol_options */ | 1855 NULL, /* protocol_options */ |
1856 {"png,gif,jpeg", 32, 32, 96, 96, 8191, GAIM_ICON_SCALE_SEND | GAIM_ICON_SCALE_DISPLAY}, /* icon_spec */ | 1856 {"png,gif,jpeg", 32, 32, 96, 96, 8191, PURPLE_ICON_SCALE_SEND | PURPLE_ICON_SCALE_DISPLAY}, /* icon_spec */ |
1857 jabber_list_icon, /* list_icon */ | 1857 jabber_list_icon, /* list_icon */ |
1858 jabber_list_emblem, /* list_emblems */ | 1858 jabber_list_emblem, /* list_emblems */ |
1859 jabber_status_text, /* status_text */ | 1859 jabber_status_text, /* status_text */ |
1860 jabber_tooltip_text, /* tooltip_text */ | 1860 jabber_tooltip_text, /* tooltip_text */ |
1861 jabber_status_types, /* status_types */ | 1861 jabber_status_types, /* status_types */ |
1912 NULL, /* whiteboard_prpl_ops */ | 1912 NULL, /* whiteboard_prpl_ops */ |
1913 jabber_prpl_send_raw, /* send_raw */ | 1913 jabber_prpl_send_raw, /* send_raw */ |
1914 jabber_roomlist_room_serialize, /* roomlist_room_serialize */ | 1914 jabber_roomlist_room_serialize, /* roomlist_room_serialize */ |
1915 }; | 1915 }; |
1916 | 1916 |
1917 static gboolean load_plugin(GaimPlugin *plugin) | 1917 static gboolean load_plugin(PurplePlugin *plugin) |
1918 { | 1918 { |
1919 gaim_signal_register(plugin, "jabber-receiving-xmlnode", | 1919 purple_signal_register(plugin, "jabber-receiving-xmlnode", |
1920 gaim_marshal_VOID__POINTER_POINTER, NULL, 2, | 1920 purple_marshal_VOID__POINTER_POINTER, NULL, 2, |
1921 gaim_value_new(GAIM_TYPE_SUBTYPE, GAIM_SUBTYPE_CONNECTION), | 1921 purple_value_new(PURPLE_TYPE_SUBTYPE, PURPLE_SUBTYPE_CONNECTION), |
1922 gaim_value_new_outgoing(GAIM_TYPE_SUBTYPE, GAIM_SUBTYPE_XMLNODE)); | 1922 purple_value_new_outgoing(PURPLE_TYPE_SUBTYPE, PURPLE_SUBTYPE_XMLNODE)); |
1923 | 1923 |
1924 gaim_signal_register(plugin, "jabber-sending-xmlnode", | 1924 purple_signal_register(plugin, "jabber-sending-xmlnode", |
1925 gaim_marshal_VOID__POINTER_POINTER, NULL, 2, | 1925 purple_marshal_VOID__POINTER_POINTER, NULL, 2, |
1926 gaim_value_new(GAIM_TYPE_SUBTYPE, GAIM_SUBTYPE_CONNECTION), | 1926 purple_value_new(PURPLE_TYPE_SUBTYPE, PURPLE_SUBTYPE_CONNECTION), |
1927 gaim_value_new_outgoing(GAIM_TYPE_SUBTYPE, GAIM_SUBTYPE_XMLNODE)); | 1927 purple_value_new_outgoing(PURPLE_TYPE_SUBTYPE, PURPLE_SUBTYPE_XMLNODE)); |
1928 | 1928 |
1929 gaim_signal_register(plugin, "jabber-sending-text", | 1929 purple_signal_register(plugin, "jabber-sending-text", |
1930 gaim_marshal_VOID__POINTER_POINTER, NULL, 2, | 1930 purple_marshal_VOID__POINTER_POINTER, NULL, 2, |
1931 gaim_value_new(GAIM_TYPE_SUBTYPE, GAIM_SUBTYPE_CONNECTION), | 1931 purple_value_new(PURPLE_TYPE_SUBTYPE, PURPLE_SUBTYPE_CONNECTION), |
1932 gaim_value_new_outgoing(GAIM_TYPE_STRING)); | 1932 purple_value_new_outgoing(PURPLE_TYPE_STRING)); |
1933 | 1933 |
1934 | 1934 |
1935 return TRUE; | 1935 return TRUE; |
1936 } | 1936 } |
1937 | 1937 |
1938 static gboolean unload_plugin(GaimPlugin *plugin) | 1938 static gboolean unload_plugin(PurplePlugin *plugin) |
1939 { | 1939 { |
1940 gaim_signal_unregister(plugin, "jabber-receiving-xmlnode"); | 1940 purple_signal_unregister(plugin, "jabber-receiving-xmlnode"); |
1941 | 1941 |
1942 gaim_signal_unregister(plugin, "jabber-sending-xmlnode"); | 1942 purple_signal_unregister(plugin, "jabber-sending-xmlnode"); |
1943 | 1943 |
1944 gaim_signal_unregister(plugin, "jabber-sending-text"); | 1944 purple_signal_unregister(plugin, "jabber-sending-text"); |
1945 | 1945 |
1946 return TRUE; | 1946 return TRUE; |
1947 } | 1947 } |
1948 | 1948 |
1949 static GaimPluginInfo info = | 1949 static PurplePluginInfo info = |
1950 { | 1950 { |
1951 GAIM_PLUGIN_MAGIC, | 1951 PURPLE_PLUGIN_MAGIC, |
1952 GAIM_MAJOR_VERSION, | 1952 PURPLE_MAJOR_VERSION, |
1953 GAIM_MINOR_VERSION, | 1953 PURPLE_MINOR_VERSION, |
1954 GAIM_PLUGIN_PROTOCOL, /**< type */ | 1954 PURPLE_PLUGIN_PROTOCOL, /**< type */ |
1955 NULL, /**< ui_requirement */ | 1955 NULL, /**< ui_requirement */ |
1956 0, /**< flags */ | 1956 0, /**< flags */ |
1957 NULL, /**< dependencies */ | 1957 NULL, /**< dependencies */ |
1958 GAIM_PRIORITY_DEFAULT, /**< priority */ | 1958 PURPLE_PRIORITY_DEFAULT, /**< priority */ |
1959 | 1959 |
1960 "prpl-jabber", /**< id */ | 1960 "prpl-jabber", /**< id */ |
1961 "Jabber", /**< name */ | 1961 "Jabber", /**< name */ |
1962 VERSION, /**< version */ | 1962 VERSION, /**< version */ |
1963 /** summary */ | 1963 /** summary */ |
1964 N_("Jabber Protocol Plugin"), | 1964 N_("Jabber Protocol Plugin"), |
1965 /** description */ | 1965 /** description */ |
1966 N_("Jabber Protocol Plugin"), | 1966 N_("Jabber Protocol Plugin"), |
1967 NULL, /**< author */ | 1967 NULL, /**< author */ |
1968 GAIM_WEBSITE, /**< homepage */ | 1968 PURPLE_WEBSITE, /**< homepage */ |
1969 | 1969 |
1970 load_plugin, /**< load */ | 1970 load_plugin, /**< load */ |
1971 unload_plugin, /**< unload */ | 1971 unload_plugin, /**< unload */ |
1972 NULL, /**< destroy */ | 1972 NULL, /**< destroy */ |
1973 | 1973 |
1976 NULL, /**< prefs_info */ | 1976 NULL, /**< prefs_info */ |
1977 jabber_actions | 1977 jabber_actions |
1978 }; | 1978 }; |
1979 | 1979 |
1980 static void | 1980 static void |
1981 init_plugin(GaimPlugin *plugin) | 1981 init_plugin(PurplePlugin *plugin) |
1982 { | 1982 { |
1983 GaimAccountUserSplit *split; | 1983 PurpleAccountUserSplit *split; |
1984 GaimAccountOption *option; | 1984 PurpleAccountOption *option; |
1985 | 1985 |
1986 split = gaim_account_user_split_new(_("Server"), "jabber.org", '@'); | 1986 split = purple_account_user_split_new(_("Server"), "jabber.org", '@'); |
1987 prpl_info.user_splits = g_list_append(prpl_info.user_splits, split); | 1987 prpl_info.user_splits = g_list_append(prpl_info.user_splits, split); |
1988 | 1988 |
1989 split = gaim_account_user_split_new(_("Resource"), "Home", '/'); | 1989 split = purple_account_user_split_new(_("Resource"), "Home", '/'); |
1990 prpl_info.user_splits = g_list_append(prpl_info.user_splits, split); | 1990 prpl_info.user_splits = g_list_append(prpl_info.user_splits, split); |
1991 | 1991 |
1992 option = gaim_account_option_bool_new(_("Force old (port 5223) SSL"), "old_ssl", FALSE); | 1992 option = purple_account_option_bool_new(_("Force old (port 5223) SSL"), "old_ssl", FALSE); |
1993 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, | 1993 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, |
1994 option); | 1994 option); |
1995 | 1995 |
1996 option = gaim_account_option_bool_new( | 1996 option = purple_account_option_bool_new( |
1997 _("Allow plaintext auth over unencrypted streams"), | 1997 _("Allow plaintext auth over unencrypted streams"), |
1998 "auth_plain_in_clear", FALSE); | 1998 "auth_plain_in_clear", FALSE); |
1999 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, | 1999 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, |
2000 option); | 2000 option); |
2001 | 2001 |
2002 option = gaim_account_option_int_new(_("Connect port"), "port", 5222); | 2002 option = purple_account_option_int_new(_("Connect port"), "port", 5222); |
2003 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, | 2003 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, |
2004 option); | 2004 option); |
2005 | 2005 |
2006 option = gaim_account_option_string_new(_("Connect server"), | 2006 option = purple_account_option_string_new(_("Connect server"), |
2007 "connect_server", NULL); | 2007 "connect_server", NULL); |
2008 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, | 2008 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, |
2009 option); | 2009 option); |
2010 | 2010 |
2011 my_protocol = plugin; | 2011 my_protocol = plugin; |
2012 | 2012 |
2013 gaim_prefs_remove("/plugins/prpl/jabber"); | 2013 purple_prefs_remove("/plugins/prpl/jabber"); |
2014 | 2014 |
2015 /* XXX - If any other plugin wants SASL this won't be good ... */ | 2015 /* XXX - If any other plugin wants SASL this won't be good ... */ |
2016 #ifdef HAVE_CYRUS_SASL | 2016 #ifdef HAVE_CYRUS_SASL |
2017 sasl_client_init(NULL); | 2017 sasl_client_init(NULL); |
2018 #endif | 2018 #endif |
2019 jabber_register_commands(); | 2019 jabber_register_commands(); |
2020 | 2020 |
2021 jabber_iq_init(); | 2021 jabber_iq_init(); |
2022 } | 2022 } |
2023 | 2023 |
2024 GAIM_INIT_PLUGIN(jabber, init_plugin, info); | 2024 PURPLE_INIT_PLUGIN(jabber, init_plugin, info); |