#pragma once typedef enum lm_error { LM_ERR_NoError = 0, LM_ERR_URLBadChar = 1, LM_ERR_URLBadProtocol = 2, LM_ERR_URLTooLarge = 3, LM_ERR_URLHostLarge = 4, LM_ERR_URLPathLarge = 5, LM_ERR_URLBadHost = 6, LM_ERR_URLBadPort = 7, LM_ERR_URLBadPath = 8, LM_ERR_URLPortUnknown = 9, LM_ERR_BadPort = 10, LM_ERR_BadHost = 11, LM_ERR_PoolNoSupport = 12, LM_ERR_URLEnd = 13, LM_ERR_MPTPBadVersion = 14, LM_ERR_MPTPBadCode = 15, LM_ERR_MPTPBadUrl = 16, LM_ERR_MPTPHostFail = 17, LM_ERR_MPTPSocketFail = 18, LM_ERR_MPTPConnectFail = 19, LM_ERR_MPTPRecvFail = 20, LM_ERR_MPTPSendFail = 21, LM_ERR_MPTPBadChunk = 22, LM_ERR_MPTPSetsockopt = 23, LM_ERR_MPTPTimeout = 24, LM_ERR_MPTPBindFail = 25, LM_ERR_ArgNULL = 26, LM_ERR_MPTPNotResponse = 27, LM_ERR_MPTPNotRequest = 28, LM_ERR_MPTPNotLast = 29, LM_ERR_NoPort = 30, } lm_error_t; typedef struct lm_error_desc { lm_error_t code; char *desc; } lm_error_desc_t; void lm_error_set(lm_error_t code); lm_error_t lm_error(); char *lm_strerror();