| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2023-09-25 | Exports: Remove token updater | jwijenbergh | |
| 2023-09-25 | Exports: Implement newest API using cookie handlers | jwijenbergh | |
| 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-25 | Exports + Client: Refactor registering a client | jwijenbergh | |
| - 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-25 | Exports + Client Register: Make sure to only update state if no err | jwijenbergh | |
| 2023-09-25 | Exports: Return nil on nil error | jwijenbergh | |
| Co-authored-by: rozmansi <simon@rozman.si> | |||
| 2023-09-25 | Exports + Python: Compare booleans with != 0 instead of == 1 | jwijenbergh | |
| Reported by: Simon Rozman <simon@rozman.si> | |||
| 2023-09-25 | Exports + Python + Server: Remove ShouldRenewButton | jwijenbergh | |
| This is replace with expiry times | |||
| 2023-09-25 | Tests: Pass for V2 API | jwijenbergh | |
| 2023-09-25 | Exports + Python: Use an enum for server type | jwijenbergh | |
| 2023-09-25 | Types: Split server into subpackage | jwijenbergh | |
| 2023-09-25 | Exports: Implement initial V2 API | jwijenbergh | |
| The main change is that we now use JSON from types listed at the `types` package | |||
| 2023-04-18 | Exports: Do not crash on invalid wrapped errors | jwijenbergh | |
| 2023-04-18 | Client + Server: Implement a token updater callback | jwijenbergh | |
| 2023-03-01 | Client + Exports + HTTP: Set a user-agent using the client's version | jwijenbergh | |
| 2023-02-28 | Refactor: Remove error level | jwijenbergh | |
| Not useful enought just yet | |||
| 2023-01-13 | Client + Exports: Separate cleanup from disconnect | jwijenbergh | |
| 2023-01-03 | Format: Run gofumpt | jwijenbergh | |
| 2022-12-21 | Client + Exports: Forward tokens for /disconnect | jwijenbergh | |
| 2022-12-21 | Exports + OAuth + Server: Forward tokens to getting a config | jwijenbergh | |
| 2022-12-21 | Failover: Initial implementation | jwijenbergh | |
| 2022-12-12 | Format: Run gofumpt | jwijenbergh | |
| 2022-12-12 | simplify error handling | Aleksandar Pesic | |
| fixes #6 Signed-off-by: Aleksandar Pesic <peske.nis@gmail.com> | |||
| 2022-11-28 | Formatting: Run golines | jwijenbergh | |
| 2022-11-28 | Refactor: Remove most get prefixes for receiver functions | jwijenbergh | |
| 2022-11-24 | Style: Use stylecheck and fix errors | jwijenbergh | |
| 2022-11-23 | FSM: Check unhandled transitions | jwijenbergh | |
| 2022-10-24 | Client + Server + Exports: Implement optional WireGuard support | jwijenbergh | |
| 2022-10-18 | Client: Move to its own package | jwijenbergh | |
| 2022-10-13 | Format: Run gofumpt | jwijenbergh | |
| 2022-10-11 | Client: Refactor out adding a Server from getting a config | jwijenbergh | |
| 2022-10-06 | Client + Python: Pass language to Register | jwijenbergh | |
| 2022-10-04 | State: Rename to client to avoid confusion with the FSM | jwijenbergh | |
| 2022-10-04 | Refactor: Renmae force TCP to prefer TCP | jwijenbergh | |
| 2022-09-26 | Refactor: Errors into custom export types and expose types | jwijenbergh | |
| 2022-09-20 | Module: Move to eduvpn/eduvpn-common | jwijenbergh | |
| 2022-09-20 | Golang-ci-lint: Fixes | jwijenbergh | |
| 2022-09-19 | Exports: Simplify building | jwijenbergh | |
| - Remove subdir c - Do not compile c code as a separate shared library - Move all definitions/declarations into the preamble as they shouldn't be shared anyways. So no headers are needed - Define the callback as static, needed so we don't get a duplicate declaration | |||
| 2022-09-16 | Discovery: Expose c types | jwijenbergh | |
| 2022-09-14 | Refactor: Return without json | jwijenbergh | |
| 2022-09-12 | Types Error: Do not panic on JSON error | jwijenbergh | |
| 2022-09-07 | Refactor: Define FSM state constants inside the public package | jwijenbergh | |
| 2022-08-24 | State + Server + Exports: Implement removing a server | jwijenbergh | |
| 2022-08-23 | Formatting: Run golines | jwijenbergh | |
| 2022-08-22 | State + Exports: Make cleanup optional when entering disconnect | jwijenbergh | |
| 2022-08-19 | State + FSM: Properly handle the disconnect flow | jwijenbergh | |
| - /disconnect is now called - A new state is added (DISCONNECTING) that waits for the disconnect to complete - A helper function is exposed (InFSMState) that can be used by clients to see in which state they are in | |||
| 2022-08-19 | Exports: Ensure valid JSON when encountering a marshal error | jwijenbergh | |
| 2022-08-16 | Refactor: Use an interface for the data in the FSM callback | jwijenbergh | |
| 2022-08-15 | Refactor: Use constants for state callbacks instead of strings | jwijenbergh | |
| 2022-08-10 | State + Python: Implement renewing a session | jwijenbergh | |
| 2022-07-22 | State + Exports: Implement should show renew button boolean | jwijenbergh | |
