def boto_inicia(self): self.real_devices=[] self.real_devices=self.detectConcentrator() #get ethernet connected to pppoe concentrator #print self.real_devices if len(self.real_devices)==0: # si no hi ha cap eth, vol dir que no es pot configurar QMessageBox.critical(self, self.tr("ADSL/PPPoE Provider Not Found"), self.tr("It don't seems to have an ADSL/PPPoE concentrator connectated to any ethernet."), QMessageBox.Ok) else: #if there's a configured interface, allow to desconfigure it if grepNetInterfaceLines("dsl-provider"): self.ui.b_disconfigure.setVisible(True) else: self.ui.b_disconfigure.setVisible(False) self.ui.list_net_dev.clear() icon=self.img_ethernet for dev in self.real_devices: vendor=grepNetInterfaceInformation(dev, "vendor") product=grepNetInterfaceInformation(dev, "product") a=QListWidgetItem(self.ui.list_net_dev) a.setText(dev+": "+vendor+"\n"+product) a.setIcon(QIcon(icon)) self.ui.list_net_dev.addItem(a) self.ui.pages.setCurrentIndex(1)
def disconfigure(self): system("( poff 2>/dev/null ) &") #get down the interface silently reversed=True network_interface_file=[] network_interface_file=grepNetInterfaceLines("dsl-provider", reversed) f=open(self.interfacesFile,'w') #remove f.writelines(network_interface_file) f.close() self.ui.b_disconfigure.setVisible(0) QMessageBox.information(self, self.tr("Disconfiguration Done"), self.tr("Has removed successfuly configuration."), QMessageBox.Ok) self.ui.pages.setCurrentIndex(0)
def writeConfig(self, param=None): #(self, normal, wifi=None): # grep device configuration settings reversed # this means that only retreive interface file without lines about the specified device reversed=True network_interface_file=grepNetInterfaceLines(self.device[0], reversed) #if only want desconfigure, does not grep any other param if not param=="disconfig": ###### # Write new lines ###### #begin of interface configuration network_interface_file.append("\n") network_interface_file.append("allow-hotplug "+self.device[0]+"\n") ### # IP Section ### #static IP if self.ui.rb_ip_static.isChecked(): gw=self.ui.le_gateway.text().split(".") network_interface_file.append('iface '+self.device[0]+' inet static \n') network_interface_file.append(' address '+self.ui.le_ip.text()+'\n') network_interface_file.append(' netmask '+self.ui.le_netmask.text()+'\n') network_interface_file.append(' gateway '+self.ui.le_gateway.text()+'\n') network_interface_file.append(' broadcast '+gw[0]+'.'+gw[1]+'.'+gw[2]+'.255\n') network_interface_file.append(' network '+gw[0]+'.'+gw[1]+'.'+gw[2]+'.0\n') #dynamic IP else: network_interface_file.append('iface '+self.device[0]+' inet dhcp\n') #DNS Section #static DNS if self.ui.rb_dns_static.isChecked(): network_interface_file.append(' # dns-* options are implemented by the resolvconf package, if installed\n') #if we choose custom dns, use it if self.ui.cb_dns.currentIndex()==0: network_interface_file.append(' dns-nameservers '+self.ui.le_custom_dns.text()+'\n') #if not, we have selected one from the list else: network_interface_file.append(' dns-nameservers '+self.ui.cb_dns.currentText().split(":")[0]+'\n') #dynamic DNS else: #with static IP & dns dynamic if self.ui.rb_ip_static.isChecked(): network_interface_file.append(' # dns-* options are implemented by the resolvconf package, if installed\n') #we pass to router the search of DNS network_interface_file.append(' dns-nameservers '+self.ui.le_gateway.text()+'\n') #without static IP (all completly DHCP) else: pass #Thats all. No more configuration #network_interface_file.append('\n') ### # END IP Section ### ### # WIFI Section ### if self.way=="wifi": #self.xarxa [essid,mode,channel,encryption,quality] network_interface_file.append(' pre-up ifconfig '+self.device[0]+' up \n') network_interface_file.append(' pre-up iwconfig '+self.device[0]+' essid '+self.xarxa[0]+'\n') network_interface_file.append(' pre-up iwconfig '+self.device[0]+' channel '+self.xarxa[2]+'\n') if self.xarxa[3]: #check if key is ascii #print self.ui.cb_key_type.currentIndex(), "HOLAAA" if self.ui.cb_key_type.currentIndex()==1: ascii="s:" else: ascii="" #write down network_interface_file.append(' pre-up iwconfig '+self.device[0]+' key '+ascii+self.ui.le_key.text()+' open\n') else: #no key network_interface_file.append(' pre-up iwconfig '+self.device[0]+' key off\n') ### # END WIFI Section ### #new networking not need it #Append at the end - if static IP - route add default gw #if self.ui.rb_ip_static.isChecked(): #network_interface_file.append(' up route add default gw '+self.ui.le_gateway.text()+'\n') #network_interface_file.append(' down route del default gw '+self.ui.le_gateway.text()+'\n') f=open(self.interfacesFile,'w') #remove f.writelines(network_interface_file) f.close()
def grepOldDeviceSettings(self): reversed=False self.oldDeviceSettings=grepNetInterfaceLines(self.device[0], reversed)
def writeConfig(self): self.interface=self.real_devices[self.ui.list_net_dev.currentRow()] #print "selected iface", self.interface #Be sure that there's no configured interface on the itnerface that we want to configure reversed=True network_interface_file=[] network_interface_file=grepNetInterfaceLines("dsl-provider", reversed) f=open(self.interfacesFile,'w') #remove f.writelines(network_interface_file) f.close() reversed=True network_interface_file=[] network_interface_file=grepNetInterfaceLines(self.interface, reversed) f=open(self.interfacesFile,'w') #remove f.writelines(network_interface_file) f.close() fitxer='/etc/ppp/options' #fitxer='/home/josep/options' # ho poso per proves, borrar-lo després #en el /etc/ppp/options has de aseguarte que hi hagin les entrades # noipdefault i noauth #buscar si hi ha #noipdefault i descomentar-lo, si no hi es posar-li #buscar si hi ha auth i posar en el seu lloc noauth. si no hi es, posar-li #assigno a la variable llista el contingut del fitxer options f=open(fitxer,'r') llista=f.readlines() f.close() #repasso la llista linia per linia tnoipdefault=False tnoauth=False for x in range(len(llista)): # si trobo comentat el noipdefault, el descomento if llista[x].strip()=='#noipdefault': llista[x]='noipdefault\n' tnoipdefault=True # si trobo el auth el substitueixo per noauth if llista[x].strip()=='auth': llista[x]='noauth\n' tnoauth=True # si finalment no existeix noipdefault el afageixo al final del fitxer if not tnoipdefault: llista.append('noipdefault') # si finalment no existeix noauth el afageixo al final del fitxer if not tnoauth: llista.append('\nnoauth') f=open(fitxer,'w') for i in llista: f.write(i) f.close() fitxer='/etc/ppp/ip-up.d/0clampmss' #fitxer='/home/josep/0clampmss' #si aquest fitxer no hi es, crear-lo: /etc/ppp/ip-up.d/0clampmss if not path.exists(fitxer): f=open(fitxer,'w') f.write("#!/bin/sh \n") f.write("# Enable MSS clamping (autogenerated by kademar - CADI pppoe) \n") f.write("\n") f.write('''iptables -o "$PPP_IFACE" --insert FORWARD 1 -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu \n''') f.close() system("chmod +x /etc/ppp/ip-up.d/0clampmss") #si hi es no fer res # als fitxers /etc/ppp/chap-secrets i pap-secrets, s'hi afageix a la ultima linia si no hi es # kademar "*" "" fitxer='/etc/ppp/chap-secrets' f=open(fitxer,'r') llista=f.readlines() f.close() trobat=False for i in llista: if i.strip()=='''kademar "*" ""''': trobat=True if not trobat: llista.append('''kademar "*" "" \n''') #fitxer='/home/josep/chap-secrets' #ho poso per proves, borrar-ho després f=open(fitxer,'w') f.writelines(llista) f.close() fitxer='/etc/ppp/pap-secrets' f=open(fitxer,'r') llista=f.readlines() f.close() trobat=False for i in llista: if i.strip()=='''kademar "*" ""''': trobat=True if not trobat: llista.append('''kademar "*" "" \n''') #fitxer='/home/josep/pap-secrets' #ho poso per proves, borrar-ho després f=open(fitxer,'w') f.writelines(llista) f.close() #al fitxer /etc/ppp/peers/provider maxakarlo fitxer='/etc/ppp/peers/provider' #fitxer='/home/josep/dsl-provider' # ho poso per proves, borrar-lo després f=open(fitxer,'w') f.write('noipdefault \n') f.write('usepeerdns \n') f.write('defaultroute \n') f.write('hide-password \n') f.write('lcp-echo-interval 20 \n') f.write('lcp-echo-failure 3 \n') f.write('connect /bin/true \n') f.write('noauth \n') f.write('persist \n') f.write('mtu 1492 \n') f.write('noaccomp \n') f.write('default-asyncmap \n') f.write('plugin rp-pppoe.so '+self.interface+' \n') f.write('user "kademar" \n') f.write('#pty "/usr/sbin/pppoe -I "'+self.interface+'" -T 80 -m 1452" \n') f.close() #al fitxer /etc/ppp/eth???-dsl-provider maxakarlo fitxer='/etc/ppp/'+self.interface+'-dsl-provider' #fitxer='/home/josep/'+self.interface+'-dsl-provider' # ho poso per proves, borrar-lo després f=open(fitxer,'w') f.write('#!/bin/bash \n') f.write('/usr/sbin/pppoe -I '+self.interface+' -T 80 -m 1452 2>&1 >/dev/null \n') f.write('pon dsl-provider 2>&1 >/dev/null \n') f.close() #al fitxer /etc/network/interfaces buscar dsl-provider i substitueixes d auto a auto # auto dsl-provider # iface dsl-provider inet ppp # provider dsl-provider # post-up sh /etc/network/eth???-dsl-provider & #obro el fitxer interfaces i ho assigno a variable llista f=open(self.interfacesFile,'r') llista=f.readlines() f.close() llista.append('\n') llista.append('auto dsl-provider \n') llista.append(' iface dsl-provider inet ppp \n') llista.append(' provider dsl-provider \n') llista.append(' post-up sh /etc/ppp/'+self.interface+'-dsl-provider & \n') f=open(self.interfacesFile,'w') f.writelines(llista) f.close() #run & Try to connect system('poff') system('pon') QMessageBox.information(self, self.tr("Configuration Done"), self.tr("All configuration process has been completed. Now you should have internet."), QMessageBox.Ok) self.ui.pages.setCurrentIndex(0) #app = QApplication(sys.argv) #preferencies = preferencies() #preferencies.show() #app.exec_()