NSIS-ka
A free C++ implementation of NSIS protocols

Changeset 2485


Ignore:
Timestamp:
Mar 20, 2007, 9:49:00 PM (11 years ago)
Author:
hiwi-laier
Message:

More flags under QOS_NSLP_13.

Location:
qos-nslp/branches/laier-update
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • qos-nslp/branches/laier-update/include/nslp_pdu.h

    r2482 r2485  
    182182        // @}
    183183protected:
     184        // XXXML: THIS IS COMPLETE AND UTTER BALONEY!
     185        //         - DOES NOT SUPPORT *BOUND_SESSION_ID
     186        //         - CAN BE DONE WITH A map OR multimap
     187        // XXXML: KILL ME!
    184188        /// NSLP object array
    185189        class objectarray {
     
    370374inline void nslp_pdu::set_generic_flags(uint16 f) { generic_flags = f; }
    371375
     376// XXX: We can't be certain to have the right type set when calling
     377// set_specific_flags.  Thus we can't figure if the break flag is set
     378// or not.  There is a lot of special casing for this one in the .cpp
    372379inline void nslp_pdu::set_specific_flags(uint8 f) { specific_flags = f; }
    373380
  • qos-nslp/branches/laier-update/src/nslp_pdu.cpp

    r2181 r2485  
    116116      break;
    117117  } // end switch accept_type
     118
     119#ifdef QOS_NSLP_13
     120  // XXX: hack, hack, hack
     121  switch (t) {
     122        case RESERVE:
     123                break_flag_set = (specific_flags & RESV_FLAG_BREAK);
     124                break;
     125        case QUERY:
     126                break_flag_set = (specific_flags & QUERY_FLAG_BREAK);
     127                break;
     128        case QUERY:
     129                break_flag_set = (specific_flags & RESP_FLAG_BREAK);
     130                break;
     131        default:
     132                break_flag_set = false;
     133  }
     134#endif
    118135
    119136  // decode NSLP objects
     
    280297  // encode header
    281298  msg.encode8(type);
     299#ifdef QOS_NSLP_13
     300  // XXX: hack, hack, hack
     301  if (is_break_flag()) {
     302        switch (type) {
     303        case RESERVE:
     304                specific_flags |= RESV_FLAG_BREAK;
     305                break;
     306        case QUERY:
     307                specific_flags |= QUERY_FLAG_BREAK;
     308                break;
     309        case RESPONSE:
     310                specific_flags |= RESP_FLAG_BREAK;
     311                break;
     312        default:
     313                Log(ERROR_LOG,LOG_NORMAL, "NSLP_pdu", "nslp_pdu::serialize: BREAK flag requested in message of unknown type: " << type);
     314        }
     315  }
     316#endif
    282317  msg.encode8(specific_flags);
    283318  msg.encode16(generic_flags);
     
    449484  q_s_1 = 6;
    450485  q_s_2 = 7;
     486#ifdef QOS_NSLP_13
     487  // XXX: hack, hack, hack
     488  switch (type) {
     489        case RESERVE:
     490                break_flag_set = (specific_flags & RESV_FLAG_BREAK);
     491                break;
     492        case QUERY:
     493                break_flag_set = (specific_flags & QUERY_FLAG_BREAK);
     494                break;
     495        case QUERY:
     496                break_flag_set = (specific_flags & RESP_FLAG_BREAK);
     497                break;
     498        default:
     499                break_flag_set = false;
     500  }
     501#endif
    451502} // end constructor
    452503
     
    459510  specific_flags = n.specific_flags;
    460511  generic_flags = n.generic_flags;
     512#ifdef QOS_NSLP_13
     513  // XXX: hack, hack, hack
     514  switch (type) {
     515        case RESERVE:
     516                break_flag_set = (specific_flags & RESV_FLAG_BREAK);
     517                break;
     518        case QUERY:
     519                break_flag_set = (specific_flags & QUERY_FLAG_BREAK);
     520                break;
     521        case QUERY:
     522                break_flag_set = (specific_flags & RESP_FLAG_BREAK);
     523                break;
     524        default:
     525                break_flag_set = false;
     526  }
     527#endif
    461528} // end copy constructor
    462529
     
    470537  specific_flags = n.specific_flags;
    471538  generic_flags = n.generic_flags;
     539#ifdef QOS_NSLP_13
     540  // XXX: hack, hack, hack
     541  switch (type) {
     542        case RESERVE:
     543                break_flag_set = (specific_flags & RESV_FLAG_BREAK);
     544                break;
     545        case QUERY:
     546                break_flag_set = (specific_flags & QUERY_FLAG_BREAK);
     547                break;
     548        case QUERY:
     549                break_flag_set = (specific_flags & RESP_FLAG_BREAK);
     550                break;
     551        default:
     552                break_flag_set = false;
     553  }
     554#endif
    472555  return *this;
    473556} // end operator=
Note: See TracChangeset for help on using the changeset viewer.