|
|
1.1 ! root 1: /* ! 2: ****************************************************************************** ! 3: * ! 4: * Module: bb_list.c ! 5: * ! 6: * Functions: ! 7: * bb_alist_1() - Return list of servers successfully tested against ! 8: * bb_blist_1() - Return list of servers unsuccessfully tested against ! 9: * bb_clist_1() - Return list of clients successfully tested against ! 10: * bb_dlist_1() - Return list of clients unsuccessfully tested against ! 11: * ! 12: * ! 13: ****************************************************************************** ! 14: */ ! 15: ! 16: /* ! 17: ****************************************************************************** ! 18: * Include Files ! 19: ****************************************************************************** ! 20: */ ! 21: #include <stdio.h> ! 22: #include <rpc/rpc.h> ! 23: #include "common.h" ! 24: #include "protocol.h" ! 25: #include "server.h" ! 26: ! 27: ! 28: ! 29: /************************************************************************* ! 30: ** ** ! 31: ** bb_alist_1() - Given the identifier get the list of servers this ** ! 32: ** client has successfully tested against. ** ! 33: ** ** ! 34: *************************************************************************/ ! 35: BB_list_out * ! 36: bb_alist_1( p_in) ! 37: BB_list_in *p_in; /* The list input structure. */ ! 38: { ! 39: static BB_list_out result; /* The result of the list operation. */ ! 40: int imp_cnt;/* The number of implementations. */ ! 41: int i; /* Nice loop variable name. */ ! 42: int j; /* The number of vendors found. */ ! 43: BB_row list; /* The list of tests in the database. */ ! 44: BB_co_data codata; /* The company data returned. */ ! 45: BB_vendor vendors[BB_MAX_IMP]; /* Place to store output*/ ! 46: ! 47: result.status = BB_SUCCESS; ! 48: result.data.data_len = 0; ! 49: ! 50: /* ! 51: ** If the machine being used to send this request is not one ! 52: ** of the ones owned by this client group then a password must ! 53: ** be specified. ! 54: */ ! 55: if ( bb_check_ip( p_in->id) != BB_SUCCESS ) ! 56: { ! 57: if ( (result.status=bb_check_passwd( p_in->id, p_in->passwd)) ! 58: != BB_SUCCESS ) ! 59: { ! 60: result.status = BB_BAD_PASSWD; ! 61: return &result; ! 62: } ! 63: } ! 64: ! 65: /* ! 66: ** Passed verification so get the data. ! 67: */ ! 68: imp_cnt = bb_get_imp_cnt(); ! 69: if ( bb_get_servers( p_in->id, list) != BB_SUCCESS ) ! 70: { ! 71: result.status = BB_FAILURE; ! 72: return &result; ! 73: } ! 74: ! 75: /* ! 76: ** For each implementation check to see if the tests have ! 77: ** been passed and if so get the company data for that index. ! 78: */ ! 79: j = 0; ! 80: for( i = 0; i < imp_cnt; i++ ) ! 81: { ! 82: if ( list[i] == BB_BOARD_SET ) ! 83: { ! 84: /* ! 85: ** If can't get the company data just skip it. ! 86: */ ! 87: if ( bb_get_codata( i, &codata) == BB_SUCCESS ) ! 88: { ! 89: vendors[j].booth = codata.booth; ! 90: strncpy( vendors[j].company, codata.company, ! 91: BB_COMPANY_NAME_LEN); ! 92: strncpy( vendors[j].imp, codata.imp, BB_IMP_NAME_LEN); ! 93: strncpy( vendors[j].id, codata.id, BB_ID_NAME_LEN); ! 94: j++; ! 95: } ! 96: } ! 97: } ! 98: result.data.data_len = j; ! 99: result.data.data_val = vendors; ! 100: return &result; ! 101: } ! 102: ! 103: ! 104: /************************************************************************* ! 105: ** ** ! 106: ** bb_blist_1() - Given the identifier get the list of servers this ** ! 107: ** client has not successfully tested against. ** ! 108: ** ** ! 109: *************************************************************************/ ! 110: BB_list_out * ! 111: bb_blist_1( p_in) ! 112: BB_list_in *p_in; /* The list input structure. */ ! 113: { ! 114: static BB_list_out result; /* The result of the list operation. */ ! 115: int imp_cnt;/* The number of implementations. */ ! 116: int i; /* Nice loop variable name. */ ! 117: int j; /* The number of vendors found. */ ! 118: BB_row list; /* The list of tests in the database. */ ! 119: BB_co_data codata; /* The company data returned. */ ! 120: BB_vendor vendors[BB_MAX_IMP]; /* Place to store output*/ ! 121: ! 122: result.status = BB_SUCCESS; ! 123: result.data.data_len = 0; ! 124: ! 125: /* ! 126: ** If the machine being used to send this request is not one ! 127: ** of the ones owned by this client group then a password must ! 128: ** be specified. ! 129: */ ! 130: if ( bb_check_ip( p_in->id) != BB_SUCCESS ) ! 131: { ! 132: if ( (result.status=bb_check_passwd( p_in->id, p_in->passwd)) ! 133: != BB_SUCCESS ) ! 134: { ! 135: return &result; ! 136: } ! 137: } ! 138: ! 139: /* ! 140: ** Passed verification so get the data. ! 141: */ ! 142: imp_cnt = bb_get_imp_cnt(); ! 143: if ( bb_get_servers( p_in->id, list) != BB_SUCCESS ) ! 144: { ! 145: result.status = BB_FAILURE; ! 146: return &result; ! 147: } ! 148: ! 149: /* ! 150: ** For each implementation check to see if the tests have ! 151: ** been passed and if so get the company data for that index. ! 152: */ ! 153: j = 0; ! 154: for( i = 0; i < imp_cnt; i++ ) ! 155: { ! 156: if ( list[i] == BB_BOARD_UNSET ) ! 157: { ! 158: /* ! 159: ** If can't get the company data just skip it. ! 160: */ ! 161: if ( bb_get_codata( i, &codata) == BB_SUCCESS ) ! 162: { ! 163: vendors[j].booth = codata.booth; ! 164: strncpy( vendors[j].company, codata.company, ! 165: BB_COMPANY_NAME_LEN); ! 166: strncpy( vendors[j].imp, codata.imp, BB_IMP_NAME_LEN); ! 167: strncpy( vendors[j].id, codata.id, BB_ID_NAME_LEN); ! 168: j++; ! 169: } ! 170: } ! 171: } ! 172: result.data.data_len = j; ! 173: result.data.data_val = vendors; ! 174: return &result; ! 175: } ! 176: ! 177: ! 178: /************************************************************************* ! 179: ** ** ! 180: ** bb_clist_1() - Given the identifier get the list of clients this ** ! 181: ** server has successfully tested against. ** ! 182: ** ** ! 183: *************************************************************************/ ! 184: BB_list_out * ! 185: bb_clist_1( p_in) ! 186: BB_list_in *p_in; /* The list input structure. */ ! 187: { ! 188: static BB_list_out result; /* The result of the list operation. */ ! 189: int imp_cnt;/* The number of implementations. */ ! 190: int i; /* Nice loop variable name. */ ! 191: int j; /* The number of vendors found. */ ! 192: BB_row list; /* The list of tests in the database. */ ! 193: BB_co_data codata; /* The company data returned. */ ! 194: BB_vendor vendors[BB_MAX_IMP]; /* Place to store output*/ ! 195: ! 196: result.status = BB_SUCCESS; ! 197: result.data.data_len = 0; ! 198: ! 199: /* ! 200: ** If the machine being used to send this request is not one ! 201: ** of the ones owned by this client group then a password must ! 202: ** be specified. ! 203: */ ! 204: if ( bb_check_ip( p_in->id) != BB_SUCCESS ) ! 205: { ! 206: if ( (result.status=bb_check_passwd( p_in->id, p_in->passwd)) ! 207: != BB_SUCCESS ) ! 208: { ! 209: return &result; ! 210: } ! 211: } ! 212: ! 213: /* ! 214: ** Passed verification so get the data. ! 215: */ ! 216: imp_cnt = bb_get_imp_cnt(); ! 217: if ( bb_get_clients( p_in->id, list) != BB_SUCCESS ) ! 218: { ! 219: result.status = BB_FAILURE; ! 220: return &result; ! 221: } ! 222: ! 223: /* ! 224: ** For each implementation check to see if the tests have ! 225: ** been passed and if so get the company data for that index. ! 226: */ ! 227: j = 0; ! 228: for( i = 0; i < imp_cnt; i++ ) ! 229: { ! 230: if ( list[i] == BB_BOARD_SET ) ! 231: { ! 232: /* ! 233: ** If can't get the company data just skip it. ! 234: */ ! 235: if ( bb_get_codata( i, &codata) == BB_SUCCESS ) ! 236: { ! 237: vendors[j].booth = codata.booth; ! 238: strncpy( vendors[j].company, codata.company, ! 239: BB_COMPANY_NAME_LEN); ! 240: strncpy( vendors[j].imp, codata.imp, BB_IMP_NAME_LEN); ! 241: strncpy( vendors[j].id, codata.id, BB_ID_NAME_LEN); ! 242: j++; ! 243: } ! 244: } ! 245: } ! 246: result.data.data_len = j; ! 247: result.data.data_val = vendors; ! 248: return &result; ! 249: } ! 250: ! 251: ! 252: /************************************************************************* ! 253: ** ** ! 254: ** bb_dlist_1() - Given the identifier get the list of clients this ** ! 255: ** server has not successfully tested against. ** ! 256: ** ** ! 257: *************************************************************************/ ! 258: BB_list_out * ! 259: bb_dlist_1( p_in) ! 260: BB_list_in *p_in; /* The list input structure. */ ! 261: { ! 262: static BB_list_out result; /* The result of the list operation. */ ! 263: int imp_cnt;/* The number of implementations. */ ! 264: int i; /* Nice loop variable name. */ ! 265: int j; /* The number of vendors found. */ ! 266: BB_row list; /* The list of tests in the database. */ ! 267: BB_co_data codata; /* The company data returned. */ ! 268: BB_vendor vendors[BB_MAX_IMP]; /* Place to store output*/ ! 269: ! 270: result.status = BB_SUCCESS; ! 271: result.data.data_len = 0; ! 272: ! 273: /* ! 274: ** If the machine being used to send this request is not one ! 275: ** of the ones owned by this client group then a password must ! 276: ** be specified. ! 277: */ ! 278: if ( bb_check_ip( p_in->id) != BB_SUCCESS ) ! 279: { ! 280: if ( (result.status=bb_check_passwd( p_in->id, p_in->passwd)) ! 281: != BB_SUCCESS ) ! 282: { ! 283: return &result; ! 284: } ! 285: } ! 286: ! 287: /* ! 288: ** Passed verification so get the data. ! 289: */ ! 290: imp_cnt = bb_get_imp_cnt(); ! 291: if ( bb_get_clients( p_in->id, list) != BB_SUCCESS ) ! 292: { ! 293: result.status = BB_FAILURE; ! 294: return &result; ! 295: } ! 296: ! 297: /* ! 298: ** For each implementation check to see if the tests have ! 299: ** been passed and if so get the company data for that index. ! 300: */ ! 301: j = 0; ! 302: for( i = 0; i < imp_cnt; i++ ) ! 303: { ! 304: if ( list[i] == BB_BOARD_UNSET ) ! 305: { ! 306: /* ! 307: ** If can't get the company data just skip it. ! 308: */ ! 309: if ( bb_get_codata( i, &codata) == BB_SUCCESS ) ! 310: { ! 311: vendors[j].booth = codata.booth; ! 312: strncpy( vendors[j].company, codata.company, ! 313: BB_COMPANY_NAME_LEN); ! 314: strncpy( vendors[j].imp, codata.imp, BB_IMP_NAME_LEN); ! 315: strncpy( vendors[j].id, codata.id, BB_ID_NAME_LEN); ! 316: j++; ! 317: } ! 318: } ! 319: } ! 320: result.data.data_len = j; ! 321: result.data.data_val = vendors; ! 322: return &result; ! 323: } ! 324:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.