Of course if I don't set the url the catch block catches it as an error. So that's working, just not when there is a url set.
On Aug 16, 6:55 pm, tatebn <[email protected]> wrote: > It looks at this point like everything is find if the URL option isn't > set. Any idea why that would be? I don't know enough about incoming/ > outgoing connection setttings to know how to check whether or not the > cgi is allowed to connect to anything. My current guess is that it's > not, and that's why it dies with an outgoing connection. Any insight > or helpful advice? > > Thanks, > Brandon > > On Aug 16, 12:17 am, tatebn <[email protected]> wrote: > > > So it looks like the curlpp examples are working, but the program I > > need to work still isn't. Here's the code, what in here would make > > perform() die? > > > Note: perform() also dies if I comment out all the options except > > host. > > > //-------------------------------------------------------------------- > > // Includes > > //-------------------------------------------------------------------- > > #include "verisign_io.h" > > #include "file_io.h" > > #include "error_lib.h" > > #include "logging.h" > > #include "toolkit.h" > > #include "parm.h" > > > //using current time in seconds and credit card number for unique > > transaction id > > #include <time.h> > > #include <string> > > #include <sstream> > > #include <iostream> > > > //#include "curl/curl.h" > > #include <curlpp/cURLpp.hpp> > > #include <curlpp/Easy.hpp> > > #include <curlpp/Options.hpp> > > #include <curlpp/Exception.hpp> > > > #ifdef CGI_VERSION > > #include "cgic.h" > > #endif > > > // > > ********************************************************************* > > // Global Functions > > // > > ********************************************************************* > > > //-------------------------------------------------------------------- > > // GetValueFromResponseString > > //-------------------------------------------------------------------- > > bool GetValueFromResponseString (const char* key, > > > TString& value, > > > TString responseString) > > { > > char* startPtr = NULL; > > char* endPtr = NULL; > > size_t offset = 0; > > size_t length = 0; > > > value = ""; > > > startPtr = responseString.Find (key); > > if (startPtr) > > { > > startPtr += strlen(key); > > offset = responseString.PointerToOffset (startPtr); > > endPtr = responseString.Find ("&", true, offset); > > if (endPtr) > > length = endPtr - startPtr; > > else > > length = strlen(startPtr); > > > value = responseString.SubString(offset,length); > > } > > > return (startPtr != NULL); > > > } > > > //-------------------------------------------------------------------- > > // CallVerisign > > //-------------------------------------------------------------------- > > bool CallVerisign (const TDBSplitReport* dbObjPtr, > > TString creditCardNumber, > > TString expirationDate, > > float amount, > > TString customerZipCode, > > TString customerAddress, > > TString authorizationCode, > > TString transactionType, > > TString comment, > > TString& answerText, > > TString& referenceID) > > { > > bool success = false; > > bool isTest = false; > > //int verisignContext; > > int resultCode; > > TString localAmount; > > TString verisignArgs; > > TString responseMessage; > > //TString referenceID; > > TString tmpString; > > TString responseString; > > TString logEntry; > > //char *responseBuffer; > > > AddLogEntry(dbObjPtr, "INFO\tVerisign.cc\tAbout to setup > > environment"); > > > // Setup the environment so it can find the certificate > > setenv("PFPRO_CERT_PATH", "/usr/local/verisign/payflowpro/ > > linux/certs", 1); > > > // Nullify the answer text > > answerText = ""; > > // Adjust some arguments > > creditCardNumber.NumbersOnly(); > > expirationDate.NumbersOnly(); > > customerZipCode.NumbersOnly(); > > if (customerZipCode.IsEmpty()) > > customerZipCode = "99999"; > > customerZipCode = customerZipCode.SubString(0,5); > > if (comment.IsEmpty()) > > comment = "---"; > > comment = comment.SubString(0,18); > > localAmount.CopyFrom(amount,2); > > // convert expiration from YYYY to MMYY format > > tmpString = expirationDate; > > expirationDate = tmpString.SubString(4,2); > > expirationDate += tmpString.SubString(2,2); > > > // setup the log entry > > logEntry = "Verisign Transaction\t"; > > logEntry += transactionType; > > logEntry += "\t"; > > logEntry += comment; > > logEntry += "\t"; > > logEntry += localAmount; > > logEntry += "\t"; > > tmpString = creditCardNumber.SubString(0,1); > > tmpString += "-"; > > tmpString += creditCardNumber.SubString(0,4,true); > > logEntry += tmpString; > > logEntry += "\t"; > > logEntry += expirationDate; > > logEntry += "\t"; > > > AddLogEntry(dbObjPtr, "INFO\tVerisign.cc\tEntering Try"); > > > try{ > > if (strcasecmp(creditCardNumber,kTestCreditCardNumber) == 0) > > { > > isTest = true; > > //answerText = kApprovedPrefixString; > > answerText += "987654321"; > > } > > else > > { > > AddLogEntry(dbObjPtr, "INFO\tVerisign.cc\tNot A Test"); > > // Build up the application's piped arguments > > verisignArgs += "TRXTYPE="; > > verisignArgs += transactionType; > > verisignArgs += "&TENDER=C"; > > verisignArgs += "&PARTNER="; > > verisignArgs += kVerisignPartner; > > verisignArgs += "&VENDOR="; > > verisignArgs += kVerisignVendor; > > verisignArgs += "&USER="; > > verisignArgs += kVerisignUser; > > verisignArgs += "&PWD="; > > verisignArgs += kVerisignPassword; > > verisignArgs += "&ACCT="; > > verisignArgs += creditCardNumber; > > verisignArgs += "&EXPDATE="; > > verisignArgs += expirationDate; > > verisignArgs += "&AMT="; > > verisignArgs += localAmount; > > verisignArgs += "&COMMENT1["; > > verisignArgs += comment.GetLength(); > > verisignArgs += "]="; > > verisignArgs += comment; > > verisignArgs += "&STREET["; > > verisignArgs += customerAddress.GetLength(); > > verisignArgs += "]="; > > verisignArgs += customerAddress; > > verisignArgs += "&ZIP="; > > verisignArgs += customerZipCode; > > verisignArgs += "\r\n"; > > AddLogEntry(dbObjPtr, "INFO\tVerisign.cc\tArgs Set Up"); > > > //Using credit card number and time in seconds to > > create unique id > > char uniqueID[64]; > > strcpy(uniqueID, creditCardNumber); > > sprintf(uniqueID, "%s%ld", uniqueID, time(NULL)); > > AddLogEntry(dbObjPtr, "INFO\tVerisign.cc\tBuilt Unique ID"); > > > //set the headers. > > std::list<std::string> headers; > > headers.push_back("Content-Type: text/namevalue"); > > headers.push_back("Content-Length: " + > > verisignArgs.GetLength()); > > headers.push_back("X-VPS-Timeout: 45"); > > headers.push_back("X-VPS-Request_ID:" + std::string > > (uniqueID)); > > > AddLogEntry(dbObjPtr, "INFO\tVerisign.cc\tRest Of Headers Set"); > > > AddLogEntry(dbObjPtr, "INFO\tVerisign.cc\tInit Curl"); > > cURLpp::Cleanup myCleanup; > > cURLpp::Easy myRequest; > > myRequest.setOpt(new cURLpp::Options::Url > > (kVerisignHost)); > > myRequest.setOpt(new cURLpp::Options::Port > > (kVerisignPort)); > > myRequest.setOpt(new cURLpp::Options::Timeout > > (kVerisignTimeout)); > > myRequest.setOpt(new cURLpp::Options::Header(1)); > > > > ... > > read more » --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "curlpp" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/curlpp?hl=en -~----------~----~----~----~------~----~------~--~---
