/* ** dav_fs_parse_locktoken ** ** Parse an opaquelocktoken URI into a locktoken. */ static dav_error * dav_fs_parse_locktoken( apr_pool_t *p, const char *char_token, dav_locktoken **locktoken_p) { dav_locktoken *locktoken; if (ap_strstr_c(char_token, "opaquelocktoken:") != char_token) { return dav_new_error(p, HTTP_BAD_REQUEST, DAV_ERR_LOCK_UNK_STATE_TOKEN, 0, "The lock token uses an unknown State-token " "format and could not be parsed."); } char_token += 16; locktoken = apr_pcalloc(p, sizeof(*locktoken)); if (apr_uuid_parse(&locktoken->uuid, char_token)) { return dav_new_error(p, HTTP_BAD_REQUEST, DAV_ERR_LOCK_PARSE_TOKEN, 0, "The opaquelocktoken has an incorrect format " "and could not be parsed."); } *locktoken_p = locktoken; return NULL; }
SWITCH_DECLARE(switch_status_t) switch_uuid_parse(switch_uuid_t *uuid, const char *uuid_str) { #ifndef WIN32 return apr_uuid_parse((apr_uuid_t *) uuid, uuid_str); #else return UuidFromString((RPC_CSTR) uuid_str, (UUID *) uuid); #endif }
apr_status_t oidc_session_load(request_rec *r, session_rec **zz) { apr_status_t rc = ap_session_load_fn(r, zz); (*zz)->remote_user = apr_table_get((*zz)->entries, OIDC_SESSION_REMOTE_USER_KEY); const char *uuid = apr_table_get((*zz)->entries, OIDC_SESSION_UUID_KEY); oidc_debug(r, "%s", uuid ? uuid : "<null>"); if (uuid != NULL) apr_uuid_parse((*zz)->uuid, uuid); return rc; }
svn_error_t * svn_fs_set_uuid(svn_fs_t *fs, const char *uuid, apr_pool_t *pool) { if (! uuid) { uuid = svn_uuid_generate(pool); } else { apr_uuid_t parsed_uuid; apr_status_t apr_err = apr_uuid_parse(&parsed_uuid, uuid); if (apr_err) return svn_error_createf(SVN_ERR_BAD_UUID, NULL, _("Malformed UUID '%s'"), uuid); } return svn_error_trace(fs->vtable->set_uuid(fs, uuid, pool)); }
int lua_apr_uuid_parse(lua_State *L) { apr_status_t status; size_t length; const char *formatted; apr_uuid_t uuid; formatted = luaL_checklstring(L, 1, &length); if (APR_UUID_FORMATTED_LENGTH != length) { const char *msg = "expected string of %d characters"; luaL_argerror(L, 1, lua_pushfstring(L, msg, APR_UUID_FORMATTED_LENGTH)); } status = apr_uuid_parse(&uuid, formatted); if (status != APR_SUCCESS) return push_error_status(L, status); lua_pushlstring(L, (const char *) uuid.data, APR_UUID_LENGTH); return 1; }
/** * Load the session by firing off a dbd query. * * If the session is anonymous, the session key will be extracted from * the cookie specified. Failing that, the session key will be extracted * from the GET parameters. * * If the session is keyed by the username, the session will be extracted * by that. * * If no session is found, an empty session will be created. * * On success, this returns OK. */ static apr_status_t session_dbd_load(request_rec * r, session_rec ** z) { session_dbd_dir_conf *conf = ap_get_module_config(r->per_dir_config, &session_dbd_module); apr_status_t ret = APR_SUCCESS; session_rec *zz = NULL; const char *name = NULL; const char *note = NULL; const char *val = NULL; const char *key = NULL; request_rec *m = r->main ? r->main : r; /* is our session in a cookie? */ if (conf->name2_set) { name = conf->name2; } else if (conf->name_set) { name = conf->name; } else if (conf->peruser_set && r->user) { name = r->user; } else { return DECLINED; } /* first look in the notes */ note = apr_pstrcat(r->pool, MOD_SESSION_DBD, name, NULL); zz = (session_rec *)apr_table_get(m->notes, note); if (zz) { *z = zz; return OK; } /* load anonymous sessions */ if (conf->name_set || conf->name2_set) { /* load an RFC2109 or RFC2965 compliant cookie */ ap_cookie_read(r, name, &key, conf->remove); if (key) { ret = dbd_load(r, key, &val); if (ret != APR_SUCCESS) { return ret; } } } /* load named session */ else if (conf->peruser) { if (r->user) { ret = dbd_load(r, r->user, &val); if (ret != APR_SUCCESS) { return ret; } } } /* otherwise not for us */ else { return DECLINED; } /* create a new session and return it */ zz = (session_rec *) apr_pcalloc(r->pool, sizeof(session_rec)); zz->pool = r->pool; zz->entries = apr_table_make(zz->pool, 10); zz->uuid = (apr_uuid_t *) apr_pcalloc(zz->pool, sizeof(apr_uuid_t)); if (key) { apr_uuid_parse(zz->uuid, key); } else { apr_uuid_get(zz->uuid); } zz->encoded = val; *z = zz; /* put the session in the notes so we don't have to parse it again */ apr_table_setn(m->notes, note, (char *)zz); return OK; }