[PHP-users 9358] php-4.2.2 with apache-2.0.40 compile error

Yoshio Funaki php-users@php.gr.jp
Mon, 19 Aug 2002 08:55:43 +0900


船木@秋田県立図書館と申します。
MLに流れてないようなので、先達のご指導をよろしくお願いいたします。

さて、php-4.2.2ですが、apache-2.0.39との組み合わせで、例の
!MODULE_ -> !AP_MODUL_ のhackを行って、compile&installが
うまくいっていますが、おなじソースで、apache-2.0.40では
compile error(Too few arguments)がおき、うまくいきません。

で、sourceをながめてみると、2.0.39では、/server/util_filter.cで定義されている
ap_register_inputおよびap_register_outputの引数の数が3個、2.0.40の該当部分は、
引数4個になってます。
----------------------2.0.39----------------------
AP_DECLARE(ap_filter_rec_t *) ap_register_input_filter(const char *name,
                                          ap_in_filter_func filter_func,
                                          ap_filter_type ftype)
{
    ap_filter_func f;
    f.in_func = filter_func;
    return register_filter(name, f, ftype, &registered_input_filters);
}

AP_DECLARE(ap_filter_rec_t *) ap_register_output_filter(const char *name,
                                           ap_out_filter_func filter_func,
                                           ap_filter_type ftype)
{
    ap_filter_func f;
    f.out_func = filter_func;
    return register_filter(name, f, ftype, &registered_output_filters);
}
--------------------------------------------------------------------------

-------------------------2.0.40-------------------------------------------
AP_DECLARE(ap_filter_rec_t *) ap_register_input_filter(const char *name,
                                          ap_in_filter_func filter_func,
                                          ap_init_filter_func filter_init,
                                          ap_filter_type ftype)
{
    ap_filter_func f;
    f.in_func = filter_func;
    return register_filter(name, f, filter_init, ftype,
                           &registered_input_filters);
}

AP_DECLARE(ap_filter_rec_t *) ap_register_output_filter(const char *name,
                                           ap_out_filter_func filter_func,
                                           ap_init_filter_func filter_init,
                                           ap_filter_type ftype)
{
    ap_filter_func f;
    f.out_func = filter_func;
    return register_filter(name, f, filter_init, ftype,
                           &registered_output_filters);
}
---------------------------------------------------------------------

で、php-4.2.2のapache2filter/sapi_apache2.cで引数3個で呼んでるので
「引数がたらね〜ぞ〜」と怒られることがわかりました。
増えた引数が、何を指してるのかがわからんので、手の出しようがないです。

--------------php-4.2.2/sapi/aspi-apache2.c--------------------------
static void php_register_hook(apr_pool_t *p)
{
        ap_hook_post_config(php_apache_server_startup, NULL, NULL, APR_HOOK_MIDDLE);
        ap_hook_insert_filter(php_insert_filter, NULL, NULL, APR_HOOK_MIDDLE);
    ap_hook_post_read_request(php_post_read_request, NULL, NULL, APR_HOOK_MIDDLE);
        ap_register_output_filter("PHP", php_output_filter, AP_FTYPE_RESOURCE);
        ap_register_input_filter("PHP", php_input_filter, AP_FTYPE_RESOURCE);
}
-----------------------------------------------------------------------
ほかにも引っかかってそうなところがありますが、とりあえず手の出せる
範囲での調査と言うことでここだけ見てみました。

先達のご指導をお願いいたします。 m(_ _)m

----
Yoshio Funaki  yoshio@apl.pref.akita.jp