| | 1132 | | pvm_tc_conreq(mid) | | | 1133 | | int mid; | | | 1134 | | { | | | 1135 | | int src; | | | 1136 | | int sbf = 0; | | | 1137 | | int ttpro; | | | 1138 | | struct ttpcb *pcbp; | | | 1139 | | int ackd; | | | 1140 | | char *addr = ""; | | | 1141 | | int i; | | | 1142 | | int ictx; | | | 1143 | | #ifdef SOCKLENISUINT | | | 1144 | | #if defined(IMA_AIX4SP2) || defined(IMA_AIX5SP2) | | | 1145 | | unsigned int oslen; | | | 1146 | | #else | | | 1147 | | size_t oslen; | | | 1148 | | #endif | | | 1149 | | #else | | | 1150 | | int oslen; | | | 1151 | | #endif | | | 1152 | | #ifndef NOUNIXDOM | | | 1153 | | struct sockaddr_un uns; | | | 1154 | | char spath[PVMTMPNAMLEN];
| | | 1155 | | #endif | | | 1156 | | char buf[256]; | | | 1157 | | | | | 1158 | | pvm_bufinfo(mid, (int *)0, (int *)0, &src); | | | 1159 | | | | | 1160 | | pvm_upkint(&ttpro, 1, 1); | | | 1161 | | pvm_upkstr(buf); | | | 1162 | | | | | 1163 | | if (pcbp = ttpcb_find(src)) { | | | 1164 | | if (pvmdebmask & PDMROUTE) {
| | | 1165 | | pvmlogprintf( | | | 1166 | | "pvm_tc_conreq() crossed CONREQ from t%x\n", src); | | | 1167 | | } | | | 1168 | | if (pcbp->tt_state == TTCONWAIT) {
| | | 1169 | | | | | 1170 | | | | | 1171 | | | | | 1172 | | | | | 1173 | | | | | | | ... | | | 1214 | | pvm_freebuf(pvm_setsbuf(sbf)); | | | 1215 | | } | | | 1216 | | } | | | 1217 | | | | | 1218 | | } else { | | | 1219 | | pvmlogprintf( | | | 1220 | | "pvm_tc_conreq() CONREQ from t%x but state=%d ?\n", | | | 1221 | | src, pcbp->tt_state); | | | 1222 | | } | | | 1223 | | | | | 1224 | | } else { | | | 1225 | | if (pvmdebmask & PDMROUTE)
| | | 1226 | | pvmlogprintf("pvm_tc_conreq() CONREQ from t%x\n", src); | | | 1227 | | ackd = 1; | | | 1228 | | pcbp = ttpcb_creat(src); | | | 1229 | | if (pvmrouteopt != PvmDontRoute) {
| | | 1230 | | if (buf[0] == '/') { | | | 1231 | | | | | 1232 | | #ifdef NOUNIXDOM | | | 1233 | | | | | 1234 | | pvmlogprintf( "%s CONREQ from t%x, ", | | | 1235 | | "pvm_tc_conreq()", src ); | | | 1236 | | pvmlogprintf( "Unix domain socket unsupported\n" ); | | | 1237 | | | | | 1238 | | #else | | | 1239 | | | | | 1240 | | if ((pcbp->tt_fd = socket(AF_UNIX, SOCK_STREAM, 0))
| | | | | ... | | | 1271 | | | | | 1272 | | | | | 1273 | | | | | 1274 | | check_routeadd(pcbp); | | | 1275 | | } | | | 1276 | | } | | | 1277 | | } | | | 1278 | | | | | 1279 | | #endif | | | 1280 | | | | | 1281 | | } else { | | referenced by returned value | 1282 | | if ((pcbp->tt_fd = socket(AF_INET, SOCK_STREAM, 0)) | Problem | | referenced by returned value |
| | referenced by pcbp->tt_fd | 1283 | | == -1) { | | | 1284 | | pvmlogperror("pvm_tc_conreq() socket"); | | | 1285 | | | | | 1286 | | } else { | | | 1287 | | pcbp->tt_sad = pvmourinet; | | | 1288 | | oslen = sizeof(pcbp->tt_sad); | | referenced by ((char*)&pcbp[-1].tt_spath)[4] | 1289 | | if (bind(pcbp->tt_fd, | Problem | | referenced by ((char*)&pcbp[-1].tt_spath)[4] |
| | referenced by pcbp->tt_fd | 1290 | | (struct sockaddr*)&pcbp->tt_sad, oslen) | | referenced by ((char*)&pcbp[-1].tt_spath)[4] | 1291 | | == -1) { | Problem | | referenced by ((char*)&pcbp[-1].tt_spath)[4] |
|
| referenced by ((char*)&$heap_189523)[24] | 450 | | | | pvm_mkbuf(enc) | Problem | | referenced by ((char*)&$heap_189523)[24] |
| | | 451 | | | | int enc; | | | 452 | | | | { | | | 453 | | | | struct pmsg *mp; | | | 454 | | | | struct frag *fp; | | | 455 | | | | int dotrchdr = 0; | | | 456 | | | | int cc = 0; | | | 457 | | | | int tmp; | | | 458 | | | | TEV_DECLS
| | | 459 | | | | | | | 460 | | | | if (TEV_EXCLUSIVE) {
| | | 461 | | | | if (TEV_DO_TRACE(TEV_MKBUF,TEV_EVENT_ENTRY)) {
| | | 462 | | | | TEV_PACK_INT( TEV_DID_ME, TEV_DATA_SCALAR, &enc, 1, 1 );
| | | 463 | | | | TEV_FIN;
| | | 464 | | | | } | | | 465 | | | | } | | | 466 | | | | | | | 467 | | | | switch (enc) { | | | 468 | | | | case PvmDataDefault:
| | | 469 | | | | enc = 0x10000000; | | | 470 | | | | break; | | | 471 | | | | | | | 472 | | | | case PvmDataRaw:
| | | 473 | | | | enc = pvmmydsig; | | | 474 | | | | break; | | | 475 | | | | | | | 476 | | | | case PvmDataInPlace:
| | | 477 | | | | enc = 0x20000000; | | | 478 | | | | break; | | | 479 | | | | | | | 480 | | | | case PvmDataTrace:
| | | 481 | | | | enc = 0x40000000; | | | 482 | | | | dotrchdr++; | | | 483 | | | | break; | | | 484 | | | | | | | 485 | | | | default: | | | 486 | | | | cc = PvmBadParam;
| | | 487 | | | | } | | | 488 | | | | | | | 489 | | | | if (!cc) { | | | 490 | | | | if (mp = umbuf_new()) { | | | 491 | | | | mp->m_src = pvmmytid; | | | 492 | | | | pmsg_setenc(mp, enc); | | | 493 | | | | cc = mp->m_mid; | | | 494 | | | | if (dotrchdr) { | | | 495 | | | | tmp = enc_trc_hdr(mp); | | | 496 | | | | cc = ( tmp < 0 ) ? tmp : cc; | | | 497 | | | | } | | | 498 | | | | } else | | | 499 | | | | cc = PvmNoMem;
| | | 500 | | | | } | | | 501 | | | | | | | 502 | | | | if (TEV_AMEXCL) {
| | | 503 | | | | if (TEV_DO_TRACE(TEV_MKBUF,TEV_EVENT_EXIT)) {
| | | 504 | | | | TEV_PACK_INT( TEV_DID_MB, TEV_DATA_SCALAR, &cc, 1, 1 );
| | | 505 | | | | TEV_FIN;
| | | 506 | | | | } | | | 507 | | | | TEV_ENDEXCL;
| | | 508 | | | | } | | | 509 | | | | | | | 510 | | | | if (cc < 0) | | | 511 | | | | lpvmerr("pvm_mkbuf", cc); | | | 512 | | | | return cc; | | | 513 | | | | } |
| referenced by ((char*)&$heap_189523)[24] | 561 | | | | pvm_setsbuf(mid) | Problem | | referenced by ((char*)&$heap_189523)[24] |
| | | 562 | | | | int mid; | | | 563 | | | | { | | | 564 | | | | struct pmsg *mp = 0; | | | 565 | | | | int cc = 0; | | | 566 | | | | TEV_DECLS
| | | 567 | | | | | | | 568 | | | | if (TEV_EXCLUSIVE) {
| | | 569 | | | | if (TEV_DO_TRACE(TEV_SETSBUF,TEV_EVENT_ENTRY)) {
| | | 570 | | | | TEV_PACK_INT( TEV_DID_MB, TEV_DATA_SCALAR, &mid, 1, 1 );
| | | 571 | | | | TEV_FIN;
| | | 572 | | | | } | | | 573 | | | | } | | | 574 | | | | | | | 575 | | | | if (mid < 0) { | | | 576 | | | | cc = PvmBadParam;
| | | 577 | | | | } else if (mid == 0) { | | | 578 | | | | cc = pvmsbuf ? pvmsbuf->m_mid : 0; | | | 579 | | | | pvmsbuf = 0; | | | 580 | | | | } else if (mp = midtobuf(mid)) { | | | 581 | | | | if (mp == pvmrbuf) | | | 582 | | | | pvmrbuf = 0; | | | 583 | | | | cc = pvmsbuf ? pvmsbuf->m_mid : 0; | | | 584 | | | | pvmsbuf = mp; | | | 585 | | | | (mp->m_codef->enc_init)(mp); | | | 586 | | | | } else | | | 587 | | | | cc = PvmNoSuchBuf;
| | | 588 | | | | | | | 589 | | | | if (TEV_AMEXCL) {
| | | 590 | | | | if (TEV_DO_TRACE(TEV_SETSBUF,TEV_EVENT_EXIT)) {
| | | 591 | | | | TEV_PACK_INT( TEV_DID_MSB, TEV_DATA_SCALAR, &cc, 1, 1 );
| | | 592 | | | | TEV_FIN;
| | | 593 | | | | } | | | 594 | | | | TEV_ENDEXCL;
| | | 595 | | | | } | | | 596 | | | | | | | 597 | | | | if (cc < 0) | | | 598 | | | | lpvmerr("pvm_setsbuf", cc); | | | 599 | | | | return cc; | | | 600 | | | | } |
|