[Gauche-devel-jp] http.scm, mime.scm へのパッチ

Zurück zum Archiv-Index

Shiro Kawai shiro****@lava*****
2010年 8月 5日 (木) 06:27:04 JST


ありがとうございます。content-transfer-encodingと'soruce'のfixの
パッチ適用しました。

From: Hayashi Masahiro (林 雅博) <mhaya****@gmail*****>
Subject: [Gauche-devel-jp] http.scm, mime.scm へのパッチ
Date: Sun, 01 Aug 2010 20:41:55 +0900 (JST)

> もう一つ twitter の API を実装する上で http.scm の不具合なのか判断に迷っ
> ているものがあります。
> 
> Twitter に画像ファイルを upload する場合は Multipart なデータを POSTし
> ないといけないのですが、POST する Request Body 中にある最初の boundary
> の前にCRLF があるとTwitter 側でエラー(500 Internal Server Error)になっ
> てしまうようです。

ふーむ。mime-compose-messageが最初にCRLFを付加するのは、Caller側で
preambleを付加した時にも「boundaryは行頭からはじまる」という
制約を満たせるようにということですが、rfc2046のノート(*)にあるように
boundaryは前後のCRLFを含むと考えた方がすっきりするからでもあります。

ただ、http POSTの場合はpreambleを付加することは無いでしょうから、
http-compose-form-dataの段階で先頭のCRLFを取っちゃうっていう
対応はありかなと思います。

この件について何かご存知の方がいらしたら教えてください。特に
情報が無ければhttp-compose-form-dataで対処します。

--shiro


(*) rfc2046 section 5.1.1

   NOTE:  The CRLF preceding the boundary delimiter line is conceptually
   attached to the boundary so that it is possible to have a part that
   does not end with a CRLF (line  break).  Body parts that must be
   considered to end with line breaks, therefore, must have two CRLFs
   preceding the boundary delimiter line, the first of which is part of
   the preceding body part, and the second of which is part of the
   encapsulation boundary.




Gauche-devel-jp メーリングリストの案内
Zurück zum Archiv-Index