Lines Matching refs:fi

718 	struct finfo *fi;  in rpcbproc_callit_com()  local
965 fi = forward_register(bd->su_xid, caller, fd, ma.m_uaddr); in rpcbproc_callit_com()
966 if (fi == NULL) { in rpcbproc_callit_com()
978 if (fi->flag & FINFO_ACTIVE) { in rpcbproc_callit_com()
990 fi->flag |= FINFO_ACTIVE; in rpcbproc_callit_com()
992 call_msg.rm_xid = fi->forward_xid; in rpcbproc_callit_com()
1001 forward_destroy(fi); in rpcbproc_callit_com()
1017 forward_destroy(fi); in rpcbproc_callit_com()
1028 forward_destroy(fi); in rpcbproc_callit_com()
1051 forward_destroy(fi); in rpcbproc_callit_com()
1061 forward_destroy(fi); in rpcbproc_callit_com()
1071 forward_destroy(fi); in rpcbproc_callit_com()
1084 forward_destroy(fi); in rpcbproc_callit_com()
1103 forward_destroy(fi); in rpcbproc_callit_com()
1113 forward_destroy(fi); in rpcbproc_callit_com()
1139 while (fi->reply_data == NULL && in rpcbproc_callit_com()
1140 cond_timedwait(&fi->cv, &finfo_lock, &to) != ETIME) in rpcbproc_callit_com()
1143 if (fi->reply_data == NULL) { in rpcbproc_callit_com()
1144 forward_destroy(fi); in rpcbproc_callit_com()
1155 if (fi->reply_error.re_status != RPC_SUCCESS) { in rpcbproc_callit_com()
1156 forward_destroy(fi); in rpcbproc_callit_com()
1164 clnt_sperrno(fi->reply_error.re_status)); in rpcbproc_callit_com()
1176 if (sscanf(fi->uaddr, "%d.%d.%d.%d.%d.%d", in rpcbproc_callit_com()
1181 result.res.res_len = fi->res_len; in rpcbproc_callit_com()
1182 result.res.res_val = fi->res_val; in rpcbproc_callit_com()
1193 result.addr = fi->uaddr; in rpcbproc_callit_com()
1194 result.results.results_len = fi->res_len; in rpcbproc_callit_com()
1195 result.results.results_val = fi->res_val; in rpcbproc_callit_com()
1203 forward_destroy(fi); in rpcbproc_callit_com()
1227 struct finfo *fi; in forward_register() local
1245 for (fi = fihead; fi != NULL; fi = fi->next) { in forward_register()
1246 if (fi->caller_xid == caller_xid && in forward_register()
1247 netbufcmp(fi->caller_addr, caller_addr)) { in forward_register()
1248 assert(fi->flag & FINFO_ACTIVE); in forward_register()
1249 return (fi); in forward_register()
1253 fi = malloc(sizeof (*fi)); in forward_register()
1254 if (fi == NULL) { in forward_register()
1259 if ((fi->caller_addr = netbufdup(caller_addr)) == NULL) { in forward_register()
1261 free(fi); in forward_register()
1275 fi->prev = NULL; in forward_register()
1276 fi->next = fihead; in forward_register()
1278 fihead->prev = fi; in forward_register()
1279 fihead = fi; in forward_register()
1281 fitail = fi; in forward_register()
1283 fi->flag = 0; in forward_register()
1284 fi->caller_xid = caller_xid; in forward_register()
1286 fi->forward_xid = lastxid; in forward_register()
1287 fi->forward_fd = forward_fd; in forward_register()
1293 fi->uaddr = uaddr; in forward_register()
1295 fi->reply_data = NULL; in forward_register()
1296 (void) cond_init(&fi->cv, USYNC_THREAD, NULL); in forward_register()
1300 assert(fitail != fi); in forward_register()
1304 return (fi); in forward_register()
1308 forward_destroy(struct finfo *fi) in forward_destroy() argument
1311 assert(fi->flag & FINFO_ACTIVE); in forward_destroy()
1313 if (fihead == fi) { in forward_destroy()
1314 assert(fi->prev == NULL); in forward_destroy()
1315 fihead = fi->next; in forward_destroy()
1317 fi->prev->next = fi->next; in forward_destroy()
1320 if (fitail == fi) { in forward_destroy()
1321 assert(fi->next == NULL); in forward_destroy()
1322 fitail = fi->prev; in forward_destroy()
1324 fi->next->prev = fi->prev; in forward_destroy()
1327 netbuffree(fi->caller_addr); in forward_destroy()
1328 free(fi->uaddr); in forward_destroy()
1329 if (fi->reply_data != NULL) in forward_destroy()
1330 t_free((char *)fi->reply_data, T_UNITDATA); in forward_destroy()
1331 (void) cond_destroy(&fi->cv); in forward_destroy()
1333 free(fi); in forward_destroy()
1345 struct finfo *fi; in forward_find() local
1349 for (fi = fihead; fi != NULL; fi = fi->next) { in forward_find()
1350 if (fi->forward_xid == reply_xid && in forward_find()
1351 strcmp(fi->uaddr, uaddr) == 0) in forward_find()
1352 return (fi); in forward_find()
1401 struct finfo *fi; in handle_reply() local
1469 fi = forward_find(reply_msg.rm_xid, uaddr); in handle_reply()
1470 if (fi == NULL) { in handle_reply()
1475 fi->reply_data = tr_data; in handle_reply()
1478 __seterr_reply(&reply_msg, &fi->reply_error); in handle_reply()
1480 fi->res_len = len; in handle_reply()
1481 fi->res_val = &buffer[pos]; in handle_reply()
1483 (void) cond_signal(&fi->cv); in handle_reply()