[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[port139:01106] Re: mac-robber



ども、根暗井です ^^)  現実逃避中 ^^;;;

From: Hideaki Ihara
Date: 2002/03/03 11:05:41
Subject: [port139:01104] mac-robber

>MAC Time 収集用のツールに mac-robber(http://www.atstake.com/research/tools/index.html)
>というのがありますが、Cygwin 環境でも動くかなぁと思ってちょっとテストしてみました。

MD5 値が計算出来てないっっっと思ったら固定値表示か ^^;


>コンパイル自体は問題なくできて mac-robber そのものは動作するのですが、
>
>c:\mac-robber /cygdrive/c
>
>とかやると、lstat error: /cygdrive/c/pagefile.sys というエラーで止まってしまうよう
>ですね。pagefile.sys はしょうがないから〜とか思ったんですが、ひょっとして UNIX 環境
>でも lstat でエラーがでると止まるんですかね?

ソース上だと止まるようですね。


>エラーを無視して続行オプションが欲しい...

単に return ERROR を消してしまうだけでもいいと思うんですが :-)
参考までにパッチを mail の最後に...
# mac-robber -i /hogehoge でエラーを無視

                                        By  根暗井
------- 根暗井 == 櫻井 -------- (E-mail : nekurai@xxxxx) -------
ちゃんと windows 固有の attribute とかも取得出来るといいなぁ...
----------------------------------------------------------------



P.S. 当てるまでもないパッチ ^^;;;

- - - - - ここから - - - - -
*** mac-robber.c.org	Tue Jan 22 02:48:26 2002
--- mac-robber.c	Sun Mar  3 14:28:06 2002
***************
*** 58,63 ****
--- 58,64 ----
  #define LS_SIZE	16
  #define LINKPATH_LEN	2048		
  static char *linkpath;
+ int ignore_error = 0;
  
  static void
  usage(char *prog)
***************
*** 259,265 ****
  
  		if (0 != lstat (curpath, &sp)) {
  			printf ("lstat error: %s\n", curpath);
! 			return ERROR;
  		}
  
  		/* convert the mode into an ascii form */
--- 260,268 ----
  
  		if (0 != lstat (curpath, &sp)) {
  			printf ("lstat error: %s\n", curpath);
! 			if (ignore_error == 0) {
! 				return ERROR;
! 			}
  		}
  
  		/* convert the mode into an ascii form */
***************
*** 321,330 ****
  	int len;
  	int ch;
  
!     while ((ch = getopt(argc, argv, "V")) > 0) {
          switch (ch) {
          default:
              usage(argv[0]);
  		case 'V':
  			print_version();
  			return 0;
--- 324,336 ----
  	int len;
  	int ch;
  
!     while ((ch = getopt(argc, argv, "iV")) > 0) {
          switch (ch) {
          default:
              usage(argv[0]);
+ 		case 'i':
+ 			ignore_error = 1;
+ 			break;
  		case 'V':
  			print_version();
  			return 0;
- - - - - ここまで - - - - -