port: Convey targeted forwarding errors to the caller.
The port_forward_to() method clobbers the specific error code returned by the transport layer with -1. This patch lets the code preserve the specific error in question. Signed-off-by: Richard Cochran <richardcochran@gmail.com>
This commit is contained in:
		
							parent
							
								
									a6e0b83bd5
								
							
						
					
					
						commit
						5aa19dd3f4
					
				
							
								
								
									
										6
									
								
								port.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								port.c
									
									
									
									
									
								
							@ -2737,8 +2737,10 @@ int port_forward_to(struct port *p, struct ptp_message *msg)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	int cnt;
 | 
						int cnt;
 | 
				
			||||||
	cnt = transport_sendto(p->trp, &p->fda, TRANS_GENERAL, msg);
 | 
						cnt = transport_sendto(p->trp, &p->fda, TRANS_GENERAL, msg);
 | 
				
			||||||
	if (cnt <= 0) {
 | 
						if (cnt < 0) {
 | 
				
			||||||
		return -1;
 | 
							return cnt;
 | 
				
			||||||
 | 
						} else if (!cnt) {
 | 
				
			||||||
 | 
							return -EIO;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	port_stats_inc_tx(p, msg);
 | 
						port_stats_inc_tx(p, msg);
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								port.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								port.h
									
									
									
									
									
								
							@ -94,7 +94,7 @@ int port_forward(struct port *p, struct ptp_message *msg);
 | 
				
			|||||||
 * Forward a message on a given port to the address stored in the message.
 | 
					 * Forward a message on a given port to the address stored in the message.
 | 
				
			||||||
 * @param port    A pointer previously obtained via port_open().
 | 
					 * @param port    A pointer previously obtained via port_open().
 | 
				
			||||||
 * @param msg     The message to send. Must be in network byte order.
 | 
					 * @param msg     The message to send. Must be in network byte order.
 | 
				
			||||||
 * @return        Zero on success, non-zero otherwise.
 | 
					 * @return        Zero on success, negative errno value otherwise.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
int port_forward_to(struct port *p, struct ptp_message *msg);
 | 
					int port_forward_to(struct port *p, struct ptp_message *msg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user