void cg_net_uri_rebuild(CgNetURI *uri) { char portStr[32]; char *path; cg_log_debug_l4("Entering...\n"); cg_string_setvalue(uri->uri, cg_net_uri_getprotocol(uri)); cg_string_addvalue(uri->uri, CG_NET_URI_PROTOCOL_DELIM); cg_string_addvalue(uri->uri, cg_net_uri_gethost(uri)); cg_string_addvalue(uri->uri, CG_NET_URI_COLON_DELIM); cg_string_addvalue(uri->uri, cg_int2str(cg_net_uri_getport(uri), portStr, sizeof(portStr))); if (0 < cg_strlen(cg_net_uri_getpath(uri))) { path = cg_net_uri_getpath(uri); if (path[0] != '/') cg_string_addvalue(uri->uri, CG_NET_URI_SLASH_DELIM); cg_string_addvalue(uri->uri, cg_net_uri_getpath(uri)); if (cg_strchr(cg_net_uri_getpath(uri), "?", 1) == -1 && 0 < cg_strlen(cg_net_uri_getquery(uri))) { cg_string_addvalue(uri->uri, CG_NET_URI_QUESTION_DELIM); cg_string_addvalue(uri->uri, cg_net_uri_getquery(uri)); } } cg_log_debug_l4("Leaving...\n"); }
BOOL cg_net_isipv6address(const char *addr) { cg_log_debug_l4("Entering...\n"); if (addr == NULL) return FALSE; if (0 < cg_strchr(addr, ":", 1)) return TRUE; return FALSE; cg_log_debug_l4("Leaving...\n"); }
int cg_upnp_ssdp_getleasetime(char *cacheCnt) { int eqIdx; cg_log_debug_l4("Entering...\n"); if (cacheCnt == NULL) return 0; eqIdx = cg_strchr(cacheCnt, "=", 1); if (eqIdx < 0) return 0; return atoi((cacheCnt + eqIdx + 1)); cg_log_debug_l4("Leaving...\n"); }
int cg_net_getipv6scopeid(const char *addr) { size_t addrLen; ssize_t perIdx; char scopeIDBuf[8+1]; cg_log_debug_l4("Entering...\n"); if (cg_net_isipv6address(addr) == FALSE) return 0; addrLen = cg_strlen(addr); perIdx = cg_strchr(addr, "%", 1); if (perIdx < 0) return 0; cg_strncpy(scopeIDBuf, (addr+perIdx+1), sizeof(scopeIDBuf)-1); scopeIDBuf[sizeof(scopeIDBuf)-1] = '\0'; cg_log_debug_l4("Leaving...\n"); return atoi(scopeIDBuf); }