Coder Social home page Coder Social logo

openziti / ziti-sdk-c Goto Github PK

View Code? Open in Web Editor NEW
66.0 10.0 14.0 2.26 MB

A C-based sdk for delivering secure applications over a Ziti Network

Home Page: https://docs.openziti.io/docs/reference/developer/sdk/ziti-sdk-c

License: Apache License 2.0

CMake 2.67% C 84.54% Batchfile 0.47% Shell 0.16% C++ 12.16%
appsec netsec zero-trust zero-trust-security zerotrust ziti-trust-network networking overlay-network sdk zero-trust-cloud zero-trust-network zero-trust-network-access ztaa ztha ztna security

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ziti-sdk-c's Issues

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)

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.

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)

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?

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.

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

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

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

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)

Better payload handling

  • avoid hitting fabric MTU (split up large writes)
  • allow app to specify stream semantics: coalesce small writes

improve controller communication

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

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++) {

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

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.

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

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.

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

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.

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

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)

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)

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)

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.

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.