形は悪いが、今年のぴーまん大盛況!
蜜蜂がほんまおらん、足長蜂がせっせと
授粉してくれるおかげで、既に50個以上も収穫
へただけとって、軽く焼いた後に鰹節をかけ
やっぱり我が家は、まろぽん!
pepoと
形は悪いが、今年のぴーまん大盛況!
蜜蜂がほんまおらん、足長蜂がせっせと
授粉してくれるおかげで、既に50個以上も収穫
へただけとって、軽く焼いた後に鰹節をかけ
やっぱり我が家は、まろぽん!
pepoと
夏キャベツはあかん!
虫の餌を育てるようなもんやわー、と我が家の
家庭菜園をよくよく監視している隣のおばちゃん
まさにその通り、30株以上虫に食われて廃棄
残り3株がやや巻いてきたが、果たして収穫できるのか乞うご期待
pepoと
夏場のヘルシーごーやの食べ方
ゴーやを2つに割り、わたをとったら3ミリほどにきざんで
さーと茹でるだけ、鰹節は程ほどにかけ
あとは我が家は、まろぽん!
まろぽん!まろぽん!我が家はまろぽん!
うー苦し
pepoとおやすみ
PepoLinuxはX-Windowを捨てネットワークとサーバーに徹した1CDLinuxです。
複雑なLinuxのコンフィグをMS-Windowsから超簡単設定と64Mbyteの少ないメモリでも起動が出来るようにしました。(CentOS5.3ベース)
特に、VitualBOX、VMwareなど仮想化でネットワークやサーバの検証する際に少ないメモリで数多くのLinuxゲストを起動する事が出来るので大変便利です。
PepoLinuxは下記ホームページからダウンロードして下さい。
http://pepolinux.sourceforge.jp/
pepoと
20090808淀川花火大会
いやー、良かったですな
今年は、十三のホテル街の道を抜けて土手の手前まで行くことが出来た
くじらのままと迫力満点!
pepoと
話は前後するがtelnetクライアントを許可する為には、telnetサーバの起動とiptablesの設定をしないといけない
PepoLinuxはCentOS5.3ベースなのでその辺は簡単、ntsysvを起動させkrb5-telnetをマークして、xinetdをreloadする事とiptablesの23ポートが許可されていればtelnetクライアントはloginOK
[root@~]# ntsysv
[*] krb5-telnet
[root@~]# service xinetd reload
Reloading configuration: [ OK ]
[root@~]# vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
:Pepo-Firewall - [0:0]
-A INPUT -j Pepo-Firewall
-A FORWARD -j Pepo-Firewall
-A OUTPUT -j Pepo-Firewall
-A Pepo-Firewall -p icmp --icmp-type any -j ACCEPT
・
・
-A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT
中略
-A Pepo-Firewall -j REJECT --reject-with icmp-host-prohibited
COMMIT
pepoと
前回では、最初に端末のWindowサイズをサーバへ送信すればmanも↓↑を操作しても正常な位置に表示出来るのが分かったと思う
では、途中でWindowサイズがユーザの手で変更された場合はどうか
当然の事であるがそれを検出して、サーバへ変更後のWindowサイズを送信しなくてはならない
手法としては以下の2つが考えられる
1.あるタイミング、例えば1~2秒毎にtigetnum()関数で変更後のWindowサイズを調べてサーバへ通知してやる又は変更前と変更後のサイズを比較して変化があらば通知する
2.Windowサイズを変更されたら事を検出、tigetnum()関数で変更後のWindowサイズを調べてサーバへ通知する
1の方法でも出来ないことは無いが、スマート方法でないように思う
それでは2の方法の『Windowサイズを変更されたら事を検出』をどのように行うかが肝となる
それには、シグナルの補足と処理が必要になる詳しくは下記のURLを見て欲しいが
http://www.linux.or.jp/JM/html/LDP_man-pages/man7/signal.7.html
ここで使うシグナルはSIGWINCHで『ウィンドウ リサイズ シグナル』である、つまりwindowのサイズが変更されたらこのシグナルが発生する、これを補足して処理をすればよい事になる
では実際のコード
SIGWINCHを補足と関数の呼び出し
signal(SIGWINCH, win_size_update);
シグナルタイプの宣言と処理
sigtype win_size_update() {
send_window_size();
}
現在のwindowサイズを取得してサーバへ送信
send_window_size() {
int dummy = 0;
setupterm(NULL, fileno(stdout), (int *) 0);
my_height = tigetnum("lines");
my_width = tigetnum("cols");
sprintf(f3,"%c%c%c%c%c%c%c%c%c",IAC,SB,TELOPT_NAWS,dummy,my_width,dummy,my_height,IAC,SE);
write(fp2,&f3,9);
return;
}
では実際のログインとmanで表示させwindowサイズを変更して正常な位置に表示される事を確認します
[root@epicon-4.6]# epicon -n 127.0.0.1
** Welcome to epicon Version-4.6 Copyright Isamu Yamauchi compiled:Jun 27 2009 **
exec shell ~!
send binary files ~f
call rz,sz,sx,rx ~rz,~sz,~sx,~rx
call kermit ~sk,~rk
external command ~C
exit ~.
・
epicon (Linux release 2.6.29.4-pepo #1 SMP Fri Jun 12 17:34:30 JST 2009) (0)
login: pepo1
Password:
[pepo1@~]$ man epicon
epicon(1) epicon Manuals epicon(1)
NAME
epicon is Easy Personal Interface Console terminal software. First I am sorry. Because
my English linguistic power is very shabby, this sentence is being translated by the
machine. Because of that, read it in the interpretation which it is tolerant of though
it thinks that it is a little funny translation.
SYNOPSIS
usage:
epicon [-options [argument] [-options [argument]]
[-b ] <--escape cannot be used
[-c external_command]
[-d send_charcacter_delay(ms)]
[-D send_CR_delay(ms)]
[-e escape_char]
[-f send_file]
[-F send_file_effective_delay]
[-m ] <--input echo mode
[-M ] <--line mode
:
pepoと