Code Monkey home page Code Monkey logo

ziti-sdk-c's Introduction

Ziggy using the ziti-sdk-c

OpenZiti C SDK

Build Status

The OpenZiti C SDK allows developers to create their own custom OpenZiti network endpoint applications.

OpenZiti is a modern, programmable network overlay with associated edge components, for application-embedded, zero trust network connectivity, written by developers for developers. The SDK harnesses that power via APIs that allow developers to imagine and develop solutions beyond what OpenZiti handles by default.

This SDK does the following:

Configuring Your Application to use OpenZiti C SDK

The easiest way to embed Ziti SDK in your app is to pull the project into your CMake build

FetchContent_Declare(ziti-sdk-c
        GIT_REPOSITORY https://github.com/openziti/ziti-sdk-c.git
        GIT_TAG ${LATEST_ZITI_RELEASE}
        )
FetchContent_MakeAvailable(ziti-sdk-c)

# ...
# ...

add_executable(most-secure-app-ever ${my_sources})
target_link_libraries(most-secure-app-ever PRIVATE ziti)

You will also need other libraries that OpenZiti SDK uses (they are specified in vcpkg.json):

library usage
libuv event loop
openssl TLS
zlib HTTPS compression
llhttp HTTP parsing
libsodium OpenZiti end-to-end encryption

There are multiple ways to get those 3rd party dependencies into your build: system level, CMake FetchContent, vcpkg, etc. We recommend using vcpkg.

If you want to contribute/build/hack this SDK in standalone mode see the BUILD.md for information on how to do it.

Using OpenZiti in Your Application

High-Level (Zitilib) API

The high-level API was developed to simplify embedding OpenZiti in an application. The main feature of this API is presenting Ziti connections as regular socket file descriptors (or handles on Windows). These sockets can be used both blocking and non-blocking modes.

SDK Initialization and Teardown

There are just three functions that cover SDK initialization and teardown.

function purpose
Ziti_lib_init() initializes Ziti SDK background event loop that runs all internal SDK tasks
Ziti_load_context() loads an enrolled ziti identity from the provided file
Ziti_lib_shutdown() gracefully shuts down all loaded identities and terminates the event loop
#include <ziti/zitilib.h>

int main(int argc, char *argv[]) {

    const char *identity_file = process_args(argc, argv);

    Ziti_lib_init();
    ziti_context ztx = Ziti_load_context(identity_file);

    ...


    Ziti_lib_shutdown();
}

Once ziti_context is loaded it can be used to dial a service or bind to a service (provided the identity has proper access to it).

Dialing a service

function usage
Ziti_connect(sock, ztx, service, terminator) connects given socket to the service/terminator within the context
Ziti_connect_addr(sock, hostname, port) connects given socket to the specified intercept address
      ziti_socket_t sock = Ziti_socket(SOCK_STREAM);
      int error = Ziti_connect(sock, ztx, "my-secure-service", NULL);

      // use sock as normal socket
      do {
          write(sock, ...);
          read(sock, ...);

      } while (!done);

      close(sock);

Binding to a service

function usage
Ziti_bind(srv, ztx, service, terminator) binds given socket to the service/terminator within the context
Ziti_listen(sock, backlog) sets maximum number of pending inbound connections (similar to TCP backlog)
Ziti_accept(srv, caller, caller_len) accepts incoming connection and returns peer socket/handle
      ziti_socket_t srv = Ziti_socket(SOCK_STREAM);
      int error = Ziti_bind(srv, ztx, "my-secure-service", NULL);
      Ziti_listen(srv, 10); // sets accept backlog

      do {
          char caller[128];
          ziti_socket_t clt = Ziti_accept(srv, caller, (int)sizeof(caller));

          // use client as normal socket
          process_client(clt);

      } while (!done);

      close(srv);

Getting Help


Please use these community resources for getting help. We use GitHub issues for tracking bugs and feature requests and have limited bandwidth to address them.

Copyright© 2018-2023. NetFoundry, Inc.

ziti-sdk-c's People

Contributors

