Struct libvnc_sys::rfb::_rfbClient

source ·
#[repr(C)]
pub struct _rfbClient {
Show 94 fields pub frameBuffer: *mut u8, pub width: c_int, pub height: c_int, pub endianTest: c_int, pub appData: AppData, pub programName: *const c_char, pub serverHost: *mut c_char, pub serverPort: c_int, pub listenSpecified: rfbBool, pub listenPort: c_int, pub flashPort: c_int, pub updateRect: _rfbClient__bindgen_ty_1, pub buffer: [c_char; 307200], pub sock: c_int, pub canUseCoRRE: rfbBool, pub canUseHextile: rfbBool, pub desktopName: *mut c_char, pub format: rfbPixelFormat, pub si: rfbServerInitMsg, pub buf: [c_char; 8192], pub bufoutptr: *mut c_char, pub buffered: c_uint, pub ultra_buffer_size: c_int, pub ultra_buffer: *mut c_char, pub raw_buffer_size: c_int, pub raw_buffer: *mut c_char, pub decompStream: z_stream, pub decompStreamInited: rfbBool, pub zlib_buffer: [c_char; 30000], pub zlibStream: [z_stream; 4], pub zlibStreamActive: [rfbBool; 4], pub cutZeros: rfbBool, pub rectWidth: c_int, pub rectColors: c_int, pub tightPalette: [c_char; 1024], pub tightPrevRow: [u8; 12288], pub jpegError: rfbBool, pub jpegSrcManager: *mut jpeg_source_mgr, pub jpegBufferPtr: *mut c_void, pub jpegBufferLen: usize, pub rcSource: *mut u8, pub rcMask: *mut u8, pub clientData: *mut rfbClientData, pub vncRec: *mut rfbVNCRec, pub KeyboardLedStateEnabled: c_int, pub CurrentKeyboardLedState: c_int, pub canHandleNewFBSize: c_int, pub HandleTextChat: HandleTextChatProc, pub HandleKeyboardLedState: HandleKeyboardLedStateProc, pub HandleCursorPos: HandleCursorPosProc, pub SoftCursorLockArea: SoftCursorLockAreaProc, pub SoftCursorUnlockScreen: SoftCursorUnlockScreenProc, pub GotFrameBufferUpdate: GotFrameBufferUpdateProc, pub GetPassword: GetPasswordProc, pub MallocFrameBuffer: MallocFrameBufferProc, pub GotXCutText: GotXCutTextProc, pub Bell: BellProc, pub GotCursorShape: GotCursorShapeProc, pub GotCopyRect: GotCopyRectProc, pub supportedMessages: rfbSupportedMessages, pub major: c_int, pub minor: c_int, pub authScheme: u32, pub subAuthScheme: u32, pub tlsSession: *mut c_void, pub GetCredential: GetCredentialProc, pub clientAuthSchemes: *mut u32, pub destHost: *mut c_char, pub destPort: c_int, pub QoS_DSCP: c_int, pub HandleXvpMsg: HandleXvpMsgProc, pub listenSock: c_int, pub FinishedFrameBufferUpdate: FinishedFrameBufferUpdateProc, pub listenAddress: *mut c_char, pub listen6Sock: c_int, pub listen6Address: *mut c_char, pub listen6Port: c_int, pub outputWindow: c_ulong, pub LockWriteToTLS: LockWriteToTLSProc, pub UnlockWriteToTLS: UnlockWriteToTLSProc, pub GotFillRect: GotFillRectProc, pub GotBitmap: GotBitmapProc, pub GotJpeg: GotJpegProc, pub saslconn: *mut sasl_conn_t, pub saslDecoded: *const c_char, pub saslDecodedLength: c_uint, pub saslDecodedOffset: c_uint, pub saslSecret: *mut sasl_secret_t, pub GetSASLMechanism: GetSASLMechanismProc, pub GetUser: GetUserProc, pub tjhnd: *mut c_void, pub connectTimeout: c_uint, pub readTimeout: c_uint, pub tlsRwMutex: pthread_mutex_t,
}

Fields§

§frameBuffer: *mut u8§width: c_int§height: c_int§endianTest: c_int§appData: AppData§programName: *const c_char§serverHost: *mut c_char§serverPort: c_int

< if -1, then use file recorded by vncrec

