WordPress.org

Make WordPress Core

Opened 7 years ago

Closed 7 years ago

#3993 closed defect (bug) (fixed)

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

Reported by: hakre Owned by: rob1n
Milestone: 2.3 Priority: normal
Severity: normal Version: 2.1.2
Component: General Keywords: snoopy http has-patch commit
Focuses: 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 (1)

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

Download all attachments as: .zip

Change History (7)

comment:1 hakre7 years ago

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

comment:2 foolswisdom7 years ago

  • Milestone changed from 2.1.3 to 2.2

comment:3 foolswisdom7 years ago

  • Milestone changed from 2.2 to 2.3

rob1n7 years ago

comment:4 rob1n7 years ago

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

Send it upstream?

comment:5 rob1n7 years ago

  • Keywords commit added; 2nd-opinion removed

comment:6 rob1n7 years ago

  • Resolution set to fixed
  • Status changed from assigned to closed

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

Note: See TracTickets for help on using tickets.