Exemplo n.º 1
0
void
Nfdc::ribRegisterPrefix()
{
  m_name = m_commandLineArguments[0];
  ControlParameters parameters;
  parameters
    .setName(m_name)
    .setCost(m_cost)
    .setFlags(m_flags)
    .setOrigin(m_origin);

  if (m_expires != DEFAULT_EXPIRATION_PERIOD)
    parameters.setExpirationPeriod(m_expires);

  if (!isValidUri(m_commandLineArguments[1])) {
    try { //So the uri is not valid, may be a faceId is provided.
      m_faceId = boost::lexical_cast<int>(m_commandLineArguments[1]);
    }
    catch (const std::exception& e) {
      std::cerr << "No valid faceUri or faceId is provided"<< std::endl;
      return;
    }
    parameters.setFaceId(m_faceId);
    ribRegisterPrefix(parameters);
  }
  else {
    ControlParameters faceParameters;
    faceParameters.setUri(m_commandLineArguments[1]);

    m_controller.start<FaceCreateCommand>(faceParameters,
                                          bind(&Nfdc::ribRegisterPrefix, this, _1),
                                          bind(&Nfdc::onError, this, _1, _2,
                                               "Face creation failed"));
  }
}
Exemplo n.º 2
0
void
Nfdc::fibAddNextHop()
{
  m_name = m_commandLineArguments[0];
  ControlParameters parameters;
  parameters
    .setName(m_name)
    .setCost(m_cost);

  if (!isValidUri(m_commandLineArguments[1])) {
    try { //So the uri is not valid, may be a faceId is provided.
      m_faceId = boost::lexical_cast<int>(m_commandLineArguments[1]);
    }
    catch (const std::exception& e) {
      std::cerr << "No valid faceUri or faceId is provided"<< std::endl;
      return;
    }
    parameters.setFaceId(m_faceId);
    fibAddNextHop(parameters);
  }
  else {
    ControlParameters faceParameters;
    faceParameters.setUri(m_commandLineArguments[1]);

    m_controller.start<FaceCreateCommand>(faceParameters,
                                          bind(&Nfdc::fibAddNextHop, this, _1),
                                          bind(&Nfdc::onError, this, _1, _2,
                                               "Face creation failed"));
  }
}
Exemplo n.º 3
0
void
Nfdc::faceCreate()
{
  if (!isValidUri(m_commandLineArguments[0]))
    throw Error("invalid uri format");

  ControlParameters parameters;
  parameters.setUri(m_commandLineArguments[0]);

  m_controller.start<FaceCreateCommand>(parameters,
                                        bind(&Nfdc::onSuccess, this, _1,
                                             "Face creation succeeded"),
                                        bind(&Nfdc::onError, this, _1, _2,
                                             "Face creation failed"));
}
Exemplo n.º 4
0
static void validateUri(MprTestGroup *gp)
{
    assert(isValidUri(gp, "", ""));
    assert(isValidUri(gp, "/", "/"));
    assert(isValidUri(gp, "/index.html", "/index.html"));
    assert(isValidUri(gp, "/a/index.html", "/a/index.html"));

    assert(isValidUri(gp, "..", ""));
    assert(isValidUri(gp, "../", ""));
    assert(isValidUri(gp, "/..", ""));
    assert(isValidUri(gp, "/a/..", "/"));
    assert(isValidUri(gp, "/a/../", "/"));
    assert(isValidUri(gp, "/a/../b/..", "/"));
    assert(isValidUri(gp, "../a/b/..", "a/"));

    assert(isValidUri(gp, "./", ""));
    assert(isValidUri(gp, "./.", ""));
    assert(isValidUri(gp, "././", ""));
    assert(isValidUri(gp, "/a/./", "/a/"));
    assert(isValidUri(gp, "/a/./.", "/a/"));
    assert(isValidUri(gp, "/a/././", "/a/"));
    assert(isValidUri(gp, "/a/.", "/a/"));

    assert(isValidUri(gp, "/*a////b/", "/*a/b/"));
    assert(isValidUri(gp, "/*a/////b/", "/*a/b/"));

#if BLD_WIN_LIKE || NW || OS2
    assert(isValidUri(gp, "\\a\\b\\", "/a/b/"));
#else
    assert(isValidUri(gp, "\\a\\b\\", "\\a\\b\\"));
#endif
}