summaryrefslogtreecommitdiff
path: root/exports
AgeCommit message (Collapse)Author
2024-02-23Exports: Nil check proxyReady in StartProxyguardjwijenbergh
2024-02-23Export Docs: Mention that the proxyguard ready callback takes nothingjwijenbergh
2024-02-23Proxy: Only call ready when client is not connectedjwijenbergh
2024-02-23Client + Exports: Update to latest proxyguard APIjwijenbergh
- Add a ClientProxyReady callback - do a DNS request for the IPs
2024-02-19Format: Run gofumptjwijenbergh
2024-02-19Docs: Add a WireGuard + proxyguard examplejwijenbergh
2024-02-19Proxyguard: Support a FD callbackjwijenbergh
useful for the android app
2024-02-19All: Document everything to pass revive lintjwijenbergh
2024-02-19Exports: Add doc for StartProxyguardjwijenbergh
2024-02-19Format: Run gofumptjwijenbergh
2024-02-19Exports: Set proper wg support booleanjwijenbergh
2024-02-19WireGuard: TCP support using proxyguardjwijenbergh
2024-02-19Exports + Python: Delete cookie but add orgid in set_secure_locationjwijenbergh
2024-02-19Cookie + Exports: Store and return the cookie from the underlying contextjwijenbergh
This has the ability so that we can easily get the same cookie back in the client package by creating the one from the context
2024-02-19All: Prepare to get rid of go-errors/errors libjwijenbergh
2024-02-19Exports + Python: New API for Token Getter and Setterjwijenbergh
First argument is the server id and type instead of a single argument with JSON
2024-02-19Exports Make: Get version from internal versionjwijenbergh
2023-09-29Exports Docs: Improve examples for mobile redirectsjwijenbergh
2023-09-29Client + Server + OAuth: Support mobile redirectsjwijenbergh
2023-09-25Exports: Log no tokens returned as debugjwijenbergh
2023-09-25Docs Exports: Add some example input/outputjwijenbergh
2023-09-25Exports: Update spacing in docsjwijenbergh
2023-09-25Exports: Update docsjwijenbergh
2023-09-25Genexportsdoc: Set executable flagjwijenbergh
2023-09-25Export Docs: Update bullets spacingjwijenbergh
2023-09-25Exports: Format and rewrite some commentsjwijenbergh
2023-09-25Client + Exports + Python: Add a startup boolean to getconfigjwijenbergh
To be used for autoconnect on startup. If autoconnect on startup set to true This ignores any callbacks that require user input (profile, authorization & location callbacks)
2023-09-25Initial i18n implementationjwijenbergh
2023-09-25Client: Use a mutex for state transitionsjwijenbergh
2023-09-25Client + FSM: Check transitions and add SetStatejwijenbergh
Also make sure GotConfig can be used to go back to
2023-09-25Exports: Document that CookieReply can be done in the backgroundjwijenbergh
2023-09-25Exports: Document AddServer ni flagjwijenbergh
2023-09-25Exports: Fix function name for DiscoOrganizations in commentsjwijenbergh
2023-09-25Exports: Small fixes in cookie commentsjwijenbergh
2023-09-25Exports: Document getconfig prefer TCP and return typejwijenbergh
2023-09-25Exports: Initial comments documenting the APIjwijenbergh
2023-09-25Exports: Lowercase statecallbackjwijenbergh
2023-09-25Exports: Remove unused error.hjwijenbergh
2023-09-25Version: Update to 2.0.0jwijenbergh
2023-09-25Exports: Fix void signature for TokenGetterjwijenbergh
2023-09-25All: Implement a token handlerjwijenbergh
This implements a token handler for OAuth tokens. Clients can use the SetTokenHandler function in exports to set a token handler. It needs two arguments, a getter and a setter. The getter is a callback with three arguments: - The server to get the tokens for, in types.server.current as JSON - The output buffer - The output buffer maximum length The tokens should be written to the output buffer with maximum length. The type should be types.server.Tokens and be marshalled as JSON. If no tokens are available, leave the output buffer intact The token setter is a callback with two arguments: - The server for which to set the tokens for, in types.server.Current as JSON - The tokens, defined in types.server.Tokens as JSON Breaking changes: - No more tokens as arguments, was already deprecated in previous commits - Tokens are no longer returned in types.server.Configuration
2023-09-25Exports: Remove token updaterjwijenbergh
2023-09-25Exports: Implement newest API using cookie handlersjwijenbergh
BREAKING CHANGES: - The following functions need a special "cookie" as the first argument - Add server (also now has an extra int as last argument, if non 0 run no callbacks, useful for preprovisioned servers) - Get config - Set secure location - Disco servers - Disco organizations - Cleanup - Renew session - Start failover Removed functions: - "CancelOAuth", "CancelFailover" replaced by "CookieCancel" - SecureLocationList, removed because the secure internet server from ServerList() now has the locations embedded in the JSON A cookie is a specialized context that can be used for cancellation and sending values across a channel. Cancel OAuth and Cancel failover functions have thus been removed. Instead, create a cookie with "CookieNew", pass it to the function as the first argument and when you want to cancel, run "CookieCancel". The functions mentioned above use network requests, or some other long running procedure. Even though we have a timeout set to 10 seconds for failover and network requests, it might make sense to make this longer and just have clients cancel the request. Cookies that have been created with "CookieNew" must be freed with CookieDelete, which cancels the cookie and then deletes the underlying handle. Because cookies have a channel associated with them, they are used for replying to state callbacks. When you receive an ASK_PROFILE or ASK_LOCATION request, you get the same cookie back that you have created when passed to the function (key "cookie" in the state data). Reply with your answer (the profile or location) with "CookieReply" passing in the cookie as first argument and the data as second. This means that SetProfileID and SetSecureLocation should now only be used when not in a state callback. E.g. just changing the profile or location when triggered by the user. Finally, when a cookie is canceled, the error that is returned by the function inherits from the Go context cancellation error: https://pkg.go.dev/context#pkg-variables ("context canceled")
2023-09-25Exports + Client: Refactor registering a clientjwijenbergh
- Make sure the global exports state is only set on successful creating - Only call discovery when adding a server to ensure we get the most up to date args. Creating a client should have no network calls. Fixes #12 - Split creating a client in New and Register in the GO api
2023-09-25Exports + Client Register: Make sure to only update state if no errjwijenbergh
2023-09-25Exports: Return nil on nil errorjwijenbergh
Co-authored-by: rozmansi <simon@rozman.si>
2023-09-25Exports + Python: Compare booleans with != 0 instead of == 1jwijenbergh
Reported by: Simon Rozman <simon@rozman.si>
2023-09-25Exports + Python + Server: Remove ShouldRenewButtonjwijenbergh
This is replace with expiry times
2023-09-25Tests: Pass for V2 APIjwijenbergh
2023-09-25Exports + Python: Use an enum for server typejwijenbergh