+
+
+iface_t *ifq_t::get_interface(string host_name, string basic_if_name, int &err_no, string &err_str){
+ iface_t *retval = NULL;
+ err_no = 0;
+
+ char *cdat = strdup(basic_if_name.c_str());
+ int pos;
+ string virtual_iface = "0";
+ string iface_name = basic_if_name;
+ for(pos=strlen(cdat)-1;pos>=0 && isdigit(cdat[pos]);--pos);
+ if(pos>0 && cdat[pos] == 'X' && pos<=strlen(cdat)-2){
+ cdat[pos] = '\0';
+ virtual_iface = cdat+pos+1;
+ iface_name = cdat;
+ }
+ free(cdat);
+
+ if(rpd->failed()){
+ err_no = 1; err_str = "interface resource parse failed.";
+ return retval;
+ }
+
+ vector<int> ifi = rpd->get_ifaces_by_Name(host_name, iface_name);
+ if(ifi.size() == 0){
+ err_no = 1; err_str="interface not found.";
+ return retval;
+ }
+ if(ifi.size()>1){
+ err_no = 1; err_str="multiple interfaces found.";
+ return retval;
+ }
+
+ return rpd->get_interface(ifi[0]);
+
+}