Example #1
0
File: pmval.c Project: aeppert/pcp
/*
 * like strtok, but smarter
 */
static char *
getinstance(char *p)
{
    static char	*save;
    char	quot;
    char	*q;
    char	*start;

    if (p == NULL)
	q = save;
    else
	q = p;
    
    while (hasspace(q))
	q++;

    if (*q == '\0')
	return NULL;
    else if (*q == '"' || *q == '\'') {
	quot = *q;
	start = ++q;

	while (*q && *q != quot)
	    q++;
	if (*q == quot)
	    *q++ = '\0';
    }
    else {
	start = q;
	while (*q && !hasspace(q))
	    q++;
    }
    if (*q)
	*q++ = '\0';
    save = q;

    return start;
}
Example #2
0
bool abletoUpload(int filesize){

    nspAction *nA=NSPAction();
	if(nA==NULL){return false;}
    nsp_node *send = nA->createArray();
    nsp_node *param = nA->createArray();
    if(send == NULL || param == NULL){NSPActionDelete(nA);return false;}
    nA->appendString(param,"product.spacecapacity");
    nA->appendString(param,"profile.spaceextcapacity");
    nA->appendString(param,"profile.usedspacecapacity");
    nA->appendString(param,"product.fileuploadsize");
    nA->appendArray(send,param);

    nsp_node *space = NULL;
    nsp_node *spaceext = NULL;
    nsp_node *usedspace = NULL;
    nsp_node *uploadsize = NULL;
    //send information and receive result and print
    nsp_node *recv = NSPService("nsp.user.getInfo",*send);
    if(recv==NULL){goto finish_able;}

    space = nA->searchNodeByStr(recv,"product.spacecapacity");
    spaceext = nA->searchNodeByStr(recv,"profile.spaceextcapacity");
    usedspace = nA->searchNodeByStr(recv,"profile.usedspacecapacity");
    uploadsize = nA->searchNodeByStr(recv,"product.fileuploadsize");

    if(space==NULL || spaceext==NULL || usedspace==NULL || uploadsize==NULL){
        nA->deleteNode(recv);
        goto finish_able;
    }
    
    if(!hasspace(nA->getNodeStringValue(space),nA->getNodeStringValue(spaceext),nA->getNodeStringValue(usedspace),filesize) || atoi(nA->getNodeStringValue(uploadsize))<filesize){
        nA->deleteNode(recv);
        goto finish_able;    
    }

    //free memory
    nA->deleteNode(recv);
    nA->deleteNode(send);
    NSPActionDelete(nA);
    return true;

finish_able:
    nA->deleteNode(send);
    NSPActionDelete(nA);
    return false;
}