浏览代码

Proper cleanup on termination of Xvnc/libvnc.so

tags/v1.8.90
Pierre Ossman 6 年前
父节点
当前提交
621580d7a8
共有 3 个文件被更改,包括 14 次插入0 次删除
  1. 1
    0
      unix/xserver/hw/vnc/vncExt.c
  2. 12
    0
      unix/xserver/hw/vnc/vncExtInit.cc
  3. 1
    0
      unix/xserver/hw/vnc/vncExtInit.h

+ 1
- 0
unix/xserver/hw/vnc/vncExt.c 查看文件

@@ -585,6 +585,7 @@ static int SProcVncExtDispatch(ClientPtr client)

static void vncResetProc(ExtensionEntry* extEntry)
{
vncExtensionClose();
}

static void vncClientStateChange(CallbackListPtr * l, void * d, void * p)

+ 12
- 0
unix/xserver/hw/vnc/vncExtInit.cc 查看文件

@@ -262,6 +262,18 @@ void vncExtensionInit(void)
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)
{
desktop[scrIdx]->handleSocketEvent(fd, read, write);

+ 1
- 0
unix/xserver/hw/vnc/vncExtInit.h 查看文件

@@ -48,6 +48,7 @@ extern int vncFbstride[];
extern int vncInetdSock;

void vncExtensionInit(void);
void vncExtensionClose(void);

void vncHandleSocketEvent(int fd, int scrIdx, int read, int write);
void vncCallBlockHandlers(int* timeout);

正在加载...
取消
保存