From: Richard W.M. Jones Date: Tue, 3 Jan 2012 17:36:15 +0000 (+0000) Subject: Add API: set-wrappid-path. X-Git-Url: http://git.annexia.org/?p=wrappi.git;a=commitdiff_plain;h=cf654cde5cfc9337e254934b23274e4a7b3432ba;hp=2c2b03cd99c55606d16e02b014a8a63055874867 Add API: set-wrappid-path. And remove the hard-coded path. --- diff --git a/APIs/handle.api b/APIs/handle.api index 6cbab8d..7afab28 100644 --- a/APIs/handle.api +++ b/APIs/handle.api @@ -21,3 +21,4 @@ entry_point local void connect () enum scheme ["local"; "ssh"] entry_point local void set_scheme (enum scheme scheme) entry_point local void set_hostname (string hostname) +entry_point local void set_wrappid_path (string wrappid) diff --git a/lib/connect.c b/lib/connect.c index e75ba53..bb28e19 100644 --- a/lib/connect.c +++ b/lib/connect.c @@ -66,6 +66,18 @@ wrap_set_hostname (wrap_h *w, const char *hostname) } void +wrap_set_wrappid_path (wrap_h *w, const char *wrappid) +{ + if (wrappid == NULL || strlen (wrappid) == 0 || wrappid[0] != '/') { + set_error ("invalid path"); + return; + } + w->wrappid_path = strdup (wrappid); + if (!w->wrappid_path) + set_error_errno ("strdup"); +} + +void wrap_int_make_request (wrap_h *w, int proc_nr, const void *args, void *ret) { switch (w->scheme) { diff --git a/lib/internal.h b/lib/internal.h index 311f030..1c98ca4 100644 --- a/lib/internal.h +++ b/lib/internal.h @@ -63,6 +63,7 @@ struct wrap_h { */ wrap_scheme_enum scheme; char *hostname; + char *wrappid_path; }; /* Declare an error, setting the error field in the handle. */ diff --git a/lib/proto-ssh.c b/lib/proto-ssh.c index 1b505f5..090d91f 100644 --- a/lib/proto-ssh.c +++ b/lib/proto-ssh.c @@ -69,7 +69,7 @@ wrap_int_connect_ssh (wrap_h *w) "ssh", "-T", "-o", "BatchMode=yes", "-e", "none", w->hostname, - "sh", "-c", /*XXX*/ "/home/rjones/d/wrappi/daemon/wrappid", + "sh", "-c", w->wrappid_path ? : "wrappid", NULL); perror ("ssh"); _exit (EXIT_FAILURE); diff --git a/lib/wrappi.c b/lib/wrappi.c index 3ea0449..6c31c70 100644 --- a/lib/wrappi.c +++ b/lib/wrappi.c @@ -52,6 +52,7 @@ wrap_close (wrap_h *w) fclose (w->wfp); free (w->hostname); + free (w->wrappid_path); free (w); }