§listenSpecified: rfbBool§listenPort: c_int§flashPort: c_int§updateRect: _rfbClient__bindgen_ty_1§buffer: [c_char; 307200]§sock: c_int§canUseCoRRE: rfbBool§canUseHextile: rfbBool§desktopName: *mut c_char§format: rfbPixelFormat§si: rfbServerInitMsg§buf: [c_char; 8192]§bufoutptr: *mut c_char§buffered: c_uint§ultra_buffer_size: c_int§ultra_buffer: *mut c_char§raw_buffer_size: c_int§raw_buffer: *mut c_char§decompStream: z_stream§decompStreamInited: rfbBool§zlib_buffer: [c_char; 30000]§zlibStream: [z_stream; 4]§zlibStreamActive: [rfbBool; 4]§cutZeros: rfbBool§rectWidth: c_int§rectColors: c_int§tightPalette: [c_char; 1024]§tightPrevRow: [u8; 12288]§jpegError: rfbBool

JPEG decoder state (obsolete– do not use).

§jpegSrcManager: *mut jpeg_source_mgr§jpegBufferPtr: *mut c_void§jpegBufferLen: usize§rcSource: *mut u8

Holds cursor shape data when received from server.

§rcMask: *mut u8

Holds cursor shape data when received from server.

§clientData: *mut rfbClientData

private data pointer

§vncRec: *mut rfbVNCRec§KeyboardLedStateEnabled: c_int§CurrentKeyboardLedState: c_int§canHandleNewFBSize: c_int§HandleTextChat: HandleTextChatProc§HandleKeyboardLedState: HandleKeyboardLedStateProc§HandleCursorPos: HandleCursorPosProc§SoftCursorLockArea: SoftCursorLockAreaProc§SoftCursorUnlockScreen: SoftCursorUnlockScreenProc§GotFrameBufferUpdate: GotFrameBufferUpdateProc§GetPassword: GetPasswordProc

the pointer returned by GetPassword will be freed after use!

§MallocFrameBuffer: MallocFrameBufferProc§GotXCutText: GotXCutTextProc§Bell: BellProc§GotCursorShape: GotCursorShapeProc§GotCopyRect: GotCopyRectProc§supportedMessages: rfbSupportedMessages

Which messages are supported by the server This is a guess for most servers. (If we can even detect the type of server)

If the server supports the “rfbEncodingSupportedMessages” then this will be updated when the encoding is received to accurately reflect the servers capabilities.

§major: c_int

negotiated protocol version

§minor: c_int

negotiated protocol version

§authScheme: u32

The selected security types

§subAuthScheme: u32

The selected security types

§tlsSession: *mut c_void

The TLS session for Anonymous TLS and VeNCrypt

§GetCredential: GetCredentialProc

To support security types that requires user input (except VNC password authentication), for example VeNCrypt and MSLogon, this callback function must be set before the authentication. Otherwise, it implicates that the caller application does not support it and related security types should be bypassed.

§clientAuthSchemes: *mut u32

The 0-terminated security types supported by the client. Set by function SetClientAuthSchemes()

§destHost: *mut c_char

When the server is a repeater, this specifies the final destination

§destPort: c_int§QoS_DSCP: c_int

the QoS IP DSCP for this client

§HandleXvpMsg: HandleXvpMsgProc

hook to handle xvp server messages

§listenSock: c_int§FinishedFrameBufferUpdate: FinishedFrameBufferUpdateProc§listenAddress: *mut c_char§listen6Sock: c_int§listen6Address: *mut c_char§listen6Port: c_int§outputWindow: c_ulong§LockWriteToTLS: LockWriteToTLSProc

These lock/unlock hooks are not used anymore. LibVNCClient will now use platform-specific synchronization library to protect concurrent TLS R/W.

@deprecated

§UnlockWriteToTLS: UnlockWriteToTLSProc§GotFillRect: GotFillRectProc

Hooks for custom rendering

VNC rendering boils down to 3 activities:

  • GotCopyRect: copy an area of the framebuffer
  • GotFillRect: fill an area of the framebuffer with a solid color
  • GotBitmap: copy the bitmap in the buffer into the framebuffer The client application should either set all three of these or none!
§GotBitmap: GotBitmapProc§GotJpeg: GotJpegProc

Hook for custom JPEG decoding and rendering

§saslconn: *mut sasl_conn_t§saslDecoded: *const c_char§saslDecodedLength: c_uint§saslDecodedOffset: c_uint§saslSecret: *mut sasl_secret_t§GetSASLMechanism: GetSASLMechanismProc§GetUser: GetUserProc§tjhnd: *mut c_void

JPEG decoder state.

§connectTimeout: c_uint§readTimeout: c_uint§tlsRwMutex: pthread_mutex_t

Trait Implementations§

source§

impl Clone for _rfbClient

source§

fn clone(&self) -> _rfbClient

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Copy for _rfbClient

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.