1073 } |
1073 } |
1074 |
1074 |
1075 // release handlers before reconnect |
1075 // release handlers before reconnect |
1076 static void avatar_hh (guint32 hid, hk_arg_t *args, gpointer userdata) |
1076 static void avatar_hh (guint32 hid, hk_arg_t *args, gpointer userdata) |
1077 { |
1077 { |
1078 #ifdef HOOK_PRE_DISCONNECT |
1078 #ifndef HOOK_POST_CONNECT |
1079 if (hid == HOOK_PRE_DISCONNECT) |
1079 hk_arg_t *arg; |
|
1080 |
|
1081 for (arg = args; arg->name; arg++) { |
|
1082 if (!strcmp (arg->name, "hook")) { |
|
1083 if (!strcmp (arg->value, "hook-pre-disconnect")) { |
|
1084 #else |
|
1085 if (hid == HOOK_PRE_DISCONNECT) { |
|
1086 #endif |
1080 avatar_free_reply_handlers (); |
1087 avatar_free_reply_handlers (); |
1081 else if (hid == HOOK_POST_CONNECT && publish_delayed) { |
1088 #ifndef HOOK_POST_CONNECT |
|
1089 } else if (publish_delayed && !strcmp (arg -> value, "hook-post-connect")) { |
|
1090 #else |
|
1091 } else if (hid == HOOK_POST_CONNECT && publish_delayed) { |
|
1092 #endif |
1082 char *tmp_data = publish_data; |
1093 char *tmp_data = publish_data; |
1083 |
1094 |
1084 scr_LogPrint (LPRINT_DEBUG, "avatar: Publishing delayed data."); |
1095 scr_LogPrint (LPRINT_DEBUG, "avatar: Publishing delayed data."); |
1085 |
1096 |
1086 publish_data = NULL; |
1097 publish_data = NULL; |
1087 publish_delayed = FALSE; |
1098 publish_delayed = FALSE; |
1088 |
1099 |
1089 avatar_publish (publish_data, publish_len); |
1100 avatar_publish (publish_data, publish_len); |
1090 |
1101 |
1091 g_free (tmp_data); |
1102 g_free (tmp_data); |
1092 } |
1103 #ifndef HOOK_POST_CONNECT |
1093 #else |
1104 } |
1094 hk_arg_t *arg; |
1105 } |
1095 |
|
1096 for (arg = args; arg->name; arg++) { |
|
1097 if (!strcmp (arg->name, "hook") && !strcmp (arg->value, "hook-pre-disconnect")) { |
|
1098 avatar_free_reply_handlers (); |
|
1099 return; |
|
1100 } |
|
1101 } |
|
1102 #endif |
1106 #endif |
|
1107 } |
1103 } |
1108 } |
1104 |
1109 |
1105 const gchar *g_module_check_init (GModule *module) |
1110 const gchar *g_module_check_init (GModule *module) |
1106 { |
1111 { |
1107 pep_register_xmlns_handler (NS_AVATAR_METADATA, avatar_handler, NULL, NULL); |
1112 pep_register_xmlns_handler (NS_AVATAR_METADATA, avatar_handler, NULL, NULL); |