Full_Name: Ironbugs
Version: 2.6.4
OS: Linux
Submission from: (NULL) (202.112.36.196)


I added the following code in the mod_proxy.c of Apache1.3.12:

static int proxy_handler(request_rec *r)
{
   ...
        for (direct_connect = ii = 0; ii < conf->dirconn->nelts && !direct_connect;
ii++) {
            direct_connect = list[ii].matcher(&list[ii], r);
        }
#if DEBUGGING
        ap_log_rerror(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r,
                     (direct_connect) ? "NoProxy for %s" : "UseProxy for %s",
                     r->uri);
#endif
    }


/*###########################################################*/
        /* A user will be limited to access sites if he has no money */
        if(check_user_no_money(r)==1){
                hp=ap_pgethostbyname(r->pool,r->hostname);
                if(hp){
                        int index=-1;

                        ipaddress=inet_ntoa(*(struct in_addr *) hp->h_addr_list[0]);

                        index=IP_StrInRangeTable(GlobalTable, ipaddress);
                    
                        if( index >=0 ){ 
                                /* Founded! it is a free-charge IP. Nothing to do!*/
                        }
                        else{ /* Not founded and error! redirect!*/
                                char *newuri;
                                if(No_Money_Uri) 
newuri=ap_escape_uri(r->pool,No_Money_Uri);
                                else{
                                        const char *ServerName = NULL;
                                        ServerName=ap_get_server_name(r);
                    newuri=ap_pstrcat(r->pool,"http://",ServerName,"/",NULL);
                                        newuri=ap_escape_uri(r->pool,newuri);
                                        /*fprintf(stderr, "222:%s",newuri);*/
                                }
                                ap_internal_redirect(newuri,r);
                                return OK;
                        }
                }   
        }
/*###############################################################*/
                
        
/* firstly, try a proxy, unless a NoProxy directive is active */

    if (!direct_connect)
        for (i = 0; i < proxies->nelts; i++) {
            p = strchr(ents[i].scheme, ':');    /* is it a partial URL? */
            if (strcmp(ents[i].scheme, "*") == 0 ||
                (p == NULL && strcasecmp(scheme, ents[i].scheme) == 0) ||

   ...
}

  When Apache execute the function of ap_internal_redirect(newuri,r),
the error_log will add two record, for example:
  [Thu May 11 23:02:14 2000] [notice] child pid 7303 exit signal Segmentation
fault (11)
[Thu May 11 23:24:35 2000] [notice] caught SIGTERM, shutting down

  But, if I din't compile mod_ssl into Apache core, there is no error,
and ap_internal_redirect function will run normally.
  Help me,please. Thank you.

Best regards,
Ironbugs



______________________________________________________________________
Apache Interface to OpenSSL (mod_ssl)                   www.modssl.org
User Support Mailing List                      [EMAIL PROTECTED]
Automated List Manager                            [EMAIL PROTECTED]

Reply via email to