// for each key/value in params_one, set params_two[key] = value void merge_params(params_t& params_one, params_t& params_two) { map<string,string>::iterator iter; for(iter = params_one.begin(); iter != params_one.end(); iter++) { string param_key(iter->first); params_two[param_key] = params_one[param_key]; } };
void get_extension_params(params_t& extparams, params_t& params) { map<string,string>::iterator iter; extparams.reset_fields(); for(iter = params.begin(); iter != params.end(); iter++) { string param_key(iter->first); vector<string> parts = explode(param_key, "."); // if there is more than one "." in the param name then we're // dealing with an extension parameter if(parts.size() > 2) extparams[param_key] = params[param_key]; } };
void remove_openid_vars(params_t& params) { map<string,string>::iterator iter, iter_next; for(iter = params.begin(); iter != params.end(); ) { iter_next = iter; ++iter_next; string param_key(iter->first); // if starts with openid. or modauthopenid. (for the nonce) or openid_identifier (the login) remove it if((param_key.substr(0, 7) == "openid." || param_key.substr(0, 14) == "modauthopenid." || param_key == "openid_identifier")) { params.erase(iter); // invalidates iter, but its successor iter_next is still valid } iter = iter_next; } };
void remove_openid_vars(params_t& params) { map<string,string>::iterator iter; for(iter = params.begin(); iter != params.end(); iter++) { string param_key(iter->first); // if starts with openid. or modauthopenid. (for the nonce) or openid_identifier (the login) remove it if((param_key.substr(0, 7) == "openid." || param_key.substr(0, 14) == "modauthopenid." || param_key == "openid_identifier")) { params.erase(param_key); // stupid map iterator screws up if we just continue the iteration... // so recursion to the rescue - we'll delete them one at a time remove_openid_vars(params); return; } } };