| 394 } |
394 } |
| 395 |
395 |
| 396 static gboolean do_login(PurpleConnection *gc) { |
396 static gboolean do_login(PurpleConnection *gc) { |
| 397 char *buf, *tmp = NULL; |
397 char *buf, *tmp = NULL; |
| 398 char *server; |
398 char *server; |
| 399 const char *username, *realname; |
399 const char *nickname, *identname, *realname; |
| 400 struct irc_conn *irc = purple_connection_get_protocol_data(gc); |
400 struct irc_conn *irc = purple_connection_get_protocol_data(gc); |
| 401 const char *pass = purple_connection_get_password(gc); |
401 const char *pass = purple_connection_get_password(gc); |
| 402 #ifdef HAVE_CYRUS_SASL |
402 #ifdef HAVE_CYRUS_SASL |
| 403 const gboolean use_sasl = purple_account_get_bool(irc->account, "sasl", FALSE); |
403 const gboolean use_sasl = purple_account_get_bool(irc->account, "sasl", FALSE); |
| 404 #endif |
404 #endif |
| 416 } |
416 } |
| 417 g_free(buf); |
417 g_free(buf); |
| 418 } |
418 } |
| 419 |
419 |
| 420 realname = purple_account_get_string(irc->account, "realname", ""); |
420 realname = purple_account_get_string(irc->account, "realname", ""); |
| 421 username = purple_account_get_string(irc->account, "username", ""); |
421 identname = purple_account_get_string(irc->account, "username", ""); |
| 422 |
422 |
| 423 if (username == NULL || *username == '\0') { |
423 if (identname == NULL || *identname == '\0') { |
| 424 username = g_get_user_name(); |
424 identname = g_get_user_name(); |
| 425 } |
425 } |
| 426 |
426 |
| 427 if (username != NULL && strchr(username, ' ') != NULL) { |
427 if (identname != NULL && strchr(identname, ' ') != NULL) { |
| 428 tmp = g_strdup(username); |
428 tmp = g_strdup(identname); |
| 429 while ((buf = strchr(tmp, ' ')) != NULL) { |
429 while ((buf = strchr(tmp, ' ')) != NULL) { |
| 430 *buf = '_'; |
430 *buf = '_'; |
| 431 } |
431 } |
| 432 } |
432 } |
| 433 |
433 |
| 436 server = g_strdup_printf("0%s", irc->server); |
436 server = g_strdup_printf("0%s", irc->server); |
| 437 } else { |
437 } else { |
| 438 server = g_strdup(irc->server); |
438 server = g_strdup(irc->server); |
| 439 } |
439 } |
| 440 |
440 |
| 441 buf = irc_format(irc, "vvvv:", "USER", tmp ? tmp : username, "*", server, |
441 buf = irc_format(irc, "vvvv:", "USER", tmp ? tmp : identname, "*", server, |
| 442 strlen(realname) ? realname : IRC_DEFAULT_ALIAS); |
442 strlen(realname) ? realname : IRC_DEFAULT_ALIAS); |
| 443 g_free(tmp); |
443 g_free(tmp); |
| 444 g_free(server); |
444 g_free(server); |
| 445 if (irc_send(irc, buf) < 0) { |
445 if (irc_send(irc, buf) < 0) { |
| 446 g_free(buf); |
446 g_free(buf); |
| 447 return FALSE; |
447 return FALSE; |
| 448 } |
448 } |
| 449 g_free(buf); |
449 g_free(buf); |
| 450 username = purple_connection_get_display_name(gc); |
450 nickname = purple_connection_get_display_name(gc); |
| 451 buf = irc_format(irc, "vn", "NICK", username); |
451 buf = irc_format(irc, "vn", "NICK", nickname); |
| 452 irc->reqnick = g_strdup(username); |
452 irc->reqnick = g_strdup(nickname); |
| 453 irc->nickused = FALSE; |
453 irc->nickused = FALSE; |
| 454 if (irc_send(irc, buf) < 0) { |
454 if (irc_send(irc, buf) < 0) { |
| 455 g_free(buf); |
455 g_free(buf); |
| 456 return FALSE; |
456 return FALSE; |
| 457 } |
457 } |
| 946 protocol->protocol_options = g_list_append(protocol->protocol_options, option); |
946 protocol->protocol_options = g_list_append(protocol->protocol_options, option); |
| 947 |
947 |
| 948 option = purple_account_option_bool_new(_("Auto-detect incoming UTF-8"), "autodetect_utf8", IRC_DEFAULT_AUTODETECT); |
948 option = purple_account_option_bool_new(_("Auto-detect incoming UTF-8"), "autodetect_utf8", IRC_DEFAULT_AUTODETECT); |
| 949 protocol->protocol_options = g_list_append(protocol->protocol_options, option); |
949 protocol->protocol_options = g_list_append(protocol->protocol_options, option); |
| 950 |
950 |
| 951 option = purple_account_option_string_new(_("Username"), "username", ""); |
951 option = purple_account_option_string_new(_("Ident name"), "username", ""); |
| 952 protocol->protocol_options = g_list_append(protocol->protocol_options, option); |
952 protocol->protocol_options = g_list_append(protocol->protocol_options, option); |
| 953 |
953 |
| 954 option = purple_account_option_string_new(_("Real name"), "realname", ""); |
954 option = purple_account_option_string_new(_("Real name"), "realname", ""); |
| 955 protocol->protocol_options = g_list_append(protocol->protocol_options, option); |
955 protocol->protocol_options = g_list_append(protocol->protocol_options, option); |
| 956 |
956 |