Menu

ap_regex_t and apache 2.0

CPas
2009-03-13
2013-05-23
  • CPas

    CPas - 2009-03-13

    Hi,

    we are trying to compile mod_qos for an apache 2.0.61, but il fails to compile saying it can't find ap_regex_t. The documentation says that it is compatible with apache 2.0.x

    This seems to be normal, as it appeared after 2.1.x, but what I don't understand is that in mod_qos.c there are parts that take care of this problem with an ifdef, for example :

    typedef struct qs_acentry_st {
      303   int id;
      304   /** pointer to lock of the actable */
      305   apr_global_mutex_t *lock;
      306   /** location rules */
      307   char *url;
      308   int url_len;
      309   char *event;
      310 #ifdef AP_REGEX_H
      311   ap_regex_t *regex;
      312   ap_regex_t *regex_var;
      313   ap_regex_t *condition;
      314 #else
      315   regex_t *regex;
      316   regex_t *regex_var;
      317   regex_t *condition;
      318 #endif

    My question is : is there a good reason that would explain that the same pattern is not applied to the following lines :

      214 typedef struct {
      215   ap_regex_t *preg;
      216   char *name;
      217   char *value;
      218 } qos_setenvifquery_t;
      219
      220 typedef struct {
      221   pcre *preg;
      222   ap_regex_t *pregx;
      223   char *name;
      224   char *value;
      225 } qos_setenvifparpbody_t;
      226

    Thanks

    Pascal

     
    • Pascal Buchbinder

      Ups... I just oversight that. Actually, I don't test every mod_qos release against Apache 2.0.

      It's fixed in release 8.10.

      Regards, Pascal

       
    • CPas

      CPas - 2009-03-17

      Thanks for being so reactive

      Regards.

      Pascal

       
    • CPas

      CPas - 2009-03-20

      Hi Pascal,

      well it still doesn't compile on out platform !

      the traces are :

      /usr/local/apache/bin/apxs -i -c mod_qos.c
      /usr/local/apache/build/libtool --silent --mode=compile gcc -prefer-pic  -DAP_HAVE_DESIGNATED_INITIALIZER -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache/include  -I/usr/local/apache/include   -I/usr/local/apache/include   -c -o mod_qos.lo mod_qos.c && touch mod_qos.slo
      mod_qos.c:6466:1: directives may not be used inside a macro argument
      mod_qos.c:6465:21: unterminated argument list invoking macro "AP_INIT_TAKE3"
      mod_qos.c:6469: `AP_INIT_TAKE3' undeclared here (not in a function)
      mod_qos.c:6469: initializer element is not constant
      mod_qos.c:6469: (near initialization for `qos_config_cmds[44]')
      mod_qos.c:6469: syntax error before string constant
      mod_qos.c:6472: initializer element is not constant
      mod_qos.c:6472: (near initialization for `qos_config_cmds[45].func')
      mod_qos.c:6472: initializer element is not constant
      mod_qos.c:6472: (near initialization for `qos_config_cmds[45]')
      mod_qos.c:6478: initializer element is not constant
      mod_qos.c:6478: (near initialization for `qos_config_cmds[46].func')
      mod_qos.c:6478: initializer element is not constant
      mod_qos.c:6478: (near initialization for `qos_config_cmds[46]')
      mod_qos.c:6483:1: directives may not be used inside a macro argument
      mod_qos.c:6482:63: unterminated argument list invoking macro "AP_INIT_NO_ARGS"
      mod_qos.c:6484: `AP_INIT_NO_ARGS' undeclared here (not in a function)
      mod_qos.c:6484: initializer element is not constant
      mod_qos.c:6484: (near initialization for `qos_config_cmds[47]')
      mod_qos.c:6484: syntax error before numeric constant
      mod_qos.c:6493: warning: initialization from incompatible pointer type
      mod_qos.c:6493: extra brace group at end of initializer
      mod_qos.c:6493: (near initialization for `qos_config_cmds[48].func')
      mod_qos.c:6493: warning: excess elements in union initializer
      mod_qos.c:6493: warning: (near initialization for `qos_config_cmds[48].func')
      mod_qos.c:6493: warning: excess elements in union initializer
      mod_qos.c:6493: warning: (near initialization for `qos_config_cmds[48].func')
      mod_qos.c:6493: warning: excess elements in union initializer
      mod_qos.c:6493: warning: (near initialization for `qos_config_cmds[48].func')
      mod_qos.c:6493: warning: excess elements in union initializer
      mod_qos.c:6493: warning: (near initialization for `qos_config_cmds[48].func')
      mod_qos.c:6493: warning: excess elements in union initializer
      mod_qos.c:6493: warning: (near initialization for `qos_config_cmds[48].func')
      mod_qos.c:6493: initializer element is not constant
      mod_qos.c:6493: (near initialization for `qos_config_cmds[48].func')
      mod_qos.c:6500: warning: braces around scalar initializer
      mod_qos.c:6500: warning: (near initialization for `qos_config_cmds[48].cmd_data')
      mod_qos.c:6500: warning: braces around scalar initializer
      mod_qos.c:6500: warning: (near initialization for `qos_config_cmds[48].cmd_data')
      mod_qos.c:6500: field name not in record or union initializer
      mod_qos.c:6500: (near initialization for `qos_config_cmds[48].cmd_data')
      mod_qos.c:6500: warning: excess elements in scalar initializer
      mod_qos.c:6500: warning: (near initialization for `qos_config_cmds[48].cmd_data')
      mod_qos.c:6500: warning: excess elements in scalar initializer
      mod_qos.c:6500: warning: (near initialization for `qos_config_cmds[48].cmd_data')
      mod_qos.c:6500: warning: excess elements in scalar initializer
      mod_qos.c:6500: warning: (near initialization for `qos_config_cmds[48].cmd_data')
      mod_qos.c:6500: warning: excess elements in scalar initializer
      mod_qos.c:6500: warning: (near initialization for `qos_config_cmds[48].cmd_data')
      mod_qos.c:6500: warning: excess elements in scalar initializer
      mod_qos.c:6500: warning: (near initialization for `qos_config_cmds[48].cmd_data')
      mod_qos.c:6506: warning: braces around scalar initializer
      mod_qos.c:6506: warning: (near initialization for `qos_config_cmds[48].req_override')
      mod_qos.c:6506: warning: initialization makes integer from pointer without a cast
      mod_qos.c:6507: initializer element is not constant
      mod_qos.c:6507: (near initialization for `qos_config_cmds[48]')
      apxs:Error: Command failed with rc=65536

      It seems like it doesn't like a macro which doesn't end inside the ifdef where it began, strange.
      An idea ?

      Thanks,

      Pascal

       
    • Pascal Buchbinder

      Could you please try once the most recent version from the cvs repository?

      http://mod-qos.cvs.sourceforge.net/viewvc/\*checkout*/mod-qos/src/httpd_src/modules/qos/mod_qos.c?revision=5.159

      I'm going to build a new release as soon as I now if these changes solve the problem.

      Cheers, Pascal

       
      • CPas

        CPas - 2009-03-26

        Hi Pascal,

        Now it compiles !
        We'll try it tomorrow.

        Thanks a lot

        Pascal

         

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.