• Barry Warsaw's avatar
    Renamed, and bug fixed: · adbf4e66
    Barry Warsaw yazdı
    Two interesting problems in nis_maplist().  First, it is possible that
    clnt_create() will return NULL.  This was being caught, but no Python
    error was being set.  I use clnt_spcreateerror() to generate the value
    of the exception.
    
    But why would clnt_create() fail?  It's because no server was being
    found.  And why was this?  It was because nis_maplist() tried only to
    get the NIS master for the first map in the aliases list, which is
    passwd.byname, and guess what?  That's the one NIS map CNRI does *not*
    export!  So the yp_master() call was failing to return a valid
    server.  I now cycle through all the map aliases until I find a valid
    master.  If not, a different exception is set.
    
    I'm not sure this is the completely correct way to do all this, but
    short of rewriting the entire nismodule.c (to expose the proper API to
    Python), it should do the trick.
    adbf4e66
nismodule.c 6.7 KB