Ticket #3993 (closed defect (bug): fixed)

Opened 5 years ago

Last modified 5 years ago

Snoopy Class incompability with lighttpd/1.4.11 (and other httpds?)

Reported by: hakre Owned by: rob1n
Priority: normal Milestone: 2.3
Component: General Version: 2.1.2
Severity: normal Keywords: snoopy http has-patch commit
Cc:

Description

I had the situation that an RSS request made to a server resultet in a 404 instead 200. I analyzed it and it came to my attention that using the Port within the Host Request header (as snoopy does) triggers that error.

Since HOST is not a valid http/1.0 (Request) Header(1), (2) applies here. Port 80 is the default Port for HTTP(2) it must not be part of the HOST Header. Since this is causing the Error with lighttpd/1.4.11 I suggest to modify the snoopy class:

file: wp-inludes/class-snoopy.php
line: 799ff
change from:
			if(!empty($this->port))
				$headers .= ":".$this->port;

change to:
			if(!empty($this->port))
				if ($this->port != 80) {
					$headers .= ":".$this->port;
				}

BTW this type of HTTP Implementation is similar to other stable and mature libraries on various platforms.

(1) see Full-Request in  http://www.faqs.org/rfcs/rfc1945.html

(2) see 14.23 in  http://www.faqs.org/rfcs/rfc2616.html

Attachments

3993.diff Download (517 bytes) - added by rob1n 5 years ago.

Change History

i found another report about this issue in the snoopy bugtracker:  http://sourceforge.net/tracker/index.php?func=detail&aid=1671104&group_id=2091&atid=102091

  • Milestone changed from 2.1.3 to 2.2
  • Milestone changed from 2.2 to 2.3

rob1n5 years ago

  • Keywords has-patch 2nd-opinion added
  • Owner changed from anonymous to rob1n
  • Status changed from new to assigned

Send it upstream?

  • Keywords commit added; 2nd-opinion removed
  • Status changed from assigned to closed
  • Resolution set to fixed

(In [5424]) Don't add port if port == 80 (default port). fixes #3993

Note: See TracTickets for help on using tickets.