mirror of
https://git.freebsd.org/ports.git
synced 2025-05-20 02:53:10 -04:00
678 lines
20 KiB
Text
678 lines
20 KiB
Text
Index: include/lib.h
|
|
===================================================================
|
|
--- include/lib.h (revision 67)
|
|
+++ include/lib.h (revision 77)
|
|
@@ -1,6 +1,7 @@
|
|
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
+#include <stdint.h>
|
|
#include <sys/types.h>
|
|
#include <stdio.h>
|
|
#include <setjmp.h>
|
|
@@ -101,6 +102,7 @@
|
|
char *j_strdup(const char *str); /* provides NULL safe strdup wrapper */
|
|
char *j_strcat(char *dest, char *txt); /* strcpy() clone */
|
|
int j_strcmp(const char *a, const char *b); /* provides NULL safe strcmp wrapper */
|
|
+int j_strcasecmp(const char *a, const char *b); /* provides NULL safe strcasecmp wrapper */
|
|
int j_strncmp(const char *a, const char *b, int i); /* provides NULL safe strncmp wrapper */
|
|
int j_strncasecmp(const char *a, const char *b, int i); /* provides NULL safe strncasecmp wrapper */
|
|
int j_strlen(const char *a); /* provides NULL safe strlen wrapper */
|
|
@@ -299,10 +301,10 @@
|
|
|
|
|
|
typedef struct {
|
|
- unsigned long H[5];
|
|
- unsigned long W[80];
|
|
+ uint32_t H[5];
|
|
+ uint32_t W[80];
|
|
int lenW;
|
|
- unsigned long sizeHi,sizeLo;
|
|
+ uint32_t sizeHi,sizeLo;
|
|
} j_SHA_CTX;
|
|
|
|
|
|
Index: include/conference.h
|
|
===================================================================
|
|
--- include/conference.h (revision 67)
|
|
+++ include/conference.h (revision 77)
|
|
@@ -258,6 +258,7 @@
|
|
/* Adds extended presence info to a presence packet */
|
|
void add_status_code(xmlnode presence, char *status); /* add a muc status code to a presence stanza */
|
|
void add_room_status_codes(xmlnode presence, cnr room); /* add room specific status codes (logging, anonymous, ...) */
|
|
+int check_affiliation(GHashTable * ght, jid user, char * affiliation_name); /* Check if user as a particular affiliation */
|
|
int is_sadmin(cni master, jid user); /* Check if user is server admin */
|
|
int is_owner(cnr room, jid user); /* Check if user is room owner */
|
|
int is_admin(cnr room, jid user); /* Check if user is room admin */
|
|
Index: src/utils.c
|
|
===================================================================
|
|
--- src/utils.c (revision 67)
|
|
+++ src/utils.c (revision 77)
|
|
@@ -136,6 +136,45 @@
|
|
}
|
|
}
|
|
|
|
+/* Generic function to check if an user as a particular affiliation */
|
|
+int check_affiliation(GHashTable * ght, jid user, char * affiliation_name)
|
|
+{
|
|
+ char ujid[3072];
|
|
+
|
|
+ snprintf(ujid, sizeof(ujid), "%s@%s", user->user, user->server);
|
|
+
|
|
+ if(g_hash_table_lookup(ght, ujid) != NULL )
|
|
+ {
|
|
+ log_debug(NAME, "[%s] Is %s? >%s< - Yes (case 1)", FZONE, affiliation_name, jid_full(user));
|
|
+ return 1;
|
|
+ }
|
|
+
|
|
+ if(g_hash_table_lookup(ght, user->server) != NULL )
|
|
+ {
|
|
+ log_debug(NAME, "[%s] Is %s? >%s< - Yes (case 2)", FZONE, affiliation_name, jid_full(user));
|
|
+ return 1;
|
|
+ }
|
|
+
|
|
+ snprintf(ujid, sizeof(ujid), "%s@%s/%s", user->user, user->server, user->resource);
|
|
+
|
|
+ if(g_hash_table_lookup(ght, ujid) != NULL )
|
|
+ {
|
|
+ log_debug(NAME, "[%s] Is %s? >%s< - Yes (case 3)", FZONE, affiliation_name, jid_full(user));
|
|
+ return 1;
|
|
+ }
|
|
+
|
|
+ snprintf(ujid, sizeof(ujid), "%s/%s", user->server, user->resource);
|
|
+
|
|
+ if(g_hash_table_lookup(ght, ujid) != NULL )
|
|
+ {
|
|
+ log_debug(NAME, "[%s] Is %s? >%s< - Yes (case 4)", FZONE, affiliation_name, jid_full(user));
|
|
+ return 1;
|
|
+ }
|
|
+
|
|
+ log_debug(NAME, "[%s] Is %s? >%s< - No", FZONE, affiliation_name, jid_full(user));
|
|
+ return 0;
|
|
+}
|
|
+
|
|
/* Is the user a Service Admin? */
|
|
int is_sadmin(cni master, jid user)
|
|
{
|
|
@@ -159,62 +198,46 @@
|
|
/* Is the user an owner for that room */
|
|
int is_owner(cnr room, jid user)
|
|
{
|
|
- char ujid[2048];
|
|
- char cjid[2048];
|
|
-
|
|
if(room == NULL || user == NULL)
|
|
{
|
|
log_warn(NAME, "[%s] ERR: Missing variable in is_owner", FZONE);
|
|
return 0;
|
|
}
|
|
|
|
- snprintf(ujid, sizeof(ujid), "%s@%s", user->user, user->server);
|
|
- if(room->creator)
|
|
- {
|
|
- snprintf(cjid, sizeof(cjid), "%s@%s", room->creator->user, room->creator->server);
|
|
- }
|
|
- else
|
|
- {
|
|
- snprintf(cjid, sizeof(cjid), "@");
|
|
- }
|
|
-
|
|
log_debug(NAME, "[%s] Is Owner? >%s<", FZONE, jid_full(user));
|
|
|
|
/* Server admin can override */
|
|
if(is_sadmin(room->master, user))
|
|
+ {
|
|
+ log_debug(NAME, "[%s] Is Owner? >%s< - Yes (service admin)", FZONE, jid_full(user));
|
|
return 2;
|
|
- else if(j_strcmp(cjid, ujid) == 0)
|
|
+ }
|
|
+
|
|
+ if(room->creator && j_strcmp(user->user, room->creator->user) == 0 && j_strcmp(user->server, room->creator->server) == 0)
|
|
+ {
|
|
+ log_debug(NAME, "[%s] Is Owner? >%s< - Yes (creator)", FZONE, jid_full(user));
|
|
return 1;
|
|
- else if(g_hash_table_lookup(room->owner, ujid) != NULL )
|
|
- return 1;
|
|
- else
|
|
- return 0;
|
|
+ }
|
|
|
|
+ return check_affiliation(room->owner, user, "Owner");
|
|
}
|
|
|
|
/* Is the user in the admin affiliation list for that room */
|
|
int is_admin(cnr room, jid user)
|
|
{
|
|
- char ujid[2048];
|
|
-
|
|
if(room == NULL || user == NULL)
|
|
{
|
|
log_warn(NAME, "[%s] ERR: Missing variable in is_admin", FZONE);
|
|
return 0;
|
|
}
|
|
|
|
- snprintf(ujid, sizeof(ujid), "%s@%s", user->user, user->server);
|
|
- log_debug(NAME, "[%s] Is Admin? >%s<", FZONE, jid_full(user));
|
|
-
|
|
if(is_owner(room, user))
|
|
+ {
|
|
+ log_debug(NAME, "[%s] Is Admin? >%s< - Yes (owner)", FZONE, jid_full(user));
|
|
return 2;
|
|
+ }
|
|
|
|
- if(g_hash_table_lookup(room->admin, ujid) != NULL )
|
|
- return 1;
|
|
- else if(g_hash_table_lookup(room->admin, user->server) != NULL )
|
|
- return 1;
|
|
- else
|
|
- return 0;
|
|
+ return check_affiliation(room->admin, user, "Admin");
|
|
}
|
|
|
|
/* Is the user in the moderator role list for that room */
|
|
@@ -271,16 +294,12 @@
|
|
/* Is the user in the member affiliation list for that room */
|
|
int is_member(cnr room, jid user)
|
|
{
|
|
- char ujid[2048];
|
|
-
|
|
if(room == NULL || user == NULL)
|
|
{
|
|
log_warn(NAME, "[%s] ERR: Missing variable in is_member", FZONE);
|
|
return 0;
|
|
}
|
|
|
|
- snprintf(ujid, sizeof(ujid), "%s@%s", user->user, user->server);
|
|
-
|
|
/* Owner is automatically a member */
|
|
if(is_owner(room, user))
|
|
{
|
|
@@ -295,42 +314,19 @@
|
|
return 1;
|
|
}
|
|
|
|
- if(g_hash_table_lookup(room->member, ujid) != NULL )
|
|
- {
|
|
- log_debug(NAME, "[%s] Is Member? >%s< - Yes (case 1)", FZONE, jid_full(user));
|
|
- return 1;
|
|
- }
|
|
- else if(g_hash_table_lookup(room->member, user->server) != NULL )
|
|
- {
|
|
- log_debug(NAME, "[%s] Is Member? >%s< - Yes (case 2)", FZONE, jid_full(user));
|
|
- return 1;
|
|
- }
|
|
- else
|
|
- {
|
|
- log_debug(NAME, "[%s] Is Member? >%s< - No", FZONE, jid_full(user));
|
|
- return 0;
|
|
- }
|
|
+ return check_affiliation(room->member, user, "Member");
|
|
}
|
|
|
|
/* Is the user in the outcast affiliation list for that room */
|
|
int is_outcast(cnr room, jid user)
|
|
{
|
|
- char ujid[2048];
|
|
-
|
|
if(room == NULL || user == NULL)
|
|
{
|
|
log_warn(NAME, "[%s] ERR: Missing variable in is_outcast", FZONE);
|
|
return 0;
|
|
}
|
|
|
|
- snprintf(ujid, sizeof(ujid), "%s@%s", user->user, user->server);
|
|
-
|
|
- if(g_hash_table_lookup(room->outcast, ujid) != NULL )
|
|
- return 1;
|
|
- else if(g_hash_table_lookup(room->outcast, user->server) != NULL )
|
|
- return 1;
|
|
- else
|
|
- return 0;
|
|
+ return check_affiliation(room->outcast, user, "Outcast");
|
|
}
|
|
|
|
/* Only return 1 if visitor */
|
|
Index: src/conference_room.c
|
|
===================================================================
|
|
--- src/conference_room.c (revision 67)
|
|
+++ src/conference_room.c (revision 77)
|
|
@@ -1018,7 +1018,7 @@
|
|
|
|
if( nick == NULL)
|
|
{
|
|
- log_debug(NAME, "[%s] No receipient, returning error", FZONE);
|
|
+ log_debug(NAME, "[%s] No recipient, returning error", FZONE);
|
|
|
|
jutil_error(jp->x,TERROR_BAD);
|
|
deliver(dpacket_new(jp->x),NULL);
|
|
@@ -1031,6 +1031,15 @@
|
|
{
|
|
id = jid_new(xmlnode_pool(item), nick);
|
|
|
|
+ if (id == NULL)
|
|
+ {
|
|
+ log_debug(NAME, "[%s] Bad recipient, returning error", FZONE);
|
|
+ jutil_error(jp->x,TERROR_BAD);
|
|
+ deliver(dpacket_new(jp->x),NULL);
|
|
+
|
|
+ xmlnode_free(item);
|
|
+ return;
|
|
+ }
|
|
key = j_strdup(jid_full(jid_user(jid_fix(id))));
|
|
g_hash_table_insert(room->member, key, (void*)item);
|
|
}
|
|
@@ -1143,7 +1152,8 @@
|
|
if (cont == 0)
|
|
jutil_delay(node, jid_full(room->id));
|
|
|
|
- if(room->master->history > 0)
|
|
+ /* check if stanza contains a body tag and if history is activated */
|
|
+ if(xmlnode_get_tag_data(node,"body")!=NULL && room->master->history > 0)
|
|
{
|
|
|
|
hist_p = pool_new();
|
|
@@ -1426,7 +1436,7 @@
|
|
/* Create pool for room struct */
|
|
p = pool_new();
|
|
room = pmalloco(p, sizeof(_cnr));
|
|
- log_debug(NAME, "[%s] Malloc: _cnr = %d", FZONE, sizeof(_cnr));
|
|
+ log_debug(NAME, "[%s] Malloc: _cnr = %lu", FZONE, sizeof(_cnr));
|
|
room->p = p;
|
|
room->master = master;
|
|
|
|
@@ -1448,7 +1458,7 @@
|
|
|
|
/* Initialise room history */
|
|
room->history = pmalloco(p, sizeof(_cnh) * master->history); /* make array of xmlnodes */
|
|
- log_debug(NAME, "[%s] Malloc: history = %d", FZONE, sizeof(_cnh) * master->history);
|
|
+ log_debug(NAME, "[%s] Malloc: history = %lu", FZONE, sizeof(_cnh) * master->history);
|
|
|
|
/* Room time */
|
|
room->start = now;
|
|
@@ -1498,7 +1508,7 @@
|
|
|
|
room->creator = jid_new(room->p, jid_full(jid_user(admin->realid)));
|
|
|
|
- add_affiliate(room->owner, admin->realid, NULL);
|
|
+ add_affiliate(room->owner, jid_user(admin->realid), NULL);
|
|
|
|
log_debug(NAME, "[%s] Added new admin: %s to room %s", FZONE, jid_full(jid_fix(owner)), jid_full(room->id));
|
|
}
|
|
Index: src/roles.c
|
|
===================================================================
|
|
--- src/roles.c (revision 67)
|
|
+++ src/roles.c (revision 77)
|
|
@@ -73,14 +73,37 @@
|
|
xmlnode old;
|
|
xmlnode store;
|
|
xmlnode node;
|
|
- char ujid[2048];
|
|
+ char ujid[3072];
|
|
|
|
if(userid == NULL)
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
- snprintf(ujid, sizeof(ujid), "%s@%s", userid->user, userid->server);
|
|
+
|
|
+ if(userid->user == NULL)
|
|
+ {
|
|
+ if(userid->resource == NULL)
|
|
+ {
|
|
+ snprintf(ujid, sizeof(ujid), "%s", userid->server);
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ snprintf(ujid, sizeof(ujid), "%s/%s", userid->server, userid->resource);
|
|
+ }
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ if(userid->resource == NULL)
|
|
+ {
|
|
+ snprintf(ujid, sizeof(ujid), "%s@%s", userid->user, userid->server);
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ snprintf(ujid, sizeof(ujid), "%s@%s/%s", userid->user, userid->server, userid->resource);
|
|
+
|
|
+ }
|
|
+ }
|
|
old = g_hash_table_lookup(hash, ujid);
|
|
|
|
/* User not previously registered. Set up */
|
|
@@ -121,18 +144,42 @@
|
|
xmlnode old;
|
|
xmlnode store;
|
|
xmlnode node;
|
|
- char ujid[2048];
|
|
+ char ujid[3072];
|
|
|
|
if(userid == NULL)
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
- snprintf(ujid, sizeof(ujid), "%s@%s", userid->user, userid->server);
|
|
+ if(userid->user == NULL)
|
|
+ {
|
|
+ if(userid->resource == NULL)
|
|
+ {
|
|
+ snprintf(ujid, sizeof(ujid), "%s", userid->server);
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ snprintf(ujid, sizeof(ujid), "%s/%s", userid->server, userid->resource);
|
|
+ }
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ if(userid->resource == NULL)
|
|
+ {
|
|
+ snprintf(ujid, sizeof(ujid), "%s@%s", userid->user, userid->server);
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ snprintf(ujid, sizeof(ujid), "%s@%s/%s", userid->user, userid->server, userid->resource);
|
|
+
|
|
+ }
|
|
+ }
|
|
old = g_hash_table_lookup(hash, ujid);
|
|
|
|
if(old == NULL)
|
|
+ {
|
|
return 1;
|
|
+ }
|
|
|
|
store = xmlnode_dup(old);
|
|
|
|
@@ -158,14 +205,36 @@
|
|
xmlnode store;
|
|
xmlnode current;
|
|
char *userjid;
|
|
- char ujid[2048];
|
|
+ char ujid[3072];
|
|
|
|
if(userid == NULL)
|
|
{
|
|
return;
|
|
}
|
|
|
|
- snprintf(ujid, sizeof(ujid), "%s@%s", userid->user, userid->server);
|
|
+ if(userid->user == NULL)
|
|
+ {
|
|
+ if(userid->resource == NULL)
|
|
+ {
|
|
+ snprintf(ujid, sizeof(ujid), "%s", userid->server);
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ snprintf(ujid, sizeof(ujid), "%s/%s", userid->server, userid->resource);
|
|
+ }
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ if(userid->resource == NULL)
|
|
+ {
|
|
+ snprintf(ujid, sizeof(ujid), "%s@%s", userid->user, userid->server);
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ snprintf(ujid, sizeof(ujid), "%s@%s/%s", userid->user, userid->server, userid->resource);
|
|
+
|
|
+ }
|
|
+ }
|
|
store = g_hash_table_lookup(hash, ujid);
|
|
|
|
if(store == NULL)
|
|
Index: src/conference.c
|
|
===================================================================
|
|
--- src/conference.c (revision 67)
|
|
+++ src/conference.c (revision 77)
|
|
@@ -538,6 +538,15 @@
|
|
xmlnode_hide_attrib(jp->x, "type");
|
|
}
|
|
|
|
+ // clean the packet from any x muc#user tag
|
|
+ for( node = xmlnode_get_firstchild(jp->x); node != NULL; node = xmlnode_get_nextsibling(node)) {
|
|
+ if (xmlnode_get_name(node)==NULL || strcmp("x",xmlnode_get_name(node))!=0) continue; // check if the node is a "x" node
|
|
+ if(NSCHECK(node, NS_MUC_USER))
|
|
+ {
|
|
+ xmlnode_hide(node);
|
|
+ }
|
|
+ }
|
|
+
|
|
priority = jutil_priority(jp->x);
|
|
}
|
|
|
|
@@ -578,7 +587,7 @@
|
|
}
|
|
|
|
/* Don't allow user if locknicks is set and resource != JID user */
|
|
- if ( ((master->locknicks || room->locknicks) && (j_strcmp(jp->to->resource, jp->from->user) != 0)) && !is_sadmin(master, jp->from) ) {
|
|
+ if ( ((master->locknicks || room->locknicks) && (j_strcasecmp(jp->to->resource, jp->from->user) != 0)) && !is_sadmin(master, jp->from) ) {
|
|
log_debug(NAME, "[%s] Nicknames locked - Requested nick %s doesn't match required username %s",
|
|
FZONE, jp->to->resource, jp->from->user);
|
|
|
|
@@ -1079,7 +1088,7 @@
|
|
tp = pool_new();
|
|
|
|
/* Allocate space for cni struct and link to instance */
|
|
- log_debug(NAME, "[%s] Malloc: _cni=%d", FZONE, sizeof(_cni));
|
|
+ log_debug(NAME, "[%s] Malloc: _cni=%lu", FZONE, sizeof(_cni));
|
|
master = pmalloco(i->p, sizeof(_cni));
|
|
|
|
master->i = i;
|
|
Index: src/jcomp/jcr_log.c
|
|
===================================================================
|
|
--- src/jcomp/jcr_log.c (revision 67)
|
|
+++ src/jcomp/jcr_log.c (revision 77)
|
|
@@ -79,8 +79,8 @@
|
|
g_static_mutex_lock(&_jcr_log_lock);
|
|
va_start(ap, fmt);
|
|
vsnprintf(logmsg, 512, fmt, ap);
|
|
+ va_end(ap);
|
|
g_log(G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, "%s: %s", zone, logmsg);
|
|
- va_end(ap);
|
|
g_static_mutex_unlock(&_jcr_log_lock);
|
|
}
|
|
|
|
@@ -92,8 +92,8 @@
|
|
g_static_mutex_lock(&_jcr_log_lock);
|
|
va_start(ap, fmt);
|
|
vsnprintf(logmsg, 512, fmt, ap);
|
|
+ va_end(ap);
|
|
g_log(G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, "%s: %s", zone, logmsg);
|
|
- va_end(ap);
|
|
g_static_mutex_unlock(&_jcr_log_lock);
|
|
}
|
|
|
|
@@ -105,8 +105,8 @@
|
|
g_static_mutex_lock(&_jcr_log_lock);
|
|
va_start(ap, fmt);
|
|
vsnprintf(logmsg, 512, fmt, ap);
|
|
+ va_end(ap);
|
|
g_log(G_LOG_DOMAIN, G_LOG_LEVEL_MESSAGE, "%s: %s", zone, logmsg);
|
|
- va_end(ap);
|
|
g_static_mutex_unlock(&_jcr_log_lock);
|
|
}
|
|
|
|
@@ -118,8 +118,8 @@
|
|
g_static_mutex_lock(&_jcr_log_lock);
|
|
va_start(ap, fmt);
|
|
vsnprintf(logmsg, 512, fmt, ap);
|
|
+ va_end(ap);
|
|
g_log(G_LOG_DOMAIN, G_LOG_LEVEL_WARNING, "%s: %s", zone, logmsg);
|
|
- va_end(ap);
|
|
g_static_mutex_unlock(&_jcr_log_lock);
|
|
}
|
|
|
|
@@ -131,7 +131,7 @@
|
|
g_static_mutex_lock(&_jcr_log_lock);
|
|
va_start(ap, fmt);
|
|
vsnprintf(logmsg, 512, fmt, ap);
|
|
+ va_end(ap);
|
|
g_log(G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: %s", zone, logmsg);
|
|
- va_end(ap);
|
|
g_static_mutex_unlock(&_jcr_log_lock);
|
|
}
|
|
Index: src/jcomp/jcr_base_connect.c
|
|
===================================================================
|
|
--- src/jcomp/jcr_base_connect.c (revision 67)
|
|
+++ src/jcomp/jcr_base_connect.c (revision 77)
|
|
@@ -84,7 +84,7 @@
|
|
if (rc != G_IO_STATUS_NORMAL) {
|
|
log_warn(JDBG, "Opening XML stream failed, rc=%d", rc);
|
|
} else {
|
|
- log_debug(JDBG, "Opening XML stream: sent %d bytes", bytes);
|
|
+ log_debug(JDBG, "Opening XML stream: sent %lu bytes", bytes);
|
|
}
|
|
|
|
}
|
|
Index: src/jcomp/jcr_main_stream_error.c
|
|
===================================================================
|
|
--- src/jcomp/jcr_main_stream_error.c (revision 67)
|
|
+++ src/jcomp/jcr_main_stream_error.c (revision 77)
|
|
@@ -31,6 +31,7 @@
|
|
|
|
jcr->stream_state = _STREAM_INIT_STATE;
|
|
jcr->parser = XML_ParserCreate(NULL);
|
|
+ XML_SetDefaultHandler(jcr->parser, NULL);
|
|
XML_SetElementHandler(jcr->parser, (void *)jcr_start_element, (void *)jcr_end_element);
|
|
XML_SetCharacterDataHandler(jcr->parser, (void *)jcr_cdata);
|
|
XML_SetUserData(jcr->parser, NULL);
|
|
@@ -60,7 +61,6 @@
|
|
g_source_remove(jcr->gmain_watch_source);
|
|
g_io_channel_shutdown(jcr->gio, TRUE, NULL);
|
|
g_io_channel_unref(jcr->gio);
|
|
- g_io_channel_unref(jcr->gio);
|
|
close(jcr->fd);
|
|
|
|
|
|
Index: src/jcomp/jcr_deliver.c
|
|
===================================================================
|
|
--- src/jcomp/jcr_deliver.c (revision 67)
|
|
+++ src/jcomp/jcr_deliver.c (revision 77)
|
|
@@ -33,7 +33,7 @@
|
|
sleep(1);
|
|
}
|
|
|
|
- log_debug(JDBG, "queued %d bytes : >>> %s <<<", strlen(xmlnode2str(d->x)), xmlnode2str(d->x));
|
|
+ log_debug(JDBG, "queued %lu bytes : >>> %s <<<", strlen(xmlnode2str(d->x)), xmlnode2str(d->x));
|
|
g_async_queue_push(jcr->dqueue, d);
|
|
}
|
|
|
|
@@ -90,7 +90,7 @@
|
|
log_warn(JDBG, "Send packet failed, dropping packet");
|
|
}
|
|
|
|
- log_debug(JDBG, "wrote %d packets of %d bytes", pkts, bytes);
|
|
+ log_debug(JDBG, "wrote %d packets of %lu bytes", pkts, bytes);
|
|
// fprintf(stderr, "wrote %d packets of %d bytes\n", pkts, bytes);
|
|
if (left==0){
|
|
//queue is empty, flushing the socket
|
|
@@ -99,7 +99,7 @@
|
|
}
|
|
}
|
|
log_warn(JDBG, "packet delivery thread exiting.");
|
|
- log_warn(JDBG, " Last DvryQ Buffer='%.*s'", buffer->len, buffer->str);
|
|
+ log_warn(JDBG, " Last DvryQ Buffer='%.*s'", (int)buffer->len, buffer->str);
|
|
g_string_free(buffer, TRUE);
|
|
}
|
|
|
|
Index: src/jcomp/jcr_elements.c
|
|
===================================================================
|
|
--- src/jcomp/jcr_elements.c (revision 67)
|
|
+++ src/jcomp/jcr_elements.c (revision 77)
|
|
@@ -172,7 +172,7 @@
|
|
if (rc != G_IO_STATUS_NORMAL) {
|
|
if (gerr != NULL) {
|
|
log_warn(JDBG, "Main Channel Error: rc=%d, %d '%s' '%s'", rc,
|
|
- gerr->code, gerr->domain, gerr->message);
|
|
+ gerr->code, g_quark_to_string(gerr->domain), gerr->message);
|
|
g_error_free(gerr);
|
|
} else {
|
|
log_warn(JDBG, "Main Channel Error: rc=%d", rc);
|
|
@@ -186,7 +186,7 @@
|
|
|
|
if (XML_Parse(jcr->parser, jcr->recv_buffer, bytes_read, 0) == 0) {
|
|
log_warn(JDBG, "XML Parsing Error: '%s'", (char *)XML_ErrorString(XML_GetErrorCode(jcr->parser)));
|
|
- log_warn(JDBG, " Last Rcvd Buffer='%.*s'", bytes_read, jcr->recv_buffer);
|
|
+ log_warn(JDBG, " Last Rcvd Buffer='%.*s'", (int)bytes_read, jcr->recv_buffer);
|
|
jcr_main_close_stream();
|
|
return FALSE;
|
|
}
|
|
Index: src/jabberd/expat.c
|
|
===================================================================
|
|
--- src/jabberd/expat.c (revision 67)
|
|
+++ src/jabberd/expat.c (revision 77)
|
|
@@ -95,6 +95,7 @@
|
|
|
|
*x = NULL; /* pointer to NULL */
|
|
p = XML_ParserCreate(NULL);
|
|
+ XML_SetDefaultHandler(p, NULL);
|
|
XML_SetUserData(p, x);
|
|
XML_SetElementHandler(p, expat_startElement, expat_endElement);
|
|
XML_SetCharacterDataHandler(p, expat_charData);
|
|
@@ -128,6 +129,7 @@
|
|
|
|
*x = NULL; /* pointer to NULL */
|
|
p = XML_ParserCreate(NULL);
|
|
+ XML_SetDefaultHandler(p, NULL);
|
|
XML_SetUserData(p, x);
|
|
XML_SetElementHandler(p, expat_startElement, expat_endElement);
|
|
XML_SetCharacterDataHandler(p, expat_charData);
|
|
@@ -165,6 +167,7 @@
|
|
return "unable to open file";
|
|
|
|
p = XML_ParserCreate(NULL);
|
|
+ XML_SetDefaultHandler(p, NULL);
|
|
while(1)
|
|
{
|
|
len = read(fd, buf, BUFSIZ);
|
|
Index: src/jabberd/str.c
|
|
===================================================================
|
|
--- src/jabberd/str.c (revision 67)
|
|
+++ src/jabberd/str.c (revision 77)
|
|
@@ -65,11 +65,15 @@
|
|
if(a == NULL || b == NULL)
|
|
return -1;
|
|
|
|
- while(*a == *b && *a != '\0' && *b != '\0'){ a++; b++; }
|
|
+ return strcmp(a, b);
|
|
+}
|
|
|
|
- if(*a == *b) return 0;
|
|
+int j_strcasecmp(const char *a, const char *b)
|
|
+{
|
|
+ if(a == NULL || b == NULL)
|
|
+ return -1;
|
|
|
|
- return -1;
|
|
+ return strcasecmp(a, b);
|
|
}
|
|
|
|
int j_strncmp(const char *a, const char *b, int i)
|
|
Index: src/jabberd/sha.c
|
|
===================================================================
|
|
--- src/jabberd/sha.c (revision 67)
|
|
+++ src/jabberd/sha.c (revision 77)
|
|
@@ -50,7 +50,7 @@
|
|
*/
|
|
for (i = 0; i < len; i++) {
|
|
ctx->W[ctx->lenW / 4] <<= 8;
|
|
- ctx->W[ctx->lenW / 4] |= (unsigned long)dataIn[i];
|
|
+ ctx->W[ctx->lenW / 4] |= (uint32_t)dataIn[i];
|
|
if ((++ctx->lenW) % 64 == 0) {
|
|
shaHashBlock(ctx);
|
|
ctx->lenW = 0;
|
|
@@ -109,7 +109,7 @@
|
|
|
|
static void shaHashBlock(j_SHA_CTX *ctx) {
|
|
int t;
|
|
- unsigned long A,B,C,D,E,TEMP;
|
|
+ uint32_t A,B,C,D,E,TEMP;
|
|
|
|
for (t = 16; t <= 79; t++)
|
|
ctx->W[t] =
|