Beispiel #1
0
static int decodeNumber(EcCompiler *cp, int radix, int length)
{
    char        buf[16];
    int         i, c, lowerc;

    for (i = 0; i < length; i++) {
        c = getNextChar(cp->stream);
        if (c == 0) {
            break;
        }
        if (radix <= 10) {
            if (!isdigit((uchar) c)) {
                break;
            }
        } else if (radix == 16) {
            lowerc = tolower((uchar) c);
            if (!isdigit((uchar) lowerc) && !('a' <= lowerc && lowerc <= 'f')) {
                break;
            }
        }
        buf[i] = c;
    }
    if (i < length) {
        putBackChar(cp->stream, c);
    }
    buf[i] = '\0';
    return (int) stoiradix(buf, radix, NULL);
}
Beispiel #2
0
static int parseDigestNonce(char *nonce, cchar **secret, cchar **realm, MprTime *when)
{
    char    *tok, *decoded, *whenStr;

    if ((decoded = mprDecode64(nonce)) == 0) {
        return MPR_ERR_CANT_READ;
    }
    *secret = stok(decoded, ":", &tok);
    *realm = stok(NULL, ":", &tok);
    whenStr = stok(NULL, ":", &tok);
    *when = (MprTime) stoiradix(whenStr, 16, NULL); 
    return 0;
}
Beispiel #3
0
int64 stoi(cchar *str)
{
    return stoiradix(str, 10, NULL);
}