|
|
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.