piggyslasher-react-native-ip-sec-vpn
v1.1.1
Published
React Native IPSec VPN Module
Downloads
2
Maintainers
Readme
react-native-ip-sec-vpn
Getting started
Plugin can be installed using npm
With yarn:
$ yarn add react-native-ip-sec-vpn --save
Or with npm:
$ npm install react-native-ip-sec-vpn --save
Mostly automatic installation
on react native >60 no need to do anything but for manualing installation run the code below
$ react-native link react-native-ip-sec-vpn
Example
To run example:
- make sure the module folder has no node_modules
- install the dependencies on the example folder using
yarn
ornpm i
- run the project:
npx react-native run-android
Usage
import {prepare, connect} from "react-native-ip-sec-vpn";
...
useEffect(() => {
prepare();
}); /// or use componentDidmount in case of a class component
...
connect(address, username, password)
see example folder.
Methods
| Name | arguments | returns | Description | | ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- | ----------------------------------------------------------------------------------------------------------- | | prepare | None | Promise | Android: This will ask permission and do necessary setupsIOS: This will listen for status change on vpn | | connect | address: string (address of VPN)username: string (username of VPN's credentials)password: string (username of VPN's credentials)vpnType: string | undefined (Android only, not implemented yet)mtu: number | undefiend (Android only, VPN's maximum transmission unit) | Promise | Connect to vpn with provided credentials | | getCurrentState | None | Promise | Get current VPN state | | getCharonErrorState (Android only) | None | Promise | Get current VPN Error state (Android only) | | disconnect | None | Promise | Disconnect the VPN | | onStateChangedListener | callback: (state: { state: VpnState; charonState: CharonErrorState }) => void | EmitterSubscription | Will call the callback on state change | | removeOnStateChangeListener | stateChangedEvent: EmitterSubscription | void | Remove the state change listener |
Enums
| Name | Values | Description | | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------- | | VpnState | disconnected = 0 (VPN is disconnected)connecting = 1 (VPN is connecting)connected = 2 (VPN is connected)disconnecting = 3 (VPN is disconnecting)genericError = 4 (VPN encountered an error charon state on android to find out the error) | VPN current state | | CharonErrorState | NO_ERROR = 0 (VPN has no error)AUTH_FAILED = 1 (Wrong credentials)PEER_AUTH_FAILED = 2LOOKUP_FAILED = 3 (Wrong VPN URL)UNREACHABLE = 4 (VPN URL is unreachable)GENERIC_ERROR = 5PASSWORD_MISSING = 6 (No password has been provided)CERTIFICATE_UNAVAILABLE = 7 (Certification has not been provided)UNDEFINED = 8 (Unknown error) | VPN Error |