[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]
[webdav-jp:1019] Re: Mac OS X 予期しないエラーでファイル名変更や移動できず
吉山です。
On Mon, 24 May 2004 17:57:46 +0900
三浦 <ymiura@xxxxxxxxxxxxxxxx> wrote:
> > こんにちは幸です。
> > 質問の内容が的確でなかったのかレスが付きそうもないので
> > Vine Linuxのほうで一度、恐縮ですがお伺いしてみたいと思います。
> > ご理解いただければ幸いです、よろしくお願いいたします。
> >
>
> 幸さんはじめまして。
> 私も少し前に同じ現象にぶつかりました。
>
> 私の環境では、アクセスログを見たところ
> MOVEに対して502エラーが出ていました。
>
> MacOSがMOVEを出すとき、
> 移動先がDAVサーバーではなくローカルになっており、
> そのせいで502エラーが出てしまうそうです。
このあたりですかね。
仮に、ここで言うローカルが相対パスやフルパス部分という意味であれば、クラ
イアントが MacOS と分かっている場合のみ URI を補完してやれば良さそうです。
---
/* handle the COPY and MOVE methods */
static int dav_method_copymove(request_rec *r, int is_move)
{
---
/* get the destination URI */
dest = apr_table_get(r->headers_in, "Destination");
if (dest == NULL) {
/* Look in headers provided by Netscape's Roaming Profiles */
const char *nscp_host = apr_table_get(r->headers_in, "Host");
const char *nscp_path = apr_table_get(r->headers_in, "New-uri");
if (nscp_host != NULL && nscp_path != NULL)
dest = apr_psprintf(r->pool, "http://%s%s", nscp_host, nscp_path);
}
if (dest == NULL) {
/* This supplies additional information for the default message. */
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
"The request is missing a Destination header.");
return HTTP_BAD_REQUEST;
}
lookup = dav_lookup_uri(dest, r, 1 /* must_be_absolute */); ←絶対URI?
if (lookup.rnew == NULL) {
if (lookup.err.status == HTTP_BAD_REQUEST) {
/* This supplies additional information for the default message. */
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
"%s", lookup.err.desc);
return HTTP_BAD_REQUEST;
}
/* ### this assumes that dav_lookup_uri() only generates a status
* ### that Apache can provide a status line for!! */
return dav_error_response(r, lookup.err.status, lookup.err.desc);
}
---
吉山あきら<yosshy@xxxxxxxxxxxx>