Assembla home | Assembla project page
 

Changeset 2022

Show
Ignore:
Timestamp:
01/15/09 22:29:30 (1 year ago)
Author:
shypike
Message:

Detect lack of permission to use the web-server port and report accordingly.
On Linux systems the ports below 1024 are restricted to admins.
Closes #98 for trunk.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/main/SABnzbd.py

    r2019 r2022  
    6363from sabnzbd.misc import Get_User_ShellFolders, launch_a_browser, from_units, \ 
    6464                         check_latest_version, Panic_Templ, Panic_Port, Panic_FWall, Panic, ExitSab, \ 
    65                          Notify, SplitHost, ConvertVersion 
     65                         Panic_XPort, Notify, SplitHost, ConvertVersion 
    6666import sabnzbd.scheduler as scheduler 
    6767import sabnzbd.config as config 
     
    212212 
    213213#------------------------------------------------------------------------------ 
    214 def Bail_Out(browserhost, cherryport): 
     214def Bail_Out(browserhost, cherryport, access=False): 
    215215    """Abort program because of CherryPy troubles 
    216216    """ 
    217217    logging.error("Failed to start web-interface") 
    218     Panic_Port(browserhost, cherryport) 
     218    if access: 
     219       Panic_XPort(browserhost, cherryport) 
     220    else: 
     221       Panic_Port(browserhost, cherryport) 
    219222    sabnzbd.halt() 
    220223    ExitSab(2) 
     
    833836        else: 
    834837            Bail_Out(browserhost, cherryport) 
     838    except socket.error, error: 
     839        Bail_Out(browserhost, cherryport, access=True) 
    835840    except: 
    836841        Bail_Out(browserhost, cherryport) 
  • trunk/main/sabnzbd/misc.py

    r2016 r2022  
    5656PANIC_FWALL = 4 
    5757PANIC_OTHER = 5 
     58PANIC_XPORT = 6 
    5859 
    5960def Lower(txt): 
     
    336337''' 
    337338 
     339MSG_ILL_PORT = r''' 
     340    SABnzbd needs a free tcp/ip port for its internal web server.<br> 
     341    Port %s on %s was tried , but the account SABnzbd has no permission to use it.<br> 
     342    On Linux systems, normal users must use ports above 1023.<br> 
     343    <br> 
     344    Please restart SABnzbd with a different port number.<br> 
     345    <br> 
     346    %s<br> 
     347      &nbsp;&nbsp;&nbsp;&nbsp;%s --server %s:%s<br> 
     348    <br> 
     349    If you get this error message again, please try a different number.<br> 
     350''' 
     351 
    338352MSG_BAD_QUEUE = r''' 
    339353    SABnzbd detected saved data from an other SABnzbd version<br> 
     
    378392        newport = "%s" % newport 
    379393        msg = MSG_BAD_PORT % (b, a, os_str, prog_path, a, newport) 
     394    elif panic == PANIC_XPORT: 
     395        if int(b) < 1023: 
     396            newport = 1024 
     397        else: 
     398            newport = int(b) + 1 
     399        newport = "%s" % newport 
     400        msg = MSG_ILL_PORT % (b, a, os_str, prog_path, a, newport) 
    380401    elif panic == PANIC_TEMPL: 
    381402        msg = MSG_BAD_TEMPL % a 
     
    404425def Panic_Port(host, port): 
    405426    launch_a_browser(panic_message(PANIC_PORT, host, port)) 
     427 
     428def Panic_XPort(host, port): 
     429    launch_a_browser(panic_message(PANIC_XPORT, host, port)) 
     430    logging.error('You have no permisson to use port %s', port) 
    406431 
    407432def Panic_Queue(name):