X7ROOT File Manager
Current Path:
/usr/share/system-config-printer/troubleshoot
usr
/
share
/
system-config-printer
/
troubleshoot
/
📁
..
📄
CheckLocalServerPublishing.py
(3.1 KB)
📄
CheckLocalServerPublishing.pyc
(2.75 KB)
📄
CheckLocalServerPublishing.pyo
(2.75 KB)
📄
CheckNetworkServerSanity.py
(7.93 KB)
📄
CheckNetworkServerSanity.pyc
(5.02 KB)
📄
CheckNetworkServerSanity.pyo
(5.02 KB)
📄
CheckPPDSanity.py
(6.33 KB)
📄
CheckPPDSanity.pyc
(5.54 KB)
📄
CheckPPDSanity.pyo
(5.54 KB)
📄
CheckPrinterSanity.py
(5.57 KB)
📄
CheckPrinterSanity.pyc
(3.66 KB)
📄
CheckPrinterSanity.pyo
(3.66 KB)
📄
CheckSELinux.py
(2.77 KB)
📄
CheckSELinux.pyc
(2.44 KB)
📄
CheckSELinux.pyo
(2.44 KB)
📄
CheckUSBPermissions.py
(5.97 KB)
📄
CheckUSBPermissions.pyc
(4.42 KB)
📄
CheckUSBPermissions.pyo
(4.42 KB)
📄
ChooseNetworkPrinter.py
(6.07 KB)
📄
ChooseNetworkPrinter.pyc
(5.85 KB)
📄
ChooseNetworkPrinter.pyo
(5.85 KB)
📄
ChoosePrinter.py
(5.71 KB)
📄
ChoosePrinter.pyc
(5.84 KB)
📄
ChoosePrinter.pyo
(5.84 KB)
📄
DeviceListed.py
(6.49 KB)
📄
DeviceListed.pyc
(6.09 KB)
📄
DeviceListed.pyo
(6.09 KB)
📄
ErrorLogCheckpoint.py
(8.02 KB)
📄
ErrorLogCheckpoint.pyc
(6.84 KB)
📄
ErrorLogCheckpoint.pyo
(6.84 KB)
📄
ErrorLogFetch.py
(4.63 KB)
📄
ErrorLogFetch.pyc
(3.89 KB)
📄
ErrorLogFetch.pyo
(3.89 KB)
📄
ErrorLogParse.py
(1.93 KB)
📄
ErrorLogParse.pyc
(1.67 KB)
📄
ErrorLogParse.pyo
(1.67 KB)
📄
LocalOrRemote.py
(1.46 KB)
📄
LocalOrRemote.pyc
(1.09 KB)
📄
LocalOrRemote.pyo
(1.09 KB)
📄
Locale.py
(4.9 KB)
📄
Locale.pyc
(3.5 KB)
📄
Locale.pyo
(3.5 KB)
📄
NetworkCUPSPrinterShared.py
(2.9 KB)
📄
NetworkCUPSPrinterShared.pyc
(2.41 KB)
📄
NetworkCUPSPrinterShared.pyo
(2.41 KB)
📄
PrintTestPage.py
(20.3 KB)
📄
PrintTestPage.pyc
(16.26 KB)
📄
PrintTestPage.pyo
(16.26 KB)
📄
PrinterStateReasons.py
(4.34 KB)
📄
PrinterStateReasons.pyc
(3.72 KB)
📄
PrinterStateReasons.pyo
(3.72 KB)
📄
QueueNotEnabled.py
(2.83 KB)
📄
QueueNotEnabled.pyc
(2.38 KB)
📄
QueueNotEnabled.pyo
(2.38 KB)
📄
QueueRejectingJobs.py
(2.9 KB)
📄
QueueRejectingJobs.pyc
(2.47 KB)
📄
QueueRejectingJobs.pyo
(2.47 KB)
📄
RemoteAddress.py
(2.41 KB)
📄
RemoteAddress.pyc
(2.06 KB)
📄
RemoteAddress.pyo
(2.06 KB)
📄
SchedulerNotRunning.py
(2.23 KB)
📄
SchedulerNotRunning.pyc
(2.11 KB)
📄
SchedulerNotRunning.pyo
(2.11 KB)
📄
ServerFirewalled.py
(2.13 KB)
📄
ServerFirewalled.pyc
(1.76 KB)
📄
ServerFirewalled.pyo
(1.76 KB)
📄
Shrug.py
(4.37 KB)
📄
Shrug.pyc
(3.66 KB)
📄
Shrug.pyo
(3.66 KB)
📄
VerifyPackages.py
(2.65 KB)
📄
VerifyPackages.pyc
(2.23 KB)
📄
VerifyPackages.pyo
(2.23 KB)
📄
Welcome.py
(2.69 KB)
📄
Welcome.pyc
(2.69 KB)
📄
Welcome.pyo
(2.69 KB)
📄
__init__.py
(11.96 KB)
📄
__init__.pyc
(10.93 KB)
📄
__init__.pyo
(10.93 KB)
📄
base.py
(3.44 KB)
📄
base.pyc
(4.02 KB)
📄
base.pyo
(4.02 KB)
Editing: CheckNetworkServerSanity.py
#!/usr/bin/python ## Printing troubleshooter ## Copyright (C) 2008, 2009, 2010, 2011 Red Hat, Inc. ## Authors: ## Tim Waugh <twaugh@redhat.com> ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. from gi.repository import Gtk import cups import os import smburi import socket import subprocess from timedops import TimedSubprocess, TimedOperation from base import * try: import smbc except: pass class CheckNetworkServerSanity(Question): def __init__ (self, troubleshooter): Question.__init__ (self, troubleshooter, "Check network server sanity") troubleshooter.new_page (Gtk.Label (), self) def display (self): # Collect useful information. self.answers = {} answers = self.troubleshooter.answers if (not answers.has_key ('remote_server_name') and not answers.has_key ('remote_server_ip_address')): return False parent = self.troubleshooter.get_window () server_name = answers['remote_server_name'] server_port = answers.get('remote_server_port', 631) try_connect = False if server_name: # Try resolving the hostname. try: ai = socket.getaddrinfo (server_name, server_port) resolves = map (lambda (family, socktype, proto, canonname, sockaddr): sockaddr[0], ai) try_connect = True except socket.gaierror: resolves = False self.answers['remote_server_name_resolves'] = resolves ipaddr = answers.get ('remote_server_ip_address', '') if resolves: if ipaddr: try: resolves.index (ipaddr) except ValueError: # The IP address given doesn't match the server name. # Use the IP address instead of the name. server_name = ipaddr try_connect = True elif ipaddr: server_name = ipaddr try_connect = True else: server_name = answers['remote_server_ip_address'] # Validate it. try: ai = socket.getaddrinfo (server_name, server_port) resolves = map (lambda (family, socktype, proto, canonname, sockaddr): sockaddr[0], ai) except socket.gaierror: resolves = False self.answers['remote_server_name_resolves'] = resolves try_connect = True self.answers['remote_server_try_connect'] = server_name if (try_connect and answers.get ('cups_device_uri_scheme', 'ipp') in ['ipp', 'http', 'https']): if answers.get ('cups_device_uri_scheme') == 'https': encryption = cups.HTTP_ENCRYPT_REQUIRED else: encryption = cups.HTTP_ENCRYPT_IF_REQUESTED try: self.op = TimedOperation (cups.Connection, kwargs={"host": server_name, "port": server_port, "encryption": encryption}, parent=parent) c = self.op.run () ipp_connect = True except RuntimeError: ipp_connect = False self.answers['remote_server_connect_ipp'] = ipp_connect if ipp_connect: try: self.op = TimedOperation (c.getPrinters, parent=parent) self.op.run () cups_server = True except: cups_server = False self.answers['remote_server_cups'] = cups_server if cups_server: cups_printer_dict = answers.get ('cups_printer_dict', {}) uri = cups_printer_dict.get ('device-uri', None) if uri: try: self.op = TimedOperation (c.getPrinterAttributes, kwargs={"uri": uri}, parent=parent) attr = self.op.run () self.answers['remote_cups_queue_attributes'] = attr except: pass if try_connect: # Try to see if we can connect using smbc. context = None try: context = smbc.Context () name = self.answers['remote_server_try_connect'] self.op = TimedOperation (context.opendir, args=("smb://%s/" % name,), parent=parent) dir = self.op.run () self.op = TimedOperation (dir.getdents, parent=parent) shares = self.op.run () self.answers['remote_server_smb'] = True self.answers['remote_server_smb_shares'] = shares except NameError: # No smbc support pass except RuntimeError, (e, s): self.answers['remote_server_smb_shares'] = (e, s) if context != None and answers.has_key ('cups_printer_dict'): uri = answers['cups_printer_dict'].get ('device-uri', '') u = smburi.SMBURI (uri) (group, host, share, user, password) = u.separate () accessible = False try: self.op = TimedOperation (context.open, args=("smb://%s/%s" % (host, share), os.O_RDWR, 0777), parent=parent) f = self.op.run () accessible = True except RuntimeError, (e, s): accessible = (e, s) self.answers['remote_server_smb_share_anon_access'] = accessible # Try traceroute if we haven't already. if (try_connect and not answers.has_key ('remote_server_traceroute')): try: self.op = TimedSubprocess (parent=parent, close_fds=True, args=['traceroute', '-w', '1', server_name], stdin=file("/dev/null"), stdout=subprocess.PIPE, stderr=subprocess.PIPE) self.answers['remote_server_traceroute'] = self.op.run () except: # Problem executing command. pass return False def collect_answer (self): return self.answers def cancel_operation (self): self.op.cancel ()
Upload File
Create Folder