|
|
1.1 ! root 1: /* ! 2: ****************************************************************************** ! 3: * ! 4: * Module: bb_set.c ! 5: * ! 6: * Functions: ! 7: * bb_set_1() - Set an entry in the billboard. ! 8: * bb_unset_1() - Unset an entry in the billboard. ! 9: * ! 10: * ! 11: ****************************************************************************** ! 12: */ ! 13: ! 14: /* ! 15: ****************************************************************************** ! 16: * Include Files ! 17: ****************************************************************************** ! 18: */ ! 19: #include <stdio.h> ! 20: #include <rpc/rpc.h> ! 21: #include "common.h" ! 22: #include "protocol.h" ! 23: #include "server.h" ! 24: ! 25: void bb_board_tag(); ! 26: ! 27: ! 28: /************************************************************************* ! 29: ** ** ! 30: ** bb_set_1() - Set a location in the board. This means that the ** ! 31: ** client has successfully tested his client against the specified ** ! 32: ** server. A password is required. ** ! 33: ** ** ! 34: *************************************************************************/ ! 35: BB_set_out * ! 36: bb_set_1( p_set) ! 37: BB_set_in *p_set; /* The set_in structure. */ ! 38: { ! 39: static BB_set_out result; /* The result of the set operation. */ ! 40: ! 41: result.status = BB_SUCCESS; ! 42: ! 43: /* ! 44: ** If the machine being used to send this request is not one ! 45: ** of the ones owned by this client group then a password must ! 46: ** be specified. ! 47: */ ! 48: if ( bb_check_ip( p_set->client) != BB_SUCCESS ) ! 49: { ! 50: if ( (result.status=bb_check_passwd( p_set->client, p_set->passwd)) ! 51: != BB_SUCCESS ) ! 52: { ! 53: result.status = BB_BAD_PASSWD; ! 54: return &result; ! 55: } ! 56: } ! 57: ! 58: /* ! 59: ** If the server being verified against is the universal server, ! 60: ** then change the phase of the client. ! 61: */ ! 62: if ( strncmp( BB_SUN_SERVER, p_set->server, BB_ID_NAME_LEN) == 0 ) ! 63: { ! 64: if ( bb_set_phase( p_set->client, BB_SUN_PHASE) != BB_SUCCESS ) ! 65: { ! 66: result.status = BB_BAD_PHASE; ! 67: return &result; ! 68: } ! 69: } ! 70: ! 71: /* ! 72: ** If the phase is not correct don't let them change the board. ! 73: */ ! 74: if ( bb_phase_ok( p_set->client) != BB_SUCCESS ) ! 75: { ! 76: result.status = BB_BAD_PHASE; ! 77: return &result; ! 78: } ! 79: ! 80: /* ! 81: ** They are allowed to place a mark in the bill board, so lets do it. ! 82: */ ! 83: bb_board_tag( p_set, &result, BB_SET); ! 84: ! 85: return &result; ! 86: } ! 87: ! 88: ! 89: ! 90: /************************************************************************* ! 91: ** ** ! 92: ** bb_unset_1() - Unset a previously set spot in the bill board. ** ! 93: ** ** ! 94: *************************************************************************/ ! 95: BB_set_out * ! 96: bb_unset_1( p_set) ! 97: BB_set_in *p_set; /* The set_in structure. */ ! 98: { ! 99: static BB_set_out result; /* The result of the set operation. */ ! 100: ! 101: /* ! 102: ** If the machine being used to send this request is not one ! 103: ** of the ones owned by this client group then a password must ! 104: ** be specified. ! 105: */ ! 106: if ( bb_check_ip( p_set->client) != BB_SUCCESS ) ! 107: { ! 108: if ( bb_check_passwd( p_set->client, p_set->passwd) != SUCCESS ) ! 109: { ! 110: result.status = BB_BAD_PASSWD; ! 111: return &result; ! 112: } ! 113: } ! 114: ! 115: /* ! 116: ** If the server being unverified is the universal server, ! 117: ** then change the phase of the client. ! 118: */ ! 119: if ( strncmp( BB_SUN_SERVER, p_set->server, BB_ID_NAME_LEN) == 0 ) ! 120: { ! 121: if ( bb_unset_phase( p_set->client, BB_SUN_PHASE) != BB_SUCCESS ) ! 122: { ! 123: result.status = BB_BAD_PHASE; ! 124: return &result; ! 125: } ! 126: } ! 127: ! 128: /* ! 129: ** They are allowed to place a mark in the bill board, so lets do it. ! 130: */ ! 131: bb_board_tag( p_set, &result, BB_UNSET); ! 132: ! 133: return &result; ! 134: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.