This commit is contained in:
parent
dbef59cf01
commit
c8a6ba960d
|
@ -135,7 +135,9 @@ build/ContactNotificationResponse.o build/DomainSecDNSUpdateCommandExtensi
|
||||||
build/ContactTransferResponse.o build/DomainTransferResponse.o build/init.o build/Period.o build/SecDNSRemType.o build/UserPassMismatchException.o \
|
build/ContactTransferResponse.o build/DomainTransferResponse.o build/init.o build/Period.o build/SecDNSRemType.o build/UserPassMismatchException.o \
|
||||||
build/ContactUpdateCommand.o build/DomainUpdateCommand.o build/IPVersion.o build/PeriodUnit.o build/SendSE.o build/XMLDocument.o \
|
build/ContactUpdateCommand.o build/DomainUpdateCommand.o build/IPVersion.o build/PeriodUnit.o build/SendSE.o build/XMLDocument.o \
|
||||||
build/CreateResponse.o build/DomainUpdateSyncCommandExtension.o build/KVExtension.o build/PollOperation.o build/SessionFactory.o \
|
build/CreateResponse.o build/DomainUpdateSyncCommandExtension.o build/KVExtension.o build/PollOperation.o build/SessionFactory.o \
|
||||||
build/DataResponse.o build/E164Extension.o build/Logger.o build/PollResponse.o build/SessionManagerFactory.o \
|
build/DataResponse.o build/E164Extension.o build/Logger.o \
|
||||||
|
build/SMDExtension.o build/ACProxyCommand.o \
|
||||||
|
build/PollResponse.o build/SessionManagerFactory.o \
|
||||||
build/Disclose.o build/EnumDomainCreateCommand.o build/LoginCommand.o build/PostalInfo.o build/SessionManagerImpl.o
|
build/Disclose.o build/EnumDomainCreateCommand.o build/LoginCommand.o build/PostalInfo.o build/SessionManagerImpl.o
|
||||||
|
|
||||||
.PHONY: tests
|
.PHONY: tests
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
#include "common/ErrorPkg.hpp"
|
#include "common/ErrorPkg.hpp"
|
||||||
#include "se/CLTRID.hpp"
|
#include "se/CLTRID.hpp"
|
||||||
#include "se/IllegalArgException.hpp"
|
#include "se/IllegalArgException.hpp"
|
||||||
#include "se/ACExtensionCommand.hpp"
|
#include "se/ACProxyCommand.hpp"
|
||||||
#include "xml/XMLHelper.hpp"
|
#include "xml/XMLHelper.hpp"
|
||||||
|
|
||||||
ACExtensionCommand::ACExtensionCommand(
|
ACProxyCommandCommand::ACProxyCommandCommand(
|
||||||
const CommandType* commandType,
|
const CommandType* commandType,
|
||||||
const ObjectType* objectType,
|
const ObjectType* objectType,
|
||||||
const std::string& ident,
|
const std::string& ident,
|
||||||
|
@ -36,7 +36,7 @@ ACExtensionCommand::ACExtensionCommand(
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string ACExtensionCommand::toXMLImpl()
|
std::string ACProxyCommandCommand::toXMLImpl()
|
||||||
{
|
{
|
||||||
XMLHelper::setTextContent(
|
XMLHelper::setTextContent(
|
||||||
xmlWriter->appendChild(command, "clTRID"),
|
xmlWriter->appendChild(command, "clTRID"),
|
|
@ -14,10 +14,10 @@
|
||||||
* class are responsible for building the part of the XML DOM tree common to
|
* class are responsible for building the part of the XML DOM tree common to
|
||||||
* all ACTK 1.0 protocol extension commands.
|
* all ACTK 1.0 protocol extension commands.
|
||||||
*/
|
*/
|
||||||
class ACExtensionCommand : public SendSE
|
class ACProxyCommandCommand : public SendSE
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ACExtensionCommand(
|
ACProxyCommandCommand(
|
||||||
const CommandType* commandType,
|
const CommandType* commandType,
|
||||||
const ObjectType* objectType,
|
const ObjectType* objectType,
|
||||||
const std::string& ident,
|
const std::string& ident,
|
|
@ -1,13 +1,21 @@
|
||||||
#include "se/LPE/LPChkCmdExtension.hpp"
|
#include "se/LPE/LPChkCmdExtension.hpp"
|
||||||
#include "se/Command.hpp"
|
#include "se/Command.hpp"
|
||||||
#include "se/LPE/LPExtension.hpp"
|
#include "se/LPE/LPExtension.hpp"
|
||||||
|
#include "se/LPE/SMDExtension.hpp"
|
||||||
#include "xml/XMLHelper.hpp"
|
#include "xml/XMLHelper.hpp"
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
LPExtension& lpExtension() {
|
LPExtension& lpExtension() {
|
||||||
static LPExtension* lpExtension = new LPExtension();
|
static LPExtension* lpExtension = new LPExtension();
|
||||||
return *lpExtension;
|
return *lpExtension;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SMDExtension& smdExtension() {
|
||||||
|
static SMDExtension* smdExtension = new SMDExtension();
|
||||||
|
return *smdExtension;
|
||||||
|
}
|
||||||
|
|
||||||
}; // anonymous namespace
|
}; // anonymous namespace
|
||||||
|
|
||||||
void LPChkCmdExtension::addToCommand(const Command &command) const
|
void LPChkCmdExtension::addToCommand(const Command &command) const
|
||||||
|
|
|
@ -3,11 +3,11 @@
|
||||||
#include "se/ResponseExtension.hpp"
|
#include "se/ResponseExtension.hpp"
|
||||||
#include "se/LPE/LPChkRespExtension.hpp"
|
#include "se/LPE/LPChkRespExtension.hpp"
|
||||||
#include <xalanc/XalanDOM/XalanNamedNodeMap.hpp>
|
#include <xalanc/XalanDOM/XalanNamedNodeMap.hpp>
|
||||||
#include <xalanc/XalanDOM/XalanDOMString.hpp>
|
//#include <xalanc/XalanDOM/XalanDOMString.hpp>
|
||||||
|
|
||||||
extern mdLogger mdLog;
|
extern mdLogger mdLog;
|
||||||
|
|
||||||
XALAN_USING_XALAN(XalanDOMString)
|
//XALAN_USING_XALAN(XalanDOMString)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Have to use static funcion instead of static variable
|
* Have to use static funcion instead of static variable
|
||||||
|
@ -16,26 +16,36 @@ XALAN_USING_XALAN(XalanDOMString)
|
||||||
*/
|
*/
|
||||||
const std::string LPChkRespExtension::CKCLAIM_EXPR()
|
const std::string LPChkRespExtension::CKCLAIM_EXPR()
|
||||||
{
|
{
|
||||||
return EXTENSION_EXPR() + "//launch:name@exists";
|
return EXTENSION_EXPR() + "//*/@exists";
|
||||||
}
|
}
|
||||||
|
const std::string LPChkRespExtension::CKKEY_EXPR()
|
||||||
|
{
|
||||||
|
return EXTENSION_EXPR() + "//launch:claimKey";
|
||||||
|
}
|
||||||
|
const char *LPChkRespExtension::getClaimsKey() { return claimsKey.c_str(); }
|
||||||
|
|
||||||
LPChkRespExtension::LPChkRespExtension() : typeIsClaims(true), initialised(false)
|
LPChkRespExtension::LPChkRespExtension() : typeIsClaims(true), initialised(false), response(false),
|
||||||
|
claimsKey("")
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void LPChkRespExtension::fromXML(XMLDocument *xmlDoc)
|
void LPChkRespExtension::fromXML(XMLDocument *xmlDoc)
|
||||||
{
|
{
|
||||||
|
const std::string ckeyElement = CKKEY_EXPR();
|
||||||
const std::string respElement = CKCLAIM_EXPR();
|
const std::string respElement = CKCLAIM_EXPR();
|
||||||
const XalanNode * responSE = xmlDoc->getElement(respElement);
|
const std::string respValue = xmlDoc->getNodeValue(respElement);
|
||||||
const XalanDOMString respValue("false");
|
const std::string doesntExist("false");
|
||||||
|
|
||||||
initialised = true;
|
initialised = true;
|
||||||
if (!responSE) {
|
if (respValue.empty() ) {
|
||||||
mdLog.logN(0,"Parse error in LPChkResponse");
|
mdLog.logN(0,"Parse error in LPChkResponse");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (responSE->getNodeValue().compare(respValue) != 0)
|
if (respValue.compare(doesntExist) != 0) {
|
||||||
response = true;
|
response = true;
|
||||||
|
const std::string claimKey= xmlDoc->getNodeValue(ckeyElement);
|
||||||
|
claimsKey = claimKey;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -15,8 +15,9 @@ class LPChkRespExtension : public ResponseExtension
|
||||||
|
|
||||||
virtual void fromXML(XMLDocument *xmlDoc);
|
virtual void fromXML(XMLDocument *xmlDoc);
|
||||||
bool affirmativeResponse();
|
bool affirmativeResponse();
|
||||||
bool getClaimsStatus() { return response; }
|
bool doClaimsExist() { return response; }
|
||||||
virtual bool isInitialised() const;
|
virtual bool isInitialised() const;
|
||||||
|
const char *getClaimsKey();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const XMLDocument *xmlDoc;
|
const XMLDocument *xmlDoc;
|
||||||
|
@ -26,6 +27,8 @@ class LPChkRespExtension : public ResponseExtension
|
||||||
bool response; // true/false attribute in reply
|
bool response; // true/false attribute in reply
|
||||||
|
|
||||||
static const std::string CKCLAIM_EXPR();
|
static const std::string CKCLAIM_EXPR();
|
||||||
|
static const std::string CKKEY_EXPR();
|
||||||
|
std::string claimsKey;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,27 @@
|
||||||
#include "se/LPE/LPCrtCmdExtension.hpp"
|
#include "se/LPE/LPCrtCmdExtension.hpp"
|
||||||
#include "se/Command.hpp"
|
#include "se/Command.hpp"
|
||||||
#include "se/LPE/LPExtension.hpp"
|
#include "se/LPE/LPExtension.hpp"
|
||||||
|
#include "se/LPE/SMDExtension.hpp"
|
||||||
#include "xml/XMLHelper.hpp"
|
#include "xml/XMLHelper.hpp"
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
LPExtension& lpExtension() {
|
LPExtension& lpExtension() {
|
||||||
static LPExtension* lpExtension = new LPExtension();
|
static LPExtension* lpExtension = new LPExtension();
|
||||||
return *lpExtension;
|
return *lpExtension;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SMDExtension& smdExtension() {
|
||||||
|
static SMDExtension* smdExtension = new SMDExtension();
|
||||||
|
return *smdExtension;
|
||||||
|
}
|
||||||
}; // anonymous namespace
|
}; // anonymous namespace
|
||||||
|
|
||||||
|
void LPCrtCmdExtension::setSMD()
|
||||||
|
{
|
||||||
|
haveSMD = true;
|
||||||
|
|
||||||
|
}
|
||||||
void LPCrtCmdExtension::addToCommand(const Command &command) const
|
void LPCrtCmdExtension::addToCommand(const Command &command) const
|
||||||
{
|
{
|
||||||
XMLWriter* xmlWriter = command.getXmlWriter();
|
XMLWriter* xmlWriter = command.getXmlWriter();
|
||||||
|
@ -18,4 +30,39 @@ void LPCrtCmdExtension::addToCommand(const Command &command) const
|
||||||
"create", lpExtension().getURI());
|
"create", lpExtension().getURI());
|
||||||
DOMElement* exPhaseElement = xmlWriter->appendChild(launchElement, "launch:phase");
|
DOMElement* exPhaseElement = xmlWriter->appendChild(launchElement, "launch:phase");
|
||||||
XMLHelper::setTextContent(exPhaseElement, lpePhaseName);
|
XMLHelper::setTextContent(exPhaseElement, lpePhaseName);
|
||||||
|
|
||||||
|
if (haveNoticeID) {
|
||||||
|
|
||||||
|
DOMElement* noticeElement = xmlWriter->appendChild(launchElement, "launch:notice");
|
||||||
|
|
||||||
|
DOMElement* exPhaseElement1 = xmlWriter->appendChild(noticeElement, "launch:noticeID");
|
||||||
|
XMLHelper::setTextContent( exPhaseElement1, noticeID );
|
||||||
|
|
||||||
|
DOMElement* exPhaseElement2 = xmlWriter->appendChild(noticeElement, "launch:notAfter");
|
||||||
|
XMLHelper::setTextContent( exPhaseElement2, notAfter );
|
||||||
|
|
||||||
|
DOMElement* exPhaseElement3 = xmlWriter->appendChild(noticeElement, "launch:acceptedDate");
|
||||||
|
XMLHelper::setTextContent( exPhaseElement3, acceptedDate );
|
||||||
|
}
|
||||||
|
|
||||||
|
if (haveSMD) { const string smd_id("1-2");
|
||||||
|
const string notBefore("2009-08-16T09:00:00.0Z"); const string notAfter("2099-08-16T09:00:00.0Z");
|
||||||
|
|
||||||
|
DOMElement* createLPElement = xmlWriter->appendChild(extensionElement, "launch:create");
|
||||||
|
DOMElement* smdElement = xmlWriter->appendChild(extensionElement,
|
||||||
|
"signedMark", smdExtension().getURI());
|
||||||
|
|
||||||
|
DOMElement* smdElement1 = xmlWriter->appendChild(smdElement, "smd:id");
|
||||||
|
XMLHelper::setTextContent( smdElement1, smd_id );
|
||||||
|
|
||||||
|
DOMElement* smdElement2 = xmlWriter->appendChild(smdElement, "smd:notBefore");
|
||||||
|
XMLHelper::setTextContent( smdElement2, notBefore );
|
||||||
|
|
||||||
|
DOMElement* smdElement3 = xmlWriter->appendChild(smdElement, "smd:notAfter");
|
||||||
|
XMLHelper::setTextContent( smdElement3, notAfter );
|
||||||
|
|
||||||
|
DOMElement* smdElement4 = xmlWriter->appendChild(smdElement, "smd:endcodedSignedMark");
|
||||||
|
XMLHelper::setTextContent( smdElement4, smdData );
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,19 +8,28 @@
|
||||||
#include "se/CommandExtension.hpp"
|
#include "se/CommandExtension.hpp"
|
||||||
#include "se/IllegalArgException.hpp"
|
#include "se/IllegalArgException.hpp"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
class LPCrtCmdExtension : public CommandExtension
|
class LPCrtCmdExtension : public CommandExtension
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
LPCrtCmdExtension (const std::string *phaseName);
|
LPCrtCmdExtension (const std::string *phaseName);
|
||||||
virtual void addToCommand(const Command &command) const;
|
virtual void addToCommand(const Command &command) const;
|
||||||
|
bool hasNoticeID() {return haveNoticeID;}
|
||||||
|
void setNoticeID(string &idVal,string ¬AftVal, string &acceptedVal) {
|
||||||
|
noticeID = idVal; notAfter = notAftVal; acceptedDate = acceptedVal; haveNoticeID = true;
|
||||||
|
}
|
||||||
|
void setSMD();
|
||||||
private:
|
private:
|
||||||
|
bool haveNoticeID,haveSMD;
|
||||||
std::string lpePhaseName;
|
std::string lpePhaseName;
|
||||||
|
std::string noticeID;
|
||||||
|
std::string notAfter;
|
||||||
|
std::string acceptedDate;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
inline LPCrtCmdExtension::LPCrtCmdExtension(
|
inline LPCrtCmdExtension::LPCrtCmdExtension( const std::string *phaseName)
|
||||||
const std::string *phaseName)
|
|
||||||
{
|
{
|
||||||
if (phaseName == NULL)
|
if (phaseName == NULL)
|
||||||
{
|
{
|
||||||
|
@ -29,6 +38,83 @@ inline LPCrtCmdExtension::LPCrtCmdExtension(
|
||||||
}
|
}
|
||||||
|
|
||||||
lpePhaseName = std::string(*phaseName);
|
lpePhaseName = std::string(*phaseName);
|
||||||
|
haveNoticeID = haveSMD = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // __DOMAIN_UPDATE_COMMAND_EXTENSION_HPP
|
#endif // __DOMAIN_UPDATE_COMMAND_EXTENSION_HPP
|
||||||
|
|
||||||
|
// just here for exploratory purposes
|
||||||
|
|
||||||
|
static const string smdData(
|
||||||
|
"DQo8c21kOnNpZ25lZE1hcmsgeG1sbnM6c21kPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOnNpZ25l"
|
||||||
|
"ZE1hcmstMS4wIiBpZD0iX3NpZ25lZE1hcmsiPjxzbWQ6aWQ+MS0yPC9zbWQ6aWQ+DQogIDwhLS0g"
|
||||||
|
"aW5zZXJ0IHNtZDppZCAtLT4NCiAgPHNtZDppc3N1ZXJJbmZvIGlzc3VlcklEPSIyIj4NCiAgICA8"
|
||||||
|
"c21kOm9yZz5FeGFtcGxlIEluYy48L3NtZDpvcmc+DQogICAgPHNtZDplbWFpbD5zdXBwb3J0QGV4"
|
||||||
|
"YW1wbGUudGxkPC9zbWQ6ZW1haWw+DQogICAgPHNtZDp1cmw+aHR0cDovL3d3dy5leGFtcGxlLnRs"
|
||||||
|
"ZDwvc21kOnVybD4NCiAgICA8c21kOnZvaWNlIHg9IjEyMzQiPisxLjcwMzU1NTU1NTU8L3NtZDp2"
|
||||||
|
"b2ljZT4NCiAgPC9zbWQ6aXNzdWVySW5mbz48c21kOm5vdEJlZm9yZT4yMDA5LTA4LTE2VDA5OjAw"
|
||||||
|
"OjAwLjBaPC9zbWQ6bm90QmVmb3JlPjxzbWQ6bm90QWZ0ZXI+MjA5OS0wOC0xNlQwOTowMDowMC4w"
|
||||||
|
"Wjwvc21kOm5vdEFmdGVyPg0KICA8IS0tIGluc2VydCBzbWQ6bm90QmVmb3JlIC0tPg0KICA8IS0t"
|
||||||
|
"IGluc2VydCBzbWQ6bm90QWZ0ZXIgLS0+DQogIDxtYXJrOm1hcmsgeG1sbnM6bWFyaz0idXJuOmll"
|
||||||
|
"dGY6cGFyYW1zOnhtbDpuczptYXJrLTEuMCI+DQogICAgPG1hcms6dHJhZGVtYXJrPg0KICAgICAg"
|
||||||
|
"PG1hcms6aWQ+MTIzNC0yPC9tYXJrOmlkPjxtYXJrOm1hcmtOYW1lPmJvw650ZSBkZSB0ZXN0PC9t"
|
||||||
|
"YXJrOm1hcmtOYW1lPg0KICAgICAgPCEtLSBpbnNlcnQgbWFyazptYXJrTmFtZSAtLT4NCiAgICAg"
|
||||||
|
"IDxtYXJrOmhvbGRlciBlbnRpdGxlbWVudD0ib3duZXIiPg0KICAgICAgICA8bWFyazpvcmc+RXhh"
|
||||||
|
"bXBsZSBJbmMuPC9tYXJrOm9yZz4NCiAgICAgICAgPG1hcms6YWRkcj4NCiAgICAgICAgICA8bWFy"
|
||||||
|
"azpzdHJlZXQ+MTIzIEV4YW1wbGUgRHIuPC9tYXJrOnN0cmVldD4NCiAgICAgICAgICA8bWFyazpz"
|
||||||
|
"dHJlZXQ+U3VpdGUgMTAwPC9tYXJrOnN0cmVldD4NCiAgICAgICAgICA8bWFyazpjaXR5PlJlc3Rv"
|
||||||
|
"bjwvbWFyazpjaXR5Pg0KICAgICAgICAgIDxtYXJrOnNwPlZBPC9tYXJrOnNwPg0KICAgICAgICAg"
|
||||||
|
"IDxtYXJrOnBjPjIwMTkwPC9tYXJrOnBjPg0KICAgICAgICAgIDxtYXJrOmNjPlVTPC9tYXJrOmNj"
|
||||||
|
"Pg0KICAgICAgICA8L21hcms6YWRkcj4NCiAgICAgIDwvbWFyazpob2xkZXI+DQogICAgICA8bWFy"
|
||||||
|
"azpqdXJpc2RpY3Rpb24+VVM8L21hcms6anVyaXNkaWN0aW9uPg0KICAgICAgPG1hcms6Y2xhc3M+"
|
||||||
|
"MzU8L21hcms6Y2xhc3M+DQogICAgICA8bWFyazpjbGFzcz4zNjwvbWFyazpjbGFzcz48bWFyazps"
|
||||||
|
"YWJlbD5ib2l0ZWRldGVzdDwvbWFyazpsYWJlbD48bWFyazpsYWJlbD5ib2l0ZWRlLXRlc3Q8L21h"
|
||||||
|
"cms6bGFiZWw+PG1hcms6bGFiZWw+Ym9pdGUtZGUtdGVzdDwvbWFyazpsYWJlbD4NCiAgICAgIDwh"
|
||||||
|
"LS0gaW5zZXJ0IG1hcms6bGFiZWwgLS0+DQogICAgICA8bWFyazpnb29kc0FuZFNlcnZpY2VzPg0K"
|
||||||
|
"ICAgICAgICBEaXJpZ2VuZGFzIGV0IGVpdXNtb2RpDQogICAgICAgIGZlYXR1cmluZyBpbmZyaW5n"
|
||||||
|
"byBpbiBhaXJmYXJlIGV0IGNhcnRhbSBzZXJ2aWNpYS4NCiAgICAgIDwvbWFyazpnb29kc0FuZFNl"
|
||||||
|
"cnZpY2VzPg0KICAgICAgPG1hcms6cmVnTnVtPjIzNDIzNTwvbWFyazpyZWdOdW0+DQogICAgICA8"
|
||||||
|
"bWFyazpyZWdEYXRlPjIwMDktMDgtMTZUMDk6MDA6MDAuMFo8L21hcms6cmVnRGF0ZT4NCiAgICAg"
|
||||||
|
"IDxtYXJrOmV4RGF0ZT4yMDk5LTA4LTE2VDA5OjAwOjAwLjBaPC9tYXJrOmV4RGF0ZT4NCiAgICA8"
|
||||||
|
"L21hcms6dHJhZGVtYXJrPg0KICA8L21hcms6bWFyaz4NCjxTaWduYXR1cmUgeG1sbnM9Imh0dHA6"
|
||||||
|
"Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxTaWduZWRJbmZvPjxDYW5vbmljYWxpemF0"
|
||||||
|
"aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMx"
|
||||||
|
"NG4jIiAvPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAx"
|
||||||
|
"LzA0L3htbGRzaWctbW9yZSNyc2Etc2hhMjU2IiAvPjxSZWZlcmVuY2UgVVJJPSIjX3NpZ25lZE1h"
|
||||||
|
"cmsiPjxUcmFuc2Zvcm1zPjxUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8y"
|
||||||
|
"MDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIgLz48VHJhbnNmb3JtIEFsZ29yaXRo"
|
||||||
|
"bT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIiAvPjwvVHJhbnNmb3Jt"
|
||||||
|
"cz48RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxl"
|
||||||
|
"bmMjc2hhMjU2IiAvPjxEaWdlc3RWYWx1ZT5CK2R6NWtzdno4K3FQbFMzUE8rKy93UnYxdEFRU1VE"
|
||||||
|
"NkhjaFZPTzkyN2FFPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPjxTaWdu"
|
||||||
|
"YXR1cmVWYWx1ZT5VZ3VJQm5oRElRQXNqUTlkTkFRcXVDR3h5Q2o3UTlYV3FxSHdDa2xKZHpkMi9H"
|
||||||
|
"bDB2UHVwb282aFV4cUprU3lPbjI5OTZlQ1Z5NjQ0c3AvQVFISzl2N1VFRGJWcmp4WFlPT2JuVUQ1"
|
||||||
|
"RUlLMEcxbnM0UEh5MkhBSjNiVlNPL1JuVG4rU25KV1o1d0hSWHg2ZjhLd0pIUThVUHg0R3Q5SVZy"
|
||||||
|
"elRHQ0NwSkduMkU1djFTbjlTTXFDcWY4M1ZiMkxFellQbTg2Zkw4NUNwZmNFK2t0YnNsZHFmZno0"
|
||||||
|
"RXMyU2lobG9vY1BtaEJIeTg0eVNUS05MVWtmcXI4ZXk1YU1QeThHb2ErMXVHM1UwS2g0Zk5nZGdL"
|
||||||
|
"RmZUZnhBUHN0RCtYTzEwQTB3OCtxQnRQZFFwcVgwQVZKbUNSR04vRk52UWNCb0RvV1U5K2FsSEtq"
|
||||||
|
"c29sNXZRTDc0QWc9PTwvU2lnbmF0dXJlVmFsdWU+PEtleUluZm8+PFg1MDlEYXRhPjxYNTA5Q2Vy"
|
||||||
|
"dGlmaWNhdGU+TUlJRHNEQ0NBcGdDQVFFd0RRWUpLb1pJaHZjTkFRRUZCUUF3Z2FFeEN6QUpCZ05W"
|
||||||
|
"QkFZVEFsVlRNUk13RVFZRFZRUUlEQXBYWVhOb2FXNW5kRzl1TVJFd0R3WURWUVFIREFoQ1pXeHNa"
|
||||||
|
"WFoxWlRFUE1BMEdBMVVFQ2d3R1JHOXVkWFJ6TVEwd0N3WURWUVFMREFSVVpYTjBNU1V3SXdZRFZR"
|
||||||
|
"UUREQngwYldOb2RHVnpkSEp2YjNSalpYSjBNUzF2ZEdVdFpHOXVkWFJ6TVNNd0lRWUpLb1pJaHZj"
|
||||||
|
"TkFRa0JGaFJvYjNOMGJXRnpkR1Z5UUdSdmJuVjBjeTVqYnpBZUZ3MHhNekEzTVRBd05qUTNNelJh"
|
||||||
|
"RncweU16QTNNRGd3TmpRM016UmFNSUdaTVFzd0NRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNBd0tW"
|
||||||
|
"MkZ6YUdsdVozUnZiakVSTUE4R0ExVUVCd3dJUW1Wc2JHVjJkV1V4RHpBTkJnTlZCQW9NQmtSdmJu"
|
||||||
|
"VjBjekVOTUFzR0ExVUVDd3dFVkdWemRERWRNQnNHQTFVRUF3d1VjMjFrWTJWeWRERXhMVzkwWlMx"
|
||||||
|
"a2IyNTFkSE14SXpBaEJna3Foa2lHOXcwQkNRRVdGR2h2YzNSdFlYTjBaWEpBWkc5dWRYUnpMbU52"
|
||||||
|
"TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF3dEhkdmRtMTFJaVM5"
|
||||||
|
"aG02RkM1QlNKNmdEM2kxRGx1S2QyU0dpYWdjOU5WZmFKSW95RlhENlRzMjR5cDdIWHFrcitrMGdq"
|
||||||
|
"RjF3Tng5R0MrTkV5N0h6Vmo1TFNQQ0p0NEFobEZKWjlVbnVjYWRyWm55bVhuUWZwK2xRSXkyaEor"
|
||||||
|
"c3UxbTN4c3NXemdRYjgwdWg3QTZwZFJiRTNSNFZLRC9CZ1F1WG1rUnFqeUt3RkZpSTBCdjJQaEVj"
|
||||||
|
"NllJdTRQV25aYVZmWnovSE1Wbkt6R1dSMXFQazgzNkNaMk5MSkFhKzViak9nMFJHeHB1TDZjWXZa"
|
||||||
|
"ZHNKTTdqVXBRMFl6SGFJSlJjM0tmd2pEYVRHeTdyeHZHQzlMM250c0l4ZmFnTnZyOEh1MU9HdVcw"
|
||||||
|
"RSt2TzhHSFNnSExWeGRuZEVYUDFlQUJlS2F2NWFkYzZKcjVJaHE3UkdscndJREFRQUJNQTBHQ1Nx"
|
||||||
|
"R1NJYjNEUUVCQlFVQUE0SUJBUUJWQ0dHY3I1eTNZM2Ntd0hxNjdUVS96Slhqd3RmcFhQRFQyTTUv"
|
||||||
|
"YmFUK1ZGQ0s3Z1JQYWJwV3JCdmtodmtKbSt1VE9nQmM5WDdqK1l5aDN6U1IydE84Umx6NHdQZndC"
|
||||||
|
"cFdkWllkTmZXMUVZdDZ3Q0F4WlM3RlB5eEJ3cmEzUTczNEYyWUsvdjBUOG14WGhlVWVDYXhheHV6"
|
||||||
|
"aG11U2hRTTd4YkYrQUdRdWlBdmdJRUVhZ3VBcUdCOS9GMjhHYnYyNHpVcmxLcktSUGpReWxnR1V6"
|
||||||
|
"eXQxVS9tbVBrQ0JCd0ZWWCtlWkY1UjZmdFJDN1ZnaWFLZ3VTYlNyUjVuRjRpUzZXQUVtakdMZ01v"
|
||||||
|
"RHhzUU5KM3RSQUJMUGJSTHVIYVUxWjZ2UmRtQ3VMczVrcVFTWThZZXB1bGJaYnRyY3hEQU1BcE5q"
|
||||||
|
"SHVSc2M0a0NSZ1VvNlFHVG1zbTwvWDUwOUNlcnRpZmljYXRlPjwvWDUwOURhdGE+PC9LZXlJbmZv"
|
||||||
|
"PjwvU2lnbmF0dXJlPjwvc21kOnNpZ25lZE1hcms+");
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
/*
|
||||||
|
* SMDExtension.cpp
|
||||||
|
*
|
||||||
|
* Created on: Jan 28, 2014
|
||||||
|
* Author: jdaugherty
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "SMDExtension.hpp"
|
||||||
|
|
||||||
|
SMDExtension::SMDExtension() {
|
||||||
|
// TODO Auto-generated constructor stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
SMDExtension::~SMDExtension() {
|
||||||
|
// TODO Auto-generated destructor stub
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
std::string& SMDExtension::getURI() const
|
||||||
|
{
|
||||||
|
static std::string uri = "urn:ietf:params:xml:ns:signedMark-1.0";
|
||||||
|
return uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string& SMDExtension::getSchemaLocation() const
|
||||||
|
{
|
||||||
|
static std::string loc = "urn:ietf:params:xml:ns:signedMark-1.0 signedMark-1.0.xsd";
|
||||||
|
return loc;
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
/*
|
||||||
|
* SMDExtension.hpp
|
||||||
|
*
|
||||||
|
* Created on: Jan 28, 2014
|
||||||
|
* Author: jdaugherty
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef SMDEXTENSION_HPP_
|
||||||
|
#define SMDEXTENSION_HPP_
|
||||||
|
|
||||||
|
#include "se/Extension.hpp"
|
||||||
|
|
||||||
|
class SMDExtension: public Extension {
|
||||||
|
public:
|
||||||
|
SMDExtension();
|
||||||
|
virtual ~SMDExtension();
|
||||||
|
std::string& getURI() const;
|
||||||
|
std::string& getSchemaLocation() const;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* SMDEXTENSION_HPP_ */
|
|
@ -40,6 +40,13 @@ ACSession::ACSession(SessionManagerProperties* props)
|
||||||
ACSession::~ACSession()
|
ACSession::~ACSession()
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
void ACSession::proxy(string XML,string commandMonicker) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void ACSession::run() {
|
void ACSession::run() {
|
||||||
|
|
||||||
mdLog.logN(1,"Begin Toolkit Scenario %d Session",tkScenario);
|
mdLog.logN(1,"Begin Toolkit Scenario %d Session",tkScenario);
|
||||||
|
|
|
@ -5,9 +5,12 @@
|
||||||
#include "session/SessionPool.hpp"
|
#include "session/SessionPool.hpp"
|
||||||
#include "session/SessionManagerImpl.hpp"
|
#include "session/SessionManagerImpl.hpp"
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
#include <queue>
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#include <mdLogger.h>
|
#include <mdLogger.h>
|
||||||
|
#define SANS_BOOST
|
||||||
|
#include <string.h>
|
||||||
|
#include <mdcommon.h>
|
||||||
|
|
||||||
class ACSession : public SessionManagerImpl
|
class ACSession : public SessionManagerImpl
|
||||||
{
|
{
|
||||||
|
@ -19,8 +22,23 @@
|
||||||
|
|
||||||
void shutdown();
|
void shutdown();
|
||||||
void run();
|
void run();
|
||||||
|
void proxy(std::string XML,std::string command); // for submissions received from the MD
|
||||||
|
// command is either the lower case standard command or something else if a variant
|
||||||
|
// such as an extension is intended. There are three levels: base IETF standards
|
||||||
|
// unextended commands. Commands with hardcoded extensions, e.g. LPE, KV, E164,
|
||||||
|
// etc. which use the c++ SE camel case class name, or caps with underscore
|
||||||
|
// and a company prefix if custom biz rule engine.
|
||||||
|
|
||||||
|
void proxy(mdDatagram *incoming,std::string command);
|
||||||
|
// A msgpack dgram is received from a CD. This is a deliberately crude interface to
|
||||||
|
// short circuit full blown XML processing and drive the base and extended SEs but
|
||||||
|
// nothing else thru msgpack datagrams. Generalizing from mdAusReg.cpp:doOTEB this
|
||||||
|
// has scripting that as its intial use case. mdAusReg.cpp:doOTEC calls this interface
|
||||||
|
// as a proxy to execute the command (without
|
||||||
|
// OTEB case that uses plain c/c++,
|
||||||
|
// which is meant to be a rescripting of the OTEB test process giving an ability to
|
||||||
|
// drive the test process remotely if no recompile of the central AC programs is
|
||||||
|
// nee
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Binary file not shown.
|
@ -330,7 +330,7 @@ void mdCommander::say(char *what)
|
||||||
void mdCommander::greet() {
|
void mdCommander::greet() {
|
||||||
|
|
||||||
const char *title="AusReg Cliever Commander",
|
const char *title="AusReg Cliever Commander",
|
||||||
*warn="NB: this program is meant to be powerful and fast, not safe or user friendly",
|
*warn="NB: this program is meant to be powerful, reliable, and fast, not safe or user friendly",
|
||||||
*prompt="Enter ? or command";
|
*prompt="Enter ? or command";
|
||||||
|
|
||||||
sprintf(theBanner,banner,thisConfig->shellProcess,thisConfig->daemonProcess);
|
sprintf(theBanner,banner,thisConfig->shellProcess,thisConfig->daemonProcess);
|
||||||
|
@ -404,6 +404,13 @@ void mdCommander::eppMainMenu() {
|
||||||
|
|
||||||
mvprintw(16,50," n = 1 : epp-1.0.xsd 2: domain-1-0.xsd 3: contact-1.0.xsd");
|
mvprintw(16,50," n = 1 : epp-1.0.xsd 2: domain-1-0.xsd 3: contact-1.0.xsd");
|
||||||
mvprintw(17,50," 4: registrant-1.0.xsd 5: host-1-0.xsd 6: kv-1.0.xsd");
|
mvprintw(17,50," 4: registrant-1.0.xsd 5: host-1-0.xsd 6: kv-1.0.xsd");
|
||||||
|
mvprintw(18,50," 7: launch-1.0.xsd 8: mark-1-0.xsd 9: signedMark-1.0.xsd");
|
||||||
|
|
||||||
|
mvprintw(20,70,"Commands are actually executed by the AC master daemon using,");
|
||||||
|
mvprintw(21,70,"either the standard defined transactions or specific boost ");
|
||||||
|
mvprintw(22,70,"FSM implementations (AC BRE) with proprietary biz rules");
|
||||||
|
mvprintw(23,70,"so use the mlog command to track execution,");
|
||||||
|
|
||||||
|
|
||||||
say((char *)"Action sequence or ? to exit");
|
say((char *)"Action sequence or ? to exit");
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#define MD_CHARGUI
|
#define MD_CHARGUI
|
||||||
|
|
||||||
#define MAX_CMDS 20
|
#define MAX_CMDS 20
|
||||||
|
#define MAX_FSM 20
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
struct {
|
struct {
|
||||||
|
@ -13,7 +14,7 @@
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
struct {
|
struct {
|
||||||
void *schema;
|
void *schema[9];
|
||||||
char *xml; // For the ad-hoc write, the internals store uses a convention
|
char *xml; // For the ad-hoc write, the internals store uses a convention
|
||||||
}
|
}
|
||||||
eppXML;
|
eppXML;
|
||||||
|
@ -22,6 +23,8 @@
|
||||||
struct {
|
struct {
|
||||||
bool hasXML:1;
|
bool hasXML:1;
|
||||||
bool reserved:7;
|
bool reserved:7;
|
||||||
|
void bre[MAX_FSM];
|
||||||
|
char *fsm[MAX_FSM]; // by which known at MD
|
||||||
}
|
}
|
||||||
eppState;
|
eppState;
|
||||||
|
|
||||||
|
@ -36,7 +39,7 @@ class mdCommander {
|
||||||
eppXML xmlIO[9];
|
eppXML xmlIO[9];
|
||||||
eppState state[MAX_CMDS];
|
eppState state[MAX_CMDS];
|
||||||
char wwork[1024];
|
char wwork[1024];
|
||||||
char* schemaFileNames[6];
|
char* schemaFileNames[9];
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
@ -62,6 +65,21 @@ class mdCommander {
|
||||||
schemaFileNames[3]="registrant-1.0.xsd";
|
schemaFileNames[3]="registrant-1.0.xsd";
|
||||||
schemaFileNames[4]="host-1.0.xsd";
|
schemaFileNames[4]="host-1.0.xsd";
|
||||||
schemaFileNames[5]="kv-1.0.xsd";
|
schemaFileNames[5]="kv-1.0.xsd";
|
||||||
|
schemaFileNames[6]="launch-1.0.xsd";
|
||||||
|
schemaFileNames[7]="mark-1.0.xsd";
|
||||||
|
schemaFileNames[8]="signedMark-1.0.xsd";
|
||||||
|
|
||||||
|
state[0].fsm[0] = "Check" ;
|
||||||
|
state[0].fsm[1] = "Check (LPE claims)" ;
|
||||||
|
state[1].fsm[0] = "Info" ;
|
||||||
|
state[2].fsm[0] = "Transfer Query" ;
|
||||||
|
state[3].fsm[0] = "Poll" ;
|
||||||
|
state[4].fsm[0] = "Create ";
|
||||||
|
state[4].fsm[1] = "Create (LPE) ";
|
||||||
|
state[5].fsm[0] = "Renew" ;
|
||||||
|
state[6].fsm[0] = "Update";
|
||||||
|
state[7].fsm[0] = "Delete";
|
||||||
|
state[8].fsm[0] = "Transfer";
|
||||||
|
|
||||||
}
|
}
|
||||||
~mdCommander() {}
|
~mdCommander() {}
|
||||||
|
|
|
@ -63,7 +63,7 @@ endif
|
||||||
SLIBS= -L/usr/lib $(BOSTLIB) $(LOG4LIB) $(ARTKLIB) -l boost_system -l boost_thread -l log4cpp -l ACTK1_0
|
SLIBS= -L/usr/lib $(BOSTLIB) $(LOG4LIB) $(ARTKLIB) -l boost_system -l boost_thread -l log4cpp -l ACTK1_0
|
||||||
DLIBS= -L/usr/lib $(BOSTLIB) $(LOG4LIB) $(ARTKLIB) -l boost_system -l boost_thread -l log4cpp
|
DLIBS= -L/usr/lib $(BOSTLIB) $(LOG4LIB) $(ARTKLIB) -l boost_system -l boost_thread -l log4cpp
|
||||||
|
|
||||||
SINCL= -I include -I /usr/include/log4cpp $(BOSINCL)
|
SINCL= -I include -I /usr/include/log4cpp -I /usr/include/jsoncpp $(BOSINCL)
|
||||||
CFLAGS= -DCURRENT_DEBUG=1000 -ggdb3 -DARTKENABLED=$(ARTKENABLED) -DAC_MD
|
CFLAGS= -DCURRENT_DEBUG=1000 -ggdb3 -DARTKENABLED=$(ARTKENABLED) -DAC_MD
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
/*
|
||||||
|
* mdJSON.hpp
|
||||||
|
*
|
||||||
|
* Created on: Jan 28, 2014
|
||||||
|
* Author: jdaugherty
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef MDJSON_HPP_
|
||||||
|
#define MDJSON_HPP_
|
||||||
|
|
||||||
|
class mdJSON {
|
||||||
|
private:
|
||||||
|
|
||||||
|
static bool parsedOK;
|
||||||
|
std::string script;
|
||||||
|
|
||||||
|
public:
|
||||||
|
mdJSON(char *fileName);
|
||||||
|
~mdJSON();
|
||||||
|
bool run();
|
||||||
|
bool didParseOK();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* MDJSON_HPP_ */
|
||||||
|
|
|
@ -55,12 +55,16 @@
|
||||||
#ifndef MD_COMMON
|
#ifndef MD_COMMON
|
||||||
#define MD_COMMON
|
#define MD_COMMON
|
||||||
|
|
||||||
|
#ifndef SANS_BOOST
|
||||||
#include<boost/asio/datagram_socket_service.hpp>
|
#include<boost/asio/datagram_socket_service.hpp>
|
||||||
|
#endif
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
#ifndef SANS_BOOST
|
||||||
using boost::asio::ip::udp;
|
using boost::asio::ip::udp;
|
||||||
|
#endif
|
||||||
|
|
||||||
#define MAX_SCENARIO 1 // defined by increasing assumption of control from TK
|
#define MAX_SCENARIO 4 // defined by increasing assumption of control from TK
|
||||||
#define MAX_AC 1
|
#define MAX_AC 1
|
||||||
#define MAX_CLIENTS 1
|
#define MAX_CLIENTS 1
|
||||||
#define MAX_CLIEVER 10
|
#define MAX_CLIEVER 10
|
||||||
|
@ -214,8 +218,8 @@ extern const char *clientTypes[N_MDDEV_TYPES];
|
||||||
/* \brief mdProcess
|
/* \brief mdProcess
|
||||||
* Abstract base class of various subprocesses
|
* Abstract base class of various subprocesses
|
||||||
*
|
*
|
||||||
* AC is (potentially) a distributed system with various subprocesses
|
* AC is a distributed system with various subprocesses
|
||||||
* spanning the central server, the 'Cliever' middleware component and clients.
|
* spanning the central server, the 'Cliever' and other programs using their interfaces.
|
||||||
* Root class for these.
|
* Root class for these.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@ -256,6 +260,7 @@ struct {
|
||||||
unsigned reserved:30;
|
unsigned reserved:30;
|
||||||
} mdCnctBool;
|
} mdCnctBool;
|
||||||
|
|
||||||
|
#ifndef SANS_BOOST
|
||||||
typedef
|
typedef
|
||||||
struct MD_CONTROL_BLOCK
|
struct MD_CONTROL_BLOCK
|
||||||
{int handle; // debug mark
|
{int handle; // debug mark
|
||||||
|
@ -483,6 +488,7 @@ class mdDGChannel
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#endif // ifndef SANS_BOOST
|
||||||
|
|
||||||
typedef std::map<int,std::string> mdErrMsgMap;
|
typedef std::map<int,std::string> mdErrMsgMap;
|
||||||
|
|
||||||
|
|
|
@ -248,9 +248,9 @@ void oteC() {
|
||||||
#if (ARTKENABLED > 0)
|
#if (ARTKENABLED > 0)
|
||||||
int nthDay;
|
int nthDay;
|
||||||
|
|
||||||
theseLogs->logNdebug(MAX_DEBUG,0,"OTE Full Access BOJ");
|
theseLogs->logNdebug(MAX_DEBUG,0,"JSON Scripted Directory Monitor/Executor BOJ");
|
||||||
thisService->artk->doOTEB();
|
thisService->artk->doOTEC();
|
||||||
theseLogs->logNdebug(MAX_DEBUG,0,"OTE Full Access end of Batch");
|
theseLogs->logNdebug(MAX_DEBUG,0,"JSON Scripted Directory Monitor/Executor EOJ");
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,24 +21,27 @@
|
||||||
#include "se/DomainTransferApproveCommand.hpp"
|
#include "se/DomainTransferApproveCommand.hpp"
|
||||||
#include "se/DomainTransferRequestCommand.hpp"
|
#include "se/DomainTransferRequestCommand.hpp"
|
||||||
#include "se/DomainTransferResponse.hpp"
|
#include "se/DomainTransferResponse.hpp"
|
||||||
|
#include <errno.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/inotify.h>
|
||||||
|
#include "mdJSON.hpp""
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
//class RRJPI : public PostalInfo {
|
#define EVENT_SIZE ( sizeof (struct inotify_event) )
|
||||||
// public:
|
#define BUF_LEN ( 1024 * ( EVENT_SIZE + 16 ) )
|
||||||
// RRJPI(const PostalInfoType *type,const string& name, const string& org,
|
//char *name1 = "bestever.camera"; //
|
||||||
// const std::vector<std::string>& street, const string& city,
|
//char *name3 = "pricey.holdings"; //
|
||||||
// const string& state,const string& pc, const string& guo)
|
//char *name5 = "greedy.ventures"; //
|
||||||
// : PostalInfo (type, name, org, street, city, state, pc, guo) { };
|
//char *name6 = "shady.ventures"; //
|
||||||
//};
|
//char *name7 = "hemmarhoid.camera"; //
|
||||||
|
//char *name3 = "pricey.holdings"; //
|
||||||
char *name1 = "bestever.camera"; //
|
char *name1 = "yoda.guru";
|
||||||
char *name2 = "yoda.guru";
|
char *name2 = "unicycles.bike";
|
||||||
char *name3 = "pricey.holdings"; //
|
char *name3 = "test-validate.claimsgasix";
|
||||||
char *name4 = "unicycles.bike";
|
char *name4 = "horny.singles";
|
||||||
char *name5 = "greedy.ventures"; //
|
char *name5 = "atmospheric.lighting";
|
||||||
char *name6 = "shady.ventures"; //
|
char *name6 = "mushroomtheory.management";
|
||||||
char *name7 = "hemmarhoid.camera"; //
|
|
||||||
|
|
||||||
static TestEnvironment props;
|
static TestEnvironment props;
|
||||||
|
|
||||||
|
@ -104,282 +107,83 @@ void ausRegEPPTK::doOTEA()
|
||||||
theseLogs->logN(2,"General Exception during OTE A (%s).",op.c_str());
|
theseLogs->logN(2,"General Exception during OTE A (%s).",op.c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void ausRegEPPTK::doOTEB()
|
#include "donutsOTEB.h"
|
||||||
{
|
void ausRegEPPTK::doOTEC() {
|
||||||
bool addDomains = false, debug=true, contactCreated = true, doTransfers = true,
|
// This scenario generalizes OTEB so that its operations can be performed
|
||||||
transferGainer = false;
|
// by json scripting. This is a quick and dirty which can be extended in
|
||||||
int cmd=0;
|
// obvious ways and monitors a directory for new or changed files.
|
||||||
const char *thatAccount="secura2-ote2", *thisAccount="secura1-ote";
|
|
||||||
|
|
||||||
string op("newInstance");
|
bool actionableFileEvent,monitoring=true;
|
||||||
const string claims("claims"), sunrise("sunrise"),
|
int length, i = 0;
|
||||||
landrush("landrush");
|
int fd;
|
||||||
|
int wd;
|
||||||
|
char buffer[BUF_LEN];
|
||||||
|
|
||||||
Transaction thisTest;
|
fd = inotify_init();
|
||||||
|
|
||||||
scenario(thisConfig->tkScenario,thisConfig->cfg_path);
|
if ( fd < 0 ) {
|
||||||
|
theseLogs->logN(0,"Fatal error, couldn't init inotify.");
|
||||||
while(debug) { debug=false; // debugger needs this
|
return;
|
||||||
try {
|
|
||||||
Timer::setTime("20140101.010101");
|
|
||||||
auto_ptr<SessionManager> manager(SessionManagerFactory::newInstance(&props));
|
|
||||||
auto_ptr<Session> sess(SessionFactory::newInstance(&props));
|
|
||||||
op = "startup";
|
|
||||||
manager->startup();
|
|
||||||
op = "run (keep-alive)";
|
|
||||||
manager->run();
|
|
||||||
|
|
||||||
sess->open();
|
|
||||||
|
|
||||||
theseLogs->logN(2,"OTE %s [Hello] (%d).",thisAccount,cmd++);
|
|
||||||
sess->writeXML(TEST_SE);
|
|
||||||
sess->read();
|
|
||||||
|
|
||||||
theseLogs->logN(1,"OTE Basic Access Setup (%d).",cmd++);
|
|
||||||
|
|
||||||
const std::string rrj("renjuan");
|
|
||||||
const std::string rrjPW("Ab9dW@rd");
|
|
||||||
const std::string rrjEmail("juan@acm.org");
|
|
||||||
const std::string rrjName("Ren Ren-Juan");
|
|
||||||
const std::string rrjCity("Niagara Falls");
|
|
||||||
const std::vector<std::string>
|
|
||||||
rrjCrib(1,"2926 2nd Strt");
|
|
||||||
const std::string rrjProv("NY");
|
|
||||||
const std::string rrjPC("14305");
|
|
||||||
const std::string rrjGuo("US");
|
|
||||||
const std::string rrjOrg("American Kybernetik");
|
|
||||||
|
|
||||||
const IntPostalInfo rrjPO(rrjName,rrjOrg,
|
|
||||||
rrjCrib,rrjCity,rrjProv,rrjPC,rrjGuo);
|
|
||||||
|
|
||||||
ContactCreateCommand oteCommand_0(rrj,rrjPW,&rrjPO,rrjEmail);
|
|
||||||
ContactCreateResponse oteResponse_0;
|
|
||||||
|
|
||||||
theseLogs->logN(1,"(skip) Create Contact(s).");
|
|
||||||
|
|
||||||
if (!contactCreated) try {
|
|
||||||
thisTest = Transaction(&oteCommand_0, &oteResponse_0);
|
|
||||||
manager->execute(thisTest);
|
|
||||||
}
|
|
||||||
catch(const std::exception e)
|
|
||||||
{
|
|
||||||
theseLogs->logN(1,"Case %d: %s.",cmd++,e.what());
|
|
||||||
}
|
|
||||||
catch(...)
|
|
||||||
{
|
|
||||||
theseLogs->logN(1,"Case %d Failed, harness catch.",cmd++);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
theseLogs->logN(1,"Continue OTE Transactions.");
|
theseLogs->logN(0,"Monitoring ./json for changes.");
|
||||||
sleep(2);
|
|
||||||
theseLogs->logN(1,"(%d) Non-LPE check of yoda.guru",cmd++);
|
|
||||||
|
|
||||||
DomainCheckCommand oteCommand_1(name2);
|
wd = inotify_add_watch( fd, "./json", IN_MODIFY | IN_CREATE | IN_DELETE );
|
||||||
DomainCheckResponse oteResponse_1;
|
length = read( fd, buffer, BUF_LEN );
|
||||||
|
|
||||||
try {
|
if ( length < 0 ) {
|
||||||
thisTest = Transaction(&oteCommand_1, &oteResponse_1);
|
theseLogs->logN(0,"Fatal error, initial inotify read failed.");
|
||||||
manager->execute(thisTest);
|
|
||||||
}
|
|
||||||
catch(...)
|
|
||||||
{
|
|
||||||
theseLogs->logN(0,"Case %d Failed, harness catch.",cmd++);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
theseLogs->logN(1,"(%d) Perform Claims type Check of unicycles.bike",cmd++);
|
while ( i < length && monitoring)
|
||||||
|
{ actionableFileEvent = false;
|
||||||
DomainCheckCommand oteCommand_2("unicycles.bike");
|
struct inotify_event *event = ( struct inotify_event * ) &buffer[ i ];
|
||||||
LPChkCmdExtension chkE(&claims);
|
if ( event->len ) {
|
||||||
oteCommand_2.appendExtension(chkE);
|
if ( event->mask & IN_CREATE ) {
|
||||||
DomainCheckResponse oteResponse_2;
|
if ( event->mask & IN_ISDIR ) {
|
||||||
LPChkRespExtension chkRspE;
|
theseLogs->logN(1,"The directory %s was created.\n", event->name );
|
||||||
oteResponse_2.registerExtension(&chkRspE);
|
|
||||||
|
|
||||||
try {
|
|
||||||
thisTest = Transaction(&oteCommand_2, &oteResponse_2);
|
|
||||||
manager->execute(thisTest);
|
|
||||||
}
|
}
|
||||||
catch (EPPException& e)
|
else {
|
||||||
{ const char *eMsg = e.getMessage().c_str();
|
theseLogs->logN(1,"The file %s was created.\n", event->name );
|
||||||
const char *opNow = op.c_str();
|
actionableFileEvent = true;
|
||||||
theseLogs->logN(2,"EPP Exception during OTE B (%s): %s .",opNow,eMsg);
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
catch (...)
|
|
||||||
{
|
|
||||||
theseLogs->logN(1,"General Exception OTE B (%s).",op.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Used in all of below
|
|
||||||
|
|
||||||
const std::string pw("Ab9dW@rd");
|
|
||||||
const std::string RID("renjuan");
|
|
||||||
std::vector<std::string> tech(1,std::string("renjuan") );
|
|
||||||
std::vector<std::string> admin(1,std::string("renjuan") );
|
|
||||||
std::vector<std::string> billing(1,std::string("renjuan") );
|
|
||||||
std::vector<std::string> ns(1,std::string("ns1.google.com") );;
|
|
||||||
|
|
||||||
|
|
||||||
LPCrtCmdExtension crtE1(&sunrise);
|
|
||||||
|
|
||||||
if (addDomains) {
|
|
||||||
|
|
||||||
try {
|
|
||||||
|
|
||||||
if (1) {
|
|
||||||
|
|
||||||
theseLogs->logN(3," (%d) normal create %s in OTE %s.",cmd++, name6, thisAccount);
|
|
||||||
DomainCreateCommand
|
|
||||||
oteCommand_3(name6,pw,&RID, &tech, &ns, &admin, &billing);
|
|
||||||
DomainCreateResponse oteResponse_3;
|
|
||||||
thisTest = Transaction(&oteCommand_3, &oteResponse_3);
|
|
||||||
manager->execute(thisTest);
|
|
||||||
|
|
||||||
} if (1) {
|
|
||||||
|
|
||||||
theseLogs->logN(3," (%d) normal create %s in OTE %s.",cmd++, name7, thisAccount);
|
|
||||||
DomainCreateCommand
|
|
||||||
oteCommand_3a(name7,pw,&RID, &tech, &ns, &admin, &billing);
|
|
||||||
DomainCreateResponse oteResponse_3a;
|
|
||||||
thisTest = Transaction(&oteCommand_3a, &oteResponse_3a);
|
|
||||||
manager->execute(thisTest);
|
|
||||||
|
|
||||||
} if (0) {
|
|
||||||
theseLogs->logN(3," (%d) LPE create %s in OTE %s.",cmd++, name5, thisAccount);
|
|
||||||
DomainCreateCommand
|
|
||||||
oteCommand_3b(name5,pw,&RID, &tech, &ns, &admin, &billing);
|
|
||||||
oteCommand_3b.appendExtension(crtE1);
|
|
||||||
DomainCreateResponse oteResponse_3b;
|
|
||||||
|
|
||||||
thisTest = Transaction(&oteCommand_3b, &oteResponse_3b);
|
|
||||||
manager->execute(thisTest);
|
|
||||||
} if (0) {
|
|
||||||
theseLogs->logN(3," (%d) LPE create %s in OTE %s.",cmd++, name4, thisAccount);
|
|
||||||
/* DomainCreateCommand
|
|
||||||
oteCommand_3c(name4,pw,&RID, &tech, &ns, &admin, &billing);
|
|
||||||
oteCommand_3c.appendExtension(crtE1);
|
|
||||||
DomainCreateResponse oteResponse_3c;
|
|
||||||
|
|
||||||
thisTest = Transaction(&oteCommand_3c, &oteResponse_3c);
|
|
||||||
manager->execute(thisTest); */
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (EPPException& e)
|
else if ( event->mask & IN_DELETE ) {
|
||||||
{ const char *eMsg = e.getMessage().c_str();
|
if ( event->mask & IN_ISDIR ) {
|
||||||
const char *opNow = op.c_str();
|
theseLogs->logN(1,"The directory %s was deleted.\n", event->name );
|
||||||
theseLogs->logN(2,"EPP Exception during OTE B (%s): %s .",opNow,eMsg);
|
|
||||||
throw e;
|
|
||||||
}
|
}
|
||||||
catch (...)
|
else {
|
||||||
{
|
printf( "The file %s was deleted.\n", event->name );
|
||||||
theseLogs->logN(1,"General Exception OTE B (%s).",op.c_str());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if ( event->mask & IN_MODIFY ) {
|
||||||
|
if ( event->mask & IN_ISDIR ) {
|
||||||
if (doTransfers) {
|
theseLogs->logN(1, "The directory %s was modified.\n", event->name );
|
||||||
|
|
||||||
// const TransferOp *thisTransfer =
|
|
||||||
// transferGainer ? new TransferOp("request") : new TransferOp("approve") ;
|
|
||||||
|
|
||||||
DomainTransferRequestCommand
|
|
||||||
oteCommand_4a(name1,rrjPW);
|
|
||||||
DomainTransferApproveCommand
|
|
||||||
oteCommand_4b(name1,rrjPW);
|
|
||||||
DomainTransferResponse oteResponse_4;
|
|
||||||
|
|
||||||
DomainTransferRequestCommand
|
|
||||||
oteCommand_4c(name7,rrjPW);
|
|
||||||
DomainTransferApproveCommand
|
|
||||||
oteCommand_4d(name7,rrjPW);
|
|
||||||
DomainTransferResponse oteResponse_4a;
|
|
||||||
|
|
||||||
try {
|
|
||||||
|
|
||||||
theseLogs->logN(4," %s (%d) %s -> %s.", (transferGainer ? "Request" : "Approve") ,cmd++, name1,thatAccount);
|
|
||||||
|
|
||||||
thisTest = transferGainer ? Transaction(&oteCommand_4a, &oteResponse_4) :
|
|
||||||
Transaction(&oteCommand_4b, &oteResponse_4) ;
|
|
||||||
manager->execute(thisTest);
|
|
||||||
|
|
||||||
theseLogs->logN(4," %s (%d) %s -> %s.", (transferGainer ? "Request" : "Approve") ,cmd++, name7,thatAccount);
|
|
||||||
|
|
||||||
thisTest = transferGainer ? Transaction(&oteCommand_4c, &oteResponse_4a) :
|
|
||||||
Transaction(&oteCommand_4d, &oteResponse_4) ;
|
|
||||||
|
|
||||||
manager->execute(thisTest);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
catch(...)
|
else {
|
||||||
{
|
theseLogs->logN(1, "The file %s was modified.\n", event->name );
|
||||||
theseLogs->logN(0,"Case %d Failed, harness catch.",cmd++);
|
actionableFileEvent = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
i += EVENT_SIZE + event->len;
|
||||||
|
if (actionableFileEvent) { mdJSON scriptor(event->name);
|
||||||
|
if (scriptor.didParseOK()) {
|
||||||
|
if (!scriptor.run()) { monitoring = false;
|
||||||
|
theseLogs->logN(1, "Run of %s failed. ,/json monitoring stops.\n", event->name );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
theseLogs->logN(1, "Parse of %s failed. ,/json monitoring continues.\n", event->name );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else sleep(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
( void ) inotify_rm_watch( fd, wd );
|
||||||
|
( void ) close( fd );
|
||||||
theseLogs->logN(2,"(%d) Sunrise create %s with ICANN SMD test files.",cmd++,name5);
|
|
||||||
|
|
||||||
DomainCreateCommand oteCommand_5(name5,pw,&RID, &tech, &ns, &admin, &billing);
|
|
||||||
oteCommand_5.appendExtension(crtE1);
|
|
||||||
DomainCreateResponse oteResponse_5;
|
|
||||||
|
|
||||||
try {
|
|
||||||
thisTest = Transaction(&oteCommand_5, &oteResponse_5);
|
|
||||||
manager->execute(thisTest);
|
|
||||||
}
|
|
||||||
catch (EPPException& e)
|
|
||||||
{ const char *eMsg = e.getMessage().c_str();
|
|
||||||
const char *opNow = op.c_str();
|
|
||||||
theseLogs->logN(2,"EPP Exception during OTE B (%s): %s .",opNow,eMsg);
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
catch (...)
|
|
||||||
{
|
|
||||||
theseLogs->logN(1,"General Exception OTE B (%s).",op.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
theseLogs->logN(1,"(%d) Create test-validate.claimsgasix (TCN).",cmd++);
|
|
||||||
|
|
||||||
DomainCreateCommand oteCommand_6("test-validate.claimsgasix",pw,&RID, &tech, &ns, &admin, &billing);
|
|
||||||
oteCommand_6.appendExtension(crtE1);
|
|
||||||
DomainCreateResponse oteResponse_6;
|
|
||||||
|
|
||||||
try {
|
|
||||||
thisTest = Transaction(&oteCommand_6, &oteResponse_6);
|
|
||||||
manager->execute(thisTest);
|
|
||||||
}
|
|
||||||
catch (EPPException& e)
|
|
||||||
{ const char *eMsg = e.getMessage().c_str();
|
|
||||||
const char *opNow = op.c_str();
|
|
||||||
theseLogs->logN(2,"EPP Exception during OTE B (%s): %s .",opNow,eMsg);
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
catch (...)
|
|
||||||
{
|
|
||||||
theseLogs->logN(1,"General Exception OTE B (%s).",op.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
theseLogs->logN(0,"End OTE Session.");
|
|
||||||
|
|
||||||
sess->close();
|
|
||||||
manager->shutdown();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (EPPException& e)
|
|
||||||
{ const char *eMsg = e.getMessage().c_str();
|
|
||||||
const char *opNow = op.c_str();
|
|
||||||
theseLogs->logN(2,"Outer EPP Exception during OTE (%s): %s .",opNow,eMsg);
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
catch (...)
|
|
||||||
{
|
|
||||||
theseLogs->logN(2,"Outer General Exception in OTE (%s).",op.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
}// debug while
|
|
||||||
}
|
|
||||||
|
|
||||||
void ausRegEPPTK::doOTEP()
|
void ausRegEPPTK::doOTEP()
|
||||||
{
|
{
|
||||||
int hours,hoops;
|
int hours,hoops;
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
/*
|
||||||
|
* mdJSON.cpp
|
||||||
|
*
|
||||||
|
* Created on: Jan 28, 2014
|
||||||
|
* Author: jdaugherty
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "cliever-md.h"
|
||||||
|
#include "session/SessionFactory.hpp"
|
||||||
|
#include "session/SessionManagerProperties.hpp"
|
||||||
|
#include "session/Transaction.hpp"
|
||||||
|
#include "common/SystemProperties.hpp"
|
||||||
|
#include "session/Session.hpp"
|
||||||
|
#include "session/StatsManager.hpp"
|
||||||
|
#include "se/DomainCheckCommand.hpp"
|
||||||
|
#include "se/DomainCheckResponse.hpp"
|
||||||
|
#include "se/LPE/LPChkCmdExtension.hpp"
|
||||||
|
#include "se/LPE/LPChkRespExtension.hpp"
|
||||||
|
#include "se/LPE/LPCrtCmdExtension.hpp"
|
||||||
|
#include "se/LPE/LPCrtRespExtension.hpp"
|
||||||
|
#include "se/TransferOp.hpp"
|
||||||
|
#include "se/IntPostalInfo.hpp"
|
||||||
|
#include "se/ContactCreateCommand.hpp"
|
||||||
|
#include "se/ContactCreateResponse.hpp"
|
||||||
|
#include "se/DomainCreateCommand.hpp"
|
||||||
|
#include "se/DomainCreateResponse.hpp"
|
||||||
|
#include "se/DomainTransferApproveCommand.hpp"
|
||||||
|
#include "se/DomainTransferRequestCommand.hpp"
|
||||||
|
#include "se/DomainTransferResponse.hpp"
|
||||||
|
#include "mdJSON.hpp"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
mdJSON::mdJSON(char *fileName) {
|
||||||
|
|
||||||
|
script = string(fileName);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
mdJSON::~mdJSON() {
|
||||||
|
// TODO Auto-generated destructor stub
|
||||||
|
}
|
||||||
|
|
||||||
|
mdJSON::mdJSON(char *script) {
|
||||||
|
|
||||||
|
}
|
||||||
|
bool mdJSON::run() {
|
||||||
|
|
||||||
|
}
|
||||||
|
bool mdJSON::didParseOK() {
|
||||||
|
|
||||||
|
|
||||||
|
done: return true;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue