src/protocols/zephyr/zephyr.c

changeset 10300
f14c90f7e882
parent 10246
aa5bff72f94c
child 10401
51ae616ff395
equal deleted inserted replaced
10299:16858758f085 10300:f14c90f7e882
680 } else { 680 } else {
681 gaim_notify_error(gc, notice.z_recipient, _("User is offline"), NULL); 681 gaim_notify_error(gc, notice.z_recipient, _("User is offline"), NULL);
682 } 682 }
683 } 683 }
684 684
685 static void handle_message(GaimConnection *gc,ZNotice_t notice, struct sockaddr_in from) 685 static void handle_message(GaimConnection *gc,ZNotice_t notice)
686 { 686 {
687 zephyr_account* zephyr = gc->proto_data; 687 zephyr_account* zephyr = gc->proto_data;
688 688
689 if (!g_ascii_strcasecmp(notice.z_class, LOGIN_CLASS)) { 689 if (!g_ascii_strcasecmp(notice.z_class, LOGIN_CLASS)) {
690 /* well, we'll be updating in 20 seconds anyway, might as well ignore this. */ 690 /* well, we'll be updating in 20 seconds anyway, might as well ignore this. */
1058 static gint check_notify_tzc(gpointer data) 1058 static gint check_notify_tzc(gpointer data)
1059 { 1059 {
1060 GaimConnection *gc = (GaimConnection *)data; 1060 GaimConnection *gc = (GaimConnection *)data;
1061 zephyr_account* zephyr = gc->proto_data; 1061 zephyr_account* zephyr = gc->proto_data;
1062 parse_tree *newparsetree = read_from_tzc(zephyr); 1062 parse_tree *newparsetree = read_from_tzc(zephyr);
1063 struct sockaddr_in from;
1064 if (newparsetree != NULL) { 1063 if (newparsetree != NULL) {
1065 gchar *spewtype; 1064 gchar *spewtype;
1066 if ( (spewtype = tree_child(find_node(newparsetree,"tzcspew"),2)->contents) ) { 1065 if ( (spewtype = tree_child(find_node(newparsetree,"tzcspew"),2)->contents) ) {
1067 if (!g_ascii_strncasecmp(spewtype,"message",7)) { 1066 if (!g_ascii_strncasecmp(spewtype,"message",7)) {
1068 ZNotice_t notice; 1067 ZNotice_t notice;
1082 notice.z_recipient = local_zephyr_normalize(zephyr,tree_child(find_node(newparsetree,"recipient"),2)->contents); 1081 notice.z_recipient = local_zephyr_normalize(zephyr,tree_child(find_node(newparsetree,"recipient"),2)->contents);
1083 notice.z_sender = local_zephyr_normalize(zephyr,tree_child(find_node(newparsetree,"sender"),2)->contents); 1082 notice.z_sender = local_zephyr_normalize(zephyr,tree_child(find_node(newparsetree,"sender"),2)->contents);
1084 notice.z_default_format = "Class $class, Instance $instance:\n" "To: @bold($recipient) at $time $date\n" "From: @bold($1) <$sender>\n\n$2"; 1083 notice.z_default_format = "Class $class, Instance $instance:\n" "To: @bold($recipient) at $time $date\n" "From: @bold($1) <$sender>\n\n$2";
1085 notice.z_message_len = strlen(msg) + 3; 1084 notice.z_message_len = strlen(msg) + 3;
1086 notice.z_message = buf; 1085 notice.z_message = buf;
1087 handle_message(gc,notice,from); 1086 handle_message(gc, notice);
1088 g_free(msg); 1087 g_free(msg);
1089 /* g_free(zsig); */ 1088 /* g_free(zsig); */
1090 g_free(buf); 1089 g_free(buf);
1091 /* free_parse_tree(msgnode); 1090 /* free_parse_tree(msgnode);
1092 free_parse_tree(bodynode); 1091 free_parse_tree(bodynode);
1173 1172
1174 switch (notice.z_kind) { 1173 switch (notice.z_kind) {
1175 case UNSAFE: 1174 case UNSAFE:
1176 case UNACKED: 1175 case UNACKED:
1177 case ACKED: 1176 case ACKED:
1178 handle_message(gc,notice, from); 1177 handle_message(gc,notice);
1179 break; 1178 break;
1180 case SERVACK: 1179 case SERVACK:
1181 if (!(g_ascii_strcasecmp(notice.z_message, ZSRVACK_NOTSENT))) { 1180 if (!(g_ascii_strcasecmp(notice.z_message, ZSRVACK_NOTSENT))) {
1182 message_failed(gc,notice, from); 1181 message_failed(gc,notice, from);
1183 } 1182 }

mercurial