コード例 #1
0
void sipe_backend_chat_add(struct sipe_backend_chat_session *backend_session,
			   const gchar *uri,
			   gboolean is_new)
{
	SIPPROTO *pr = backend_session->pr;
	struct sipe_core_public *sipe_public = pr->sip;
	gchar *self = sipe_miranda_uri_self(pr);
	GCDEST gcd = {0};
	GCEVENT gce = {0};
	int retval;
	HANDLE hContact = sipe_backend_buddy_find( sipe_public, uri, NULL );
	gchar *nick = sipe_miranda_getContactString(pr, hContact, "Nick");

	SIPE_DEBUG_INFO("sipe_backend_chat_add: Adding user <%s> to chat <%s>", uri, backend_session->conv);

	gcd.pszModule = pr->proto.m_szModuleName;
	gcd.pszID = backend_session->conv;
	gcd.iType = GC_EVENT_JOIN;

	gce.cbSize = sizeof(gce);
	gce.pDest = &gcd;
	gce.pszNick = nick;
	gce.pszUID = uri;
	gce.pszStatus = "Normal";
	gce.bIsMe = !strcmp(self, uri);

	g_free(self);
	retval = CallService( MS_GC_EVENT, 0, (LPARAM)&gce );
	if (retval) {
		SIPE_DEBUG_WARNING("sipe_backend_chat_add: Failed to add user to chat: <%d>", retval);
	}
	mir_free(nick);
}
コード例 #2
0
ファイル: sipe-xml.c プロジェクト: rravinuthala/sipe
static void callback_serror(void *user_data, xmlErrorPtr error)
{
	struct _parser_data *pd = user_data;

	if (error && (error->level == XML_ERR_ERROR ||
	              error->level == XML_ERR_FATAL)) {
		pd->error = TRUE;
		SIPE_DEBUG_ERROR("XML parser error: Domain %i, code %i, level %i: %s",
				 error->domain, error->code, error->level,
				 error->message ? error->message : "(null)");
	} else if (error) {
		SIPE_DEBUG_WARNING("XML parser error: Domain %i, code %i, level %i: %s",
		                   error->domain, error->code, error->level,
				   error->message ? error->message : "(null)");
	} else {
		/* *sigh* macro expects at least two parameters */
		SIPE_DEBUG_WARNING_NOFORMAT("XML parser error");
	}
}