| true | 1495 | | trc_unpack_data_value( DD ) | | | 1496 | | TRC_DATADESC DD; | | | 1497 | | { | | | 1498 | | char upk_str[TRC_MAX_UNPACK_ARR_SIZE];
| | | 1499 | | | | | 1500 | | int num; | | | 1501 | | int i; | | | 1502 | | | | | 1503 | | if ( DD->array == TEV_DATA_ARRAY )
| | | 1504 | | { | | | 1505 | | TRC_PVMCKERR( pvm_upkint( &num, 1, 1 ),
| | | 1506 | | "Array Unpack", return( TRC_FALSE ) ); | | | 1507 | | } | | | 1508 | | | | | 1509 | | else | | | 1510 | | num = 1; | | | 1511 | | | | | 1512 | | DD->data = trc_make_value( DD->dt, num ); | | | 1513 | | | | | 1514 | | DD->num = num; | | | 1515 | | | | | 1516 | | switch ( DD->dt ) | | | 1517 | | { | | | 1518 | | case TEV_DATA_NULL: break;
| | | 1519 | | | | | 1520 | | case TEV_DATA_BYTE:
| | | 1521 | | { | | | 1522 | | TRC_PVMCKERR( pvm_upkbyte( DD->data, num, 1 ),
| | | 1523 | | "Event BYTE Unpack", return( TRC_FALSE ) ); | | | 1524 | | | | | 1525 | | break; | | | 1526 | | } | | | | | ... | | | 1598 | | } | | | 1599 | | | | | 1600 | | case TEV_DATA_USHORT:
| | | 1601 | | { | | | 1602 | | TRC_PVMCKERR( pvm_upkshort( DD->data, num, 1 ),
| | | 1603 | | "Event USHORT Unpack", return( TRC_FALSE ) ); | | | 1604 | | | | | 1605 | | break; | | | 1606 | | } | | | 1607 | | | | | 1608 | | case TEV_DATA_STRING:
| | | 1609 | | { | | | 1610 | | if ( num < 1 ) | | | 1611 | | break; | | | 1612 | | | | | 1613 | | DD->data = (TRC_VALUE) malloc( (unsigned) num | | | 1614 | | * sizeof(char *) ); | | | 1615 | | trc_memcheck( DD->data, "String Array" ); | | | 1616 | | | | | 1617 | | for ( i=0 ; i < num ; i++ ) | | | 1618 | | { | | | 1619 | | TRC_PVMCKERR( pvm_upkstr( upk_str ),
|
| | 338 | | | | | | | | pvmgetdsig() | | | 339 | | | | | | | | { | | | 340 | | | | | | | | static int myfmt = -1; | | | 341 | | | | | | | | | | | 342 | | | | | | | | short i0; | | | 343 | | | | | | | | int i1; | | | 344 | | | | | | | | long i2; | | | 345 | | | | | | | | float f0; | | | 346 | | | | | | | | double f1; | | | 347 | | | | | | | | int i, j; | | | 348 | | | | | | | | int fmt; | | | 349 | | | | | | | | | | | 350 | | | | | | | | if (myfmt != -1) | | | 351 | | | | | | | | return myfmt; | | | 352 | | | | | | | | | | | 353 | | | | | | | | fmt = 0; | | | 354 | | | | | | | | | | | 355 | | | | | | | | i0 = 0; | | | 356 | | | | | | | | for (i = 0; i < sizeof(i0); i++) | | | 357 | | | | | | | | i0 += (short)i << (i * 8); | | | 358 | | | | | | | | fmt |= ibol(0, (char *) &i0, (int) sizeof(i0)); | | | 359 | | | | | | | | | | | 360 | | | | | | | | i1 = 0; | | | 361 | | | | | | | | for (i = 0; i < sizeof(i1); i++) | | | 362 | | | | | | | | i1 += (int)i << (i * 8); | | | 363 | | | | | | | | fmt |= ibol(5, (char *) &i1, (int) sizeof(i1)); | | | 364 | | | | | | | | | | | 365 | | | | | | | | i2 = 0; | | | 366 | | | | | | | | for (i = 0; i < sizeof(i2); i++) | | | 367 | | | | | | | | i2 += (long)i << (i * 8); | | | 368 | | | | | | | | fmt |= ibol(10, (char *) &i2, (int) sizeof(i2)); | | | 369 | | | | | | | | | | | 370 | | | | | | | | f0 = 1.0; | | | 371 | | | | | | | | fmt |= fbol(15, (unsigned char *) &f0, (int) sizeof(f0)); | | | 372 | | | | | | | | | | | 373 | | | | | | | | f1 = 1.0; | | | 374 | | | | | | | | fmt |= fbol(21, (unsigned char *) &f1, (int) sizeof(f1)); | | | 375 | | | | | | | | | | | 376 | | | | | | | | myfmt = fmt; | | | 377 | | | | | | | | return fmt; | | upk_str is uninitialized | 378 | | | | | | | | } |
| | 3047 | | | | | | | | | 3048 | | | | | | TEV_EXCLUSIVE;
| | | 3049 | | | | | | | | | 3050 | | | | | | authfn[0] = 0; | | | 3051 | | | | | | | | | 3052 | | | | | | #ifndef WIN32 | | | 3053 | | | | | | pvmmyupid = getpid(); | | | 3054 | | | | | | #else | | | 3055 | | | | | | pvmmyupid = _getpid(); | | | 3056 | | | | | | #endif | | | 3057 | | | | | | | | | 3058 | | | | | | | | | 3059 | | | | | | | | | 3060 | | | | | | | | | 3061 | | | | | | | | | 3062 | | | | | | | | | 3063 | | | | | | if (p = getenv("PVMEPID")) | | | 3064 | | | | | | cookie = atoi(p); | | | 3065 | | | | | | else | | | 3066 | | | | | | cookie = 0; | | | 3067 | | | | | | | | | 3068 | | | | | | | | | 3069 | | | | | | | | | 3070 | | | | | | #ifndef WIN32 | | | 3071 | | | | | | if ((pvm_useruid = geteuid()) == -1) { | | | 3072 | | | | | | pvmlogerror("can't getuid()\n"); | | | 3073 | | | | | | cc = PvmSysErr;
| | | 3074 | | | | | | goto bail2; | | | 3075 | | | | | | } | | | 3076 | | | | | | pvmchkuid( pvm_useruid ); | | | 3077 | | | | | | #else | | | 3078 | | | | | | if (!username) | | | 3079 | | | | | | username = MyGetUserName(); | | | 3080 | | | | | | #endif | | | 3081 | | | | | | | | | 3082 | | | | | | if (p = getenv("PVMTASKDEBUG")) { | | | 3083 | | | | | | pvmdebmask = pvmstrtoi(p); | | | 3084 | | | | | | if (pvmdebmask) { | | | 3085 | | | | | | pvmlogprintf("task debug mask is 0x%x (%s)\n", | | | 3086 | | | | | | pvmdebmask, debug_flags(pvmdebmask)); | | | 3087 | | | | | | } | | | 3088 | | | | | | } | | | 3089 | | | | | | | | | 3090 | | | | | | #ifndef IMA_MPP | | | 3091 | | | | | | if (cc = mksocs()) | | | 3092 | | | | | | goto bail2; | | | 3093 | | | | | | #endif | | | 3094 | | | | | | | | | 3095 | | | | | | | | | 3096 | | | | | | | | | 3097 | | | | | | | | | 3098 | | | | | | | | | 3099 | | | | | | pvmrxlist = pmsg_new(1); | | | 3100 | | | | | | BZERO((char*)pvmrxlist, sizeof(struct pmsg));
| | | 3101 | | | | | | pvmrxlist->m_link = pvmrxlist->m_rlink = pvmrxlist; | | | 3102 | | | | | | | | | 3103 | | | | | | ttlist = TALLOC(1, struct ttpcb, "tpcb");
| | | 3104 | | | | | | BZERO((char*)ttlist, sizeof(struct ttpcb));
| | | 3105 | | | | | | ttlist->tt_link = ttlist->tt_rlink = ttlist; | | | 3106 | | | | | | | | | 3107 | | | | | | sbf = pvm_setsbuf(pvm_mkbuf(PvmDataFoo));
| | | 3108 | | | | | | rbf = pvm_setrbuf(0); | | | 3109 | | | | | | | | | 3110 | | | | | | | | | 3111 | | | | | | | | | 3112 | | | | | | | | | 3113 | | | | | | | | | 3114 | | | | | | #ifndef IMA_MPP | | | 3115 | | | | | | #ifndef NOPROT | | | 3116 | | | | | | (void)PVMTMPNAMFUN(authfn);
| | | 3117 | | | | | | #ifdef IMA_OS2 | | | 3118 | | | | | | if ((authfd = open(authfn, O_RDWR|O_CREAT|O_EXCL|O_TRUNC, 0600)) == -1) | | | 3119 | | | | | | #else | | | 3120 | | | | | | if ((authfd = open(authfn, O_RDONLY|O_CREAT|O_EXCL|O_TRUNC, 0600)) == -1)
| | | 3121 | | | | | | #endif | | | 3122 | | | | | | { | | | 3123 | | | | | | pvmlogperror(authfn); | | | 3124 | | | | | | pvmlogerror("pvmbeatask() can't creat t-auth file\n"); | | | 3125 | | | | | | cc = PvmSysErr;
| | | 3126 | | | | | | goto bail2; | | | 3127 | | | | | | } | | | 3128 | | | | | | #endif | | | 3129 | | | | | | | | | 3130 | | | | | | | | | 3131 | | | | | | | | | 3132 | | | | | | | | | 3133 | | | | | | | | | 3134 | | | | | | mxfersingle = 1; | | | 3135 | | | | | | prver = TDPROTOCOL;
| | | 3136 | | | | | | pvm_pkint(&prver, 1, 1); | | | 3137 | | | | | | pvm_pkstr(authfn); | | | 3138 | | | | | | if ((cc = msendrecv(TIDPVMD, TM_CONNECT, SYSCTX_TM)) <= 0)
| | | 3139 | | | | | | goto bail; | | | 3140 | | | | | | pvm_upkint(&prver, 1, 1); | | | 3141 | | | | | | if (prver != TDPROTOCOL) {
| | | 3142 | | | | | | pvmlogprintf("pvmbeatask() t-d protocol mismatch (%d/%d)\n", | | | 3143 | | | | | | TDPROTOCOL, prver);
| | | 3144 | | | | | | cc = PvmSysErr;
| | | 3145 | | | | | | goto bail; | | | 3146 | | | | | | } | | | 3147 | | | | | | pvm_upkint(&cc, 1, 1); | | | 3148 | | | | | | if (!cc) { | | | 3149 | | | | | | pvmlogerror("pvmbeatask() pvmd refuses connection\n"); | | | | | | | | | ... | | | 3408 | | | | | | pvm_setrbuf(rbf); | | | 3409 | | | | | | } | | | 3410 | | | | | | | | | 3411 | | | | | | tev_init(); | | | 3412 | | | | | | | | | 3413 | | | | | | if (TEV_AMEXCL) {
| | | 3414 | | | | | | TEV_ENDEXCL;
| | | 3415 | | | | | | } | | | 3416 | | | | | | return 0; | | | 3417 | | | | | | | | | 3418 | | | | | | bail: | | | 3419 | | | | | | if (pvm_getrbuf() > 0) | | | 3420 | | | | | | pvm_freebuf(pvm_getrbuf()); | | | 3421 | | | | | | if (pvm_getsbuf() > 0) | | | 3422 | | | | | | pvm_freebuf(pvm_getsbuf()); | | | 3423 | | | | | | pvm_setrbuf(rbf); | | | 3424 | | | | | | pvm_setsbuf(sbf); | | | 3425 | | | | | | | | | 3426 | | | | | | #ifndef IMA_MPP | | | 3427 | | | | | | if (authfd != -1) | | | 3428 | | | | | | (void)close(authfd); | | | 3429 | | | | | | if (authfn[0]) | | | 3430 | | | | | | (void)unlink(authfn); | | | 3431 | | | | | | unmksocs(); | | | 3432 | | | | | | #endif | | | 3433 | | | | | | | | | 3434 | | | | | | bail2: | | | 3435 | | | | | | if (TEV_AMEXCL) {
| | | 3436 | | | | | | TEV_ENDEXCL;
| | | 3437 | | | | | | } | | | 3438 | | | | | | return cc; | | upk_str is uninitialized | 3439 | | | | | | } |
| | 1690 | | | | ad = (long)cp; | | | 1691 | | | | TEV_PACK_LONG( TEV_DID_PDA, TEV_DATA_SCALAR, &ad, 1, 1 );
| | | 1692 | | | | TEV_FIN;
| | | 1693 | | | | } | | | 1694 | | | | } | | | 1695 | | | | | | | 1696 | | | | if (!pvmrbuf) | | | 1697 | | | | cc = PvmNoBuf;
| | | 1698 | | | | else { | | | 1699 | | | | if (!(cc = (pvmrbuf->m_codef->dec_int) | | | 1700 | | | | (pvmrbuf, (void*)&l, 1, 1, sizeof(int)))) | | | 1701 | | | | cc = (pvmrbuf->m_codef->dec_byte) | | | 1702 | | | | (pvmrbuf, (void*)cp, l, 1, 1); | | | 1703 | | | | } | | | 1704 | | | | | | | 1705 | | | | if (TEV_AMEXCL) {
| | | 1706 | | | | if (TEV_DO_TRACE(TEV_UPKSTR,TEV_EVENT_EXIT)) {
| | | 1707 | | | | TEV_PACK_INT( TEV_DID_CC, TEV_DATA_SCALAR, &cc, 1, 1 );
| | | 1708 | | | | TEV_FIN;
| | | 1709 | | | | } | | | 1710 | | | | TEV_ENDEXCL;
| | | 1711 | | | | } | | | 1712 | | | | return (cc < 0 ? lpvmerr("pvm_upkstr", cc) : PvmOk);
| | upk_str is uninitialized | 1713 | | | | } |
|