VNCについてのメモ

vnc reflector

vnc reflector はvnc用のproxyサーバーで、1つのサーバーに負担をかけること なく多数のクライアントに接続する。作者の Constantin Kaplinsky氏はtight vncの作者でもあり、tightVNCの高速性が生かせるの もいい。

使用法

host_sでvncサーバーが、host_rでvnc reflectorが host_cでvncクライアントが動作する環境で、

インスタントハッキング

vnc reflector は外部からのsignal(SIGHUP SIGUSR1 SIGUSR2)で接続を制御で きるが、こちらの都合でreadonlyとfull accessを切り替えたかった。 control.cのsafe_reconnect_nocloseを以下のように書き直した。
static void safe_reconnect_noclose(void)
{
  CL_SLOT *cl = (CL_SLOT *)cur_slot;
  if( cl->readonly ){
    log_write(LL_WARN, "Caught SIGUSR1 signal switch to full access.");
  }
  else{
    log_write(LL_WARN, "Caught SIGUSR1 signal switch to readonly.");
  }    
  cl->readonly=1-(cl->readonly);

  /*
  log_write(LL_WARN, "Caught SIGUSR1 signal, trying to (re)connect to host");
  aio_walk_slots(fn_stop_listening, TYPE_HOST_LISTENING_SLOT);
  aio_walk_slots(fn_close, TYPE_HOST_CONNECTING_SLOT);

  connect_to_host(NULL, 0);
  */
}

Akihiro Yamashita <aki@spring8.or.jp>
Last modified: Thu Feb 13 16:00:39 JST 2003