かわべです.
At Wed, 30 Jul 2003 22:57:42 +0900 (JST),
Miya <miyam@xxxxxxxxxxxxxxxxx> wrote:
| > > $ echo $DISPLAY
| > > miyaBox.miya.org:0.0
| > > ホスト名が設定されています。
| > > 試しに別のユーザーでも DISPLAY 環境変数の内容を確認しましたがホスト名
| > > が設定されています。
| >
| > これは、miyaBox.miya.org(ノート PC) で X を立ち上げて、そこから
| > telnet でサーバに login しているのでしょうか?
| > そうであれば、正常かと。なぜなら、X サーバは、ノート PC のもの
| > ですから。
|
| 正常なことは正常なのですね。
|
| 頭がこんがらがってます。。。
| DISPLYA 環境変数は X サーバー側のものなのですかね・・・
おおさとさんの質問の telnet でサーバに login したかしていな
いのかどちらでしょうか?
| > では実習問題:
| > 表示されている DISPLAY 環境変数は誰のものでしょう。
| > ノートPC で、X を使わずにコンソールから telnet して、
| > echo $DISPLAY したら何かが変わるでしょうか?
|
| 試してみました。
| DISPLAY 環境変数の中身は空っぽでした。
| 仕組がいまいち理解できていません。
| もしよろしかったら、分かりやすい情報の在処など教えてもらえますと助かり
| ます。
もし,telnet でサーバに login したのであれば,
% man telnet
environ 辺りを読むといいかも
実際確かめるなら.
------------------------------------
% telnet
telnet> environ list
......
* DISPLAY hoge:0.0
....
------------------------------------
となっていると思います.
今 IPv6 の USAGI Project のソースしかないので Vine ではどう
か確信ないのですが,netkit の telnet/environ.cc にこう書いて
います.
---------------------------------------------------------
/*
* Special case for DISPLAY variable. If it is ":0.0" or
* "unix:0.0", we have to get rid of "unix" and insert our
* hostname.
*/
static void env_fix_display(void) {
enviro *ep = env_find("DISPLAY");
if (!ep) return;
ep->setexport(1);
if (strncmp(ep->getval(), ":", 1) && strncmp(ep->getval(), "unix:", 5)) {
return;
}
char hbuf[256];
const char *cp2 = strrchr(ep->getval(), ':');
int maxlen = sizeof(hbuf)-strlen(cp2)-1;
gethostname(hbuf, maxlen);
hbuf[maxlen] = 0; /* ensure null termination */
/*
* dholland 7/30/96 if not a FQDN ask DNS
*/
if (!strchr(hbuf, '.')) {
struct hostent *h = gethostbyname(hbuf);
if (h) {
strncpy(hbuf, h->h_name, maxlen);
hbuf[maxlen] = 0; /* ensure null termination */
}
}
strcat(hbuf, cp2);
ep->define("DISPLAY", hbuf);
}
----------------------------------------------------
--
KAWABE, Tsuyoshi