SYMBOL INDEX (1110 symbols across 84 files) FILE: app/src/main/java/com/genymobile/gnirehtet/Binary.java class Binary (line 19) | @SuppressWarnings("checkstyle:MagicNumber") method Binary (line 24) | private Binary() { method unsigned (line 28) | public static int unsigned(byte value) { method unsigned (line 32) | public static int unsigned(short value) { method unsigned (line 36) | public static long unsigned(int value) { method buildPacketString (line 40) | public static String buildPacketString(byte[] data, int len) { FILE: app/src/main/java/com/genymobile/gnirehtet/CIDR.java class CIDR (line 26) | public class CIDR implements Parcelable { method CIDR (line 31) | public CIDR(InetAddress address, int prefixLength) { method CIDR (line 36) | private CIDR(Parcel source) { method parse (line 46) | @SuppressWarnings("checkstyle:MagicNumber") method getAddress (line 69) | public InetAddress getAddress() { method getPrefixLength (line 73) | public int getPrefixLength() { method toString (line 77) | @Override method describeContents (line 82) | @Override method writeToParcel (line 87) | @Override method createFromParcel (line 94) | @Override method newArray (line 99) | @Override FILE: app/src/main/java/com/genymobile/gnirehtet/Forwarder.java class Forwarder (line 34) | public class Forwarder { method Forwarder (line 51) | public Forwarder(VpnService vpnService, FileDescriptor vpnFileDescript... method forward (line 56) | public void forward() { method stop (line 83) | public void stop() { method forwardDeviceToTunnel (line 90) | @SuppressWarnings("checkstyle:MagicNumber") method forwardTunnelToDevice (line 118) | private void forwardTunnelToDevice(Tunnel tunnel) throws IOException { method wakeUpReadWorkaround (line 150) | private void wakeUpReadWorkaround() { FILE: app/src/main/java/com/genymobile/gnirehtet/GnirehtetActivity.java class GnirehtetActivity (line 17) | public class GnirehtetActivity extends Activity { method onCreate (line 31) | @Override method handleIntent (line 37) | private void handleIntent(Intent intent) { method createConfig (line 53) | private static VpnConfiguration createConfig(Intent intent) { method startGnirehtet (line 65) | private boolean startGnirehtet(VpnConfiguration config) { method stopGnirehtet (line 79) | private void stopGnirehtet() { method requestAuthorization (line 83) | private void requestAuthorization(Intent vpnIntent, VpnConfiguration c... method onActivityResult (line 88) | @Override FILE: app/src/main/java/com/genymobile/gnirehtet/GnirehtetService.java class GnirehtetService (line 36) | public class GnirehtetService extends VpnService { method start (line 56) | public static void start(Context context, VpnConfiguration config) { method stop (line 67) | public static void stop(Context context) { method createStopIntent (line 75) | static Intent createStopIntent(Context context) { method onStartCommand (line 81) | @Override method isRunning (line 101) | private boolean isRunning() { method startVpn (line 105) | private void startVpn(VpnConfiguration config) { method setupVpn (line 112) | @SuppressWarnings("checkstyle:MagicNumber") method setAsUndernlyingNetwork (line 154) | @SuppressWarnings("checkstyle:MagicNumber") method findVpnNetwork (line 167) | private Network findVpnNetwork() { method startForwarding (line 182) | private void startForwarding() { method close (line 187) | private void close() { class RelayTunnelConnectionStateHandler (line 206) | private static final class RelayTunnelConnectionStateHandler extends H... method RelayTunnelConnectionStateHandler (line 210) | private RelayTunnelConnectionStateHandler(GnirehtetService vpnServic... method handleMessage (line 214) | @Override FILE: app/src/main/java/com/genymobile/gnirehtet/IPPacketOutputStream.java class IPPacketOutputStream (line 28) | @SuppressWarnings("checkstyle:MagicNumber") method IPPacketOutputStream (line 39) | public IPPacketOutputStream(OutputStream target) { method close (line 43) | @Override method flush (line 48) | @Override method write (line 53) | @Override method write (line 70) | @Override method sink (line 81) | private void sink() throws IOException { method sinkPacket (line 88) | private boolean sinkPacket() throws IOException { method readPacketVersion (line 117) | public static int readPacketVersion(ByteBuffer buffer) { method readPacketLength (line 133) | public static int readPacketLength(ByteBuffer buffer) { FILE: app/src/main/java/com/genymobile/gnirehtet/InvalidCIDRException.java class InvalidCIDRException (line 19) | public class InvalidCIDRException extends Exception { method createMessage (line 23) | private static String createMessage(String cidr) { method InvalidCIDRException (line 27) | public InvalidCIDRException(String cidr, Throwable cause) { method InvalidCIDRException (line 32) | public InvalidCIDRException(String cidr) { method getCIDR (line 37) | public String getCIDR() { FILE: app/src/main/java/com/genymobile/gnirehtet/Net.java class Net (line 23) | public final class Net { method Net (line 24) | private Net() { method toInetAddresses (line 28) | public static InetAddress[] toInetAddresses(String... addresses) { method toInetAddress (line 36) | public static InetAddress toInetAddress(String address) { method toInetAddress (line 44) | public static InetAddress toInetAddress(byte[] raw) { method toCIDR (line 52) | public static CIDR toCIDR(String cidr) { method toCIDRs (line 60) | public static CIDR[] toCIDRs(String... cidrs) { method getLocalhostIPv4 (line 68) | @SuppressWarnings("checkstyle:MagicNumber") FILE: app/src/main/java/com/genymobile/gnirehtet/Notifier.java class Notifier (line 16) | public class Notifier { method Notifier (line 24) | public Notifier(Service context) { method createNotification (line 28) | private Notification createNotification(boolean failure) { method createNotificationBuilder (line 42) | @SuppressWarnings("deprecation") method createNotificationChannel (line 50) | @TargetApi(26) method deleteNotificationChannel (line 57) | @TargetApi(26) method start (line 62) | public void start() { method stop (line 70) | public void stop() { method setFailure (line 77) | public void setFailure(boolean failure) { method createStopAction (line 85) | private Notification.Action createStopAction() { method getNotificationManager (line 95) | private NotificationManager getNotificationManager() { FILE: app/src/main/java/com/genymobile/gnirehtet/PersistentRelayTunnel.java class PersistentRelayTunnel (line 29) | public class PersistentRelayTunnel implements Tunnel { method PersistentRelayTunnel (line 36) | public PersistentRelayTunnel(VpnService vpnService, RelayTunnelListene... method send (line 40) | @Override method receive (line 58) | @Override method close (line 81) | @Override FILE: app/src/main/java/com/genymobile/gnirehtet/RelayTunnel.java class RelayTunnel (line 28) | public final class RelayTunnel implements Tunnel { method RelayTunnel (line 36) | private RelayTunnel() { method open (line 40) | @SuppressWarnings("unused") method connect (line 48) | public void connect() throws IOException { method readClientId (line 70) | private static void readClientId(InputStream inputStream) throws IOExc... method send (line 76) | @Override method receive (line 84) | @Override method close (line 93) | @Override FILE: app/src/main/java/com/genymobile/gnirehtet/RelayTunnelListener.java class RelayTunnelListener (line 8) | public class RelayTunnelListener { method RelayTunnelListener (line 15) | public RelayTunnelListener(Handler handler) { method notifyRelayTunnelConnected (line 19) | public void notifyRelayTunnelConnected() { method notifyRelayTunnelDisconnected (line 23) | public void notifyRelayTunnelDisconnected() { FILE: app/src/main/java/com/genymobile/gnirehtet/RelayTunnelProvider.java class RelayTunnelProvider (line 26) | public class RelayTunnelProvider { method RelayTunnelProvider (line 38) | public RelayTunnelProvider(VpnService vpnService, RelayTunnelListener ... method getCurrentTunnel (line 43) | public RelayTunnel getCurrentTunnel() throws IOException, InterruptedE... method connectTunnel (line 75) | private void connectTunnel(boolean notifyDisconnectedOnError) throws I... method invalidateTunnel (line 88) | public synchronized void invalidateTunnel() { method invalidateTunnel (line 103) | public synchronized void invalidateTunnel(Tunnel tunnelToInvalidate) { method touchFailure (line 109) | private synchronized void touchFailure() { method waitUntilNextAttemptSlot (line 113) | private void waitUntilNextAttemptSlot() throws InterruptedException { method notifyConnected (line 125) | private void notifyConnected() { method notifyDisconnected (line 131) | private void notifyDisconnected() { FILE: app/src/main/java/com/genymobile/gnirehtet/Tunnel.java type Tunnel (line 21) | public interface Tunnel { method send (line 24) | void send(byte[] packet, int len) throws IOException; method receive (line 27) | int receive(byte[] packet) throws IOException; method close (line 30) | void close(); FILE: app/src/main/java/com/genymobile/gnirehtet/VpnConfiguration.java class VpnConfiguration (line 25) | public class VpnConfiguration implements Parcelable { method VpnConfiguration (line 30) | public VpnConfiguration() { method VpnConfiguration (line 35) | public VpnConfiguration(InetAddress[] dnsServers, CIDR[] routes) { method VpnConfiguration (line 40) | private VpnConfiguration(Parcel source) { method getDnsServers (line 53) | public InetAddress[] getDnsServers() { method getRoutes (line 57) | public CIDR[] getRoutes() { method writeToParcel (line 61) | @Override method describeContents (line 70) | @Override method createFromParcel (line 76) | @Override method newArray (line 81) | @Override FILE: app/src/test/java/com/genymobile/gnirehtet/TestIPPacketOutputSteam.java class TestIPPacketOutputSteam (line 27) | @SuppressWarnings("checkstyle:MagicNumber") method createMockPacket (line 30) | private ByteBuffer createMockPacket() { method writeMockPacketTo (line 37) | private void writeMockPacketTo(ByteBuffer buffer) { method testSimplePacket (line 56) | @Test method testSeveralPacketsAtOnce (line 76) | @Test FILE: relay-java/src/main/java/com/genymobile/gnirehtet/AdbMonitor.java class AdbMonitor (line 34) | public class AdbMonitor { type AdbDevicesCallback (line 36) | public interface AdbDevicesCallback { method onNewDeviceConnected (line 37) | void onNewDeviceConnected(String serial); method AdbMonitor (line 57) | public AdbMonitor(AdbDevicesCallback callback) { method monitor (line 61) | public void monitor() { method trackDevices (line 72) | private void trackDevices() throws IOException { method trackDevicesOnChannel (line 82) | private void trackDevicesOnChannel(ByteChannel channel) throws IOExcep... method writeRequest (line 95) | private static void writeRequest(WritableByteChannel channel, String r... method consumeOkay (line 100) | private boolean consumeOkay(ReadableByteChannel channel) throws IOExce... method nextPacket (line 116) | private String nextPacket(ReadableByteChannel channel) throws IOExcept... method fillBufferFrom (line 125) | private void fillBufferFrom(ReadableByteChannel channel) throws IOExce... method readPacket (line 134) | static String readPacket(ByteBuffer input) { method handlePacket (line 158) | void handlePacket(String packet) { method parseConnectedDevices (line 168) | private static List parseConnectedDevices(String packet) { method parseLength (line 183) | @SuppressWarnings("checkstyle:MagicNumber") method repairAdbDaemon (line 196) | private static void repairAdbDaemon() { method startAdbDaemon (line 204) | private static boolean startAdbDaemon() { method sleep (line 222) | private static void sleep(long delay) { FILE: relay-java/src/main/java/com/genymobile/gnirehtet/CommandLineArguments.java class CommandLineArguments (line 22) | @SuppressWarnings("checkstyle:MagicNumber") method parse (line 38) | public static CommandLineArguments parse(int acceptedParameters, Strin... method getSerial (line 84) | public String getSerial() { method getDnsServers (line 88) | public String getDnsServers() { method getRoutes (line 92) | public String getRoutes() { method getPort (line 96) | public int getPort() { FILE: relay-java/src/main/java/com/genymobile/gnirehtet/Main.java class Main (line 32) | public final class Main { method Main (line 37) | private Main() { method getAdbPath (line 41) | private static String getAdbPath() { method getApkPath (line 46) | private static String getApkPath() { type Command (line 51) | enum Command { method getDescription (line 53) | @Override method execute (line 60) | @Override method getDescription (line 66) | @Override method execute (line 73) | @Override method getDescription (line 79) | @Override method execute (line 84) | @Override method getDescription (line 91) | @Override method execute (line 100) | @Override method getDescription (line 106) | @Override method execute (line 113) | @Override method getDescription (line 120) | @Override method execute (line 136) | @Override method getDescription (line 142) | @Override method execute (line 150) | @Override method getDescription (line 156) | @Override method execute (line 163) | @Override method getDescription (line 170) | @Override method execute (line 175) | @Override method getDescription (line 181) | @Override method execute (line 189) | @Override method getDescription (line 195) | @Override method execute (line 200) | @Override method Command (line 209) | Command(String command, int acceptedParameters) { method getDescription (line 214) | abstract String getDescription(); method execute (line 216) | abstract void execute(CommandLineArguments args) throws Exception; method cmdInstall (line 219) | private static void cmdInstall(String serial) throws InterruptedExcept... method cmdUninstall (line 224) | private static void cmdUninstall(String serial) throws InterruptedExce... method cmdReinstall (line 229) | private static void cmdReinstall(String serial) throws InterruptedExce... method cmdRun (line 234) | private static void cmdRun(String serial, String dnsServers, String ro... method cmdAutorun (line 250) | private static void cmdAutorun(final String dnsServers, final String r... method cmdStart (line 262) | @SuppressWarnings("checkstyle:MagicNumber") method cmdAutostart (line 286) | private static void cmdAutostart(final String dnsServers, final String... method cmdStop (line 293) | private static void cmdStop(String serial) throws InterruptedException... method cmdRestart (line 299) | private static void cmdRestart(String serial, String dnsServers, Strin... method cmdTunnel (line 305) | private static void cmdTunnel(String serial, int port) throws Interrup... method cmdRelay (line 309) | private static void cmdRelay(int port) throws IOException { method asyncStart (line 314) | private static void asyncStart(String serial, String dnsServers, Strin... method execAdb (line 324) | private static void execAdb(String serial, String... adbArgs) throws I... method createAdbCommand (line 328) | private static List createAdbCommand(String serial, String... ... method execAdb (line 339) | private static void execAdb(String serial, List adbArgList) th... method execSync (line 344) | private static void execSync(List command) throws InterruptedE... method mustInstallClient (line 355) | private static boolean mustInstallClient(String serial) throws Interru... method printUsage (line 382) | private static void printUsage() { method appendCommandUsage (line 401) | private static void appendCommandUsage(StringBuilder builder, Command ... method printCommandUsage (line 422) | private static void printCommandUsage(Command command) { method main (line 428) | public static void main(String... args) throws Exception { FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/AbstractConnection.java class AbstractConnection (line 22) | public abstract class AbstractConnection implements Connection { method AbstractConnection (line 29) | protected AbstractConnection(ConnectionId id, Client client) { method getId (line 34) | @Override method close (line 39) | protected void close() { method consume (line 44) | protected void consume(PacketSource source) { method sendToClient (line 48) | protected boolean sendToClient(IPv4Packet packet) { method getRewrittenAddress (line 52) | private static InetAddress getRewrittenAddress(int ip) { method getRewrittenDestination (line 61) | protected InetSocketAddress getRewrittenDestination() { method logv (line 67) | public void logv(String tag, String message, Throwable e) { method logv (line 71) | public void logv(String tag, String message) { method logd (line 75) | public void logd(String tag, String message, Throwable e) { method logd (line 79) | public void logd(String tag, String message) { method logi (line 83) | public void logi(String tag, String message, Throwable e) { method logi (line 87) | public void logi(String tag, String message) { method logw (line 91) | public void logw(String tag, String message, Throwable e) { method logw (line 95) | public void logw(String tag, String message) { method loge (line 99) | public void loge(String tag, String message, Throwable e) { method loge (line 103) | public void loge(String tag, String message) { FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/Binary.java class Binary (line 21) | @SuppressWarnings("checkstyle:MagicNumber") method Binary (line 26) | private Binary() { method buildPacketString (line 30) | public static String buildPacketString(byte[] data, int offset, int le... method buildPacketString (line 47) | public static String buildPacketString(ByteBuffer buffer) { method copy (line 51) | public static ByteBuffer copy(ByteBuffer buffer) { method slice (line 60) | public static ByteBuffer slice(ByteBuffer buffer, int offset, int leng... FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/Client.java class Client (line 29) | public class Client { method Client (line 50) | public Client(Selector selector, SocketChannel clientChannel, CloseLis... method createIntBuffer (line 74) | private static ByteBuffer createIntBuffer(int value) { method getId (line 82) | public int getId() { method getRouter (line 86) | public Router getRouter() { method processReceive (line 90) | private void processReceive() { method processSend (line 98) | private void processSend() { method read (line 112) | private boolean read() { method write (line 121) | private boolean write() { method mustSendId (line 130) | private boolean mustSendId() { method sendId (line 134) | private boolean sendId() { method pushToNetwork (line 153) | private void pushToNetwork() { method close (line 161) | private void close() { method updateInterests (line 172) | private void updateInterests() { method sendToClient (line 184) | public boolean sendToClient(IPv4Packet packet) { method consume (line 194) | public void consume(PacketSource source) { method processPending (line 204) | private void processPending() { method cleanExpiredConnections (line 220) | public void cleanExpiredConnections() { FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/CloseListener.java type CloseListener (line 19) | public interface CloseListener { method onClosed (line 20) | void onClosed(T object); FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/CommandExecutionException.java class CommandExecutionException (line 21) | public class CommandExecutionException extends Exception { method CommandExecutionException (line 26) | public CommandExecutionException(List command, int exitCode) { method createMessage (line 32) | private static String createMessage(List command, int exitCode) { method getExitCode (line 36) | public int getExitCode() { method getCommand (line 40) | public List getCommand() { FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/Connection.java type Connection (line 19) | public interface Connection { method getId (line 21) | ConnectionId getId(); method sendToNetwork (line 22) | void sendToNetwork(IPv4Packet packet); method disconnect (line 23) | void disconnect(); method isExpired (line 24) | boolean isExpired(); FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/ConnectionId.java class ConnectionId (line 19) | public class ConnectionId { method ConnectionId (line 28) | public ConnectionId(IPv4Header.Protocol protocol, int sourceIp, short ... method getProtocol (line 39) | public IPv4Header.Protocol getProtocol() { method getSourceIp (line 43) | public int getSourceIp() { method getSourcePort (line 47) | public int getSourcePort() { method getDestinationIp (line 51) | public int getDestinationIp() { method getDestinationPort (line 55) | public int getDestinationPort() { method equals (line 59) | @Override method hashCode (line 77) | @Override method toString (line 87) | @Override method from (line 92) | public static ConnectionId from(IPv4Header ipv4Header, TransportHeader... FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/DatagramBuffer.java class DatagramBuffer (line 37) | @SuppressWarnings("checkstyle:MagicNumber") method DatagramBuffer (line 53) | public DatagramBuffer(int capacity) { method isEmpty (line 59) | public boolean isEmpty() { method hasEnoughSpaceFor (line 63) | public boolean hasEnoughSpaceFor(int datagramLength) { method capacity (line 72) | public int capacity() { method writeTo (line 76) | public boolean writeTo(WritableByteChannel channel) throws IOException { method readFrom (line 91) | public boolean readFrom(ByteBuffer buffer) { method writeLength (line 109) | private void writeLength(int length) { method readLength (line 115) | private int readLength() { FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/IPv4Header.java class IPv4Header (line 21) | @SuppressWarnings("checkstyle:MagicNumber") type Protocol (line 24) | public enum Protocol { method Protocol (line 29) | Protocol(int number) { method getNumber (line 33) | int getNumber() { method fromNumber (line 37) | static Protocol fromNumber(int number) { method IPv4Header (line 58) | public IPv4Header(ByteBuffer raw) { method isSupported (line 81) | public boolean isSupported() { method getProtocol (line 85) | public Protocol getProtocol() { method getHeaderLength (line 89) | public int getHeaderLength() { method getTotalLength (line 93) | public int getTotalLength() { method setTotalLength (line 97) | public void setTotalLength(int totalLength) { method getSource (line 103) | public int getSource() { method getDestination (line 107) | public int getDestination() { method setSource (line 111) | public void setSource(int source) { method setDestination (line 116) | public void setDestination(int destination) { method swapSourceAndDestination (line 121) | public void swapSourceAndDestination() { method getRaw (line 127) | public ByteBuffer getRaw() { method copyTo (line 132) | public IPv4Header copyTo(ByteBuffer target) { method copy (line 139) | public IPv4Header copy() { method computeChecksum (line 143) | public void computeChecksum() { method setChecksum (line 163) | private void setChecksum(short checksum) { method getChecksum (line 167) | public short getChecksum() { method readVersion (line 177) | public static int readVersion(ByteBuffer buffer) { method readLength (line 193) | public static int readLength(ByteBuffer buffer) { FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/IPv4Packet.java class IPv4Packet (line 21) | public class IPv4Packet { method IPv4Packet (line 32) | public IPv4Packet(ByteBuffer raw) { method isValid (line 50) | public boolean isValid() { method createTransportHeader (line 54) | private TransportHeader createTransportHeader() { method getRawTransport (line 66) | private ByteBuffer getRawTransport() { method getIpv4Header (line 71) | public IPv4Header getIpv4Header() { method getTransportHeader (line 75) | public TransportHeader getTransportHeader() { method swapSourceAndDestination (line 79) | public void swapSourceAndDestination() { method getRaw (line 84) | public ByteBuffer getRaw() { method getRawLength (line 89) | public int getRawLength() { method getPayload (line 93) | public ByteBuffer getPayload() { method getPayloadLength (line 99) | public int getPayloadLength() { method computeChecksums (line 103) | public void computeChecksums() { FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/IPv4PacketBuffer.java class IPv4PacketBuffer (line 23) | public class IPv4PacketBuffer { method readFrom (line 27) | public int readFrom(ReadableByteChannel channel) throws IOException { method getAvailablePacketLength (line 31) | @SuppressWarnings("checkstyle:MagicNumber") method asIPv4Packet (line 46) | public IPv4Packet asIPv4Packet() { method next (line 62) | public void next() { FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/Log.java class Log (line 24) | public final class Log { type Level (line 26) | enum Level { method Level (line 35) | Level(String id) { method Log (line 45) | private Log() { method getThreshold (line 49) | public static Level getThreshold() { method setThreshold (line 53) | public static void setThreshold(Level threshold) { method isEnabled (line 57) | public static boolean isEnabled(Level level) { method isVerboseEnabled (line 61) | public static boolean isVerboseEnabled() { method isDebugEnabled (line 65) | public static boolean isDebugEnabled() { method isInfoEnabled (line 69) | public static boolean isInfoEnabled() { method isWarningEnabled (line 73) | public static boolean isWarningEnabled() { method isErrorEnabled (line 77) | public static boolean isErrorEnabled() { method getDate (line 81) | private static String getDate() { method format (line 86) | private static String format(Level level, String tag, String message) { method l (line 90) | private static void l(Level level, PrintStream stream, String tag, Str... method v (line 99) | public static void v(String tag, String message, Throwable e) { method v (line 103) | public static void v(String tag, String message) { method d (line 107) | public static void d(String tag, String message, Throwable e) { method d (line 111) | public static void d(String tag, String message) { method i (line 115) | public static void i(String tag, String message, Throwable e) { method i (line 119) | public static void i(String tag, String message) { method w (line 123) | public static void w(String tag, String message, Throwable e) { method w (line 127) | public static void w(String tag, String message) { method e (line 131) | public static void e(String tag, String message, Throwable e) { method e (line 135) | public static void e(String tag, String message) { FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/Net.java class Net (line 23) | public final class Net { method Net (line 24) | private Net() { method toInetAddresses (line 28) | public static InetAddress[] toInetAddresses(String... addresses) { method toInetAddress (line 36) | public static InetAddress toInetAddress(String address) { method toInetAddress (line 44) | public static InetAddress toInetAddress(byte[] raw) { method toInetAddress (line 52) | @SuppressWarnings("checkstyle:MagicNumber") method toString (line 63) | public static String toString(InetSocketAddress address) { method toString (line 67) | public static String toString(int ip, short port) { FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/PacketSource.java type PacketSource (line 30) | public interface PacketSource { method get (line 32) | IPv4Packet get(); method next (line 34) | void next(); FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/Packetizer.java class Packetizer (line 26) | public class Packetizer { method Packetizer (line 34) | public Packetizer(IPv4Header ipv4Header, TransportHeader transportHead... method getResponseIPv4Header (line 40) | public IPv4Header getResponseIPv4Header() { method getResponseTransportHeader (line 44) | public TransportHeader getResponseTransportHeader() { method packetizeEmptyPayload (line 48) | public IPv4Packet packetizeEmptyPayload() { method packetize (line 53) | public IPv4Packet packetize(ReadableByteChannel channel, int maxChunkS... method packetize (line 63) | public IPv4Packet packetize(ReadableByteChannel channel) throws IOExce... method inflate (line 67) | private IPv4Packet inflate() { FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/Relay.java class Relay (line 24) | public class Relay { method Relay (line 32) | public Relay(int port) { method run (line 36) | public void run() throws IOException { FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/Router.java class Router (line 24) | public class Router { method Router (line 34) | public Router(Client client, Selector selector) { method sendToNetwork (line 39) | public void sendToNetwork(IPv4Packet packet) { method getConnection (line 55) | private Connection getConnection(IPv4Header ipv4Header, TransportHeade... method createConnection (line 65) | private Connection createConnection(ConnectionId id, IPv4Header ipv4He... method find (line 76) | private Connection find(ConnectionId id) { method clear (line 85) | public void clear() { method remove (line 92) | public void remove(Connection connection) { method cleanExpiredConnections (line 98) | public void cleanExpiredConnections() { FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/SelectionHandler.java type SelectionHandler (line 21) | public interface SelectionHandler { method onReady (line 23) | void onReady(SelectionKey selectionKey); FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/StreamBuffer.java class StreamBuffer (line 26) | public class StreamBuffer { method StreamBuffer (line 33) | public StreamBuffer(int capacity) { method isEmpty (line 38) | public boolean isEmpty() { method isFull (line 42) | public boolean isFull() { method size (line 46) | public int size() { method capacity (line 53) | public int capacity() { method remaining (line 57) | public int remaining() { method writeTo (line 61) | public int writeTo(WritableByteChannel channel) throws IOException { method readFrom (line 82) | public void readFrom(ByteBuffer buffer) { method optimize (line 103) | private void optimize() { FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/TCPConnection.java class TCPConnection (line 25) | public class TCPConnection extends AbstractConnection implements PacketS... type State (line 39) | public enum State { method isConnected (line 49) | public boolean isConnected() { method isClosed (line 53) | public boolean isClosed() { method TCPConnection (line 75) | public TCPConnection(ConnectionId id, Client client, Selector selector... method disconnect (line 104) | @Override method processReceive (line 115) | private void processReceive() { method processSend (line 134) | private void processSend() { method eof (line 158) | private void eof() { method getRemainingClientWindow (line 171) | private int getRemainingClientWindow() { method isExpired (line 181) | @Override method updateHeaders (line 187) | private void updateHeaders(int flags) { method createChannel (line 194) | private SocketChannel createChannel() throws IOException { method sendToNetwork (line 202) | @Override method handlePacket (line 209) | private void handlePacket(IPv4Packet packet) { method handleFirstPacket (line 258) | private void handleFirstPacket(IPv4Packet packet) { method handleDuplicateSyn (line 280) | private void handleDuplicateSyn(IPv4Packet packet) { method handleFin (line 293) | private void handleFin() { method doHandleFin (line 303) | private void doHandleFin() { method handleFinAck (line 329) | private void handleFinAck() { method handleAck (line 347) | private void handleAck(IPv4Packet packet) { method processConnect (line 374) | private void processConnect() { method finishConnect (line 387) | private boolean finishConnect() { method resetConnection (line 396) | private void resetConnection() { method createEmptyResponsePacket (line 403) | private IPv4Packet createEmptyResponsePacket(int flags) { method sendEmptyPacketToClient (line 416) | private void sendEmptyPacketToClient(int flags) { method updateInterests (line 420) | protected void updateInterests() { method mayRead (line 441) | private boolean mayRead() { method mayWrite (line 452) | private boolean mayWrite() { method mayConnect (line 456) | private boolean mayConnect() { method numbers (line 460) | private String numbers() { method get (line 464) | @Override method updateAcknowledgementNumber (line 471) | private void updateAcknowledgementNumber(IPv4Packet packet) { method next (line 477) | @Override FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/TCPHeader.java class TCPHeader (line 21) | @SuppressWarnings("checkstyle:MagicNumber") method TCPHeader (line 40) | public TCPHeader(ByteBuffer raw) { method getWindow (line 57) | public int getWindow() { method getSourcePort (line 61) | @Override method getDestinationPort (line 66) | @Override method setSourcePort (line 71) | @Override method setDestinationPort (line 77) | @Override method getSequenceNumber (line 83) | public int getSequenceNumber() { method setSequenceNumber (line 87) | public void setSequenceNumber(int sequenceNumber) { method getAcknowledgementNumber (line 92) | public int getAcknowledgementNumber() { method setAcknowledgementNumber (line 96) | public void setAcknowledgementNumber(int acknowledgementNumber) { method getHeaderLength (line 101) | @Override method setPayloadLength (line 106) | @Override method getFlags (line 111) | public int getFlags() { method setFlags (line 115) | public void setFlags(int flags) { method shrinkOptions (line 122) | public void shrinkOptions() { method setDataOffset (line 127) | private void setDataOffset(int dataOffset) { method isFin (line 134) | public boolean isFin() { method isSyn (line 138) | public boolean isSyn() { method isRst (line 142) | public boolean isRst() { method isPsh (line 146) | public boolean isPsh() { method isAck (line 150) | public boolean isAck() { method isUrg (line 154) | public boolean isUrg() { method getRaw (line 158) | @Override method copyTo (line 164) | @Override method copy (line 172) | public TCPHeader copy() { method computeChecksum (line 176) | @Override method setChecksum (line 224) | private void setChecksum(short checksum) { method getChecksum (line 228) | public short getChecksum() { FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/TransportHeader.java type TransportHeader (line 21) | public interface TransportHeader { method getSourcePort (line 23) | int getSourcePort(); method getDestinationPort (line 25) | int getDestinationPort(); method setSourcePort (line 27) | void setSourcePort(int port); method setDestinationPort (line 29) | void setDestinationPort(int port); method getHeaderLength (line 31) | int getHeaderLength(); method setPayloadLength (line 33) | void setPayloadLength(int payloadLength); method getRaw (line 35) | ByteBuffer getRaw(); method copyTo (line 37) | TransportHeader copyTo(ByteBuffer buffer); method computeChecksum (line 39) | void computeChecksum(IPv4Header ipv4Header, ByteBuffer payload); method swapSourceAndDestination (line 41) | default void swapSourceAndDestination() { FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/TunnelServer.java class TunnelServer (line 16) | public class TunnelServer { method TunnelServer (line 22) | public TunnelServer(int port, Selector selector) throws IOException { method acceptClient (line 39) | private void acceptClient(Selector selector, ServerSocketChannel serve... method removeClient (line 48) | private void removeClient(Client client) { method cleanUp (line 53) | public void cleanUp() { FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/UDPConnection.java class UDPConnection (line 24) | public class UDPConnection extends AbstractConnection { method UDPConnection (line 39) | public UDPConnection(ConnectionId id, Client client, Selector selector... method sendToNetwork (line 63) | @Override method disconnect (line 72) | @Override method isExpired (line 83) | @Override method createChannel (line 88) | private DatagramChannel createChannel() throws IOException { method touch (line 96) | private void touch() { method processReceive (line 100) | private void processReceive() { method processSend (line 109) | private void processSend() { method read (line 115) | private IPv4Packet read() { method write (line 124) | private boolean write() { method pushToClient (line 133) | private void pushToClient(IPv4Packet packet) { method updateInterests (line 144) | protected void updateInterests() { method mayWrite (line 159) | private boolean mayWrite() { FILE: relay-java/src/main/java/com/genymobile/gnirehtet/relay/UDPHeader.java class UDPHeader (line 21) | @SuppressWarnings("checkstyle:MagicNumber") method UDPHeader (line 30) | public UDPHeader(ByteBuffer raw) { method getSourcePort (line 37) | @Override method getDestinationPort (line 42) | @Override method setSourcePort (line 47) | @Override method setDestinationPort (line 53) | @Override method getHeaderLength (line 59) | @Override method setPayloadLength (line 64) | @Override method getRaw (line 70) | @Override method copyTo (line 76) | @Override method computeChecksum (line 84) | @Override FILE: relay-java/src/test/java/com/genymobile/gnirehtet/AdbMonitorTest.java class AdbMonitorTest (line 25) | public class AdbMonitorTest { method toByteBuffer (line 27) | private static ByteBuffer toByteBuffer(String s) { method testReadValidPacket (line 31) | @Test method testReadValidPackets (line 38) | @Test method testReadValidPacketWithGarbage (line 45) | @Test method testReadShortPacket (line 52) | @Test method testHandlePacketDevice (line 59) | @Test method testHandlePacketOffline (line 68) | @Test method testMultipleConnectedDevices (line 77) | @Test method testMultipleConnectedDevicesWithDisconnection (line 93) | @Test FILE: relay-java/src/test/java/com/genymobile/gnirehtet/CommandLineArgumentsTest.java class CommandLineArgumentsTest (line 22) | public class CommandLineArgumentsTest { method testNoArgs (line 27) | @Test method testSerialOnly (line 34) | @Test method testInvalidParameter (line 41) | @Test(expected = IllegalArgumentException.class) method testDnsServersOnly (line 46) | @Test method testSerialAndDnsServers (line 53) | @Test method testDnsServersAndSerial (line 60) | @Test method testSerialWithNoDnsServersParameter (line 67) | @Test(expected = IllegalArgumentException.class) method testNoDnsServersParameter (line 72) | @Test(expected = IllegalArgumentException.class) method testRoutesParameter (line 77) | @Test method testNoRoutesParameter (line 83) | @Test(expected = IllegalArgumentException.class) FILE: relay-java/src/test/java/com/genymobile/gnirehtet/relay/DatagramBufferTest.java class DatagramBufferTest (line 28) | @SuppressWarnings("checkstyle:MagicNumber") method createDatagram (line 31) | private static ByteBuffer createDatagram(int size) { method testSimple (line 39) | @Test method testDatagramBoundaries (line 54) | @Test method testCircular (line 93) | @Test FILE: relay-java/src/test/java/com/genymobile/gnirehtet/relay/IPv4HeaderTest.java class IPv4HeaderTest (line 25) | @SuppressWarnings("checkstyle:MagicNumber") method testReadIPVersionUnavailable (line 28) | @Test method testReadIPVersionAvailable (line 36) | @Test method testReadLengthUnavailable (line 46) | @Test method testReadLengthAvailable (line 54) | @Test method createMockHeaders (line 65) | private static ByteBuffer createMockHeaders() { method testParsePacketHeaders (line 84) | @Test method testEditHeaders (line 94) | @Test method testComputeChecksum (line 128) | @Test method benchComputeChecksum (line 147) | @Ignore // manual benchmark FILE: relay-java/src/test/java/com/genymobile/gnirehtet/relay/IPv4PacketBufferTest.java class IPv4PacketBufferTest (line 28) | @SuppressWarnings("checkstyle:MagicNumber") method createMockPacket (line 31) | private static ByteBuffer createMockPacket() { method writeMockPacketTo (line 38) | private static void writeMockPacketTo(ByteBuffer buffer) { method contentToChannel (line 57) | private static ReadableByteChannel contentToChannel(ByteBuffer buffer) { method testParseIPv4PacketBuffer (line 62) | @Test method testParseFragmentedIPv4PacketBuffer (line 76) | @Test method createMockPackets (line 98) | private static ByteBuffer createMockPackets() { method testMultiPackets (line 107) | @Test method checkPacketHeaders (line 125) | private static void checkPacketHeaders(IPv4Packet packet) { FILE: relay-java/src/test/java/com/genymobile/gnirehtet/relay/IPv4PacketTest.java class IPv4PacketTest (line 24) | @SuppressWarnings("checkstyle:MagicNumber") method createMockPacket (line 27) | private static ByteBuffer createMockPacket() { method testParseHeaders (line 50) | @Test method testPayload (line 86) | @Test FILE: relay-java/src/test/java/com/genymobile/gnirehtet/relay/InetAddressTest.java class InetAddressTest (line 24) | @SuppressWarnings("checkstyle:MagicNumber") method testIntToInetAddress (line 27) | @Test method testUnsignedIntToInetAddress (line 34) | @Test FILE: relay-java/src/test/java/com/genymobile/gnirehtet/relay/PacketizerTest.java class PacketizerTest (line 28) | @SuppressWarnings("checkstyle:MagicNumber") method createMockPacket (line 31) | private static ByteBuffer createMockPacket() { method testMergeHeadersAndPayload (line 54) | @Test method testPacketizeChunks (line 72) | @Test FILE: relay-java/src/test/java/com/genymobile/gnirehtet/relay/StreamBufferTest.java class StreamBufferTest (line 29) | @SuppressWarnings("checkstyle:MagicNumber") method createChunk (line 32) | private static ByteBuffer createChunk() { method testSimple (line 37) | @Test class DevNullChannel (line 52) | static class DevNullChannel implements ByteChannel { method DevNullChannel (line 56) | DevNullChannel(int writeChunkSize) { method read (line 60) | @Override method write (line 65) | @Override method isOpen (line 72) | @Override method close (line 77) | @Override method testCircular (line 83) | @Test method testNotEnoughSpace (line 118) | @Test FILE: relay-java/src/test/java/com/genymobile/gnirehtet/relay/TCPHeaderTest.java class TCPHeaderTest (line 25) | @SuppressWarnings("checkstyle:MagicNumber") method createMockPacket (line 28) | private static ByteBuffer createMockPacket() { method createMockOddPacket (line 55) | private static ByteBuffer createMockOddPacket() { method createMockTCPHeader (line 84) | private static ByteBuffer createMockTCPHeader() { method testEditHeaders (line 100) | @Test method testComputeChecksum (line 142) | @Test method testComputeChecksumOddLength (line 171) | @Test method testCopyTo (line 201) | @Test method createLongPacket (line 216) | private static ByteBuffer createLongPacket() { method benchComputeChecksum (line 246) | @Ignore // manual benchmark FILE: relay-java/src/test/java/com/genymobile/gnirehtet/relay/UDPHeaderTest.java class UDPHeaderTest (line 24) | @SuppressWarnings("checkstyle:MagicNumber") method createMockHeaders (line 27) | private static ByteBuffer createMockHeaders() { method testParsePacketHeaders (line 38) | @Test method testEditHeaders (line 46) | @Test method testCopyTo (line 79) | @Test FILE: relay-rust/src/adb_monitor.rs constant TAG (line 26) | const TAG: &str = "AdbMonitor"; type AdbMonitorCallback (line 28) | pub trait AdbMonitorCallback { method on_new_device_connected (line 29) | fn on_new_device_connected(&self, serial: &str); method on_new_device_connected (line 36) | fn on_new_device_connected(&self, serial: &str) { type AdbMonitor (line 40) | pub struct AdbMonitor { constant TRACK_DEVICES_REQUEST (line 47) | const TRACK_DEVICES_REQUEST: &'static [u8] = b"0012host:track-devices"; constant BUFFER_SIZE (line 48) | const BUFFER_SIZE: usize = 1024; constant RETRY_DELAY_ADB_DAEMON_OK (line 49) | const RETRY_DELAY_ADB_DAEMON_OK: u64 = 1000; constant RETRY_DELAY_ADB_DAEMON_KO (line 50) | const RETRY_DELAY_ADB_DAEMON_KO: u64 = 5000; method new (line 52) | pub fn new(callback: Box) -> Self { method monitor (line 60) | pub fn monitor(&mut self) { method track_devices (line 69) | fn track_devices(&mut self) -> io::Result<()> { method track_devices_on_stream (line 75) | fn track_devices_on_stream(&mut self, stream: &mut TcpStream) -> io::R... method consume_okay (line 86) | fn consume_okay(&mut self, stream: &mut TcpStream) -> io::Result { method read_packet (line 95) | fn read_packet(buf: &mut ByteBuffer) -> io::Result> { method next_packet (line 107) | fn next_packet(&mut self, stream: &mut TcpStream) -> io::Result { method fill_buffer_from (line 118) | fn fill_buffer_from(&mut self, stream: &mut TcpStream) -> io::Result<(... method available_packet_length (line 129) | fn available_packet_length(input: &[u8]) -> io::Result> { method handle_packet (line 157) | fn handle_packet(&mut self, packet: &str) { method parse_connected_devices (line 167) | fn parse_connected_devices(&self, packet: &str) -> Vec { method parse_length (line 184) | fn parse_length(data: &[u8]) -> io::Result { method repair_adb_daemon (line 200) | fn repair_adb_daemon() { method start_adb_daemon (line 208) | fn start_adb_daemon() -> bool { method binary_to_string (line 232) | fn binary_to_string(data: &[u8]) -> io::Result { function test_read_valid_packet (line 253) | fn test_read_valid_packet() { function test_read_valid_packets (line 265) | fn test_read_valid_packets() { function test_read_valid_packet_with_garbage (line 280) | fn test_read_valid_packet_with_garbage() { function test_read_short_packet (line 292) | fn test_read_short_packet() { function test_handle_packet_device (line 304) | fn test_handle_packet_device() { function test_handle_packet_offline (line 317) | fn test_handle_packet_offline() { function test_multiple_connected_devices (line 330) | fn test_multiple_connected_devices() { function test_multiple_connected_devices_with_disconnection (line 346) | fn test_multiple_connected_devices_with_disconnection() { FILE: relay-rust/src/cli_args.rs constant PARAM_NONE (line 17) | pub const PARAM_NONE: u8 = 0; constant PARAM_SERIAL (line 18) | pub const PARAM_SERIAL: u8 = 1; constant PARAM_DNS_SERVERS (line 19) | pub const PARAM_DNS_SERVERS: u8 = 1 << 1; constant PARAM_ROUTES (line 20) | pub const PARAM_ROUTES: u8 = 1 << 2; constant PARAM_PORT (line 21) | pub const PARAM_PORT: u8 = 1 << 3; constant DEFAULT_PORT (line 23) | pub const DEFAULT_PORT: u16 = 31416; type CommandLineArguments (line 25) | pub struct CommandLineArguments { method parse (line 34) | pub fn parse>(accepted_parameters: u8, args: Vec) -... method serial (line 90) | pub fn serial(&self) -> Option<&str> { method dns_servers (line 94) | pub fn dns_servers(&self) -> Option<&str> { method routes (line 98) | pub fn routes(&self) -> Option<&str> { method port (line 102) | pub fn port(&self) -> u16 { constant ACCEPT_ALL (line 111) | const ACCEPT_ALL: u8 = PARAM_SERIAL | PARAM_DNS_SERVERS | PARAM_ROUTES; function test_no_args (line 114) | fn test_no_args() { function test_serial_only (line 121) | fn test_serial_only() { function test_invalid_paramater (line 128) | fn test_invalid_paramater() { function test_dns_servers_only (line 134) | fn test_dns_servers_only() { function test_serial_and_dns_servers (line 142) | fn test_serial_and_dns_servers() { function test_dns_servers_and_serial (line 150) | fn test_dns_servers_and_serial() { function test_serial_with_no_dns_servers_parameter (line 158) | fn test_serial_with_no_dns_servers_parameter() { function test_no_dns_servers_parameter (line 164) | fn test_no_dns_servers_parameter() { function test_routes_parameter (line 170) | fn test_routes_parameter() { function test_no_routes_parameter (line 177) | fn test_no_routes_parameter() { FILE: relay-rust/src/execution_error.rs type CommandExecutionError (line 25) | pub enum CommandExecutionError { method fmt (line 131) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { method source (line 141) | fn source(&self) -> Option<&(dyn error::Error + 'static)> { method from (line 151) | fn from(error: ProcessIoError) -> Self { method from (line 157) | fn from(error: ProcessStatusError) -> Self { method from (line 163) | fn from(error: io::Error) -> Self { type ProcessStatusError (line 32) | pub struct ProcessStatusError { method new (line 88) | pub fn new(cmd: Cmd, status: ExitStatus) -> Self { method fmt (line 97) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { type ProcessIoError (line 38) | pub struct ProcessIoError { method new (line 113) | pub fn new(cmd: Cmd, error: io::Error) -> Self { method fmt (line 119) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { method source (line 125) | fn source(&self) -> Option<&(dyn error::Error + 'static)> { type Cmd (line 44) | pub struct Cmd { method fmt (line 69) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { method new (line 75) | pub fn new(command: S1, args: Vec) -> Cmd type Termination (line 50) | pub enum Termination { method from (line 57) | fn from(status: ExitStatus) -> Self { FILE: relay-rust/src/lib.rs function relay (line 23) | pub fn relay(port: u16) -> io::Result<()> { FILE: relay-rust/src/logger.rs constant THRESHOLD (line 22) | const THRESHOLD: LevelFilter = LevelFilter::Info; type SimpleLogger (line 24) | pub struct SimpleLogger; method enabled (line 27) | fn enabled(&self, metadata: &Metadata) -> bool { method log (line 31) | fn log(&self, record: &Record) { method flush (line 50) | fn flush(&self) { function init (line 56) | pub fn init() -> Result<(), SetLoggerError> { FILE: relay-rust/src/main.rs constant TAG (line 36) | const TAG: &str = "Main"; constant REQUIRED_APK_VERSION_CODE (line 37) | const REQUIRED_APK_VERSION_CODE: &str = "9"; function get_adb_path (line 40) | fn get_adb_path() -> String { function get_apk_path (line 49) | fn get_apk_path() -> String { constant COMMANDS (line 57) | const COMMANDS: &[&dyn Command] = &[ type Command (line 71) | trait Command { method command (line 72) | fn command(&self) -> &'static str; method accepted_parameters (line 73) | fn accepted_parameters(&self) -> u8; method description (line 74) | fn description(&self) -> &'static str; method execute (line 75) | fn execute(&self, args: &CommandLineArguments) -> Result<(), CommandEx... method command (line 91) | fn command(&self) -> &'static str { method accepted_parameters (line 95) | fn accepted_parameters(&self) -> u8 { method description (line 99) | fn description(&self) -> &'static str { method execute (line 105) | fn execute(&self, args: &CommandLineArguments) -> Result<(), CommandEx... method command (line 111) | fn command(&self) -> &'static str { method accepted_parameters (line 115) | fn accepted_parameters(&self) -> u8 { method description (line 119) | fn description(&self) -> &'static str { method execute (line 125) | fn execute(&self, args: &CommandLineArguments) -> Result<(), CommandEx... method command (line 131) | fn command(&self) -> &'static str { method accepted_parameters (line 135) | fn accepted_parameters(&self) -> u8 { method description (line 139) | fn description(&self) -> &'static str { method execute (line 143) | fn execute(&self, args: &CommandLineArguments) -> Result<(), CommandEx... method command (line 149) | fn command(&self) -> &'static str { method accepted_parameters (line 153) | fn accepted_parameters(&self) -> u8 { method description (line 160) | fn description(&self) -> &'static str { method execute (line 168) | fn execute(&self, args: &CommandLineArguments) -> Result<(), CommandEx... method command (line 179) | fn command(&self) -> &'static str { method accepted_parameters (line 183) | fn accepted_parameters(&self) -> u8 { method description (line 187) | fn description(&self) -> &'static str { method execute (line 193) | fn execute(&self, args: &CommandLineArguments) -> Result<(), CommandEx... method command (line 199) | fn command(&self) -> &'static str { method accepted_parameters (line 203) | fn accepted_parameters(&self) -> u8 { method description (line 210) | fn description(&self) -> &'static str { method execute (line 225) | fn execute(&self, args: &CommandLineArguments) -> Result<(), CommandEx... method command (line 236) | fn command(&self) -> &'static str { method accepted_parameters (line 240) | fn accepted_parameters(&self) -> u8 { method description (line 244) | fn description(&self) -> &'static str { method execute (line 251) | fn execute(&self, args: &CommandLineArguments) -> Result<(), CommandEx... method command (line 257) | fn command(&self) -> &'static str { method accepted_parameters (line 261) | fn accepted_parameters(&self) -> u8 { method description (line 265) | fn description(&self) -> &'static str { method execute (line 271) | fn execute(&self, args: &CommandLineArguments) -> Result<(), CommandEx... method command (line 277) | fn command(&self) -> &'static str { method accepted_parameters (line 281) | fn accepted_parameters(&self) -> u8 { method description (line 288) | fn description(&self) -> &'static str { method execute (line 292) | fn execute(&self, args: &CommandLineArguments) -> Result<(), CommandEx... method command (line 305) | fn command(&self) -> &'static str { method accepted_parameters (line 309) | fn accepted_parameters(&self) -> u8 { method description (line 313) | fn description(&self) -> &'static str { method execute (line 320) | fn execute(&self, args: &CommandLineArguments) -> Result<(), CommandEx... method command (line 326) | fn command(&self) -> &'static str { method accepted_parameters (line 330) | fn accepted_parameters(&self) -> u8 { method description (line 334) | fn description(&self) -> &'static str { method execute (line 338) | fn execute(&self, args: &CommandLineArguments) -> Result<(), CommandEx... type InstallCommand (line 78) | struct InstallCommand; type UninstallCommand (line 79) | struct UninstallCommand; type ReinstallCommand (line 80) | struct ReinstallCommand; type RunCommand (line 81) | struct RunCommand; type AutorunCommand (line 82) | struct AutorunCommand; type StartCommand (line 83) | struct StartCommand; type AutostartCommand (line 84) | struct AutostartCommand; type StopCommand (line 85) | struct StopCommand; type RestartCommand (line 86) | struct RestartCommand; type TunnelCommand (line 87) | struct TunnelCommand; type RelayCommand (line 88) | struct RelayCommand; function cmd_install (line 344) | fn cmd_install(serial: Option<&str>) -> Result<(), CommandExecutionError> { function cmd_uninstall (line 349) | fn cmd_uninstall(serial: Option<&str>) -> Result<(), CommandExecutionErr... function cmd_reinstall (line 354) | fn cmd_reinstall(serial: Option<&str>) -> Result<(), CommandExecutionErr... function cmd_run (line 360) | fn cmd_run( function cmd_autorun (line 385) | fn cmd_autorun( function cmd_start (line 405) | fn cmd_start( function cmd_autostart (line 439) | fn cmd_autostart( function cmd_stop (line 455) | fn cmd_stop(serial: Option<&str>) -> Result<(), CommandExecutionError> { function cmd_tunnel (line 471) | fn cmd_tunnel(serial: Option<&str>, port: u16) -> Result<(), CommandExec... function cmd_relay (line 482) | fn cmd_relay(port: u16) -> Result<(), CommandExecutionError> { function async_start (line 488) | fn async_start(serial: Option<&str>, dns_servers: Option<&str>, routes: ... function create_adb_args (line 502) | fn create_adb_args>(serial: Option<&str>, args: Vec) ... function exec_adb (line 514) | fn exec_adb>( function must_install_client (line 537) | fn must_install_client(serial: Option<&str>) -> Result [u8; 4] { function build_packet_string (line 29) | pub fn build_packet_string(data: &[u8]) -> String { function ptr_data_eq (line 49) | pub fn ptr_data_eq(lhs: *const T, rhs: *const T) -> bool { FILE: relay-rust/src/relay/byte_buffer.rs type ByteBuffer (line 20) | pub struct ByteBuffer { method new (line 26) | pub fn new(length: usize) -> Self { method read_from (line 33) | pub fn read_from(&mut self, source: &mut R) -> io::Result... method peek (line 40) | pub fn peek(&self) -> &[u8] { method peek_mut (line 44) | pub fn peek_mut(&mut self) -> &mut [u8] { method consume (line 48) | pub fn consume(&mut self, length: usize) { function produce_consume_byte_buffer (line 85) | fn produce_consume_byte_buffer() { FILE: relay-rust/src/relay/client.rs constant TAG (line 35) | const TAG: &str = "Client"; type Client (line 37) | pub struct Client { method create (line 112) | pub fn create( method id (line 150) | pub fn id(&self) -> u32 { method router (line 154) | pub fn router(&mut self) -> &mut Router { method channel (line 158) | pub fn channel(&mut self) -> ClientChannel { method close (line 167) | fn close(&mut self, selector: &mut Selector) { method on_ready (line 178) | fn on_ready(&mut self, selector: &mut Selector, event: Event) { method process (line 190) | fn process(&mut self, selector: &mut Selector, event: Event) -> io::Re... method process_send (line 207) | fn process_send(&mut self, selector: &mut Selector) -> io::Result<()> { method process_receive (line 237) | fn process_receive(&mut self, selector: &mut Selector) -> io::Result<(... method send_to_client (line 256) | pub fn send_to_client( method register_pending_packet_source (line 274) | pub fn register_pending_packet_source(&mut self, source: Rc io::Result<()> { method update_interests (line 286) | fn update_interests(&mut self, selector: &mut Selector) { method read (line 290) | fn read(&mut self) -> io::Result { method write (line 294) | fn write(&mut self) -> io::Result<()> { method push_to_network (line 299) | fn push_to_network(&mut self, selector: &mut Selector) { method push_one_packet_to_network (line 305) | fn push_one_packet_to_network(&mut self, selector: &mut Selector) -> b... method process_pending (line 322) | fn process_pending(&mut self, selector: &mut Selector) { method clean_expired_connections (line 353) | pub fn clean_expired_connections(&mut self, selector: &mut Selector) { method must_send_id (line 357) | fn must_send_id(&self) -> bool { type ClientChannel (line 53) | pub struct ClientChannel<'a> { function new (line 61) | fn new( function send_to_client (line 77) | pub fn send_to_client( function update_interests (line 95) | fn update_interests(&mut self, selector: &mut Selector) { FILE: relay-rust/src/relay/close_listener.rs type CloseListener (line 17) | pub trait CloseListener { method on_closed (line 18) | fn on_closed(&self, target: &T); method on_closed (line 25) | fn on_closed(&self, target: &T) { FILE: relay-rust/src/relay/connection.rs constant LOCALHOST_FORWARD (line 27) | const LOCALHOST_FORWARD: u32 = 0x0A_00_02_02; constant LOCALHOST (line 28) | const LOCALHOST: u32 = 0x7F_00_00_01; type Connection (line 30) | pub trait Connection { method id (line 31) | fn id(&self) -> &ConnectionId; method send_to_network (line 32) | fn send_to_network( method close (line 38) | fn close(&mut self, selector: &mut Selector); method is_expired (line 39) | fn is_expired(&self) -> bool; method is_closed (line 40) | fn is_closed(&self) -> bool; type ConnectionId (line 44) | pub struct ConnectionId { method from_headers (line 54) | pub fn from_headers( method protocol (line 77) | pub fn protocol(&self) -> Protocol { method rewritten_destination (line 81) | pub fn rewritten_destination(&self) -> SocketAddrV4 { method fmt (line 92) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { FILE: relay-rust/src/relay/datagram.rs constant MAX_DATAGRAM_LENGTH (line 21) | pub const MAX_DATAGRAM_LENGTH: usize = 1 << 16; type DatagramSender (line 23) | pub trait DatagramSender { method send (line 24) | fn send(&mut self, buf: &[u8]) -> io::Result; method send (line 33) | fn send(&mut self, buf: &[u8]) -> io::Result { method send (line 112) | fn send(&mut self, buf: &[u8]) -> io::Result { type DatagramReceiver (line 27) | pub trait DatagramReceiver { method recv (line 28) | fn recv(&mut self, buf: &mut [u8]) -> io::Result; method recv (line 41) | fn recv(&mut self, buf: &mut [u8]) -> io::Result { method recv (line 72) | fn recv(&mut self, buf: &mut [u8]) -> io::Result { method recv (line 121) | fn recv(&mut self, buf: &mut [u8]) -> io::Result { type ReadAdapter (line 48) | pub struct ReadAdapter<'a, R> function new (line 60) | pub fn new(read: &'a mut R, max_chunk_size: Option) -> Self { type MockDatagramSocket (line 87) | pub struct MockDatagramSocket { method new (line 93) | pub fn new() -> Self { method from_data (line 100) | pub fn from_data(data: &[u8]) -> Self { method data (line 106) | pub fn data(&self) -> &[u8] { function mock_send (line 129) | fn mock_send() { function mock_recv (line 138) | fn mock_recv() { function read_adapter (line 147) | fn read_adapter() { function read_adapter_chunks (line 157) | fn read_adapter_chunks() { FILE: relay-rust/src/relay/datagram_buffer.rs constant HEADER_LENGTH (line 23) | const HEADER_LENGTH: usize = 2; constant MAX_BLOCK_LENGTH (line 24) | const MAX_BLOCK_LENGTH: usize = HEADER_LENGTH + MAX_DATAGRAM_LENGTH; constant TAG (line 26) | const TAG: &str = "DatagramBuffer"; type DatagramBuffer (line 40) | pub struct DatagramBuffer { method new (line 48) | pub fn new(capacity: usize) -> Self { method is_empty (line 57) | pub fn is_empty(&self) -> bool { method has_enough_space_for (line 61) | pub fn has_enough_space_for(&self, datagram_length: usize) -> bool { method write_to (line 71) | pub fn write_to(&mut self, destination: &mut S) -> ... method read_from (line 96) | pub fn read_from(&mut self, source: &[u8]) -> io::Result<()> { method read_length (line 119) | fn read_length(&mut self) -> u16 { method write_length (line 124) | fn write_length(&mut self, length: u16) { function create_datagram (line 135) | fn create_datagram(length: u8) -> Vec { function bufferize_datagram (line 140) | fn bufferize_datagram() { function split_datagrams_at_boundaries (line 149) | fn split_datagrams_at_boundaries() { function circular (line 169) | fn circular() { function read_datagram (line 191) | fn read_datagram(datagram_buffer: &mut DatagramBuffer) -> Vec { FILE: relay-rust/src/relay/ipv4_header.rs type Ipv4Header (line 20) | pub struct Ipv4Header<'a> { type Ipv4HeaderMut (line 25) | pub struct Ipv4HeaderMut<'a> { type Ipv4HeaderData (line 31) | pub struct Ipv4HeaderData { method parse (line 49) | pub fn parse(raw: &[u8]) -> Self { method bind (line 64) | pub fn bind<'c, 'a: 'c, 'b: 'c>(&'a self, raw: &'b [u8]) -> Ipv4Header... method bind_mut (line 68) | pub fn bind_mut<'c, 'a: 'c, 'b: 'c>(&'a mut self, raw: &'b mut [u8]) -... method header_length (line 72) | pub fn header_length(&self) -> u8 { method total_length (line 76) | pub fn total_length(&self) -> u16 { method protocol (line 80) | pub fn protocol(&self) -> Protocol { method source (line 84) | pub fn source(&self) -> u32 { method destination (line 88) | pub fn destination(&self) -> u32 { type Protocol (line 41) | pub enum Protocol { function peek_version_length (line 93) | pub fn peek_version_length(raw: &[u8]) -> Option<(u8, u16)> { function raw_mut (line 155) | pub fn raw_mut(&mut self) -> &mut [u8] { function data_mut (line 159) | pub fn data_mut(&mut self) -> &mut Ipv4HeaderData { function set_total_length (line 163) | pub fn set_total_length(&mut self, total_length: u16) { function set_source (line 168) | pub fn set_source(&mut self, source: u32) { function set_destination (line 173) | pub fn set_destination(&mut self, destination: u32) { function swap_source_and_destination (line 178) | pub fn swap_source_and_destination(&mut self) { function checksum (line 185) | fn checksum(&self) -> u16 { function set_checksum (line 189) | fn set_checksum(&mut self, checksum: u16) { function update_checksum (line 193) | pub fn update_checksum(&mut self) { function create_header (line 215) | fn create_header() -> Vec { function parse_header (line 231) | fn parse_header() { function edit_header (line 243) | fn edit_header() { function compute_checksum (line 275) | fn compute_checksum() { function peek_version_length_unavailable (line 295) | fn peek_version_length_unavailable() { function peek_version_length_available (line 303) | fn peek_version_length_available() { FILE: relay-rust/src/relay/ipv4_packet.rs constant MAX_PACKET_LENGTH (line 20) | pub const MAX_PACKET_LENGTH: usize = 1 << 16; type Ipv4Packet (line 22) | pub struct Ipv4Packet<'a> { function parse (line 29) | pub fn parse(raw: &'a mut [u8]) -> Self { function new (line 42) | pub fn new( function raw (line 55) | pub fn raw(&self) -> &[u8] { function headers_data (line 60) | pub fn headers_data(&self) -> (&Ipv4HeaderData, Option<&TransportHeaderD... function headers (line 64) | pub fn headers(&self) -> (Ipv4Header, Option) { function ipv4_header_data (line 83) | pub fn ipv4_header_data(&self) -> &Ipv4HeaderData { function ipv4_header (line 89) | pub fn ipv4_header(&self) -> Ipv4Header { function ipv4_header_mut (line 96) | pub fn ipv4_header_mut(&mut self) -> Ipv4HeaderMut { function transport_header_data (line 103) | pub fn transport_header_data(&self) -> Option<&TransportHeaderData> { function transport_header (line 108) | pub fn transport_header(&self) -> Option { function transport_header_mut (line 127) | fn transport_header_mut(&mut self) -> Option { function split (line 149) | pub fn split(&self) -> (Ipv4Header, Option<(TransportHeader, &[u8])>) { function split_mut (line 170) | pub fn split_mut(&mut self) -> (Ipv4HeaderMut, Option<(TransportHeaderMu... function is_valid (line 189) | pub fn is_valid(&self) -> bool { function length (line 194) | pub fn length(&self) -> u16 { function payload (line 198) | pub fn payload(&self) -> Option<&[u8]> { function compute_checksums (line 208) | pub fn compute_checksums(&mut self) { function create_packet (line 231) | fn create_packet() -> Vec { function parse_headers (line 256) | fn parse_headers() { function payload (line 280) | fn payload() { FILE: relay-rust/src/relay/ipv4_packet_buffer.rs type Ipv4PacketBuffer (line 25) | pub struct Ipv4PacketBuffer { method new (line 30) | pub fn new() -> Self { method read_from (line 36) | pub fn read_from(&mut self, source: &mut R) -> io::Result... method available_packet_length (line 40) | fn available_packet_length(&self) -> Option { method as_ipv4_packet (line 58) | pub fn as_ipv4_packet(&mut self) -> Option { method next (line 67) | pub fn next(&mut self) { function create_packet (line 84) | fn create_packet() -> Vec { function write_packet_to (line 90) | fn write_packet_to(raw: &mut Vec) { function write_another_packet_to (line 109) | fn write_another_packet_to(raw: &mut Vec) { function check_packet_headers (line 128) | fn check_packet_headers(ipv4_packet: &Ipv4Packet) { function check_another_packet_headers (line 145) | fn check_another_packet_headers(ipv4_packet: &Ipv4Packet) { function parse_ipv4_packet_buffer (line 163) | fn parse_ipv4_packet_buffer() { function parse_fragmented_ipv4_packet_buffer (line 175) | fn parse_fragmented_ipv4_packet_buffer() { function create_multi_packets (line 191) | fn create_multi_packets() -> Vec { function parse_multi_packets (line 200) | fn parse_multi_packets() { FILE: relay-rust/src/relay/net.rs function to_addr (line 20) | pub fn to_addr(ipv4: u32) -> Ipv4Addr { function to_socket_addr (line 25) | pub fn to_socket_addr(ipv4: u32, port: u16) -> SocketAddrV4 { FILE: relay-rust/src/relay/packet_source.rs type PacketSource (line 29) | pub trait PacketSource { method get (line 30) | fn get(&mut self) -> Option; method next (line 31) | fn next(&mut self, selector: &mut Selector); FILE: relay-rust/src/relay/packetizer.rs type Packetizer (line 25) | pub struct Packetizer { method new (line 34) | pub fn new( method packetize_empty_payload (line 69) | pub fn packetize_empty_payload(&mut self) -> Ipv4Packet { method packetize (line 73) | pub fn packetize(&mut self, source: &mut R) -> io... method packetize_read (line 84) | pub fn packetize_read( method ipv4_header_mut (line 100) | pub fn ipv4_header_mut(&mut self) -> Ipv4HeaderMut { method transport_header_mut (line 105) | pub fn transport_header_mut(&mut self) -> TransportHeaderMut { method build (line 110) | fn build(&mut self, payload_length: u16) -> Ipv4Packet { method inflate (line 126) | pub fn inflate(&mut self, packet_length: u16) -> Ipv4Packet { function create_packet (line 142) | fn create_packet() -> Vec { function merge_headers_and_payload (line 164) | fn merge_headers_and_payload() { function last_packet (line 181) | fn last_packet() { function packetize_chunks (line 199) | fn packetize_chunks() { FILE: relay-rust/src/relay/relay.rs constant TAG (line 30) | const TAG: &str = "Relay"; constant CLEANING_INTERVAL_SECONDS (line 31) | const CLEANING_INTERVAL_SECONDS: i64 = 60; type Relay (line 33) | pub struct Relay { method new (line 38) | pub fn new(port: u16) -> Self { method run (line 42) | pub fn run(&self) -> io::Result<()> { method poll_loop (line 49) | fn poll_loop( FILE: relay-rust/src/relay/router.rs constant TAG (line 31) | const TAG: &str = "Router"; type Router (line 33) | pub struct Router { method new (line 40) | pub fn new() -> Self { method set_client (line 48) | pub fn set_client(&mut self, client: Weak>) { method send_to_network (line 52) | pub fn send_to_network( method connection (line 95) | fn connection( method create_connection (line 116) | fn create_connection( method find_index (line 146) | fn find_index(&self, id: &ConnectionId) -> Option { method remove (line 152) | pub fn remove(&mut self, connection: &dyn Connection) { method clear (line 169) | pub fn clear(&mut self, selector: &mut Selector) { method clean_expired_connections (line 176) | pub fn clean_expired_connections(&mut self, selector: &mut Selector) { FILE: relay-rust/src/relay/selector.rs constant TAG (line 24) | const TAG: &str = "Selector"; type EventHandler (line 26) | pub trait EventHandler { method on_ready (line 27) | fn on_ready(&self, selector: &mut Selector, event: Event); method on_ready (line 34) | fn on_ready(&self, selector: &mut Selector, event: Event) { type Selector (line 39) | pub struct Selector { method create (line 47) | pub fn create() -> io::Result { method register (line 55) | pub fn register( method reregister (line 76) | pub fn reregister( method deregister (line 89) | pub fn deregister(&mut self, handle: &E, token: Token) -> io::Resul... method clean_removed_tokens (line 99) | fn clean_removed_tokens(&mut self) { method poll (line 106) | pub fn poll(&mut self, events: &mut Events, timeout: Option)... method run_handlers (line 110) | pub fn run_handlers(&mut self, events: &Events) { FILE: relay-rust/src/relay/stream_buffer.rs type StreamBuffer (line 20) | pub struct StreamBuffer { method new (line 27) | pub fn new(capacity: usize) -> Self { method is_empty (line 35) | pub fn is_empty(&self) -> bool { method size (line 39) | pub fn size(&self) -> usize { method capacity (line 47) | pub fn capacity(&self) -> usize { method remaining (line 51) | pub fn remaining(&self) -> usize { method write_to (line 55) | pub fn write_to(&mut self, destination: &mut W) -> io::R... method read_from (line 76) | pub fn read_from(&mut self, source: &[u8]) { method optimize (line 109) | fn optimize(&mut self) { function create_data (line 121) | fn create_data() -> Vec { function bufferize_data (line 126) | fn bufferize_data() { function circular (line 138) | fn circular() { function just_enough_space (line 165) | fn just_enough_space() { function read_some (line 178) | fn read_some(stream_buffer: &mut StreamBuffer, bytes: usize) -> Vec { function read (line 187) | fn read(stream_buffer: &mut StreamBuffer) -> Vec { FILE: relay-rust/src/relay/tcp_connection.rs constant TAG (line 39) | const TAG: &str = "TcpConnection"; constant MTU (line 42) | const MTU: u16 = 0x4000; constant MAX_PAYLOAD_LENGTH (line 44) | const MAX_PAYLOAD_LENGTH: u16 = MTU - 20 - 20 as u16; type TcpConnection (line 46) | pub struct TcpConnection { method create (line 135) | pub fn create( method create_stream (line 198) | fn create_stream(id: &ConnectionId) -> io::Result { method remove_from_router (line 202) | fn remove_from_router(&self) { method on_ready (line 209) | fn on_ready(&mut self, selector: &mut Selector, event: Event) { method process (line 220) | fn process(&mut self, selector: &mut Selector, event: Event) -> io::Re... method process_send (line 252) | fn process_send(&mut self, selector: &mut Selector) -> io::Result<()> { method process_receive (line 300) | fn process_receive(&mut self, selector: &mut Selector) -> io::Result<(... method process_connect (line 366) | fn process_connect(&mut self, selector: &mut Selector) { method send_to_client (line 374) | fn send_to_client( method send_empty_packet_to_client (line 387) | fn send_empty_packet_to_client(&mut self, selector: &mut Selector, fla... method reply_empty_packet_to_client (line 397) | fn reply_empty_packet_to_client( method eof (line 420) | fn eof(&mut self, selector: &mut Selector) { method tcp_header_of_transport (line 433) | fn tcp_header_of_transport(transport_header: TransportHeader) -> TcpHe... method tcp_header_of_transport_mut (line 442) | fn tcp_header_of_transport_mut(transport_header: TransportHeaderMut) -... method tcp_header_of_packet (line 451) | fn tcp_header_of_packet<'a>(ipv4_packet: &'a Ipv4Packet) -> TcpHeader<... method update_headers (line 459) | fn update_headers(packetizer: &mut Packetizer, tcb: &Tcb, flags: u16) { method handle_packet (line 466) | fn handle_packet( method handle_first_packet (line 539) | fn handle_first_packet( method handle_duplicate_syn (line 579) | fn handle_duplicate_syn( method handle_fin (line 599) | fn handle_fin(&mut self, selector: &mut Selector, client_channel: &mut... method do_handle_fin (line 619) | fn do_handle_fin(&mut self, selector: &mut Selector, client_channel: &... method handle_fin_ack (line 651) | fn handle_fin_ack(&mut self, selector: &mut Selector) { method handle_ack (line 667) | fn handle_ack( method create_empty_response_packet (line 704) | fn create_empty_response_packet<'a>( method update_interests (line 733) | fn update_interests(&mut self, selector: &mut Selector) { method may_read (line 757) | fn may_read(&self) -> bool { method may_write (line 768) | fn may_write(&self) -> bool { type Tcb (line 61) | struct Tcb { method new (line 100) | fn new() -> Self { method remaining_client_window (line 113) | fn remaining_client_window(&self) -> u16 { method numbers (line 125) | fn numbers(&self) -> String { type TcpState (line 74) | enum TcpState { method is_connected (line 87) | fn is_connected(&self) -> bool { method is_closed (line 91) | fn is_closed(&self) -> bool { method id (line 774) | fn id(&self) -> &ConnectionId { method send_to_network (line 778) | fn send_to_network( method close (line 790) | fn close(&mut self, selector: &mut Selector) { method is_expired (line 806) | fn is_expired(&self) -> bool { method is_closed (line 811) | fn is_closed(&self) -> bool { method get (line 817) | fn get(&mut self) -> Option { method next (line 825) | fn next(&mut self, selector: &mut Selector) { FILE: relay-rust/src/relay/tcp_header.rs type TcpHeader (line 21) | pub struct TcpHeader<'a> { type TcpHeaderMut (line 26) | pub struct TcpHeaderMut<'a> { type TcpHeaderData (line 32) | pub struct TcpHeaderData { method parse (line 50) | pub fn parse(raw: &[u8]) -> Self { method bind (line 64) | pub fn bind<'c, 'a: 'c, 'b: 'c>(&'a self, raw: &'b [u8]) -> TcpHeader<... method bind_mut (line 69) | pub fn bind_mut<'c, 'a: 'c, 'b: 'c>(&'a mut self, raw: &'b mut [u8]) -... method header_length (line 74) | pub fn header_length(&self) -> u8 { method source_port (line 79) | pub fn source_port(&self) -> u16 { method destination_port (line 84) | pub fn destination_port(&self) -> u16 { method sequence_number (line 89) | pub fn sequence_number(&self) -> u32 { method acknowledgement_number (line 94) | pub fn acknowledgement_number(&self) -> u32 { method window (line 99) | pub fn window(&self) -> u16 { method flags (line 104) | pub fn flags(&self) -> u16 { method is_fin (line 109) | pub fn is_fin(&self) -> bool { method is_syn (line 114) | pub fn is_syn(&self) -> bool { method is_rst (line 119) | pub fn is_rst(&self) -> bool { method is_psh (line 124) | pub fn is_psh(&self) -> bool { method is_ack (line 129) | pub fn is_ack(&self) -> bool { constant FLAG_FIN (line 42) | pub const FLAG_FIN: u16 = 1; constant FLAG_SYN (line 43) | pub const FLAG_SYN: u16 = 1 << 1; constant FLAG_RST (line 44) | pub const FLAG_RST: u16 = 1 << 2; constant FLAG_PSH (line 45) | pub const FLAG_PSH: u16 = 1 << 3; constant FLAG_ACK (line 46) | pub const FLAG_ACK: u16 = 1 << 4; function raw_mut (line 227) | pub fn raw_mut(&mut self) -> &mut [u8] { function data_mut (line 232) | pub fn data_mut(&mut self) -> &mut TcpHeaderData { function set_source_port (line 237) | pub fn set_source_port(&mut self, source_port: u16) { function set_destination_port (line 243) | pub fn set_destination_port(&mut self, destination_port: u16) { function swap_source_and_destination (line 248) | pub fn swap_source_and_destination(&mut self) { function set_sequence_number (line 256) | pub fn set_sequence_number(&mut self, sequence_number: u32) { function set_acknowledgement_number (line 262) | pub fn set_acknowledgement_number(&mut self, acknowledgement_number: u32) { function set_flags (line 268) | pub fn set_flags(&mut self, flags: u16) { function shrink_options (line 277) | pub fn shrink_options(&mut self) { function set_data_offset (line 282) | fn set_data_offset(&mut self, data_offset: u8) { function checksum (line 290) | fn checksum(&self) -> u16 { function set_checksum (line 295) | fn set_checksum(&mut self, checksum: u16) { function update_checksum (line 299) | pub fn update_checksum(&mut self, ipv4_header_data: &Ipv4HeaderData, pay... function create_packet (line 371) | fn create_packet() -> Vec { function create_odd_packet (line 399) | fn create_odd_packet() -> Vec { function create_empty_packet (line 429) | fn create_empty_packet() -> Vec { function create_tcp_header (line 455) | fn create_tcp_header() -> Vec { function edit_header (line 472) | fn edit_header() { function compute_checksum (line 518) | fn compute_checksum() { function compute_checksum_odd (line 560) | fn compute_checksum_odd() { function compute_checksum_empty_payload (line 602) | fn compute_checksum_empty_payload() { function create_long_packet (line 640) | fn create_long_packet() -> Vec { function bench_checksum (line 676) | fn bench_checksum() { FILE: relay-rust/src/relay/transport_header.rs type TransportHeader (line 21) | pub enum TransportHeader<'a> { type TransportHeaderMut (line 26) | pub enum TransportHeaderMut<'a> { type TransportHeaderData (line 32) | pub enum TransportHeaderData { method parse (line 39) | pub fn parse(protocol: Protocol, raw: &[u8]) -> Option { method bind (line 48) | pub fn bind<'c, 'a: 'c, 'b: 'c>(&'a self, raw: &'b [u8]) -> TransportH... method bind_mut (line 53) | pub fn bind_mut<'c, 'a: 'c, 'b: 'c>(&'a mut self, raw: &'b mut [u8]) -... method source_port (line 58) | pub fn source_port(&self) -> u16 { method destination_port (line 66) | pub fn destination_port(&self) -> u16 { method header_length (line 74) | pub fn header_length(&self) -> u8 { method from (line 204) | fn from(tcp_header_data: TcpHeaderData) -> TransportHeaderData { method from (line 210) | fn from(udp_header_data: UdpHeaderData) -> TransportHeaderData { function new (line 83) | pub fn new(raw: &'a [u8], data: &'a TransportHeaderData) -> Self { function new (line 92) | pub fn new(raw: &'a mut [u8], data: &'a mut TransportHeaderData) -> Self { function raw_mut (line 164) | pub fn raw_mut(&mut self) -> &mut [u8] { function swap_source_and_destination (line 172) | pub fn swap_source_and_destination(&mut self) { function set_payload_length (line 180) | pub fn set_payload_length(&mut self, payload_length: u16) { function update_checksum (line 191) | pub fn update_checksum(&mut self, ipv4_header_data: &Ipv4HeaderData, pay... function from (line 216) | fn from(tcp_header: TcpHeader) -> TransportHeader { function from (line 222) | fn from(udp_header: UdpHeader) -> TransportHeader { function from (line 228) | fn from(tcp_header: TcpHeaderMut) -> TransportHeaderMut { function from (line 234) | fn from(udp_header: UdpHeaderMut) -> TransportHeaderMut { FILE: relay-rust/src/relay/tunnel_server.rs constant TAG (line 29) | const TAG: &str = "TunnelServer"; type TunnelServer (line 31) | pub struct TunnelServer { method create (line 39) | pub fn create(port: u16, selector: &mut Selector) -> io::Result io::Result { method on_ready (line 71) | fn on_ready(&mut self, selector: &mut Selector, _: Event) { method accept_client (line 81) | fn accept_client(&mut self, selector: &mut Selector) -> io::Result<()> { method remove_client (line 103) | fn remove_client(&mut self, client: &Client) { method clean_up (line 116) | pub fn clean_up(&mut self, selector: &mut Selector) { FILE: relay-rust/src/relay/udp_connection.rs constant TAG (line 36) | const TAG: &str = "UdpConnection"; constant IDLE_TIMEOUT_SECONDS (line 38) | pub const IDLE_TIMEOUT_SECONDS: u64 = 2 * 60; type UdpConnection (line 40) | pub struct UdpConnection { method create (line 54) | pub fn create( method create_socket (line 91) | fn create_socket(id: &ConnectionId) -> io::Result { method remove_from_router (line 98) | fn remove_from_router(&self) { method on_ready (line 105) | fn on_ready(&mut self, selector: &mut Selector, event: Event) { method process (line 117) | fn process(&mut self, selector: &mut Selector, event: Event) -> io::Re... method process_send (line 144) | fn process_send(&mut self, selector: &mut Selector) -> io::Result<()> { method process_receive (line 169) | fn process_receive(&mut self, selector: &mut Selector) -> io::Result<(... method read (line 190) | fn read(&mut self, selector: &mut Selector) -> io::Result<()> { method write (line 218) | fn write(&mut self) -> io::Result<()> { method update_interests (line 223) | fn update_interests(&mut self, selector: &mut Selector) { method touch (line 239) | fn touch(&mut self) { method id (line 245) | fn id(&self) -> &ConnectionId { method send_to_network (line 249) | fn send_to_network( method close (line 271) | fn close(&mut self, selector: &mut Selector) { method is_expired (line 287) | fn is_expired(&self) -> bool { method is_closed (line 291) | fn is_closed(&self) -> bool { FILE: relay-rust/src/relay/udp_header.rs constant UDP_HEADER_LENGTH (line 21) | pub const UDP_HEADER_LENGTH: u8 = 8; type UdpHeader (line 23) | pub struct UdpHeader<'a> { type UdpHeaderMut (line 28) | pub struct UdpHeaderMut<'a> { type UdpHeaderData (line 34) | pub struct UdpHeaderData { method parse (line 41) | pub fn parse(raw: &[u8]) -> Self { method bind (line 49) | pub fn bind<'c, 'a: 'c, 'b: 'c>(&'a self, raw: &'b [u8]) -> UdpHeader<... method bind_mut (line 54) | pub fn bind_mut<'c, 'a: 'c, 'b: 'c>(&'a mut self, raw: &'b mut [u8]) -... method source_port (line 59) | pub fn source_port(&self) -> u16 { method destination_port (line 64) | pub fn destination_port(&self) -> u16 { function raw_mut (line 112) | pub fn raw_mut(&mut self) -> &mut [u8] { function data_mut (line 117) | pub fn data_mut(&mut self) -> &mut UdpHeaderData { function set_source_port (line 122) | pub fn set_source_port(&mut self, source_port: u16) { function set_destination_port (line 128) | pub fn set_destination_port(&mut self, destination_port: u16) { function swap_source_and_destination (line 133) | pub fn swap_source_and_destination(&mut self) { function set_payload_length (line 141) | pub fn set_payload_length(&mut self, payload_length: u16) { function set_checksum (line 147) | fn set_checksum(&mut self, checksum: u16) { function update_checksum (line 152) | pub fn update_checksum(&mut self, _ipv4_header_data: &Ipv4HeaderData, _p... function create_header (line 163) | fn create_header() -> Vec { function parse_header (line 174) | fn parse_header() { function edit_header (line 182) | fn edit_header() {