Re: [squid-users] after squid shut down redirector still working

From: Arthur Tumanyan <arthurtumanyan@dont-contact.us>
Date: Fri, 21 Sep 2007 00:11:47 -0700 (PDT)

Henrik Nordstrom-5 wrote:
>
> Probably your redirectors are broken. What redirector are you using?
>
> Regards
> Henrik
>
>
I think so,because the redirector is just writing ,and all this working in
test mode only.

Here is the source code of "main" function.

int main(int argc, char **argv)
{

    log_debug("Starting");
    if(argc < 2)
    { strncpy(config,def_config,255);
        log_debug("Wrong usage of program!The second argument must be config
file absolute path");
        snprintf(TMP_MSG,LINE_MAXLEN,
                "Using default config name '%s'",config);
   log_debug(TMP_MSG);
        

    }else if (argc == 2){

        if(!(cnf_file = fopen(argv[1],"r")))
        {
        strncpy(config,def_config,255);
        snprintf(TMP_MSG,LINE_MAXLEN,
                "The specified path not found!Using default config name '%s'",config);
   log_debug(TMP_MSG);
        }else{
            strncpy(config,argv[1],255);
        }
    }
//
    if(config_read())
    {
        log_debug("Read config error!");
        emergMode = 2;

    }//label

        log_debug("Config reading done.");
        checkEmergMode();
        //
        log_debug("Ready to serve requests");
        //
       // my_debug();
        set_sig_handler();
        for(;;)
        {
            //
            now = time(NULL);
            //
            time_t diff_time = difftime(now,last_configure);
            if(((int) diff_time == reconfigure) || (((int)diff_time %
reconfigure) == 0 && (int)diff_time != 0))
            {
                reConfigure();
        checkEmergMode();
            sleep(1);
            }//time
        if (chdir(root_dir) != 0) {
        snprintf(TMP_MSG,Q_LINE_MAXLEN, "Can not change working directory to %s",
root_dir);
        log_debug(TMP_MSG);
        exit(EXIT_FAILURE);
        }
        if (setvbuf(stdout, NULL, _IOLBF, 0) != 0) {
        snprintf(TMP_MSG,Q_LINE_MAXLEN, "Cannot configure stdout buffer");
        log_debug(TMP_MSG);
        exit(EXIT_FAILURE);
        }
//
        
        if(fgets(p_string, LINE_MAXLEN, stdin) != NULL){
                manageOutput(p_string);//bug with this function,need check
        
        }
        //
            usleep(1000);
            //
        }//while

    exit(EXIT_SUCCESS);
}

void manageOutput(char *stream){

char *sym;

        sym = strtok(stream," ");
        snprintf(rEntry.url,255,"%s",sym);
        sym = strtok(NULL,"");
        snprintf(rEntry.src_address,255,"%s",sym);
        sym = strtok(NULL,"");
        snprintf(rEntry.ident,255,"%s",sym);
        sym = strtok(NULL,"");
        snprintf(rEntry.user,UNAME_MAXLEN,"%s",sym);
        sym = strtok(NULL,"");
        snprintf(rEntry.method,32,"%s",sym);

if(isBlocked(rEntry.user) == 1){
        snprintf(rEntry.url,LINE_MAXLEN,"%s%s",reurl_blocked,rEntry.user);
}else if(isOverdrafted(rEntry.user) != 0) {
        snprintf(rEntry.url,LINE_MAXLEN,"%s%s",reurl_overdrafted,rEntry.user);
}//else redirect_all = 2;
//
if(redirect_all == 0){
fprintf(stdout, "%s %s %s %s %s",
        rEntry.url,
        rEntry.src_address,
        rEntry.ident,
        rEntry.user,
        rEntry.method
);
}else fprintf(stdout,"%s","");

fflush(stdout);
}

I think all the problems are in the "manageOutput" function.

-- 
View this message in context: http://www.nabble.com/after-squid-shut-down-redirector-still-working-tf4488899.html#a12811785
Sent from the Squid - Users mailing list archive at Nabble.com.
Received on Fri Sep 21 2007 - 01:11:54 MDT

This archive was generated by hypermail pre-2.1.9 : Mon Oct 01 2007 - 12:00:02 MDT