LIBSPEC int UPNP_GetPortMappingNumberOfEntries(const char * controlURL, const char * servicetype, unsigned int * numEntries) { struct NameValueParserData pdata; char buffer[4096]; int bufsize = 4096; char* p; int ret = UPNPCOMMAND_UNKNOWN_ERROR; simpleUPnPcommand(-1, controlURL, servicetype, "GetPortMappingNumberOfEntries", 0, buffer, &bufsize); #ifdef DEBUG DisplayNameValueList(buffer, bufsize); #endif ParseNameValue(buffer, bufsize, &pdata); p = GetValueFromNameValueList(&pdata, "NewPortMappingNumberOfEntries"); if(numEntries && p) { *numEntries = 0; sscanf(p, "%u", numEntries); ret = UPNPCOMMAND_SUCCESS; } p = GetValueFromNameValueList(&pdata, "errorCode"); if(p) { ret = UPNPCOMMAND_UNKNOWN_ERROR; sscanf(p, "%d", &ret); } ClearNameValueList(&pdata); return ret; }
void UPNP_GetPortMappingNumberOfEntries(const char * controlURL, const char * servicetype, unsigned int * numEntries) { struct NameValueParserData pdata; char buffer[4096]; int bufsize = 4096; char* p; simpleUPnPcommand(-1, controlURL, servicetype, "GetPortMappingNumberOfEntries", 0, buffer, &bufsize); #ifndef NDEBUG DisplayNameValueList(buffer, bufsize); #endif ParseNameValue(buffer, bufsize, &pdata); p = GetValueFromNameValueList(&pdata, "NewPortMappingNumberOfEntries"); if(numEntries && p) { sscanf(p,"%u",numEntries); } ClearNameValueList(&pdata); }
int main(int argc, char * * argv) { FILE * f; char buffer[4096]; int l; int ok; if(argc<2) { fprintf(stderr, "Usage: %s file.xml [file.namevalues]\n", argv[0]); return 1; } f = fopen(argv[1], "r"); if(!f) { fprintf(stderr, "Error : can not open file %s\n", argv[1]); return 2; } l = fread(buffer, 1, sizeof(buffer)-1, f); fclose(f); f = NULL; buffer[l] = '\0'; if(argc >= 2) { f = fopen(argv[2], "r"); if(!f) { fprintf(stderr, "Error : can not open file %s\n", argv[2]); return 2; } } #ifdef DEBUG DisplayNameValueList(buffer, l); #endif ok = test_parsing(buffer, l, f); if(f) { fclose(f); } return ok ? 0 : 3; }
int main(int argc, char * * argv) { FILE * f; char buffer[4096]; int l; if(argc<2) { fprintf(stderr, "Usage: %s file.xml\n", argv[0]); return 1; } f = fopen(argv[1], "r"); if(!f) { fprintf(stderr, "Error : can not open file %s\n", argv[1]); return 2; } l = fread(buffer, 1, sizeof(buffer)-1, f); fclose(f); buffer[l] = '\0'; DisplayNameValueList(buffer, l); test_parsing(buffer, l); return 0; }