static void vncResetProc(ExtensionEntry* extEntry) | static void vncResetProc(ExtensionEntry* extEntry) | ||||
{ | { | ||||
vncExtensionClose(); | |||||
} | } | ||||
static void vncClientStateChange(CallbackListPtr * l, void * d, void * p) | static void vncClientStateChange(CallbackListPtr * l, void * d, void * p) |
vncRegisterBlockHandlers(); | vncRegisterBlockHandlers(); | ||||
} | } | ||||
void vncExtensionClose(void) | |||||
{ | |||||
try { | |||||
for (int scr = 0; scr < vncGetScreenCount(); scr++) { | |||||
delete desktop[scr]; | |||||
desktop[scr] = NULL; | |||||
} | |||||
} catch (rdr::Exception& e) { | |||||
vncFatalError("vncExtInit: %s",e.str()); | |||||
} | |||||
} | |||||
void vncHandleSocketEvent(int fd, int scrIdx, int read, int write) | void vncHandleSocketEvent(int fd, int scrIdx, int read, int write) | ||||
{ | { | ||||
desktop[scrIdx]->handleSocketEvent(fd, read, write); | desktop[scrIdx]->handleSocketEvent(fd, read, write); |
extern int vncInetdSock; | extern int vncInetdSock; | ||||
void vncExtensionInit(void); | void vncExtensionInit(void); | ||||
void vncExtensionClose(void); | |||||
void vncHandleSocketEvent(int fd, int scrIdx, int read, int write); | void vncHandleSocketEvent(int fd, int scrIdx, int read, int write); | ||||
void vncCallBlockHandlers(int* timeout); | void vncCallBlockHandlers(int* timeout); |