Annotation of 43BSD/contrib/xns/examples/passwd/PasswordLookup_server.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Server for PasswordLookup.
                      3:  */
                      4: #include "PasswordLookup_support.c"
                      5: #include <except.h>
                      6: 
                      7: extern CourierConnection *_serverConnection;
                      8: 
                      9: extern LookupUidResults LookupUid();
                     10: 
                     11: server_LookupUid(_buf)
                     12:        register Unspecified *_buf;
                     13: {
                     14:        register Unspecified *_bp = _buf;
                     15:        register LongCardinal _n;
                     16:        Cardinal uid;
                     17:        LookupUidResults _Results;
                     18: 
                     19:        _bp += internalize_Cardinal(&uid, _bp);
                     20:        _Results = LookupUid(_serverConnection, 0, uid);
                     21:        _n = sizeof_LookupUidResults(&_Results);
                     22:        _bp = Allocate(_n);
                     23:        externalize_LookupUidResults(&_Results, _bp);
                     24:        SendReturnMessage(_n, _bp);
                     25:        Deallocate(_bp);
                     26: }
                     27: 
                     28: extern LookupUserResults LookupUser();
                     29: 
                     30: server_LookupUser(_buf)
                     31:        register Unspecified *_buf;
                     32: {
                     33:        register Unspecified *_bp = _buf;
                     34:        register LongCardinal _n;
                     35:        String user;
                     36:        LookupUserResults _Results;
                     37: 
                     38:        _bp += internalize_String(&user, _bp);
                     39:        _Results = LookupUser(_serverConnection, 0, user);
                     40:        _n = sizeof_LookupUserResults(&_Results);
                     41:        _bp = Allocate(_n);
                     42:        externalize_LookupUserResults(&_Results, _bp);
                     43:        SendReturnMessage(_n, _bp);
                     44:        Deallocate(_bp);
                     45: }
                     46: 
                     47: Server()
                     48: {
                     49:        Cardinal _procedure;
                     50:        register Unspecified *_buf;
                     51:        Cardinal _n;
                     52: 
                     53:        for (;;) {
                     54:                if (LookAheadCallMessage(PasswordLookup_NUMBER, PasswordLookup_VERSION))
                     55:                        break;
                     56:                _buf = ReceiveCallMessage(&_procedure);
                     57:                DURING switch (_procedure) {
                     58:                case 1:
                     59:                        server_LookupUser(_buf);
                     60:                        break;
                     61:                case 0:
                     62:                        server_LookupUid(_buf);
                     63:                        break;
                     64:                default:
                     65:                        NoSuchProcedureValue("PasswordLookup", _procedure);
                     66:                        break;
                     67:                } HANDLER {
                     68:                    Deallocate(_buf);
                     69:                    switch (&Exception.Code) {
                     70:                    case OtherError:
                     71:                        _n = sizeof_T_cn754_2((T_cn754_2 *)Exception.Message);
                     72:                        _buf = Allocate(_n);
                     73:                        (void) externalize_T_cn754_2((T_cn754_2*)Exception.Message, _buf);
                     74:                        SendAbortMessage(Exception.Code-ERROR_OFFSET, _n, _buf);
                     75:                        break;
                     76:                    case NoSuchUser:
                     77:                        _buf = Allocate(0);
                     78:                        SendAbortMessage(Exception.Code-ERROR_OFFSET, 0, _buf);
                     79:                        break;
                     80:                    default:
                     81:                        _buf = Allocate(0);
                     82:                        SendRejectMessage(unspecifiedError, 0, _buf);
                     83:                        break;
                     84:                    }
                     85:                } END_HANDLER;
                     86:                Deallocate(_buf);
                     87:        }
                     88: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.