diff options
author | ruibiao <ruibiao@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-10-12 16:30:51 +0000 |
---|---|---|
committer | ruibiao <ruibiao@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-10-12 16:30:51 +0000 |
commit | a5692f93092de6765f3202b19c4abae0b3743c87 (patch) | |
tree | 7398aaadef5768b7bba61447f2128dcdb76d2112 /ace/ATM_QoS.cpp | |
parent | 027abfb756f3368eae031230bc70188cd25c5b89 (diff) | |
download | ATCD-a5692f93092de6765f3202b19c4abae0b3743c87.tar.gz |
ace/ATM_{Addr,Stream,Acceptor,Connector,QoS,Params}.{h,cpp,i}: Added support
for Fore ATM on Windows platform. Enabled when ACE_HAS_ATM and
ACE_HAS_FORE_ATM_WS2 are defined.
Diffstat (limited to 'ace/ATM_QoS.cpp')
-rw-r--r-- | ace/ATM_QoS.cpp | 428 |
1 files changed, 305 insertions, 123 deletions
diff --git a/ace/ATM_QoS.cpp b/ace/ATM_QoS.cpp index c86c661b2d8..747098034ab 100644 --- a/ace/ATM_QoS.cpp +++ b/ace/ATM_QoS.cpp @@ -27,27 +27,147 @@ const int ACE_ATM_QoS::DEFAULT_SELECTOR = 0x0; ACE_ALLOC_HOOK_DEFINE(ACE_ATM_QoS) -void -ACE_ATM_QoS::dump (void) const -{ - ACE_TRACE ("ACE_ATM_QoS::dump"); -} - -void -ACE_ATM_QoS::set_rate (ACE_HANDLE fd, - int rate, - int flags) +ACE_ATM_QoS::ACE_ATM_QoS( int rate ) { - ACE_TRACE ("ACE_ATM_QoS::set_rate"); + ACE_TRACE( "ACE_ATM_QoS::ACE_ATM_QoS" ); #if defined (ACE_HAS_FORE_ATM_WS2) - ACE_UNUSED_ARG (rate); + AAL_PARAMETERS_IE ie_aalparams; + ATM_TRAFFIC_DESCRIPTOR_IE ie_td; + ATM_BROADBAND_BEARER_CAPABILITY_IE ie_bbc; + ATM_QOS_CLASS_IE ie_qos; + Q2931_IE *ie_ptr; + int size; + + // Setting up cbr parameters ... + ie_aalparams.AALType = AALTYPE_5; + ie_aalparams.AALSpecificParameters.AAL5Parameters.ForwardMaxCPCSSDUSize + = 1516; //8096; + ie_aalparams.AALSpecificParameters.AAL5Parameters.BackwardMaxCPCSSDUSize + = 1516; //8096; + ie_aalparams.AALSpecificParameters.AAL5Parameters.Mode = AAL5_MODE_MESSAGE; + ie_aalparams.AALSpecificParameters.AAL5Parameters.SSCSType = AAL5_SSCS_NULL; + + size = sizeof(Q2931_IE_TYPE) + sizeof(ULONG) + sizeof(AAL_PARAMETERS_IE); + + ie_td.Forward.PeakCellRate_CLP0 = SAP_FIELD_ABSENT; + ie_td.Forward.PeakCellRate_CLP01 = rate; + ie_td.Forward.SustainableCellRate_CLP0 = SAP_FIELD_ABSENT; + ie_td.Forward.SustainableCellRate_CLP01 = SAP_FIELD_ABSENT; + ie_td.Forward.MaxBurstSize_CLP0 = SAP_FIELD_ABSENT; + ie_td.Forward.MaxBurstSize_CLP01 = SAP_FIELD_ABSENT; + ie_td.Forward.Tagging = SAP_FIELD_ABSENT; + + ie_td.Backward.PeakCellRate_CLP0 = SAP_FIELD_ABSENT; + ie_td.Backward.PeakCellRate_CLP01 = rate; + ie_td.Backward.SustainableCellRate_CLP0 = SAP_FIELD_ABSENT; + ie_td.Backward.SustainableCellRate_CLP01 = SAP_FIELD_ABSENT; + ie_td.Backward.MaxBurstSize_CLP0 = SAP_FIELD_ABSENT; + ie_td.Backward.MaxBurstSize_CLP01 = SAP_FIELD_ABSENT; + ie_td.Backward.Tagging = SAP_FIELD_ABSENT; + + ie_td.BestEffort = 0; // Note: this must be set to zero for CBR. + + size += sizeof( Q2931_IE_TYPE ) + + sizeof( ULONG ) + + sizeof( ATM_TRAFFIC_DESCRIPTOR_IE ); + + ie_bbc.BearerClass = BCOB_X; + ie_bbc.TrafficType = TT_CBR; + ie_bbc.TimingRequirements = TR_END_TO_END; + ie_bbc.ClippingSusceptability = CLIP_NOT; + ie_bbc.UserPlaneConnectionConfig = UP_P2P; + + size += sizeof( Q2931_IE_TYPE ) + + sizeof( ULONG ) + + sizeof( ATM_BROADBAND_BEARER_CAPABILITY_IE ); + + ie_qos.QOSClassForward = QOS_CLASS1; + ie_qos.QOSClassBackward = QOS_CLASS1; // This may not be really used + // since we do only simplex data xfer. + + size += sizeof(Q2931_IE_TYPE) + sizeof(ULONG) + sizeof(ATM_QOS_CLASS_IE); + + qos_.ProviderSpecific.buf = (char *) ACE_OS::malloc(size); + qos_.ProviderSpecific.len = size; + ACE_OS::memset(qos_.ProviderSpecific.buf, 0, size); + + ie_ptr = (Q2931_IE *) qos_.ProviderSpecific.buf; + ie_ptr->IEType = IE_AALParameters; + ie_ptr->IELength = sizeof( Q2931_IE_TYPE ) + + sizeof( ULONG ) + + sizeof( AAL_PARAMETERS_IE ); + ACE_OS::memcpy(ie_ptr->IE, &ie_aalparams, sizeof(AAL_PARAMETERS_IE)); + + ie_ptr = (Q2931_IE *) ((char *)ie_ptr + ie_ptr->IELength); + ie_ptr->IEType = IE_TrafficDescriptor; + ie_ptr->IELength = sizeof( Q2931_IE_TYPE ) + + sizeof( ULONG ) + + sizeof( ATM_TRAFFIC_DESCRIPTOR_IE ); + ACE_OS::memcpy(ie_ptr->IE, &ie_td, sizeof(ATM_TRAFFIC_DESCRIPTOR_IE)); + + ie_ptr = (Q2931_IE *) ((char *)ie_ptr + ie_ptr->IELength); + ie_ptr->IEType = IE_BroadbandBearerCapability; + ie_ptr->IELength = sizeof( Q2931_IE_TYPE ) + + sizeof( ULONG ) + + sizeof( ATM_BROADBAND_BEARER_CAPABILITY_IE ); + ACE_OS::memcpy(ie_ptr->IE, + &ie_bbc, + sizeof(ATM_BROADBAND_BEARER_CAPABILITY_IE)); + + ie_ptr = (Q2931_IE *) ((char *)ie_ptr + ie_ptr->IELength); + ie_ptr->IEType = IE_QOSClass; + ie_ptr->IELength = sizeof( Q2931_IE_TYPE ) + + sizeof( ULONG ) + + sizeof( ATM_QOS_CLASS_IE ); + ACE_OS::memcpy(ie_ptr->IE, &ie_qos, sizeof(ATM_QOS_CLASS_IE)); + +// qos_.SendingFlowspec.TokenRate = 0xffffffff; +// qos_.SendingFlowspec.TokenBucketSize = 0xffffffff; +// qos_.SendingFlowspec.PeakBandwidth = 0xffffffff; +// qos_.SendingFlowspec.Latency = 0xffffffff; +// qos_.SendingFlowspec.DelayVariation = 0xffffffff; +// qos_.SendingFlowspec.ServiceType = SERVICETYPE_BESTEFFORT; + // This will most probably be ignored by the service provider. +// qos_.SendingFlowspec.MaxSduSize = 0xffffffff; +// qos_.SendingFlowspec.MinimumPolicedSize = 0xffffffff; + +// qos_.ReceivingFlowspec.TokenRate = 0xffffffff; +// qos_.ReceivingFlowspec.TokenBucketSize = 0xffffffff; +// qos_.ReceivingFlowspec.PeakBandwidth = 0xffffffff; +// qos_.ReceivingFlowspec.Latency = 0xffffffff; +// qos_.ReceivingFlowspec.DelayVariation = 0xffffffff; +// qos_.ReceivingFlowspec.ServiceType = SERVICETYPE_BESTEFFORT; + // This will most probably be ignored by the service provider. +// qos_.ReceivingFlowspec.MaxSduSize = 0xffffffff; +// qos_.ReceivingFlowspec.MinimumPolicedSize = 0; + + ACE_Flow_Spec send_fspec( 0xffffffff, + 0xffffffff, + 0xffffffff, + 0xffffffff, + 0xffffffff, + SERVICETYPE_BESTEFFORT, + // This will most probably ignored by SP. + 0xffffffff, + 0xffffffff, + 15, + ACE_DEFAULT_THREAD_PRIORITY ), + recv_fspec( 0xffffffff, + 0xffffffff, + 0xffffffff, + 0xffffffff, + 0xffffffff, + SERVICETYPE_BESTEFFORT, + // This will most probably ignored by SP. + 0xffffffff, + 0, + 15, + ACE_DEFAULT_THREAD_PRIORITY ); + + qos_.sending_flowspec( send_fspec ); + qos_.receiving_flowspec( recv_fspec ); #elif defined (ACE_HAS_FORE_ATM_XTI) - long optlen = 0; - qos_.buf = construct_options(fd, - rate, - flags, - &optlen); - qos_.len = optlen; + ACE_UNUSED_ARG (rate); #else ACE_UNUSED_ARG (rate); #endif /* ACE_HAS_FORE_ATM_WS2 */ @@ -60,111 +180,143 @@ ACE_ATM_QoS::set_cbr_rate (int rate) #if defined (ACE_HAS_FORE_ATM_WS2) AAL_PARAMETERS_IE ie_aalparams; ATM_TRAFFIC_DESCRIPTOR_IE ie_td; - ATM_BROADBAND_BEARER_CAPBILITY_IE ie_bbc; + ATM_BROADBAND_BEARER_CAPABILITY_IE ie_bbc; ATM_QOS_CLASS_IE ie_qos; Q2931_IE *ie_ptr; int size; - ie_aalparams.AALType = AALTYPE_5; - ie_aalparams.AALSpecificParameters.AAL5Parameters.ForwardMaxCPCSSDUSize = - 1516; - ie_aalparams.AALSpecificParameters.AAL5Parameters.BackwardMaxCPCSSDUSize = - 1516; - ie_aalparams.AALSpecificParameters.AAL5Parameters.Mode = AAL5_MODE_MESSAGE; - ie_aalparams.AALSpecificParameters.AAL5Parameters.SSCSType = AAL5_SSCS_NULL; + ACE_OS::printf( "ATM_QoS(set_cbr_rate): set rate to %d c/s\n", rate ); - size = sizeof(Q2931_IE_TYPE) + sizeof(ULONG) + sizeof(AAL_PARAMETERS_IE); + // Setting up cbr parameters ... + ie_aalparams.AALType = AALTYPE_5; + ie_aalparams.AALSpecificParameters.AAL5Parameters.ForwardMaxCPCSSDUSize + = 1516; //8096; + ie_aalparams.AALSpecificParameters.AAL5Parameters.BackwardMaxCPCSSDUSize + = 1516; //8096; + ie_aalparams.AALSpecificParameters.AAL5Parameters.Mode = AAL5_MODE_MESSAGE; + ie_aalparams.AALSpecificParameters.AAL5Parameters.SSCSType = AAL5_SSCS_NULL; - ie_td.Forward.PeakCellRate_CLP0 = SAP_FIELD_ABSENT; - ie_td.Forward.PeakCellRate_CLP01 = cellRate; - ie_td.Forward.SustainableCellRate_CLP0 = SAP_FIELD_ABSENT; - ie_td.Forward.SustainableCellRate_CLP01 = SAP_FIELD_ABSENT; - ie_td.Forward.MaxBurstSize_CLP0 = SAP_FIELD_ABSENT; - ie_td.Forward.MaxBurstSize_CLP01 = SAP_FIELD_ABSENT; - ie_td.Forward.Tagging = SAP_FIELD_ABSENT; - - ie_td.Backward.PeakCellRate_CLP0 = SAP_FIELD_ABSENT; - ie_td.Backward.PeakCellRate_CLP01 = cellRate; - ie_td.Backward.SustainableCellRate_CLP0 = SAP_FIELD_ABSENT; - ie_td.Backward.SustainableCellRate_CLP01 = SAP_FIELD_ABSENT; - ie_td.Backward.MaxBurstSize_CLP0 = SAP_FIELD_ABSENT; - ie_td.Backward.MaxBurstSize_CLP01 = SAP_FIELD_ABSENT; - ie_td.Backward.Tagging = SAP_FIELD_ABSENT; - - ie_td.BestEffort = 0; // Note: this must be set to zero for CBR - - size += - sizeof(Q2931_IE_TYPE) + sizeof(ULONG) + sizeof(ATM_TRAFFIC_DESCRIPTOR_IE); - - ie_bbc.BearerClass = BCOB_X; - ie_bbc.TrafficType = TT_CBR; - ie_bbc.TimingRequirements = TR_END_TO_END; - ie_bbc.ClippingSusceptability = CLIP_NOT; - ie_bbc.UserPlaneConnectionConfig = UP_P2P; - - size += sizeof(Q2931_IE_TYPE) + sizeof(ULONG) - + sizeof(ATM_BROADBAND_BEARER_CAPABILITY_IE); - - ie_qos.QOSClassForward = QOS_CLASS1; - ie_qos.QOSClassBackward = QOS_CLASS1; - - size += sizeof(Q2931_IE_TYPE) + sizeof(ULONG) + sizeof(ATM_QOS_CLASS_IE); - - qos_.ProviderSpecific.buf = (char *) malloc(size); - qos_.ProviderSpecific.len = size; - ACE_OS::memset(qos_.ProviderSpecific.buf, - 0, - size); - - ie_ptr = (Q2931_IE *) qos_.ProviderSpecific.buf; - ie_ptr->IEType = IE_AALParameters; - ie_ptr->IELength = sizeof(Q2931_IE_TYPE) + sizeof(ULONG) - + sizeof(AAL_PARAMETERS_IE); - ACE_OS::memcpy(ie_ptr->IE, - &ie_aalparams, - sizeof(AAL_PARAMETERS_IE)); - - ie_ptr = (Q2931_IE *) ((char *)ie_ptr + ie_ptr->IELength); - ie_ptr->IEType = IE_TrafficDescriptor; - ie_ptr->IELength = - sizeof(Q2931_IE_TYPE) + sizeof(ULONG) + sizeof(ATM_TRAFFIC_DESCRIPTOR_IE); - ACE_OS::memcpy(ie_ptr->IE, - &ie_td, - sizeof(ATM_TRAFFIC_DESCRIPTOR_IE)); - - ie_ptr = (Q2931_IE *) ((char *)ie_ptr + ie_ptr->IELength); - ie_ptr->IEType = IE_BroadbandBearerCapability; - ie_ptr->IELength = sizeof(Q2931_IE_TYPE) + sizeof(ULONG) + - sizeof(ATM_BROADBAND_BEARER_CAPABILITY_IE); - ACE_OS::memcpy(ie_ptr->IE, - &ie_bbc, - sizeof(ATM_BROADBAND_BEARER_CAPABILITY_IE)); + size = sizeof(Q2931_IE_TYPE) + sizeof(ULONG) + sizeof(AAL_PARAMETERS_IE); - ie_ptr = (Q2931_IE *) ((char *)ie_ptr + ie_ptr->IELength); - ie_ptr->IEType = IE_QOSClass; - ie_ptr->IELength = - sizeof(Q2931_IE_TYPE) + sizeof(ULONG) + sizeof(ATM_QOS_CLASS_IE); - ACE_OS::memcpy(ie_ptr->IE, - &ie_qos, - sizeof(ATM_QOS_CLASS_IE)); - - qos_.SendingFlowspec.TokenRate = -1; - qos_.SendingFlowspec.TokenBucketSize = -1; - qos_.SendingFlowspec.PeakBandwidth = -1; - qos_.SendingFlowspec.Latency = -1; - qos_.SendingFlowspec.DelayVariation = -1; - qos_.SendingFlowspec.LevelOfGuarantee = BestEffortService; - // will most probably be ignored by the service provider - qos_.SendingFlowspec.CostOfCall = 0; - - qos_.ReceivingFlowspec.TokenRate = -1; - qos_.ReceivingFlowspec.TokenBucketSize = -1; - qos_.ReceivingFlowspec.PeakBandwidth = -1; - qos_.ReceivingFlowspec.Latency = -1; - qos_.ReceivingFlowspec.DelayVariation = -1; - qos_.ReceivingFlowspec.LevelOfGuarantee = BestEffortService; - // will most probably be ignored by the service provider - qos_.ReceivingFlowspec.CostOfCall = 0; + ie_td.Forward.PeakCellRate_CLP0 = SAP_FIELD_ABSENT; + ie_td.Forward.PeakCellRate_CLP01 = rate; + ie_td.Forward.SustainableCellRate_CLP0 = SAP_FIELD_ABSENT; + ie_td.Forward.SustainableCellRate_CLP01 = SAP_FIELD_ABSENT; + ie_td.Forward.MaxBurstSize_CLP0 = SAP_FIELD_ABSENT; + ie_td.Forward.MaxBurstSize_CLP01 = SAP_FIELD_ABSENT; + ie_td.Forward.Tagging = SAP_FIELD_ABSENT; + + ie_td.Backward.PeakCellRate_CLP0 = SAP_FIELD_ABSENT; + ie_td.Backward.PeakCellRate_CLP01 = rate; + ie_td.Backward.SustainableCellRate_CLP0 = SAP_FIELD_ABSENT; + ie_td.Backward.SustainableCellRate_CLP01 = SAP_FIELD_ABSENT; + ie_td.Backward.MaxBurstSize_CLP0 = SAP_FIELD_ABSENT; + ie_td.Backward.MaxBurstSize_CLP01 = SAP_FIELD_ABSENT; + ie_td.Backward.Tagging = SAP_FIELD_ABSENT; + + ie_td.BestEffort = 0; // Note: this must be set to zero for CBR. + + size += sizeof( Q2931_IE_TYPE ) + + sizeof( ULONG ) + + sizeof( ATM_TRAFFIC_DESCRIPTOR_IE ); + + ie_bbc.BearerClass = BCOB_X; + ie_bbc.TrafficType = TT_CBR; + ie_bbc.TimingRequirements = TR_END_TO_END; + ie_bbc.ClippingSusceptability = CLIP_NOT; + ie_bbc.UserPlaneConnectionConfig = UP_P2P; + + size += sizeof(Q2931_IE_TYPE) + + sizeof(ULONG) + + sizeof(ATM_BROADBAND_BEARER_CAPABILITY_IE); + + ie_qos.QOSClassForward = QOS_CLASS1; + ie_qos.QOSClassBackward = QOS_CLASS1; // This may not be really used + // since we only simplex data xfer. + + size += sizeof(Q2931_IE_TYPE) + sizeof(ULONG) + sizeof(ATM_QOS_CLASS_IE); + + qos_.ProviderSpecific.buf = (char *) ACE_OS::malloc(size); + qos_.ProviderSpecific.len = size; + ACE_OS::memset(qos_.ProviderSpecific.buf, 0, size); + + ie_ptr = (Q2931_IE *) qos_.ProviderSpecific.buf; + ie_ptr->IEType = IE_AALParameters; + ie_ptr->IELength + = sizeof( Q2931_IE_TYPE ) + + sizeof( ULONG ) + + sizeof( AAL_PARAMETERS_IE ); + ACE_OS::memcpy(ie_ptr->IE, &ie_aalparams, sizeof(AAL_PARAMETERS_IE)); + + ie_ptr = (Q2931_IE *) ((char *)ie_ptr + ie_ptr->IELength); + ie_ptr->IEType = IE_TrafficDescriptor; + ie_ptr->IELength + = sizeof( Q2931_IE_TYPE ) + + sizeof( ULONG ) + + sizeof( ATM_TRAFFIC_DESCRIPTOR_IE ); + ACE_OS::memcpy(ie_ptr->IE, &ie_td, sizeof(ATM_TRAFFIC_DESCRIPTOR_IE)); + + ie_ptr = (Q2931_IE *) ((char *)ie_ptr + ie_ptr->IELength); + ie_ptr->IEType = IE_BroadbandBearerCapability; + ie_ptr->IELength + = sizeof( Q2931_IE_TYPE ) + + sizeof( ULONG ) + + sizeof( ATM_BROADBAND_BEARER_CAPABILITY_IE ); + ACE_OS::memcpy( ie_ptr->IE, + &ie_bbc, + sizeof( ATM_BROADBAND_BEARER_CAPABILITY_IE )); + + ie_ptr = (Q2931_IE *) ((char *)ie_ptr + ie_ptr->IELength); + ie_ptr->IEType = IE_QOSClass; + ie_ptr->IELength + = sizeof(Q2931_IE_TYPE) + sizeof(ULONG) + sizeof(ATM_QOS_CLASS_IE); + ACE_OS::memcpy(ie_ptr->IE, &ie_qos, sizeof(ATM_QOS_CLASS_IE)); + +// qos_.SendingFlowspec.TokenRate = 0xffffffff; +// qos_.SendingFlowspec.TokenBucketSize = 0xffffffff; +// qos_.SendingFlowspec.PeakBandwidth = 0xffffffff; +// qos_.SendingFlowspec.Latency = 0xffffffff; +// qos_.SendingFlowspec.DelayVariation = 0xffffffff; +// qos_.SendingFlowspec.ServiceType = SERVICETYPE_BESTEFFORT; + // This will most probably be ignored by the service provider. +// qos_.SendingFlowspec.MaxSduSize = 0xffffffff; +// qos_.SendingFlowspec.MinimumPolicedSize = 0xffffffff; + +// qos_.ReceivingFlowspec.TokenRate = 0xffffffff; +// qos_.ReceivingFlowspec.TokenBucketSize = 0xffffffff; +// qos_.ReceivingFlowspec.PeakBandwidth = 0xffffffff; +// qos_.ReceivingFlowspec.Latency = 0xffffffff; +// qos_.ReceivingFlowspec.DelayVariation = 0xffffffff; +// qos_.ReceivingFlowspec.ServiceType = SERVICETYPE_BESTEFFORT; + // This will most probably be ignored by the service provider. +// qos_.ReceivingFlowspec.MaxSduSize = 0xffffffff; +// qos_.ReceivingFlowspec.MinimumPolicedSize = 0; + + ACE_Flow_Spec send_fspec( 0xffffffff, + 0xffffffff, + 0xffffffff, + 0xffffffff, + 0xffffffff, + SERVICETYPE_BESTEFFORT, + // This will most probably ignored by SP. + 0xffffffff, + 0xffffffff, + 15, + ACE_DEFAULT_THREAD_PRIORITY ), + recv_fspec( 0xffffffff, + 0xffffffff, + 0xffffffff, + 0xffffffff, + 0xffffffff, + SERVICETYPE_BESTEFFORT, + // This will most probably ignored by SP. + 0xffffffff, + 0, + 15, + ACE_DEFAULT_THREAD_PRIORITY ); + + qos_.sending_flowspec( send_fspec ); + qos_.receiving_flowspec( recv_fspec ); #elif defined (ACE_HAS_FORE_ATM_XTI) ACE_UNUSED_ARG (rate); #else @@ -172,6 +324,35 @@ ACE_ATM_QoS::set_cbr_rate (int rate) #endif /* ACE_HAS_FORE_ATM_WS2 */ } +void +ACE_ATM_QoS::dump (void) const +{ + ACE_TRACE ("ACE_ATM_QoS::dump"); +} + +void +ACE_ATM_QoS::set_rate (ACE_HANDLE fd, + int rate, + int flags) +{ + ACE_TRACE ("ACE_ATM_QoS::set_rate"); +#if defined (ACE_HAS_FORE_ATM_WS2) + set_cbr_rate( rate ); + + ACE_UNUSED_ARG( fd ); + ACE_UNUSED_ARG( flags ); +#elif defined (ACE_HAS_FORE_ATM_XTI) + long optlen = 0; + qos_.buf = construct_options(fd, + rate, + flags, + &optlen); + qos_.len = optlen; +#else + ACE_UNUSED_ARG (rate); +#endif /* ACE_HAS_FORE_ATM_WS2 */ +} + char* ACE_ATM_QoS::construct_options (ACE_HANDLE fd, int rate, @@ -181,7 +362,7 @@ ACE_ATM_QoS::construct_options (ACE_HANDLE fd, #if defined (ACE_HAS_FORE_ATM_WS2) ACE_UNUSED_ARG (fd); ACE_UNUSED_ARG (rate); - ACE_UNUSED_ARG (flag); + ACE_UNUSED_ARG (flags); ACE_UNUSED_ARG (len); return (0); #elif defined (ACE_HAS_FORE_ATM_XTI) @@ -195,13 +376,13 @@ ACE_ATM_QoS::construct_options (ACE_HANDLE fd, ACE_OS::t_error ("t_getinfo"); return 0; } - - buf = (char *) ACE_OS::malloc (info.options); - if (buf == 0) + buf = (char *) ACE_OS::malloc (info.options); + + if (buf == 0) ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT ("Unable to allocate %ld bytes for options\n"), - info.options), + ASYS_TEXT ("Unable to allocate %ld bytes for options\n"), + info.options), 0); popt = (struct t_opthdr *) buf; @@ -344,7 +525,7 @@ ACE_ATM_QoS::construct_options (ACE_HANDLE fd, popt = T_OPT_NEXTHDR (buf, info.options, popt); } - // return actual size of options and option buffer to user + // Return actual size of options and option buffer to user. *len = (char *) popt - buf; return buf; @@ -358,3 +539,4 @@ ACE_ATM_QoS::construct_options (ACE_HANDLE fd, } #endif /* ACE_HAS_ATM */ + |