X-Git-Url: http://git.indexdata.com/?p=simpleserver-moved-to-github.git;a=blobdiff_plain;f=SimpleServer.xs;h=230cd26bc7223d089de27c3584faa02a64120fcf;hp=692444075367238efd242fc3b1c549d74d3e2c70;hb=159d2f7d178c6870b07bb10fc8bcea009ad3e786;hpb=1b751697edf069ce1ca7c6b64c96304e4079ad4a diff --git a/SimpleServer.xs b/SimpleServer.xs index 6924440..230cd26 100644 --- a/SimpleServer.xs +++ b/SimpleServer.xs @@ -25,7 +25,10 @@ */ /*$Log: SimpleServer.xs,v $ -/*Revision 1.19 2003-09-09 11:40:10 mike +/*Revision 1.20 2003-09-09 20:12:38 mike +/*Return diagnostics on Init failure +/* +/*Revision 1.19 2003/09/09 11:40:10 mike /*(Finally!) support implementation-ID /* /*Revision 1.18 2003/01/03 09:05:41 sondberg @@ -1154,6 +1157,7 @@ bend_initresult *bend_init(bend_initrequest *q) hv_store(href, "IMP_NAME", 8, newSVpv("", 0), 0); hv_store(href, "IMP_VER", 7, newSVpv("", 0), 0); hv_store(href, "ERR_CODE", 8, newSViv(0), 0); + hv_store(href, "ERR_STR", 7, newSViv(0), 0); hv_store(href, "PEER_NAME", 9, newSVpv(q->peer_name, 0), 0); hv_store(href, "HANDLE", 6, newSVsv(&sv_undef), 0); hv_store(href, "PID", 3, newSViv(getpid()), 0); @@ -1201,6 +1205,9 @@ bend_initresult *bend_init(bend_initrequest *q) temp = hv_fetch(href, "ERR_CODE", 8, 1); status = newSVsv(*temp); + temp = hv_fetch(href, "ERR_STR", 7, 1); + err_str = newSVsv(*temp); + temp = hv_fetch(href, "HANDLE", 6, 1); handle= newSVsv(*temp); @@ -1210,6 +1217,10 @@ bend_initresult *bend_init(bend_initrequest *q) LEAVE; zhandle->handle = handle; r->errcode = SvIV(status); + ptr = SvPV(err_str, len); + r->errstring = (char *)odr_malloc(q->stream, len + 1); + strcpy(r->errstring, ptr); + sv_free(err_str); r->handle = zhandle; ptr = SvPV(id, len); q->implementation_id = (char *)xmalloc(len + 1);