* お仕事 [#u5d549fc]
HTTP/1.1 だけを受け付けて 1.0 を弾くようなサーバを立てられないかということで、
httpd.conf の設定をいろいろと調べたもののよくわからず。
Apache の Module を書いてしまえということで、さくさくと作ってしまいました。
こんなに簡単にできるとは。。Google 先生は偉大ですね。
いつも見ている [[DSAS開発者の部屋:http://dsas.blog.klab.org/archives/50574774.html]] のページが参考になりました。
mod_http_1_1 として作っています。
#code(c){{
#include "httpd.h"
#include "http_config.h"
#include "http_protocol.h"
#include "ap_config.h"
/* The sample content handler */
static int http_1_1_handler(request_rec *r)
{
if (strcmp(r->handler, "http_1_1")) {
return DECLINED;
}
if (strcmp(r->protocol, "HTTP/1.1")) {
return HTTP_INTERNAL_SERVER_ERROR;
}
r->content_type = "text/html";
ap_rputs("Good request in HTTP/1.1.\n", r);
return OK;
}
static void http_1_1_register_hooks(apr_pool_t *p)
{
ap_hook_handler(http_1_1_handler, NULL, NULL, APR_HOOK_MIDDLE);
}
/* Dispatch list for API hooks */
module AP_MODULE_DECLARE_DATA http_1_1_module = {
STANDARD20_MODULE_STUFF,
NULL, /* create per-dir config structures */
NULL, /* merge per-dir config structures */
NULL, /* create per-server config structures */
NULL, /* merge per-server config structures */
NULL, /* table of config file commands */
http_1_1_register_hooks /* register hooks */
};
}}
エラーは HTTP_VERSION_NOT_SUPPORTED (505) を返したかったところですが、
200 が返ってしまうのでやむなく HTTP_INTERNAL_SERVER_ERROR (500) にしました。
まぁ 5xx が返れば問題ないです。
* お勉強 [#k18bfff9]
著作権法の過去問。
- 3 著作者人格権、著作権 (続き)
- 4 著作隣接権
正解率は70%ほど。あとは直前に詰め込むしかないですね。
短答アドヴァンステキストは商4条まで。まだまだ先は長い。
定時でそのまま早く帰ってくれば3時間は取れますね。
1時間でもあればいろいろ進みます。
----
#comment