I have built a
service based on the jud-0.4 service and found that after using the search
feature twice with the type = 'set' communications to the client stopped.
I then tried it with the jud service and the same thing happened. I set
the server in debug mode and looked at the messages it spit out. I found
that it always received the messages form the client, processed the request, but
when it did the deliver it did not send it to the client.
I reviewed the code
and just started commenting things out and found the offending line of
code. I modified the code slightly and it worked, but the modification
from my perspective was benign.
jud_search.c
85-96
case
JPACKET__SET:
/* create result container
*/
jutil_iqresult(p->x);
q = xmlnode_insert_tag(p->x, "query");
xmlnode_put_attrib(q,"xmlns",NS_SEARCH);
jutil_iqresult(p->x);
q = xmlnode_insert_tag(p->x, "query");
xmlnode_put_attrib(q,"xmlns",NS_SEARCH);
/* XXX-REPLACE-WITH-HASHES&INDEXES! BRUTE FORCE spin through all the entries
finding the matches and copying them into the result
*/
p->aux1 = (void*)q;
xhash_walk(j->users,jud_search_walk,(void*)p);
p->aux1 = (void*)q;
xhash_walk(j->users,jud_search_walk,(void*)p);
break;
If I removed the
following it worked
xmlnode_put_attrib(q,"xmlns",NS_SEARCH);
or modified as
follows
xmlnode_put_attrib(q,"xmlns","data");
I have had no other
problems with the server I am running It under RH7, JS Version: 1.4.1 OS: Linux
2.2.17-14 compiled it as specified in the docs.
I was wondering if
this is a known problem? If so what should I do to correct
this?
I do not understand
why changing that line made a diff on how it sent it back to the
client.
Any help would be
appreciated.
heg
"If at first the idea is not absurd, then there is
no hope for it." - Albert Einstein
