--- a/jingle-filetransfer/filetransfer.c Mon Jul 19 22:43:30 2010 +0200
+++ b/jingle-filetransfer/filetransfer.c Tue Jul 20 00:52:21 2010 +0200
@@ -109,7 +109,12 @@
}
ft->name = g_path_get_basename(ft->name);
- ft->name = g_build_filename(settings_opt_get("jingle_ft_dir"), ft->name, NULL);
+
+ if (settings_opt_get("jingle_ft_dir") != NULL)
+ ft->name = g_build_filename(settings_opt_get("jingle_ft_dir"), ft->name, NULL);
+ else
+ ft->name = g_build_filename("/tmp", ft->name, NULL);
+
if (!g_strcmp0(ft->name, ".")) {
g_set_error(err, JINGLE_CHECK_ERROR, JINGLE_CHECK_ERROR_BADVALUE,
"the offered file has an invalid filename");
--- a/jingle-ibb/CMakeLists.txt Mon Jul 19 22:43:30 2010 +0200
+++ b/jingle-ibb/CMakeLists.txt Tue Jul 20 00:52:21 2010 +0200
@@ -1,4 +1,4 @@
add_library(jingle-inbandbytestream MODULE ibb.c ibb.h)
-set_target_properties(jingle-inbandbytestream PROPERTIES COMPILE_FLAGS "-Wall")
+set_target_properties(jingle-inbandbytestream PROPERTIES COMPILE_FLAGS "-Wall -O0 -g")
include_directories(${CMAKE_SOURCE_DIR})
install(TARGETS jingle-inbandbytestream DESTINATION lib/mcabber)
--- a/jingle-ibb/ibb.c Mon Jul 19 22:43:30 2010 +0200
+++ b/jingle-ibb/ibb.c Tue Jul 20 00:52:21 2010 +0200
@@ -44,7 +44,7 @@
JingleTransportFuncs funcs = {jingle_ibb_check, NULL};
-module_info_t info_jingle_filetransfer = {
+module_info_t info_jingle_inbandbytestream = {
.branch = MCABBER_BRANCH,
.api = MCABBER_API_VERSION,
.version = PROJECT_VERSION,
--- a/jingle-ibb/ibb.h Mon Jul 19 22:43:30 2010 +0200
+++ b/jingle-ibb/ibb.h Tue Jul 20 00:52:21 2010 +0200
@@ -1,7 +1,7 @@
#ifndef __JINGLEIBB_H__
#define __JINGLEIBB_H__ 1
-#define NS_JINGLE_TRANSPORT_IBB "urn:xmpp:jingle:transports:ibb:1"
+#define NS_JINGLE_TRANSPORT_IBB "urn:xmpp:jingle:transports:ibb:0"
#define NS_TRANSPORT_IBB "http://jabber.org/protocol/ibb"
typedef struct {
--- a/jingle/CMakeLists.txt Mon Jul 19 22:43:30 2010 +0200
+++ b/jingle/CMakeLists.txt Tue Jul 20 00:52:21 2010 +0200
@@ -1,5 +1,5 @@
add_library(jingle MODULE jingle.c jingle.h check.c check.h action-handlers.c action-handlers.c register.c register.h sessions.c sessions.h send.c send.h)
-set_target_properties(jingle PROPERTIES COMPILE_FLAGS "")
+set_target_properties(jingle PROPERTIES COMPILE_FLAGS "-O0 -g")
include_directories(${LM_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR})
target_link_libraries(jingle ${LM_LIBRARIES})
install(TARGETS jingle DESTINATION lib/mcabber)
--- a/jingle/action-handlers.c Mon Jul 19 22:43:30 2010 +0200
+++ b/jingle/action-handlers.c Tue Jul 20 00:52:21 2010 +0200
@@ -26,6 +26,7 @@
#include <mcabber/events.h>
#include <mcabber/hbuf.h>
#include <mcabber/utils.h>
+#include <mcabber/screen.h>
#include <jingle/jingle.h>
#include <jingle/check.h>
@@ -262,6 +263,7 @@
GString *sbuf;
GSList *child = NULL;
LmMessage *r;
+ gchar *disp;
// Make sure the request come from an user in our roster
if (!roster_find(jidtodisp(lm_message_get_from(jn->message)), jidsearch, 0)) {
@@ -309,7 +311,8 @@
sbuf = g_string_new("");
g_string_printf(sbuf, "Received an invitation for a jingle session from <%s>", lm_message_get_from(jn->message));
- scr_WriteIncomingMessage(jidtodisp(lm_message_get_from(jn->message)), sbuf->str, 0, HBB_PREFIX_INFO, 0);
+ disp = jidtodisp(lm_message_get_from(jn->message));
+ scr_WriteIncomingMessage(disp, sbuf->str, 0, HBB_PREFIX_INFO, 0);
scr_LogPrint(LPRINT_LOGNORM, "%s", sbuf->str);
{
@@ -322,7 +325,10 @@
g_string_printf(sbuf, "Please use /event %s accept|reject", id);
else
g_string_printf(sbuf, "Unable to create a new event!");
+ scr_WriteIncomingMessage(disp, sbuf->str, 0, HBB_PREFIX_INFO, 0);
+ scr_LogPrint(LPRINT_LOGNORM, "%s", sbuf->str);
}
+ g_free(disp);
}
void handle_session_terminate(JingleNode *jn)
--- a/jingle/check.c Mon Jul 19 22:43:30 2010 +0200
+++ b/jingle/check.c Tue Jul 20 00:52:21 2010 +0200
@@ -69,7 +69,7 @@
return FALSE;
}
- if (!check_jid_syntax(jn->initiator)) {
+ if (check_jid_syntax(jn->initiator)) {
g_set_error(err, JINGLE_CHECK_ERROR, JINGLE_CHECK_ERROR_BADVALUE,
"the initiator attribute in invalid (not a jid)");
return FALSE;
@@ -120,15 +120,17 @@
tmp = index_in_array(creatorstr, jingle_content_creator);
tmp2 = index_in_array(sendersstr, jingle_content_senders);
- if (tmp < 0 || tmp2 < 0) {
+ if (tmp < 0 || (tmp2 < 0 && sendersstr != NULL)) {
g_set_error(err, JINGLE_CHECK_ERROR, JINGLE_CHECK_ERROR_BADVALUE,
"the attribute creator or sender is invalid");
g_free(cn);
return NULL;
}
cn->creator = (JingleCreator)tmp;
- cn->senders = (JingleSenders)tmp2;
-
+ if(sendersstr != NULL)
+ cn->senders = (JingleSenders)tmp2;
+ else
+ cn->senders = JINGLE_SENDERS_BOTH;
cn->description = lm_message_node_get_child(node, "description");
cn->transport = lm_message_node_get_child(node, "transport");
if (cn->description == NULL || cn->transport == NULL) {
--- a/jingle/jingle.c Mon Jul 19 22:43:30 2010 +0200
+++ b/jingle/jingle.c Tue Jul 20 00:52:21 2010 +0200
@@ -187,20 +187,27 @@
jingle_free_jinglenode(jn);
return FALSE;
}
- if (evcontext = EVS_CONTEXT_CANCEL) {
+ if (evcontext == EVS_CONTEXT_CANCEL) {
scr_LogPrint(LPRINT_LOGNORM, "Jingle event from %s cancelled.",
jn->initiator);
jingle_free_jinglenode(jn);
return FALSE;
}
if (!(evcontext == EVS_CONTEXT_ACCEPT || evcontext == EVS_CONTEXT_REJECT)) {
+ scr_LogPrint(LPRINT_LOGNORM, "Jingle event from %s cancelled.",
+ jn->initiator);
jingle_free_jinglenode(jn);
return FALSE;
}
if (evcontext == EVS_CONTEXT_ACCEPT) {
+ scr_LogPrint(LPRINT_LOGNORM, "Jingle event from %s accepted.",
+ jn->initiator);
jingle_send_session_accept(jn);
+
} else {
+ scr_LogPrint(LPRINT_LOGNORM, "Jingle event from %s cancelled.",
+ jn->initiator);
jingle_send_session_terminate(jn, "decline");
jingle_free_jinglenode(jn);
}
--- a/jingle/send.c Mon Jul 19 22:43:30 2010 +0200
+++ b/jingle/send.c Tue Jul 20 00:52:21 2010 +0200
@@ -24,6 +24,8 @@
#include <mcabber/xmpp_helper.h>
#include <mcabber/xmpp_defines.h>
+#include <mcabber/settings.h>
+#include <mcabber/logprint.h>
#include <jingle/jingle.h>
#include <jingle/sessions.h>
@@ -33,7 +35,7 @@
void jingle_send_session_terminate(JingleNode *jn, const gchar *reason)
{
LmMessage *r;
- LmMessageNode *err;
+ LmMessageNode *err,*err2;
JingleNode *reply = g_new0(JingleNode, 1);
JingleAckHandle *ackhandle;
@@ -44,8 +46,9 @@
if (r == NULL) return;
if (reason != NULL) {
+ err2 = lm_message_node_get_child(r->node, "jingle");
// TODO check reason
- err = lm_message_node_add_child(r->node, "reason", NULL);
+ err = lm_message_node_add_child(err2, "reason", NULL);
lm_message_node_add_child(err, reason, NULL);
}
@@ -95,6 +98,9 @@
if (description == NULL || err != NULL) continue;
transport = transfuncs->check(cn, &err);
if (transport == NULL || err != NULL) continue;
+
+ scr_log_print(LPRINT_DEBUG, "jingle: New content accepted: %s",
+ cn->name);
session_add_content(sess, cn, JINGLE_SESSION_STATE_ACTIVE);
accept.content = g_slist_append(accept.content, cn);