comparison mcabber/src/jabglue.c @ 1055:6eb1efea75d0

PGP: Visual encryption flag
author Mikael Berthe <mikael@lilotux.net>
date Mon, 27 Nov 2006 23:39:40 +0100
parents 1ec7ec9bda60
children c0d44a9a99bc
comparison
equal deleted inserted replaced
1054:082d55152a25 1055:6eb1efea75d0
504 srand(now); 504 srand(now);
505 msg_idn += 1U + (unsigned int) (9.0 * (rand() / (RAND_MAX + 1.0))); 505 msg_idn += 1U + (unsigned int) (9.0 * (rand() / (RAND_MAX + 1.0)));
506 return g_strdup_printf("%u%d", msg_idn, (int)(now%10L)); 506 return g_strdup_printf("%u%d", msg_idn, (int)(now%10L));
507 } 507 }
508 508
509 // jb_send_msg(jid, test, type, subject, msgid, *encrypted)
510 // When encrypted is not NULL, the function set *encrypted to TRUE if the
511 // message has been PGP-encrypted.
509 void jb_send_msg(const char *jid, const char *text, int type, 512 void jb_send_msg(const char *jid, const char *text, int type,
510 const char *subject, const char *msgid) 513 const char *subject, const char *msgid, guint *encrypted)
511 { 514 {
512 xmlnode x; 515 xmlnode x;
513 gchar *strtype; 516 gchar *strtype;
514 #if defined HAVE_GPGME || defined JEP0022 || defined JEP0085 517 #if defined HAVE_GPGME || defined JEP0022 || defined JEP0085
515 char *rname, *barejid; 518 char *rname, *barejid;
520 guint use_jep85 = 0; 523 guint use_jep85 = 0;
521 struct jep0085 *jep85 = NULL; 524 struct jep0085 *jep85 = NULL;
522 #endif 525 #endif
523 gchar *enc = NULL; 526 gchar *enc = NULL;
524 527
528 if (encrypted)
529 *encrypted = FALSE;
530
525 if (!online) return; 531 if (!online) return;
526 532
527 if (type == ROSTER_TYPE_ROOM) 533 if (type == ROSTER_TYPE_ROOM)
528 strtype = TMSG_GROUPCHAT; 534 strtype = TMSG_GROUPCHAT;
529 else 535 else
560 if (enc) { 566 if (enc) {
561 xmlnode y; 567 xmlnode y;
562 y = xmlnode_insert_tag(x, "x"); 568 y = xmlnode_insert_tag(x, "x");
563 xmlnode_put_attrib(y, "xmlns", NS_ENCRYPTED); 569 xmlnode_put_attrib(y, "xmlns", NS_ENCRYPTED);
564 xmlnode_insert_cdata(y, enc, (unsigned) -1); 570 xmlnode_insert_cdata(y, enc, (unsigned) -1);
571 if (encrypted)
572 *encrypted = TRUE;
565 g_free(enc); 573 g_free(enc);
566 } 574 }
567 575
568 #if defined JEP0022 || defined JEP0085 576 #if defined JEP0022 || defined JEP0085
569 // If typing notifications are disabled, we can skip all this stuff... 577 // If typing notifications are disabled, we can skip all this stuff...
1544 // System messages (from our server) are allowed. 1552 // System messages (from our server) are allowed.
1545 if (!settings_opt_get_int("block_unsubscribed") || 1553 if (!settings_opt_get_int("block_unsubscribed") ||
1546 (roster_getsubscription(jid) & sub_from) || 1554 (roster_getsubscription(jid) & sub_from) ||
1547 (type && strcmp(type, "chat")) || 1555 (type && strcmp(type, "chat")) ||
1548 ((s = settings_opt_get("server")) != NULL && !strcasecmp(jid, s))) { 1556 ((s = settings_opt_get("server")) != NULL && !strcasecmp(jid, s))) {
1549 hk_message_in(jid, rname, timestamp, body, type); 1557 hk_message_in(jid, rname, timestamp, body, type,
1558 (decrypted ? TRUE : FALSE));
1550 } else { 1559 } else {
1551 scr_LogPrint(LPRINT_LOGNORM, "Blocked a message from <%s>", jid); 1560 scr_LogPrint(LPRINT_LOGNORM, "Blocked a message from <%s>", jid);
1552 } 1561 }
1553 g_free(jid); 1562 g_free(jid);
1554 g_free(decrypted); 1563 g_free(decrypted);