0xc0dedad avatar andrewpmartinez avatar dovholuknf avatar ekoby avatar gberl002 avatar mary-dcouto avatar michaelquigley avatar mjtrangoni avatar nicfragale avatar plorenz avatar qrkourier avatar rentallect avatar scareything avatar smilindave26 avatar tomc797 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ziti-sdk-c's Issues

Implement disabling/enabling of Ziti context

Here is the things that happen on disable:

  • active ziti_connections are disconnected, appropriate callback receives ZITI_DISABLED error code
  • ZitiServiceEvent is sent with all current services removed
  • connections to Edge Routers are closed, with corresponding ZitiEdgeRouteEvents
  • ziti_context terminates API session (controller /logout), with corresponding ZitiContextEvent
  • all model data (services, sessions, api session) is freed

if context is disabled it can be re-enabled/restarted by calling ziti_set_enabled(ztx, true). Re-enabling puts it back into
running state

Multiple simultaneous calls to NF_init() hangs the C-SDK

to reproduce, just call NF_init() multiple times in a row:

     NF_init();
     NF_init();
     NF_init();

The NodeJS-SDK, while handling some startup sequences in an Electron app, sometimes does multiple NF_init() calls to the C-SDK, and experiences hangs.

CRASH: Unaddressable router causes crash

  • Created multiple edge routers - one edge router is 'private' (others are all public)
  • last error shown before crash is:
    [2021-06-24T17:45:56.681Z] ERROR SDKe: _deps/uv-mbed-src/src/tls_link.c:113 TLS read -4077(connection reset by peer)
  • SDK Version 0.22.5(8f2de59)[Thu-06/03/2021-10:07:07--04] has this issue as does 0.23.x

updating a configuration in controller doesn't result in callback

When renaming a service the CSDK will get two service callbacks - one with ZITI_SERVICE_UNAVAILABLE and one with ZITI_OK. This will allow an sdk-based app to remove an intercept/add it back properly.

If the config for that service changes - the CSDK will get a service callback with ZITI_OK only.

steps to reproduce

  • establish a service in controller
  • establish a csdk session to the service
  • update the service's config
  • observe ZITI_OK callback only

Use UTC for log messages

Time since startup is "ok" for log messages but it's really hard to read as a human. It'd be much better to have the log output UTC time instead.

Local time is easier for users but for debugging purposes it's probably easier to use UTC?

Assertion Failure in tcp.c, Line 1063

Had a user indicate the ziti desktop edge for windows was crashing. They are on Ziti C SDK version 0.17.8-local @9dec2f9(HEAD) starting at (.706)

File: _deps/libuv-src/src/win/tcp.c, Line 1063
Expression: handle->reqs_pending > 0

logs when it happens:

[        4.008] INFO	:sdk.c:55 libuv_runner(): starting event loop
[        4.013] INFO	ziti-tunnel-sdk-c:lib/ziti_tunnel.c:44 ziti_tunneler_init(): Ziti Tunneler SDK (v0.7.10)
[        7.938] INFO	ziti-sdk:ps/ziti-sdk-c-src/library/ziti.c:194 ziti_init_opts(): Ziti C SDK version 0.17.8-local @9dec2f9(HEAD) starting at (.980)
_deps/uv-mbed-src/src/tls_link.c:125 ERR TLS handshake error X509 - Certificate verification failed, e.g. CRL, CA or signature check failed
_deps/uv-mbed-src/src/http.c:74 ERR connection error before active request could complete -4079 (software caused connection abort)
[        8.422] ERROR	ziti-sdk:ps/ziti-sdk-c-src/library/ziti.c:672 version_cb(): failed to get controller version from 107.22.221.166:443 CONTROLLER_UNAVAILABLE(software caused connection abort)
_deps/uv-mbed-src/src/http.c:74 ERR connection error before active request could complete -4095 (end of file)
[        8.662] ERROR	ziti-sdk:ps/ziti-sdk-c-src/library/ziti.c:637 session_cb(): failed to login: CONTROLLER_UNAVAILABLE[-15](end of file)
[        8.665] INFO	ziti-sdk:ps/ziti-sdk-c-src/library/ziti.c:194 ziti_init_opts(): Ziti C SDK version 0.17.8-local @9dec2f9(HEAD) starting at (.706)

nf_connection is leaking

Right now it seems as though NF_close would reclaim the memory for a connection but the connection is not getting free'd.

Better payload handling

  • avoid hitting fabric MTU (split up large writes)
  • allow app to specify stream semantics: coalesce small writes
  • put multiple (small) payloads into a single message when appropriate -- improve tunnelling UDP streams over ziti

model_support.c _parse_string does not allow for unicode escaped string processing

i had an http response come back with

issuer=ziti.dev\u0026secret=NHV434VTKE

inside it. this cased a segfault. the log clearly states what happened

[2021-03-02T21:17:18.737Z] ERROR        SDKe: _deps/ziti-sdk-c-src/library/model_support.c:620 _parse_string()  unhandled escape seq '\u'
[2021-03-02T21:17:18.738Z] TRACE        cleaning identity: theId
Thread 15 received signal SIGSEGV, Segmentation fault.```

Provide name of enrolled identity

The identity name is no longer part of the JWT and want to show it in the UI. Also need to support updating when name changes (either allow it to be queried again or notify via a callback when it's available or changes)

improve controller communication

request to controller should be made on the event loop instead of background thread
enable periodic polling of available services

ziti_get_identity returns ziti_identity without tags

the c sdk appears to be parsing the response from /authenticate?method=cert in order to hydrate the ziti_identity however this endpoint returns an api-session and not an actual identity. This leaves the tags null.

Please provide a mechanism to fetch the tags for a given identity.

Issues building library package for CentOS/RHEL 8

My first attempt at building a library package for ziti sdk shared library fails around libsodium.
Since the distribution has already libsodium, I have installed libsodium-devel and essentially running cmake with -DHAVE_LIBSODIUM=ON however that fails with:

Unknown arguments specified

Whether I pass it as a cmd line option to make or change the option to default to ON in CMakeLists.txt, the same thing happens.

segv from windows desktop edge

Thread 16 received signal SIGSEGV, Segmentation fault.
[Switching to Thread 21244.0x764c]
0x000000006ec927b4 in ziti_connect (ctx=0x2d616650, session=0x2d606080, req=0x2d6065d0) at _deps/ziti-sdk-c-src/library/connect.c:253
253         for (er = session->edge_routers; *er != NULL; er++) {

multiple calls to nf_conn_cb on failed connection

Scenario:

  • Attempt to connect to a service that is not available
  • nf_conn_cb is called with "Service not available"
  • nf_conn_cb is called again with "Operation did not complete in time"

Expected:

  • nf_conn_cb is only called once (so app developer knows it's safe to clean up resources if the call indicates an error connecting the service)

Add event for blocked connection due to MFA

I have enabled MFA on an my chat-enabled identity. Right now when I wake my laptop from sleep I am required to MFA yet to the chat app it appears as though I have no connection. It would be useful for a tunneling app (or a ziti-integrated app) to realize MFA was necessary at that time and prompt the user

issuing ziti_shutdown on windows produces Assertion failure

Steps to reproduce:

  • connect an identity
  • verify things work properly
  • try to reclaim memory/remove identity using ziti_shutdown
  • observe:
Assertion failed!

Program: c:\git\github\openziti\ziti-tunnel-win\service\ziti-tunnel.exe
File: ../deps/ziti-sdk-c/deps/uv-mbed/deps/libuv/src/win/async.c, Line 76

Expression: !(handle->flags & UV_HANDLE_CLOSING)

README for sample_http_link

sample_http_link.c, both as client and server need a quick write up on how to use ziti cli to use the samples. let's make a quick README.md

SDK crash after connect time out

timeout frees up connect request, and when connection accept message comes in SDK gets SEGV when trying to finish connection processing

Passing bogus config file location to NF_init() will cause SDK to crash

Currently, the stack variable cfg is not initialized by load_config() if it fails to find a valid config file. The subsequent call to free_nf_config(cfg) will cause an attempt to free a bogus memory location because the cfg variable contains garbage.

This error currently manifests in a MattermoZt arena as a spinning logo during the init/connect sequence, because the SDK crash terminates the Electron renderer process.

Connection:close from client causes error

When a client sends an HTTP request via um_http_req and the request includes a Connection:close header, the request fails with the following:

ERROR _deps/uv-mbed-src/src/http.c:74 connection error before active request could complete -4095 (end of file)

rework ziti_close() and ziti_connection lifecycle

fix/improve constency of ziti_connection lifecycle:

  • currently ZITI_EOF must be handled differently from other errors by the application code
  • may need to require app to call ziti_close() even after receiving error on ziti_conn
  • ziti_close() with a callback -- make it closer to libuv standards

clients unable to connect to hosted services after hosting channel is reconnected

I've been seeing this often when trying to connect a service after my dev box wakes up from sleep:

Client

[ 0.027] INFO cmake-build-debug/_deps/ziti-sdk-c-src/library/ziti.c:226 ziti_init_async() ztx[0] Ziti C SDK version 0.20.12 @a48c51a(HEAD) starting at (2021-02-19T15:52:04.236)

[   104030.564]    INFO cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:627 hello_reply_cb() ch[0] connected. EdgeRouter version: v0.0.0|local|2020-01-01 01:01:01|amd64|darwin
[   104033.418]    INFO cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:627 hello_reply_cb() ch[1] connected. EdgeRouter version: v0.0.0|local|2020-01-01 01:01:01|amd64|linux
[   230158.461]    INFO lib/tunnel_tcp.c:93 new_tcp_pcb() snd_wnd: 65535, snd_snd_max: 65535, mss: 32768
[   230158.461]    INFO lib/tunnel_tcp.c:368 recv_tcp() intercepted address[tcp:1.1.1.1:21169] client[tcp:100.64.0.0:54614] service[netcat-v2]
[   230163.690]    WARN cmake-build-debug/_deps/ziti-sdk-c-src/library/connect.c:841 connect_reply_cb() conn[0.9] session for service[netcat-v2] became invalid
[   230163.834]   ERROR cmake-build-debug/_deps/ziti-sdk-c-src/library/connect.c:863 connect_reply_cb() conn[0.9] failed to connect, reason=service PLEbGXrSx has no terminators
[   230163.834]   ERROR lib/ziti_tunnel_cbs.c:29 on_ziti_connect() ziti dial failed: connection is closed
[   230163.834]    INFO lib/ziti_tunnel.c:384 ziti_tunneler_close() closing connection: service=netcat-v2, client=tcp:100.64.0.0:54614

Host

[ 0.136] INFO cmake-build-debug/_deps/ziti-sdk-c-src/library/ziti.c:224 ziti_init_async() ztx[0] Ziti C SDK version 0.20.12 @a48c51a(HEAD) starting at (2021-02-19T19:10:10.173)

[   211173.630]   ERROR cmake-build-debug/_deps/uv-mbed-src/src/tls_link.c:113 TLS read -104(connection reset by peer)
[   211173.630]    INFO cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:790 on_channel_data() ch[0] channel was closed [-104/connection reset by peer]
[   211173.630]    INFO cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:717 reconnect_channel() ch[0] reconnecting in 9411 ms (attempt = 1)
[   211183.363]    INFO cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:627 hello_reply_cb() ch[0] connected. EdgeRouter version: v0.0.0|local|2020-01-01 01:01:01|amd64|darwin

Connections succeed after the hosting tunneler is restarted.

Crash on network change

Screen Shot 2021-11-08 at 4 06 56 PM

[    19948.816]   ERROR cmake-build-debug/_deps/uv-mbed-src/src/tcp_src.c:101 connect failed: -49(address not available)
[    19948.816] VERBOSE cmake-build-debug/_deps/uv-mbed-src/src/http.c:212 src connected status = -49
[    19948.816]   DEBUG cmake-build-debug/_deps/uv-mbed-src/src/http.c:231 failed to connect: -49(address not available)
[    19948.816] VERBOSE cmake-build-debug/_deps/ziti-sdk-c-src/library/ziti_ctrl.c:684 ctrl_paging_req() requesting /services?limit=25&offset=0
[    19948.816] VERBOSE cmake-build-debug/_deps/ziti-sdk-c-src/library/ziti.c:849 update_services() ztx[0] scheduling service refresh 10 seconds from now
[    19948.816]   ERROR cmake-build-debug/_deps/ziti-sdk-c-src/library/ziti.c:855 update_services() ztx[0] failed to get service updates err[CONTROLLER_UNAVAILABLE/address not available] from ctrl[https://3.210.34.143:443]
[    19950.477]   DEBUG cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:717 reconnect_cb() ch[5] connecting to 3.109.234.45:443
[    19950.478]   ERROR cmake-build-debug/_deps/uv-mbed-src/src/tcp_src.c:101 connect failed: -49(address not available)
[    19950.478]    WARN cmake-build-debug/_deps/uv-mbed-src/src/uv_mbed.c:125 failed to connect
[    19950.478]   ERROR cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:856 on_channel_connect_internal() ch[5] failed to connect [-49/address not available]
[    19950.478]    INFO cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:743 reconnect_channel() ch[5] reconnecting in 4686 ms (attempt = 3)
[    19950.490]   DEBUG lib/ziti-tunnel-cbs/ziti_tunnel_ctrl.c:170 process_cmd() processing command[GetMetrics] with data[{"id":"/Users/scarey/.ziti/mop/mattermost.shawn.carey.pc_Enrollment.json"}]
[    19953.333]   DEBUG cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:717 reconnect_cb() ch[3] connecting to 129.159.89.151:443
[    19953.334]   ERROR cmake-build-debug/_deps/uv-mbed-src/src/tcp_src.c:101 connect failed: -49(address not available)
[    19953.334]    WARN cmake-build-debug/_deps/uv-mbed-src/src/uv_mbed.c:125 failed to connect
[    19953.334]   ERROR cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:856 on_channel_connect_internal() ch[3] failed to connect [-49/address not available]
[    19953.334]    INFO cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:743 reconnect_channel() ch[3] reconnecting in 14799 ms (attempt = 3)
[    19953.949]   DEBUG cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:717 reconnect_cb() ch[0] connecting to 129.159.71.35:443
[    19953.950]   ERROR cmake-build-debug/_deps/uv-mbed-src/src/tcp_src.c:101 connect failed: -49(address not available)
[    19953.950]    WARN cmake-build-debug/_deps/uv-mbed-src/src/uv_mbed.c:125 failed to connect
[    19953.950]   ERROR cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:856 on_channel_connect_internal() ch[0] failed to connect [-49/address not available]
[    19953.950]    INFO cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:743 reconnect_channel() ch[0] reconnecting in 56681 ms (attempt = 5)
[    19955.165]   DEBUG cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:717 reconnect_cb() ch[5] connecting to 3.109.234.45:443
[    19955.165]   ERROR cmake-build-debug/_deps/uv-mbed-src/src/tcp_src.c:101 connect failed: -49(address not available)
[    19955.165]    WARN cmake-build-debug/_deps/uv-mbed-src/src/uv_mbed.c:125 failed to connect
[    19955.165]   ERROR cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:856 on_channel_connect_internal() ch[5] failed to connect [-49/address not available]
[    19955.165]    INFO cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:743 reconnect_channel() ch[5] reconnecting in 20400 ms (attempt = 4)
[    19955.491]   DEBUG lib/ziti-tunnel-cbs/ziti_tunnel_ctrl.c:170 process_cmd() processing command[GetMetrics] with data[{"id":"/Users/scarey/.ziti/mop/mattermost.shawn.carey.pc_Enrollment.json"}]
[    19956.670]   DEBUG cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:717 reconnect_cb() ch[6] connecting to 129.151.44.40:443
[    19956.672]   ERROR cmake-build-debug/_deps/uv-mbed-src/src/tcp_src.c:101 connect failed: -49(address not available)
[    19956.672]    WARN cmake-build-debug/_deps/uv-mbed-src/src/uv_mbed.c:125 failed to connect
[    19956.672]   ERROR cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:856 on_channel_connect_internal() ch[6] failed to connect [-49/address not available]
[    19956.672]    INFO cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:743 reconnect_channel() ch[6] reconnecting in 127513 ms (attempt = 5)
[    19958.225]   DEBUG cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:717 reconnect_cb() ch[2] connecting to 129.151.45.194:443
[    19958.227]   ERROR cmake-build-debug/_deps/uv-mbed-src/src/tcp_src.c:101 connect failed: -49(address not available)
[    19958.227]    WARN cmake-build-debug/_deps/uv-mbed-src/src/uv_mbed.c:125 failed to connect
[    19958.227]   ERROR cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:856 on_channel_connect_internal() ch[2] failed to connect [-49/address not available]
[    19958.227]    INFO cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:743 reconnect_channel() ch[2] reconnecting in 3217 ms (attempt = 4)
[    19958.315] VERBOSE lib/ziti-tunnel/tunnel_tcp.c:342 recv_tcp() received SYN on active connection: client=tcp:192.168.0.0:60299, service=mattermost.tools.netfoundry.io
[    19958.817] VERBOSE cmake-build-debug/_deps/uv-mbed-src/src/http.c:352 client not connected, starting connect sequence
[    19958.818]   ERROR cmake-build-debug/_deps/uv-mbed-src/src/tcp_src.c:101 connect failed: -49(address not available)
[    19958.818] VERBOSE cmake-build-debug/_deps/uv-mbed-src/src/http.c:212 src connected status = -49
[    19958.818]   DEBUG cmake-build-debug/_deps/uv-mbed-src/src/http.c:231 failed to connect: -49(address not available)
[    19958.818] VERBOSE cmake-build-debug/_deps/ziti-sdk-c-src/library/ziti_ctrl.c:684 ctrl_paging_req() requesting /services?limit=25&offset=0
[    19958.818] VERBOSE cmake-build-debug/_deps/ziti-sdk-c-src/library/ziti.c:849 update_services() ztx[0] scheduling service refresh 10 seconds from now
[    19958.818]   ERROR cmake-build-debug/_deps/ziti-sdk-c-src/library/ziti.c:855 update_services() ztx[0] failed to get service updates err[CONTROLLER_UNAVAILABLE/address not available] from ctrl[https://3.210.34.143:443]
[    19960.100]   DEBUG cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:717 reconnect_cb() ch[1] connecting to 129.146.214.27:443
[    19960.101]   ERROR cmake-build-debug/_deps/uv-mbed-src/src/tcp_src.c:101 connect failed: -49(address not available)
[    19960.101]    WARN cmake-build-debug/_deps/uv-mbed-src/src/uv_mbed.c:125 failed to connect
[    19960.101]   ERROR cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:856 on_channel_connect_internal() ch[1] failed to connect [-49/address not available]
[    19960.101]    INFO cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:743 reconnect_channel() ch[1] reconnecting in 7074 ms (attempt = 3)
[    19960.491]   DEBUG lib/ziti-tunnel-cbs/ziti_tunnel_ctrl.c:170 process_cmd() processing command[GetMetrics] with data[{"id":"/Users/scarey/.ziti/mop/mattermost.shawn.carey.pc_Enrollment.json"}]
[    19960.836]   DEBUG lib/ziti-tunnel/tunnel_tcp.c:109 new_tcp_pcb() snd_wnd: 65535, snd_snd_max: 65535, mss: 32768
[    19960.836]    INFO lib/ziti-tunnel/tunnel_tcp.c:386 recv_tcp() intercepted address[tcp:192.168.0.10:443] client[tcp:192.168.0.0:60322] service[mattermost.tools.netfoundry.io]
[    19960.836] VERBOSE lib/ziti-tunnel-cbs/ziti_tunnel_cbs.c:294 ziti_sdk_c_dial() ziti_dial(name=mattermost.tools.netfoundry.io)
[    19960.836]   DEBUG lib/ziti-tunnel-cbs/ziti_tunnel_cbs.c:360 ziti_sdk_c_dial() service[mattermost.tools.netfoundry.io] app_data_json[174]='{"dst_protocol":"tcp","dst_hostname":"mattermost.tools.netfoundry.io","dst_ip":"192.168.0.10","dst_port":"443","src_protocol":"tcp","src_ip":"192.168.0.0","src_port":"60322"}'
[    19960.836] VERBOSE cmake-build-debug/_deps/ziti-sdk-c-src/library/connect.c:94 conn_set_state() conn[0.298] transitioning Initial => Connecting
[    19960.836] VERBOSE cmake-build-debug/_deps/ziti-sdk-c-src/library/posture.c:183 ziti_send_posture_data() ztx[0] starting to send posture data
[    19960.836]   DEBUG cmake-build-debug/_deps/ziti-sdk-c-src/library/posture.c:187 ziti_send_posture_data() ztx[0] posture checks either never sent or api session changed, must_send = true
[    19960.836] VERBOSE cmake-build-debug/_deps/ziti-sdk-c-src/library/posture.c:205 ziti_send_posture_data() ztx[0] checking posture queries on 1 service(s)
[    19960.836]   DEBUG cmake-build-debug/_deps/ziti-sdk-c-src/library/posture.c:464 ziti_pr_send_bulk() ztx[0] no change in posture data, not sending
[    19960.836]   DEBUG cmake-build-debug/_deps/ziti-sdk-c-src/library/connect.c:485 ziti_connect_async() conn[0.298] starting Dial connection for service[mattermost.tools.netfoundry.io] with session[ckvr44fx70jto0fomrdcb1sfg]
[    19960.836]   DEBUG cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:275 ziti_channel_connect() ztx[0] existing ch[0](Disconnected) found for ingress[tls://129.159.71.35:443]
[    19960.836]    INFO cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:746 reconnect_channel() ch[0] reconnecting NOW
[    19960.836]   DEBUG cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:275 ziti_channel_connect() ztx[0] existing ch[1](Disconnected) found for ingress[tls://129.146.214.27:443]
[    19960.836]    INFO cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:746 reconnect_channel() ch[1] reconnecting NOW
[    19960.836]   DEBUG cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:275 ziti_channel_connect() ztx[0] existing ch[2](Disconnected) found for ingress[tls://129.151.45.194:443]
[    19960.836]    INFO cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:746 reconnect_channel() ch[2] reconnecting NOW
[    19960.836]   DEBUG cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:275 ziti_channel_connect() ztx[0] existing ch[3](Disconnected) found for ingress[tls://129.159.89.151:443]
[    19960.836]    INFO cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:746 reconnect_channel() ch[3] reconnecting NOW
[    19960.836]   DEBUG cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:275 ziti_channel_connect() ztx[0] existing ch[4](Disconnected) found for ingress[tls://65.2.62.54:443]
[    19960.836]    INFO cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:746 reconnect_channel() ch[4] reconnecting NOW
[    19960.836]   DEBUG cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:275 ziti_channel_connect() ztx[0] existing ch[5](Disconnected) found for ingress[tls://3.109.234.45:443]
[    19960.836]    INFO cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:746 reconnect_channel() ch[5] reconnecting NOW
[    19960.836]   DEBUG cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:275 ziti_channel_connect() ztx[0] existing ch[6](Disconnected) found for ingress[tls://129.151.44.40:443]
[    19960.836]    INFO cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:746 reconnect_channel() ch[6] reconnecting NOW
[    19960.836]   DEBUG cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:717 reconnect_cb() ch[0] connecting to 129.159.71.35:443
[    19960.836]   DEBUG cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:717 reconnect_cb() ch[1] connecting to 129.146.214.27:443
[    19960.836]   DEBUG cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:717 reconnect_cb() ch[2] connecting to 129.151.45.194:443
[    19960.836]   DEBUG cmake-build-debug/_deps/ziti-sdk-c-src/library/channel.c:717 reconnect_cb() ch[3] connecting to 129.159.89.151:443
Exception: EXC_BAD_ACCESS (code=1, address=0x38)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.