Ignore:
Timestamp:
2008-04-17T13:52:05+12:00 (16 years ago)
Author:
mdewsnip
Message:

Now each action checks for invalid arguments in the params structure and deletes any that aren't valid, so they don't get into the "<request>" tag in the resulting XML and cause OAI validation errors. By DL Consulting Ltd.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • gsdl/trunk/src/oaiservr/recordaction.cpp

    r11311 r15198  
    2929
    3030bool recordaction::validateAction(recptproto *protocol, oaiargs &params)
    31 { text_t meta = params["metadataPrefix"];
     31{
     32  int params_size = params.getSize();
     33
     34  // Remove any parameters that aren't valid for this action
     35  text_tmap::const_iterator param_iterator = params.begin();
     36  while (param_iterator != params.end())
     37  {
     38    if (param_iterator->first != "verb" &&
     39    param_iterator->first != "identifier" &&
     40    param_iterator->first != "metadataPrefix")
     41    {
     42      params.erase(param_iterator->first);
     43    }
     44
     45    param_iterator++;
     46  }
     47
     48  text_t meta = params["metadataPrefix"];
    3249  text_t gsdlId = params["identifier"];
    3350  text_t gsdlCollect;
     
    3754  // The identifier and metadataPrefix args MUST be supplied, and are the only
    3855  // args allowed (excluding verb arg). If we don't have them, throw an error.
    39   if(gsdlId == "" || meta == "" || params.getSize() != 3){
     56  if(gsdlId == "" || meta == "" || params_size != 3){
    4057    this->errorType = "badArgument";
    4158    return false;
Note: See TracChangeset for help on using the changeset viewer.