src/shepp/DomainFunctions.H

Go to the documentation of this file.
00001 /* ${copyright}$ */
00002 /* $Id: DomainFunctions.H 608 2006-03-16 21:33:47Z eduardo $ */
00006 #ifndef __DOMAIN_FUNCTIONS_H__
00007 #define __DOMAIN_FUNCTIONS_H__
00008 #include "SheppCommandFunctions.H"
00009 
00010 #if USE_BR_DOMAINS
00011 #include "BrDomainCheck.H"
00012 #include "BrDomainInfo.H"
00013 #include "BrDomainCreate.H"
00014 #include "BrDomainUpdate.H"
00015 #else
00016 #include "DomainCheck.H"
00017 #include "DomainInfo.H"
00018 #include "DomainCreate.H"
00019 #include "DomainUpdate.H"
00020 #endif //USE_BR_DOMAINS
00021 #include "DomainRenew.H"
00022 
00024 
00029 int cmd_domain_help(string error_msg, string specific = "")
00030 {
00031   if (error_msg != "") {
00032     printf("error: %s\n", error_msg.c_str());
00033   }
00034 
00035   printf("domain command syntax help:\n");
00036   printf("\n");
00037 
00038   if (specific == "" || specific == "check") {
00039     printf("  check <domain1> [domain2 ... domainN]"
00040 #if USE_BR_DOMAINS
00041            " [-o organization]"
00042 #endif //USE_BR_DOMAINS
00043            "\n");
00044    
00045     printf("\n");
00046   }
00047   if (specific == "" || specific == "info") {
00048     printf("  info <domain> [-auth authInfoPw[:authInfoRoid]]"
00049 #if USE_BR_DOMAINS
00050            " [-t ticketNumber]"
00051 #endif //USE_BR_DOMAINS
00052            "\n");
00053     printf("\n");
00054   }
00055   if (specific == "" || specific == "transfer") {
00056     printf("  transfer: not implemented\n");
00057     printf("\n");
00058   }
00059   if (specific == "" || specific == "create") {
00060     printf("  create <domain> [-period time:unit]\n"
00061            "    [-ns nameserver[,ipversion:ipaddr][, ...] ...] "
00062            "[-r registrant]\n"
00063            "    [-contact type=value ...] [-auth authInfoPw[:authInfoRoid]]"
00064 #if USE_BR_DOMAINS
00065            "\n    <-o organization> [-rpflags flag1:flag2:flag3]"
00066 #endif //USE_BR_DOMAINS
00067            "\n");
00068 
00069     printf("\n");
00070   }
00071   if (specific == "" || specific == "delete") {
00072     printf("  delete: not implemented\n");
00073     printf("\n");
00074   }
00075   if (specific == "" || specific == "renew") {
00076     printf("  renew <domain> <-expdate curExpDate> [-period time:unit]\n");
00077     printf("\n");
00078   }
00079   if (specific == "" || specific == "update") {
00080     printf("  update <domain>\n"
00081            "    [-add-ns nameserver[,ipversion:ipaddr][, ...] ...]\n"
00082            "    [-add-contact type=value ...]\n"
00083            "    [-add-status status:lang:\"description\" ...]\n"
00084            "    [-rem-ns nameserver[,ipversion:ipaddr][, ...] ...]\n"
00085            "    [-rem-contact type=value ...]\n"
00086            "    [-rem-status status ...]\n"
00087            "    [-r registrant] [-auth authInfoPw[:authInfoRoid]]"
00088 #if USE_BR_DOMAINS
00089            "\n    [-t ticketNumber] [-rpflags flag1:flag2:flag3]"
00090 #endif //USE_BR_DOMAINS
00091            "\n");
00092     printf("\n");
00093   }
00094 
00095   if (error_msg != "") {
00096     return -1;
00097   }
00098 
00099   return 0;
00100 }
00101 
00103 
00107 int cmd_domain_check(vector<string> words)
00108 {
00109 #if USE_BR_DOMAINS
00110   BrDomainCheck act;
00111   BrDomainCheckCmd *cmd = act.get_command();
00112 #else
00113   DomainCheck act;
00114   DomainCheckCmd *cmd = act.get_command();
00115 #endif //USE_BR_DOMAINS
00116   string cmd_name = "check";
00117 
00118   while (!words.empty()) {
00119 #if USE_BR_DOMAINS
00120     if (words[0] == "-o") {
00121       // set organization
00122       words.erase(words.begin());
00123       if (words.empty()) {
00124         return cmd_domain_help("organization parameter missing", cmd_name);
00125       }
00126       cmd->set_organization(words[0]);
00127       words.erase(words.begin());
00128     } else {
00129 #endif //USE_BR_DOMAINS
00130       // insert domains
00131       cmd->insert_domain(words[0]);
00132       words.erase(words.begin());
00133 #if USE_BR_DOMAINS
00134     }
00135 #endif //USE_BR_DOMAINS
00136   }
00137 
00138   if (cmd->get_domains_list().empty()) {
00139     return cmd_domain_help("no domain names specified", cmd_name);
00140   }
00141 
00142   if (_debug) {
00143     set<string> domains = cmd->get_domains_list();
00144     set<string>::const_iterator it;
00145     printf("names to be checked:\n");
00146     for (it = domains.begin(); it != domains.end(); it++) {
00147       printf("  [%s]\n", (*it).c_str());
00148     }
00149     
00150 #if USE_BR_DOMAINS
00151     if (cmd->get_organization() != "") {
00152       printf("  organization: [%s]\n", cmd->get_organization().c_str());
00153     }
00154 #endif //USE_BR_DOMAINS
00155   } // _debug
00156 
00157   if (process_action(act) != 0) {
00158     return -1;
00159   }
00160 
00161   return 0;
00162 }
00163 
00165 
00169 int cmd_domain_info(vector<string> words)
00170 {
00171 #if USE_BR_DOMAINS
00172   BrDomainInfo act;
00173   BrDomainInfoCmd *cmd = act.get_command();
00174 #else
00175   DomainInfo act;
00176   DomainInfoCmd *cmd = act.get_command();
00177 #endif //USE_BR_DOMAINS
00178   string cmd_name = "info";
00179 
00180   if (words.empty()) {
00181     return cmd_domain_help("no domain name specified", cmd_name);
00182   }
00183   
00184   // domain name MUST be the first attribute
00185   cmd->set_name(words[0]);
00186   words.erase(words.begin());
00187 
00188   while (!words.empty()) {
00189     if (words[0] == "-auth") {
00190       // set authInfo
00191       AuthInfo auth;
00192       if (SheppObjSet::authInfo(auth, words) != 0) {
00193         return cmd_domain_help("invalid auth", cmd_name);
00194       }
00195       cmd->set_authInfo(auth);
00196 #if USE_BR_DOMAINS
00197     } else if (words[0] == "-t") {
00198       // ticketNumber
00199       words.erase(words.begin());
00200       if (words.empty()) {
00201         return cmd_domain_help("ticket number parameter missing", cmd_name);
00202       }
00203       if (atoi(words[0].c_str()) <= 0) {
00204         return cmd_domain_help("ticket parameter must be a positive integer",
00205                                cmd_name);
00206       }
00207       cmd->set_ticketNumber(atoi(words[0].c_str()));
00208       words.erase(words.begin());
00209 #endif //USE_BR_DOMAINS
00210     } else {
00211       return cmd_domain_help("invalid syntax near \"" + words[0] + "\"",
00212                              cmd_name);
00213     }
00214   }
00215 
00216   if (_debug) {
00217     printf("name to get info: [%s]\n", cmd->get_name().c_str());
00218 
00219 #if USE_BR_DOMAINS
00220     if (cmd->get_ticketNumber() != 0) {
00221       printf("  ticketNumber: [%d]\n", cmd->get_ticketNumber());
00222     }
00223 #endif //USE_BR_DOMAINS
00224     
00225     SheppPrint::authInfo(cmd->get_authInfo());
00226   } // _debug
00227 
00228   if (process_action(act) != 0) {
00229     return -1;
00230   }
00231 
00232   return 0;
00233 }
00234 
00236 
00240 int cmd_domain_transfer(vector<string> words)
00241 {
00242   string cmd_name = "transfer";
00243   return cmd_domain_help("", cmd_name);
00244 }
00245 
00247 
00251 int cmd_domain_create(vector<string> words)
00252 {
00253 #if USE_BR_DOMAINS
00254   BrDomainCreate act;
00255   BrDomainCreateCmd *cmd = act.get_command();
00256 #else
00257   DomainCreate act;
00258   DomainCreateCmd *cmd = act.get_command();
00259 #endif //USE_BR_DOMAINS
00260   string cmd_name = "create";
00261 
00262   if (words.empty()) {
00263     return cmd_domain_help("domain name missing", cmd_name);
00264   }
00265   // domain name MUST be the first attribute
00266   cmd->set_name(words[0]);
00267   words.erase(words.begin());
00268 
00269   while (!words.empty()) {
00270     if (words[0] == "-period") {
00271       //registration period
00272       words.erase(words.begin());
00273       if (words.empty()) {
00274         return cmd_domain_help("period parameter missing", cmd_name);
00275       }
00276 
00277       string time;
00278       string unit;
00279       if (SheppStrUtil::split(words[0], time, unit, ":", false) != 0) {
00280         return cmd_domain_help("invalid period", cmd_name);
00281       }
00282 
00283       cmd->set_period(atoi(time.c_str()), unit);
00284       words.erase(words.begin());
00285     } else if (words[0] == "-ns") {
00286       //nameserver
00287       NameServer ns;
00288       if (SheppObjSet::nameServer(ns, words) != 0) {
00289         return cmd_domain_help("invalid nameserver", cmd_name);
00290       }
00291       cmd->insert_nameserver(ns);
00292     } else if (words[0] == "-r") {
00293       //registrant
00294       words.erase(words.begin());
00295       if (words.empty()) {
00296         return cmd_domain_help("registrant parameter missing", cmd_name);
00297       }
00298       cmd->set_registrant(words[0]);
00299       words.erase(words.begin());
00300     } else if (words[0] == "-contact") {
00301       //contact
00302       words.erase(words.begin());
00303       if (words.empty()) {
00304         return cmd_domain_help("contact parameter missing", cmd_name);
00305       }
00306 
00307       string type;
00308       string value;
00309       if (SheppStrUtil::split(words[0], type, value, "=", false) != 0) {
00310         return cmd_domain_help("invalid contact", cmd_name);
00311       }
00312 
00313       cmd->insert_contact(type, value);
00314       words.erase(words.begin());      
00315 
00316     } else if (words[0] == "-auth") {
00317       //authInfo
00318       AuthInfo auth;
00319       if (SheppObjSet::authInfo(auth, words) != 0) {
00320         return cmd_domain_help("invalid auth", cmd_name);
00321       }
00322       cmd->set_authInfo(auth);
00323 #if USE_BR_DOMAINS
00324     } else if (words[0] == "-o") {
00325       //organization
00326       words.erase(words.begin());
00327       if (words.empty()) {
00328         return cmd_domain_help("organization parameter missing", cmd_name);
00329       }
00330       cmd->set_organization(words[0]);
00331       words.erase(words.begin());
00332     } else if (words[0] == "-rpflags") {
00333       //releaseProcessFlags
00334       words.erase(words.begin());
00335       if (words.empty()) {
00336         return cmd_domain_help("rpflags parameter missing", cmd_name);
00337       }
00338       ReleaseProcessFlags rpf;
00339       string flag1;
00340       string flag2;
00341       string flag3;
00342 
00343       if (SheppStrUtil::split(words[0], flag1, flag2, ":", false) != 0) {
00344         return cmd_domain_help("invalid rpflags", cmd_name);
00345       }
00346 
00347       if (SheppStrUtil::split(flag2, flag2, flag3, ":", false) != 0) {
00348         return cmd_domain_help("invalid rpflags", cmd_name);
00349       }
00350 
00351       rpf.flag1 = (flag1 == "0") ? false : true;
00352       rpf.flag2 = (flag2 == "0") ? false : true;
00353       rpf.flag3 = (flag3 == "0") ? false : true;
00354 
00355       cmd->set_releaseProcessFlags(rpf);
00356       words.erase(words.begin());
00357 #endif //USE_BR_DOMAINS
00358     } else {
00359       return cmd_domain_help("invalid syntax near \"" + words[0] + "\"",
00360                              cmd_name);
00361     }
00362   }
00363 
00364 #if USE_BR_DOMAINS
00365   if (cmd->get_organization() == "") {
00366     return cmd_domain_help("organization is mandatory", cmd_name);
00367   }
00368 #endif //USE_BR_DOMAINS
00369 
00370   if (_debug) {
00371     printf("creating domain: %s\n", cmd->get_name().c_str());
00372     
00373 #if USE_BR_DOMAINS
00374     printf("  organization: %s\n", cmd->get_organization().c_str());
00375 #endif //USE_BR_DOMAINS
00376     
00377     if (cmd->get_period().time != 0) {
00378       printf("  period: %d %s\n", cmd->get_period().time,
00379              cmd->get_period().unit.c_str());
00380     }
00381     
00382     set<NameServer> nss = cmd->get_nameservers();
00383     set<NameServer>::const_iterator nsit;
00384     for (nsit = nss.begin(); nsit != nss.end(); nsit++) {
00385       SheppPrint::nameserver(*nsit);
00386     }
00387     
00388     if (cmd->get_registrant() != "") {
00389       printf("  registrant: %s\n", cmd->get_registrant().c_str());
00390     }
00391     
00392     map< string, string, less<string> > contacts = cmd->get_contacts();
00393     map< string, string, less<string> >::const_iterator cit;
00394     for (cit = contacts.begin(); cit != contacts.end(); cit++) {
00395       printf("  contact %s: %s\n", (*cit).first.c_str(), (*cit).second.c_str());
00396     }
00397     
00398     SheppPrint::authInfo(cmd->get_authInfo());
00399     
00400 #if USE_BR_DOMAINS
00401     if (cmd->get_releaseProcessFlags().flag1 ||
00402         cmd->get_releaseProcessFlags().flag2 ||
00403         cmd->get_releaseProcessFlags().flag3) {
00404       printf("  releaseProcessFlags: %d, %d, %d\n",
00405              cmd->get_releaseProcessFlags().flag1 ? 1 : 0,
00406              cmd->get_releaseProcessFlags().flag2 ? 1 : 0,
00407              cmd->get_releaseProcessFlags().flag3 ? 1 : 0);
00408     }
00409 #endif //USE_BR_DOMAINS
00410   } // _debug
00411 
00412   if (process_action(act) != 0) {
00413     return -1;
00414   }
00415 
00416   return 0;
00417 }
00418 
00420 
00424 int cmd_domain_delete(vector<string> words)
00425 {
00426   string cmd_name = "delete";
00427   return cmd_domain_help("", cmd_name);
00428 }
00429 
00431 
00435 int cmd_domain_renew(vector<string> words)
00436 {
00437   DomainRenew act;
00438   DomainRenewCmd *cmd = act.get_command();
00439   string cmd_name = "renew";
00440 
00441   if (words.empty()) {
00442     return cmd_domain_help("domain name missing", cmd_name);
00443   }
00444   // domain name MUST be the first attribute
00445   cmd->set_name(words[0]);
00446   words.erase(words.begin());
00447 
00448   while (!words.empty()) {
00449     if (words[0] == "-expdate") {
00450       //-expdate
00451       words.erase(words.begin());
00452       if (words.empty()) {
00453         return cmd_domain_help("curExpDate missing", cmd_name);
00454       }
00455       cmd->set_curExpDate(words[0]);
00456       words.erase(words.begin());      
00457     } else if (words[0] == "-period") {
00458       words.erase(words.begin());      
00459       if (words.empty()) {
00460         return cmd_domain_help("period missing", cmd_name);
00461       }
00462       string str_time;
00463       string unit;
00464       if (SheppStrUtil::split(words[0], str_time, unit, ":", false) != 0) {
00465         return cmd_domain_help("error setting period", cmd_name);
00466       }
00467       DomainRenewCmd::Period period;
00468       period.time = atoi(str_time.c_str());
00469       period.unit = unit;
00470       cmd->set_period(period);
00471       words.erase(words.begin());
00472     } else {
00473       return cmd_domain_help("invalid syntax near \"" + words[0] + "\"",
00474                              cmd_name);
00475     }
00476   }
00477 
00478   if (cmd->get_curExpDate() == "") {
00479     return cmd_domain_help("curExpDate is mandatory", cmd_name);
00480   }
00481 
00482   if (_debug) {
00483     printf("domain to renew: [%s]\n", cmd->get_name().c_str());
00484     printf("  curExpDate   : [%s]\n", cmd->get_curExpDate().c_str());
00485     if (cmd->get_period().time != 0 || cmd->get_period().unit != "") {
00486       printf("  period       : [%d %s]\n", cmd->get_period().time,
00487              cmd->get_period().unit.c_str());
00488     }
00489   } //_debug
00490 
00491   if (process_action(act) != 0) {
00492     return -1;
00493   }
00494 
00495   return 0;
00496 }
00497 
00499 
00503 int cmd_domain_update(vector<string> words)
00504 {
00505 #if USE_BR_DOMAINS
00506   BrDomainUpdate act;
00507   BrDomainUpdateCmd *cmd = act.get_command();
00508 #else
00509   DomainUpdate act;
00510   DomainUpdateCmd *cmd = act.get_command();
00511 #endif //USE_BR_DOMAINS
00512   string cmd_name = "update";
00513 
00514   if (words.empty()) {
00515     return cmd_domain_help("domain name missing", cmd_name);
00516   }
00517   // domain name MUST be the first attribute
00518   cmd->set_name(words[0]);
00519   words.erase(words.begin());
00520 
00521   while (!words.empty()) {
00522     if (words[0] == "-add-ns") {
00523       //nameserver to add
00524       NameServer ns;
00525       if (SheppObjSet::nameServer(ns, words) != 0) {
00526         return cmd_domain_help("invalid nameserver to add", cmd_name);
00527       }
00528       cmd->insert_nameserver_add(ns);
00529     } else if (words[0] == "-rem-ns") {
00530       //nameserver to remove
00531       NameServer ns;
00532       if (SheppObjSet::nameServer(ns, words) != 0) {
00533         return cmd_domain_help("invalid nameserver to remove", cmd_name);
00534       }
00535       cmd->insert_nameserver_rem(ns);
00536     } else if (words[0] == "-add-contact") {
00537       //contact to add
00538       words.erase(words.begin());
00539       if (words.empty()) {
00540         return cmd_domain_help("add-contact parameter missing", cmd_name);
00541       }
00542 
00543       string type;
00544       string value;
00545       if (SheppStrUtil::split(words[0], type, value, "=", false) != 0) {
00546         return cmd_domain_help("invalid contact to add", cmd_name);
00547       }
00548 
00549       cmd->insert_contact_add(type, value);
00550       words.erase(words.begin());      
00551 
00552     } else if (words[0] == "-rem-contact") {
00553       //contact to remove
00554       words.erase(words.begin());
00555       if (words.empty()) {
00556         return cmd_domain_help("rem-contact parameter missing", cmd_name);
00557       }
00558 
00559       string type;
00560       string value;
00561       if (SheppStrUtil::split(words[0], type, value, "=", false) != 0) {
00562         return cmd_domain_help("invalid contact to remove", cmd_name);
00563       }
00564 
00565       cmd->insert_contact_rem(type, value);
00566       words.erase(words.begin());      
00567 
00568     } else if (words[0] == "-add-status") {
00569       //status to add
00570       words.erase(words.begin());
00571       if (words.empty()) {
00572         return cmd_domain_help("add-status parameter missing", cmd_name);
00573       }
00574 
00575       DomainUpdateCmd::Status st;
00576       if (SheppObjSet::status(st, words) != 0) {
00577         return cmd_domain_help("invalid status to add", cmd_name);
00578       }
00579       cmd->insert_status_add(st);
00580 
00581     } else if (words[0] == "-rem-status") {
00582       //status to remove
00583       words.erase(words.begin());
00584       if (words.empty()) {
00585         return cmd_domain_help("rem-status parameter missing", cmd_name);
00586       }
00587 
00588       DomainUpdateCmd::Status st;
00589       st.s = words[0];
00590       words.erase(words.begin());
00591 
00592       cmd->insert_status_rem(st);
00593 
00594     } else if (words[0] == "-r") {
00595       //registrant
00596       words.erase(words.begin());
00597       if (words.empty()) {
00598         return cmd_domain_help("registrant parameter missing", cmd_name);
00599       }
00600       cmd->set_registrant(words[0]);
00601       words.erase(words.begin());
00602     } else if (words[0] == "-auth") {
00603       //authInfo
00604       AuthInfo auth;
00605       if (SheppObjSet::authInfo(auth, words) != 0) {
00606         return cmd_domain_help("invalid auth", cmd_name);
00607       }
00608       cmd->set_authInfo(auth);
00609 #if USE_BR_DOMAINS
00610     } else if (words[0] == "-t") {
00611       // ticketNumber
00612       words.erase(words.begin());
00613       if (words.empty()) {
00614         return cmd_domain_help("ticket number parameter missing", cmd_name);
00615       }
00616       if (atoi(words[0].c_str()) <= 0) {
00617         return cmd_domain_help("ticket parameter must be a positive integer",
00618                                cmd_name);
00619       }
00620       cmd->set_ticketNumber(atoi(words[0].c_str()));
00621       words.erase(words.begin());
00622     } else if (words[0] == "-rpflags") {
00623       //releaseProcessFlags
00624       words.erase(words.begin());
00625       if (words.empty()) {
00626         return cmd_domain_help("rpflags parameter missing", cmd_name);
00627       }
00628       ReleaseProcessFlags rpf;
00629       string flag1;
00630       string flag2;
00631       string flag3;
00632 
00633       if (SheppStrUtil::split(words[0], flag1, flag2, ":", false) != 0) {
00634         return cmd_domain_help("invalid rpflags", cmd_name);
00635       }
00636 
00637       if (SheppStrUtil::split(flag2, flag2, flag3, ":", false) != 0) {
00638         return cmd_domain_help("invalid rpflags", cmd_name);
00639       }
00640 
00641       rpf.flag1 = (flag1 == "0") ? false : true;
00642       rpf.flag2 = (flag2 == "0") ? false : true;
00643       rpf.flag3 = (flag3 == "0") ? false : true;
00644 
00645       cmd->set_releaseProcessFlags(rpf);
00646       words.erase(words.begin());
00647 #endif //USE_BR_DOMAINS
00648     } else {
00649       return cmd_domain_help("invalid syntax near \"" + words[0] + "\"",
00650                              cmd_name);
00651     }
00652   }
00653 
00654 #if USE_BR_DOMAINS
00655   bool brdomain_update = false;
00656   //if it has brdomain attributes set it MUST have ticketNumber also
00657   if (cmd->get_releaseProcessFlags().flag1 ||
00658       cmd->get_releaseProcessFlags().flag2 ||
00659       cmd->get_releaseProcessFlags().flag3) {
00660     brdomain_update = true;
00661   }
00662 
00663   if (brdomain_update && cmd->get_ticketNumber() == 0) {
00664     return cmd_domain_help("BrDomain extension updates "
00665                            "MUST contain ticketNumber", cmd_name);
00666   }
00667 #endif //USE_BR_DOMAINS
00668 
00669   if (cmd->get_nameserver_add().empty() &&
00670       cmd->get_nameserver_rem().empty() &&
00671       cmd->get_contact_add().empty() &&
00672       cmd->get_contact_rem().empty() &&
00673       cmd->get_status_add().empty() &&
00674       cmd->get_status_rem().empty() &&
00675       cmd->get_registrant() == "" &&
00676       cmd->get_authInfo().get_pw() == ""
00677 #if USE_BR_DOMAINS
00678       && !brdomain_update
00679 #endif //USE_BR_DOMAINS
00680       ) {
00681     return cmd_domain_help("you didn't set a thing", cmd_name);
00682   }
00683 
00684   if (_debug) {
00685     printf("updating domain: %s\n", cmd->get_name().c_str());
00686     
00687     set<NameServer> nss = cmd->get_nameserver_add();
00688     set<NameServer>::const_iterator nsit;
00689     if (!nss.empty()) {
00690       printf("  nameservers to add:\n");
00691     }
00692     for (nsit = nss.begin(); nsit != nss.end(); nsit++) {
00693       SheppPrint::nameserver(*nsit);
00694     }
00695     
00696     nss = cmd->get_nameserver_rem();
00697     if (!nss.empty()) {
00698       printf("  nameservers to remove:\n");
00699     }
00700     for (nsit = nss.begin(); nsit != nss.end(); nsit++) {
00701       SheppPrint::nameserver(*nsit);
00702     }
00703     
00704     if (cmd->get_registrant() != "") {
00705       printf("  registrant: %s\n", cmd->get_registrant().c_str());
00706     }
00707     
00708     map< string, string, less<string> > contacts = cmd->get_contact_add();
00709     map< string, string, less<string> >::const_iterator cit;
00710     if (!contacts.empty()) {
00711       printf("  contacts to add:\n");
00712     }
00713     for (cit = contacts.begin(); cit != contacts.end(); cit++) {
00714       printf("  contact %s: %s\n", (*cit).first.c_str(),
00715              (*cit).second.c_str());
00716     }
00717     
00718     contacts = cmd->get_contact_rem();
00719     if (!contacts.empty()) {
00720       printf("  contacts to remove:\n");
00721     }
00722     for (cit = contacts.begin(); cit != contacts.end(); cit++) {
00723       printf("  contact %s: %s\n", (*cit).first.c_str(),
00724              (*cit).second.c_str());
00725     }
00726     
00727     set<DomainUpdateCmd::Status> statuses = cmd->get_status_add();
00728     set<DomainUpdateCmd::Status>::const_iterator stit;
00729     if (!statuses.empty()) {
00730       printf("  status to add:\n");
00731     }
00732     for (stit = statuses.begin(); stit != statuses.end(); stit++) {
00733       printf("    s   : [%s]\n", (*stit).s.c_str());
00734       printf("    lang: [%s]\n", (*stit).lang.c_str());
00735       printf("    msg : [%s]\n", (*stit).msg.c_str());
00736     }
00737     statuses = cmd->get_status_rem();
00738     if (!statuses.empty()) {
00739       printf("  status to remove:\n");
00740     }
00741     for (stit = statuses.begin(); stit != statuses.end(); stit++) {
00742       printf("    s   : [%s]\n", (*stit).s.c_str());
00743       printf("    lang: [%s]\n", (*stit).lang.c_str());
00744       printf("    msg : [%s]\n", (*stit).msg.c_str());
00745     }
00746     
00747     SheppPrint::authInfo(cmd->get_authInfo());
00748     
00749 #if USE_BR_DOMAINS
00750     if (cmd->get_ticketNumber() != 0) {
00751       printf("  ticketNumber: [%d]\n", cmd->get_ticketNumber());
00752     }
00753     
00754     if (cmd->get_releaseProcessFlags().flag1 ||
00755         cmd->get_releaseProcessFlags().flag2 ||
00756         cmd->get_releaseProcessFlags().flag3) {
00757       printf("  releaseProcessFlags: %d, %d, %d\n",
00758              cmd->get_releaseProcessFlags().flag1 ? 1 : 0,
00759              cmd->get_releaseProcessFlags().flag2 ? 1 : 0,
00760              cmd->get_releaseProcessFlags().flag3 ? 1 : 0);
00761     }
00762 #endif //USE_BR_DOMAINS
00763   } // _debug
00764 
00765   if (process_action(act) != 0) {
00766     return -1;
00767   }
00768 
00769   return 0;
00770 }
00771 
00773 
00777 int cmd_domain(char *arg)
00778 {
00779   if (strlen(arg) > 0) {
00780     vector<string> words = SheppStrUtil::parse_line(arg);
00781 
00782     // domain command processing
00783     if (!words.empty() && !(words[0] == "help")) {
00784       if (words[0] == "check") {
00785         words.erase(words.begin());
00786         return cmd_domain_check(words);
00787       } else if (words[0] == "info") {
00788         words.erase(words.begin());
00789         return cmd_domain_info(words);
00790       } else if (words[0] == "transfer") {
00791         words.erase(words.begin());
00792         return cmd_domain_transfer(words);
00793       } else if (words[0] == "create") {
00794         words.erase(words.begin());
00795         return cmd_domain_create(words);
00796       } else if (words[0] == "delete") {
00797         words.erase(words.begin());
00798         return cmd_domain_delete(words);
00799       } else if (words[0] == "renew") {
00800         words.erase(words.begin());
00801         return cmd_domain_renew(words);
00802       } else if (words[0] == "update") {
00803         words.erase(words.begin());
00804         return cmd_domain_update(words);
00805       } else {
00806         return cmd_domain_help("invalid command: domain " + words[0]);
00807       }
00808     }
00809   }
00810   
00811   return cmd_domain_help("");
00812 }
00813 
00814 #endif //__DOMAIN_FUNCTIONS_H__

Generated on Wed Mar 22 14:18:27 2006 for libepp_nicbr by  doxygen 1.4.6