mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* ext/socket/init.c (wait_connectable): break if the socket is
writable to avoid infinite loops on FreeBSD and other platforms which conforms to SUSv3. This problem cannot be reproduced with loopback interfaces, so it's hard to write test code. rsock_connect() and wait_connectable() are overly complicated, so they should be refactored, but I commit this fix as a workaround for the release of Ruby 1.9.3 scheduled on Feb 24. [ruby-core:60940] [Bug #9547] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45084 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									6337bf7588
								
							
						
					
					
						commit
						139d06c34f
					
				
					 2 changed files with 17 additions and 2 deletions
				
			
		
							
								
								
									
										11
									
								
								ChangeLog
									
										
									
									
									
								
							
							
						
						
									
										11
									
								
								ChangeLog
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,3 +1,14 @@
 | 
			
		|||
Fri Feb 21 23:47:24 2014  Shugo Maeda  <shugo@ruby-lang.org>
 | 
			
		||||
 | 
			
		||||
	* ext/socket/init.c (wait_connectable): break if the socket is
 | 
			
		||||
	  writable to avoid infinite loops on FreeBSD and other platforms
 | 
			
		||||
	  which conforms to SUSv3.  This problem cannot be reproduced with
 | 
			
		||||
	  loopback interfaces, so it's hard to write test code.
 | 
			
		||||
	  rsock_connect() and wait_connectable() are overly complicated, so
 | 
			
		||||
	  they should be refactored, but I commit this fix as a workaround
 | 
			
		||||
	  for the release of Ruby 1.9.3 scheduled on Feb 24.
 | 
			
		||||
	  [ruby-core:60940] [Bug #9547]
 | 
			
		||||
 | 
			
		||||
Fri Feb 21 23:03:39 2014  NARUSE, Yui  <naruse@ruby-lang.org>
 | 
			
		||||
 | 
			
		||||
	* tool/redmine-backporter.rb: added to handle redmine tickets.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -364,8 +364,12 @@ wait_connectable(int fd)
 | 
			
		|||
	     */
 | 
			
		||||
	    if (ret < 0)
 | 
			
		||||
		break;
 | 
			
		||||
	    if (sockerr == 0)
 | 
			
		||||
		continue;	/* workaround for winsock */
 | 
			
		||||
	    if (sockerr == 0) {
 | 
			
		||||
		if (revents & RB_WAITFD_OUT)
 | 
			
		||||
		    break;
 | 
			
		||||
		else
 | 
			
		||||
		    continue;	/* workaround for winsock */
 | 
			
		||||
	    }
 | 
			
		||||
 | 
			
		||||
	    /* BSD and Linux use sockerr. */
 | 
			
		||||
	    errno = sockerr;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue