Re: [squid-users] x-forwarded-for patch for squid-2.5.Stable11

From: saravanan ganapathy <[email protected]>
Date: Fri, 14 Oct 2005 00:43:04 -0700 (PDT)

> > I am posting this on both dansguardian and squid
> > lists so that it can help
> > anyone with the x-forwarded-for patch.
> >
> > Download squid-2.5.STABLE9.tar.gz and
> > follow_xff-2.5.STABLE5.patch on /tmp
> > Extract the squid tar file with: tar xvfz
> > squid-2.5.STABLE9.tar.gz
> > copy follow_xff-2.5.STABLE5.patch to
> > /tmp/squid-2.5.STABLE9
> > cd to /tmp/squid-2.5.STABLE9 and execute: patch
> -p0
> > <
> > follow_xff-2.5.STABLE5.patch
> >
> > you should get the following errors:
> >
> > FedoraCore2[/tmp/squid-2.5.STABLE9]patch -p0 <
> > follow_xff-2.5.STABLE5.patch
> > patching file acconfig.h
> > patching file bootstrap.sh
> > Hunk #1 succeeded at 66 (offset 7 lines).
> > patching file configure.in
> > Hunk #1 succeeded at 1128 (offset 28 lines).
> > patching file src/acl.c
> > Hunk #1 succeeded at 2147 (offset 107 lines).
> > patching file src/cf.data.pre
> > Hunk #1 succeeded at 2144 (offset 29 lines).
> > patching file src/client_side.c
> > Hunk #2 succeeded at 185 (offset 2 lines).
> > Hunk #4 succeeded at 3308 (offset 58 lines).
> > patching file src/delay_pools.c
> > patching file src/structs.h
> > Hunk #1 FAILED at 594.
> > Hunk #2 succeeded at 634 (offset 14 lines).
> > Hunk #3 succeeded at 1621 (offset 2 lines).
> > Hunk #4 succeeded at 1684 (offset 14 lines).
> > Hunk #5 FAILED at 1697.
> > 2 out of 5 hunks FAILED -- saving rejects to file
> > src/structs.h.rej
> >
> > This means that two hunks (parts) of the patch
> > failed to patch src/structs.h
> > at around lines 594 and 1697. Now look at the
> > src/structs.h.rej which
> > should look like this:
> >
> > ***************
> > *** 594,599 ****
> > int pipeline_prefetch;
> > int request_entities;
> > int detect_broken_server_pconns;
> > } onoff;
> > acl *aclList;
> > struct {
> > --- 594,604 ----
> > int pipeline_prefetch;
> > int request_entities;
> > int detect_broken_server_pconns;
> > + #if FOLLOW_X_FORWARDED_FOR
> > + int acl_uses_indirect_client;
> > + int delay_pool_uses_indirect_client;
> > + int log_uses_indirect_client;
> > + #endif /* FOLLOW_X_FORWARDED_FOR */
> > } onoff;
> > acl *aclList;
> > struct {
> > ***************
> > *** 1681,1686 ****
> > char *peer_login; /* Configured peer
> > login:password */
> > time_t lastmod; /* Used on
> refreshes
> > */
> > const char *vary_headers; /* Used when
> varying
> > entities are detected.
> > Chan
> > ges how the store key is calculated */
> > };
> >
> > struct _cachemgr_passwd {
> > --- 1697,1707 ----
> > char *peer_login; /* Configured peer
> > login:password */
> > time_t lastmod; /* Used on
> refreshes
> > */
> > const char *vary_headers; /* Used when
> varying
> > entities are detected.
> > Chan
> > ges how the store key is calculated */
> > + #if FOLLOW_X_FORWARDED_FOR
> > + /* XXX a list of IP addresses would be a
> > better data structure
> > + * than this String */
> > + String x_forwarded_for_iterator;
> > + #endif /* FOLLOW_X_FORWARDED_FOR */
> > };
> >
> > struct _cachemgr_passwd {
> >
> > As you can see the patch has found some 'issues'
> on
> > line 594 where it was
> > expecting something that it did not find. No
> > problem, just open
> > src/structs.h with 'vi' and go to line 594 and
> > locate the line:
> >
> > int detect_broken_server_pconns;
> >
> > which should be somewhere around there.
> > now insert the following as described by the .rej
> > file (remove the + which
> > means ADD)
> >
> > #if FOLLOW_X_FORWARDED_FOR
> > int acl_uses_indirect_client;
> > int delay_pool_uses_indirect_client;
> > int log_uses_indirect_client;
> > #endif /* FOLLOW_X_FORWARDED_FOR */
> >
> > so around line 594 you should now have:
> >
> > int detect_broken_server_pconns;
> > #if FOLLOW_X_FORWARDED_FOR
> > int acl_uses_indirect_client;
> > int delay_pool_uses_indirect_client;
> > int log_uses_indirect_client;
> > #endif /* FOLLOW_X_FORWARDED_FOR */
> > int balance_on_multiple_ip;
> > int relaxed_header_parser;
> > int accel_uses_host_header;
> > int accel_no_pmtu_disc;
> > } onoff;
> > acl *aclList;
> >
> > OK, let's now go to line 1697 (more or less since
> we
> > have just added a few
> > lines around 594)
> > locate the line:
> >
> > const char *vary_headers; /* Used when varying
> > entities are detected. Chan
> > ges how the store key is calculated */
> >
> > which should be somewhere around there.
> > now insert the following as described by the .rej
> > file (remove the + which
> > means ADD)
> >
> > #if FOLLOW_X_FORWARDED_FOR
> > /* XXX a list of IP addresses would be a
> better
> > data structure
> > * than this String */
> > String x_forwarded_for_iterator;
> > #endif /* FOLLOW_X_FORWARDED_FOR */
> >
> > so around line 1697 you should now have:
> >
> > char *peer_login; /* Configured peer
> > login:password */
> > time_t lastmod; /* Used on
> refreshes
> > */
> > const char *vary_headers; /* Used when
> varying
> > entities are detected.
> > Changes how the store key is calculated */
> > #if FOLLOW_X_FORWARDED_FOR
> > /* XXX a list of IP addresses would be a
> better
> > data structure
> > * than this String */
> > String x_forwarded_for_iterator;
> > #endif /* FOLLOW_X_FORWARDED_FOR */
> > BODY_HANDLER *body_reader;
> > void *body_reader_data;
> > };
> >
> > Alright, you are done fixing the broken patch!
> now
> > go back to
> > /tmp/squid-2.5.STABLE9 and execute
> > 'bootstrap.sh'. Do not worry about any warnings
> or
> > errors you may get.
> > then run 'configure --help' and you should be able
> > to see you new option
> > --enable-follow-x-forwarded-for
> >
> > Just configure with your favourite options and run
> > make.
> >

The same fix is not working for squid-2.5.Stable11. I
think I need to change some more in structs.h.

Pls help me what to be changed in structs.h?

Sarav

        
                
__________________________________
Yahoo! Mail - PC Magazine Editors' Choice 2005
http://mail.yahoo.com
Received on Fri Oct 14 2005 - 01:43:12 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Nov 01 2005 - 12:00:04 MST