From 2f58da2994b3e7dc206ccfc0af7a81c9bf63375b Mon Sep 17 00:00:00 2001 From: eugene Date: Tue, 28 Apr 2020 19:15:01 -0400 Subject: [PATCH] cziti log --- wintun-testing/cziti/sdk.c | 22 ++++++++++++++++++++-- wintun-testing/cziti/sdk.go | 6 ++++++ wintun-testing/cziti/sdk.h | 2 ++ wintun-testing/ziti-wintun/main.go | 6 ++++++ 4 files changed, 34 insertions(+), 2 deletions(-) diff --git a/wintun-testing/cziti/sdk.c b/wintun-testing/cziti/sdk.c index 9af9d420..034ef907 100644 --- a/wintun-testing/cziti/sdk.c +++ b/wintun-testing/cziti/sdk.c @@ -7,15 +7,33 @@ void libuv_stopper(uv_async_t *a) { uv_stop(a->loop); } +void setLogOut(intptr_t h) { + int fd = _open_osfhandle(h, _O_APPEND | _O_RDONLY); + + if (fd == -1) { + fprintf(stderr, "failed to get fd from handle: %d\n", errno); + fflush(stderr); + return; + } + + FILE *f = _fdopen(fd, "a+"); + if (f == NULL) { + fprintf(stderr, "setLogOut: %d\n", errno); + fflush(stderr); + return; + } + + ziti_set_log(f); +} + void libuv_init(libuv_ctx *lctx) { + init_debug(); lctx->l = uv_default_loop(); uv_async_init(lctx->l, &lctx->stopper, libuv_stopper); } void libuv_runner(void *arg) { - init_debug(); ZITI_LOG(INFO, "starting event loop"); - fflush(stdout); uv_loop_t *l = arg; uv_run(l, UV_RUN_DEFAULT); diff --git a/wintun-testing/cziti/sdk.go b/wintun-testing/cziti/sdk.go index 32af339c..e26359fb 100644 --- a/wintun-testing/cziti/sdk.go +++ b/wintun-testing/cziti/sdk.go @@ -12,6 +12,7 @@ import ( "encoding/json" "errors" "github.com/michaelquigley/pfxlog" + "os" "unsafe" ) @@ -28,7 +29,12 @@ func init() { C.libuv_init(_impl.libuvCtx) } +func SetLog(f *os.File) { + C.setLogOut(C.intptr_t(f.Fd())) +} + func Start() { + v := C.NF_get_version() log.Infof("starting ziti-sdk-c %s(%s)[%s]", C.GoString(v.version), C.GoString(v.revision), C.GoString(v.build_date)) diff --git a/wintun-testing/cziti/sdk.h b/wintun-testing/cziti/sdk.h index 2ad8dc26..5073cd95 100644 --- a/wintun-testing/cziti/sdk.h +++ b/wintun-testing/cziti/sdk.h @@ -23,4 +23,6 @@ void libuv_runner(void *arg); void libuv_run(libuv_ctx *lctx); void libuv_stop(libuv_ctx *lctx); +void setLogOut(intptr_t h); + extern const char** all_configs; \ No newline at end of file diff --git a/wintun-testing/ziti-wintun/main.go b/wintun-testing/ziti-wintun/main.go index 81031796..ecc43dea 100644 --- a/wintun-testing/ziti-wintun/main.go +++ b/wintun-testing/ziti-wintun/main.go @@ -96,6 +96,12 @@ func main() { fmt.Println("running") cziti.DnsInit(ipv4ip, 24) + logFile, err := os.OpenFile("cziti.log", os.O_RDWR | os.O_CREATE, 0644) + if err != nil { + panic(err) + } + cziti.SetLog(logFile) + cziti.Start() _, err = cziti.HookupTun(tunDevice, dns) if err != nil {