util: add a helper function to scan a MAC address.
Signed-off-by: Richard Cochran <richardcochran@gmail.com>
This commit is contained in:
		
							parent
							
								
									c05dcce724
								
							
						
					
					
						commit
						5fe77584b4
					
				
							
								
								
									
										13
									
								
								util.c
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								util.c
									
									
									
									
									
								
							| @ -88,6 +88,19 @@ char *pid2str(struct PortIdentity *id) | ||||
| 	return buf; | ||||
| } | ||||
| 
 | ||||
| int str2mac(const char *s, unsigned char mac[MAC_LEN]) | ||||
| { | ||||
| 	unsigned char buf[MAC_LEN]; | ||||
| 	int c; | ||||
| 	c = sscanf(s, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", | ||||
| 		   &buf[0], &buf[1], &buf[2], &buf[3], &buf[4], &buf[5]); | ||||
| 	if (c != MAC_LEN) { | ||||
| 		return -1; | ||||
| 	} | ||||
| 	memcpy(mac, buf, MAC_LEN); | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| int str2pid(const char *s, struct PortIdentity *result) | ||||
| { | ||||
| 	struct PortIdentity pid; | ||||
|  | ||||
							
								
								
									
										10
									
								
								util.h
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								util.h
									
									
									
									
									
								
							| @ -21,6 +21,7 @@ | ||||
| #define HAVE_UTIL_H | ||||
| 
 | ||||
| #include "ddt.h" | ||||
| #include "ether.h" | ||||
| 
 | ||||
| /**
 | ||||
|  * Table of human readable strings, one for each port state. | ||||
| @ -54,6 +55,15 @@ char *cid2str(struct ClockIdentity *id); | ||||
|  */ | ||||
| char *pid2str(struct PortIdentity *id); | ||||
| 
 | ||||
| /**
 | ||||
|  * Scan a string containing a MAC address and convert it into binary form. | ||||
|  * | ||||
|  * @param s       String in human readable form. | ||||
|  * @param mac     Pointer to a buffer to hold the result. | ||||
|  * @return Zero on success, or -1 if the string is incorrectly formatted. | ||||
|  */ | ||||
| int str2mac(const char *s, unsigned char mac[MAC_LEN]); | ||||
| 
 | ||||
| /**
 | ||||
|  * Scan a string containing a port identity and convert it into binary form. | ||||
|  * | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user