diff --git a/src/lib66/svc/svc_send.c b/src/lib66/svc/svc_send.c index d3c54beebaa4d71ccf960c8c665236e78dac6df4..c6e6f2e69693088ef360d29c789924ec2eb3979d 100644 --- a/src/lib66/svc/svc_send.c +++ b/src/lib66/svc/svc_send.c @@ -23,24 +23,24 @@ #include <66/resolve.h> #include <66/ssexec.h> -int svc_send(ssexec_t *info,genalloc *ga,char const *sig,char const *const *envp) +int svc_send(ssexec_t *info, resolve_service_t *sv, unsigned int len, char const *sig) { log_flow() ; - size_t i = 0 ; - int nargc = 3 + genalloc_len(resolve_service_t,ga) ; + unsigned int pos = 0 ; + int nargc = 3 + len ; char const *newargv[nargc] ; unsigned int m = 0 ; - newargv[m++] = "fake_name" ; + newargv[m++] = "svc_send" ; newargv[m++] = sig ; - for (; i < genalloc_len(resolve_service_t,ga) ; i++) - newargv[m++] = genalloc_s(resolve_service_t,ga)[i].sa.s + genalloc_s(resolve_service_t,ga)[i].name ; + for (; pos < len ; pos++) + newargv[m++] = sv[pos].sa.s + sv[pos].name ; newargv[m++] = 0 ; - if (ssexec_svctl(nargc,newargv,envp,info)) + if (ssexec_svctl(nargc, newargv, (char const *const *) environ, info)) return 0 ; return 1 ;