LibC: Implement gai_strerror and add stubs for {get,free}addrinfo
This commit is contained in:
		
							parent
							
								
									7ebd0699e3
								
							
						
					
					
						commit
						83e2ad40d6
					
				|  | @ -1,3 +1,4 @@ | |||
| #include <BAN/Assert.h> | ||||
| #include <BAN/Bitcast.h> | ||||
| 
 | ||||
| #include <arpa/inet.h> | ||||
|  | @ -11,6 +12,35 @@ | |||
| 
 | ||||
| int h_errno = 0; | ||||
| 
 | ||||
| void freeaddrinfo(struct addrinfo*) | ||||
| { | ||||
| 	ASSERT_NOT_REACHED(); | ||||
| } | ||||
| 
 | ||||
| const char* gai_strerror(int ecode) | ||||
| { | ||||
| 	switch (ecode) | ||||
| 	{ | ||||
| 		case 0:				return "Success"; | ||||
| 		case EAI_AGAIN:		return "The name could not be resolved at this time."; | ||||
| 		case EAI_BADFLAGS:	return "The flags had an invalid value."; | ||||
| 		case EAI_FAIL:		return "A non-recoverable error occurred."; | ||||
| 		case EAI_FAMILY:	return "The address family was not recognized or the address length was invalid for the specified family."; | ||||
| 		case EAI_MEMORY:	return "There was a memory allocation failure."; | ||||
| 		case EAI_NONAME:	return "The name does not resolve for the supplied parameters. "; | ||||
| 		case EAI_SERVICE:	return "The service passed was not recognized for the specified socket type."; | ||||
| 		case EAI_SOCKTYPE:	return "The intended socket type was not recognized."; | ||||
| 		case EAI_SYSTEM:	return "A system error occurred. The error code can be found in errno."; | ||||
| 		case EAI_OVERFLOW:	return "An argument buffer overflowed."; | ||||
| 		default:			return "Unknown error."; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| int getaddrinfo(const char* __restrict, const char* __restrict, const struct addrinfo* __restrict, struct addrinfo** __restrict) | ||||
| { | ||||
| 	ASSERT_NOT_REACHED(); | ||||
| } | ||||
| 
 | ||||
| struct hostent* gethostbyname(const char* name) | ||||
| { | ||||
| 	static char name_buffer[HOST_NAME_MAX + 1]; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue