const char *cg_upnp_event_subscription_tosidheaderstring(const char *sid, char *buf, size_t bufSize) { ssize_t colonIdx; cg_log_debug_l4("Entering...\n"); colonIdx = cg_strstr(sid, CG_UPNP_SUBSCRIPTION_UUID); if (0 <= colonIdx) { cg_strncpy(buf, sid, bufSize); buf[bufSize-1] = '\0'; return buf; } #if defined(HAVE_SNPRINTF) snprintf(buf, bufSize, #else sprintf(buf, #endif "%s%s", CG_UPNP_SUBSCRIPTION_UUID, sid); return buf; cg_log_debug_l4("Leaving...\n"); }
char *cg_upnp_usn_getudn(char *usn, char *udnBuf, int udnBufLen) { int idx; cg_log_debug_l4("Entering...\n"); if (usn == NULL) { udnBuf[0] = '\0'; return udnBuf; } idx = cg_strstr(usn, "::"); if (idx < 0) { cg_strncpy(udnBuf, usn, udnBufLen); udnBuf[udnBufLen-1] = '\0'; cg_strtrim(udnBuf, " ", 1); return udnBuf; } if ( idx < udnBufLen ) { cg_strncpy(udnBuf, usn, (idx)); udnBuf[idx] = '\0'; } else { cg_strncpy(udnBuf, usn, udnBufLen); udnBuf[udnBufLen-1] = '\0'; } cg_strtrim(udnBuf, " ", 1); cg_log_debug("UDN: %s\n", udnBuf); return udnBuf; 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); }