fix: adjustment directory structure
This commit is contained in:
575
proxy/Nrestful/decode_udp.go
Normal file
575
proxy/Nrestful/decode_udp.go
Normal file
@@ -0,0 +1,575 @@
|
||||
package Nrestful
|
||||
|
||||
import (
|
||||
"time"
|
||||
"encoding/binary"
|
||||
_ "strings"
|
||||
"strconv"
|
||||
|
||||
l4g "proxy/logger"//"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
func decode_authcode_rsp(buf []byte, msglen int, rsp *RestRsp) int {
|
||||
var offset int = 0
|
||||
var tag byte = 0
|
||||
var vallen byte = 0
|
||||
var result byte = 1
|
||||
|
||||
for {
|
||||
if offset >= msglen {
|
||||
break
|
||||
}
|
||||
tag = buf[offset];
|
||||
offset++
|
||||
vallen = buf[offset];
|
||||
offset++
|
||||
|
||||
switch tag {
|
||||
case IE_SRC_REF:
|
||||
rsp.Src_id = binary.BigEndian.Uint16(buf[offset:offset+2])
|
||||
case IE_DST_REF:
|
||||
rsp.Dst_id = binary.BigEndian.Uint16(buf[offset:offset+2])
|
||||
case IE_RESULT:
|
||||
result = buf[offset]
|
||||
if result == 0 {
|
||||
rsp.AuthCodeRsp.Code = strconv.Itoa(int(ERRCODE_SUCCESS))
|
||||
rsp.AuthCodeRsp.Message = Rest_proxy_errcodemsg(ERRCODE_SUCCESS)
|
||||
}
|
||||
case IE_ERROR_CODE:
|
||||
err_code := binary.BigEndian.Uint32(buf[offset:offset+4])
|
||||
rsp.AuthCodeRsp.Code = strconv.Itoa(int(err_code))
|
||||
rsp.AuthCodeRsp.Message = Rest_proxy_errcodemsg(err_code)
|
||||
default:
|
||||
}
|
||||
offset += int(vallen)
|
||||
}
|
||||
|
||||
l4g.RestLog.Debugf("decode_authcode_rsp: %#v", rsp.AuthCodeRsp)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
func decode_query_userData_rsp(buf []byte, msglen int, rsp *RestRsp) int {
|
||||
var offset int = 0
|
||||
var tag byte = 0
|
||||
var vallen byte = 0
|
||||
var result byte = 1
|
||||
|
||||
for {
|
||||
if offset >= msglen {
|
||||
break
|
||||
}
|
||||
tag = buf[offset];
|
||||
offset++
|
||||
vallen = buf[offset];
|
||||
offset++
|
||||
|
||||
switch tag {
|
||||
case IE_SRC_REF:
|
||||
rsp.Src_id = binary.BigEndian.Uint16(buf[offset:offset+2])
|
||||
case IE_DST_REF:
|
||||
rsp.Dst_id = binary.BigEndian.Uint16(buf[offset:offset+2])
|
||||
case IE_RESULT:
|
||||
result = buf[offset]
|
||||
if result == 0 {
|
||||
rsp.QueryUserDataRsp.Code = strconv.Itoa(int(ERRCODE_SUCCESS))
|
||||
rsp.QueryUserDataRsp.Message = Rest_proxy_errcodemsg(ERRCODE_SUCCESS)
|
||||
}
|
||||
case IE_ERROR_CODE:
|
||||
err_code := binary.BigEndian.Uint32(buf[offset:offset+4])
|
||||
rsp.QueryUserDataRsp.Code = strconv.Itoa(int(err_code))
|
||||
rsp.QueryUserDataRsp.Message = Rest_proxy_errcodemsg(err_code)
|
||||
case IE_MSISDN:
|
||||
rsp.QueryUserDataRsp.TelNumber = string(buf[offset:offset+int(vallen)])
|
||||
case IE_REMARK:
|
||||
rsp.QueryUserDataRsp.Remark = string(buf[offset:offset+int(vallen)])
|
||||
case IE_GROUP_NAME:
|
||||
rsp.QueryUserDataRsp.UserGroupName = string(buf[offset:offset+int(vallen)])
|
||||
case IE_STATUS:
|
||||
rsp.QueryUserDataRsp.Status = strconv.Itoa(int(buf[offset]))
|
||||
case IE_BALANCE:
|
||||
rsp.QueryUserDataRsp.Balance = strconv.Itoa(int(binary.BigEndian.Uint32(buf[offset:offset+4])))
|
||||
case IE_EXPIRY_TIME:
|
||||
tm := time.Unix(int64(binary.BigEndian.Uint64(buf[offset:offset+8])), 0)
|
||||
rsp.QueryUserDataRsp.ExpireDate = tm.Format("2006-01-02 15:04:05")
|
||||
case IE_REMAIN_MO_VOICE_MIN:
|
||||
rsp.QueryUserDataRsp.RemainMoVoiceMinute = strconv.Itoa(int(binary.BigEndian.Uint32(buf[offset:offset+4])))
|
||||
case IE_REMAIN_MT_VOICE_MIN:
|
||||
rsp.QueryUserDataRsp.RemainMtVoiceMinute = strconv.Itoa(int(binary.BigEndian.Uint32(buf[offset:offset+4])))
|
||||
case IE_REMAIN_SMS_NUM:
|
||||
rsp.QueryUserDataRsp.RemainSmsVolume = strconv.Itoa(int(binary.BigEndian.Uint32(buf[offset:offset+4])))
|
||||
case IE_REMAIN_DATA_VOL_MB:
|
||||
rsp.QueryUserDataRsp.RemainDataVolume = strconv.Itoa(int(binary.BigEndian.Uint32(buf[offset:offset+4])))
|
||||
default:
|
||||
}
|
||||
offset += int(vallen)
|
||||
}
|
||||
|
||||
l4g.RestLog.Debugf("decode_query_userData_rsp: %#v", rsp.QueryUserDataRsp)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
func decode_bundleSubs_rsp(buf []byte, msglen int, rsp *RestRsp) int {
|
||||
var offset int = 0
|
||||
var tag byte = 0
|
||||
var vallen byte = 0
|
||||
var result byte = 1
|
||||
|
||||
for {
|
||||
if offset >= msglen {
|
||||
break
|
||||
}
|
||||
tag = buf[offset];
|
||||
offset++
|
||||
vallen = buf[offset];
|
||||
offset++
|
||||
|
||||
switch tag {
|
||||
case IE_SRC_REF:
|
||||
rsp.Src_id = binary.BigEndian.Uint16(buf[offset:offset+2])
|
||||
case IE_DST_REF:
|
||||
rsp.Dst_id = binary.BigEndian.Uint16(buf[offset:offset+2])
|
||||
case IE_RESULT:
|
||||
result = buf[offset]
|
||||
if result == 0 {
|
||||
rsp.BundleSubsRsp.Code = strconv.Itoa(int(ERRCODE_SUCCESS))
|
||||
rsp.BundleSubsRsp.Message = Rest_proxy_errcodemsg(ERRCODE_SUCCESS)
|
||||
}
|
||||
case IE_ERROR_CODE:
|
||||
err_code := binary.BigEndian.Uint32(buf[offset:offset+4])
|
||||
rsp.BundleSubsRsp.Code = strconv.Itoa(int(err_code))
|
||||
rsp.BundleSubsRsp.Message = Rest_proxy_errcodemsg(err_code)
|
||||
default:
|
||||
}
|
||||
offset += int(vallen)
|
||||
}
|
||||
|
||||
l4g.RestLog.Debugf("decode_bundleSubs_rsp: %#v", rsp.BundleSubsRsp)
|
||||
return 0
|
||||
}
|
||||
|
||||
func decode_query_balance_rsp(buf []byte, msglen int, rsp *RestRsp) int {
|
||||
var offset int = 0
|
||||
var tag byte = 0
|
||||
var vallen byte = 0
|
||||
var result byte = 1
|
||||
|
||||
for {
|
||||
if offset >= msglen {
|
||||
break
|
||||
}
|
||||
tag = buf[offset];
|
||||
offset++
|
||||
vallen = buf[offset];
|
||||
offset++
|
||||
|
||||
switch tag {
|
||||
case IE_SRC_REF:
|
||||
rsp.Src_id = binary.BigEndian.Uint16(buf[offset:offset+2])
|
||||
case IE_DST_REF:
|
||||
rsp.Dst_id = binary.BigEndian.Uint16(buf[offset:offset+2])
|
||||
case IE_RESULT:
|
||||
result = buf[offset]
|
||||
if result == 0 {
|
||||
rsp.QueryBalanceRsp.Code = strconv.Itoa(int(ERRCODE_SUCCESS))
|
||||
rsp.QueryBalanceRsp.Message = Rest_proxy_errcodemsg(ERRCODE_SUCCESS)
|
||||
}
|
||||
case IE_ERROR_CODE:
|
||||
err_code := binary.BigEndian.Uint32(buf[offset:offset+4])
|
||||
rsp.QueryBalanceRsp.Code = strconv.Itoa(int(err_code))
|
||||
rsp.QueryBalanceRsp.Message = Rest_proxy_errcodemsg(err_code)
|
||||
case IE_STATUS:
|
||||
rsp.QueryBalanceRsp.Status = strconv.Itoa(int(buf[offset]))
|
||||
case IE_BALANCE:
|
||||
rsp.QueryBalanceRsp.Balance = strconv.Itoa(int(binary.BigEndian.Uint32(buf[offset:offset+4])))
|
||||
case IE_MO_EXPIRY:
|
||||
tm := time.Unix(int64(binary.BigEndian.Uint32(buf[offset:offset+4])), 0)
|
||||
rsp.QueryBalanceRsp.ExpireDate = tm.Format("2006-01-02 15:04:05")
|
||||
default:
|
||||
}
|
||||
offset += int(vallen)
|
||||
}
|
||||
|
||||
l4g.RestLog.Debugf("decode_query_balance_rsp: %#v", rsp.QueryBalanceRsp)
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
func decode_recharge_rsp(buf []byte, msglen int, rsp *RestRsp) int {
|
||||
var offset int = 0
|
||||
var tag byte = 0
|
||||
var vallen byte = 0
|
||||
var result byte = 1
|
||||
|
||||
for {
|
||||
if offset >= msglen {
|
||||
break
|
||||
}
|
||||
tag = buf[offset];
|
||||
offset++
|
||||
vallen = buf[offset];
|
||||
offset++
|
||||
|
||||
switch tag {
|
||||
case IE_SRC_REF:
|
||||
rsp.Src_id = binary.BigEndian.Uint16(buf[offset:offset+2])
|
||||
case IE_DST_REF:
|
||||
rsp.Dst_id = binary.BigEndian.Uint16(buf[offset:offset+2])
|
||||
case IE_RESULT:
|
||||
result = buf[offset]
|
||||
if result == 0 {
|
||||
rsp.RechargeRsp.Code = strconv.Itoa(int(ERRCODE_SUCCESS))
|
||||
rsp.RechargeRsp.Message = Rest_proxy_errcodemsg(ERRCODE_SUCCESS)
|
||||
}
|
||||
case IE_ERROR_CODE:
|
||||
var err_code uint32
|
||||
if vallen == 1 {
|
||||
err_code = uint32(buf[offset])
|
||||
} else {
|
||||
err_code = binary.BigEndian.Uint32(buf[offset:offset+4])
|
||||
}
|
||||
|
||||
rsp.RechargeRsp.Code = strconv.Itoa(int(err_code))
|
||||
rsp.RechargeRsp.Message = Rest_proxy_errcodemsg(err_code)
|
||||
case IE_STATUS:
|
||||
rsp.RechargeRsp.Status = strconv.Itoa(int(buf[offset]))
|
||||
case IE_BALANCE:
|
||||
rsp.RechargeRsp.Balance = strconv.Itoa(int(binary.BigEndian.Uint32(buf[offset:offset+4])))
|
||||
case IE_MO_EXPIRY:
|
||||
tm := time.Unix(int64(binary.BigEndian.Uint32(buf[offset:offset+4])), 0)
|
||||
rsp.RechargeRsp.ExpiredTimestamp = tm.Format("2006-01-02 15:04:05")
|
||||
default:
|
||||
}
|
||||
offset += int(vallen)
|
||||
}
|
||||
|
||||
l4g.RestLog.Debugf("decode_recharge_rsp: %#v", rsp.RechargeRsp)
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
func decode_transfer_rsp(buf []byte, msglen int, rsp *RestRsp) int {
|
||||
var offset int = 0
|
||||
var tag byte = 0
|
||||
var vallen byte = 0
|
||||
var result byte = 1
|
||||
|
||||
for {
|
||||
if offset >= msglen {
|
||||
break
|
||||
}
|
||||
tag = buf[offset];
|
||||
offset++
|
||||
vallen = buf[offset];
|
||||
offset++
|
||||
|
||||
switch tag {
|
||||
case IE_SRC_REF:
|
||||
rsp.Src_id = binary.BigEndian.Uint16(buf[offset:offset+2])
|
||||
case IE_DST_REF:
|
||||
rsp.Dst_id = binary.BigEndian.Uint16(buf[offset:offset+2])
|
||||
case IE_RESULT:
|
||||
result = buf[offset]
|
||||
if result == 0 {
|
||||
rsp.TransferRsp.Code = strconv.Itoa(int(ERRCODE_SUCCESS))
|
||||
rsp.TransferRsp.Message = Rest_proxy_errcodemsg(ERRCODE_SUCCESS)
|
||||
}
|
||||
case IE_ERROR_CODE:
|
||||
var err_code uint32
|
||||
if vallen == 1 {
|
||||
err_code = uint32(buf[offset])
|
||||
} else {
|
||||
err_code = binary.BigEndian.Uint32(buf[offset:offset+4])
|
||||
}
|
||||
|
||||
rsp.TransferRsp.Code = strconv.Itoa(int(err_code))
|
||||
rsp.TransferRsp.Message = Rest_proxy_errcodemsg(err_code)
|
||||
case IE_AMOUNT:
|
||||
rsp.TransferRsp.Balance = strconv.Itoa(int(binary.BigEndian.Uint32(buf[offset:offset+4])))
|
||||
default:
|
||||
}
|
||||
offset += int(vallen)
|
||||
}
|
||||
|
||||
l4g.RestLog.Debugf("decode_transfer_rsp: %#v", rsp.TransferRsp)
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
func decode_create_acct_rsp(buf []byte, msglen int, rsp *RestRsp) int {
|
||||
var offset int = 0
|
||||
var tag byte = 0
|
||||
var vallen byte = 0
|
||||
var result byte = 1
|
||||
|
||||
for {
|
||||
if offset >= msglen {
|
||||
break
|
||||
}
|
||||
tag = buf[offset];
|
||||
offset++
|
||||
vallen = buf[offset];
|
||||
offset++
|
||||
|
||||
switch tag {
|
||||
case IE_SRC_REF:
|
||||
rsp.Src_id = binary.BigEndian.Uint16(buf[offset:offset+2])
|
||||
case IE_DST_REF:
|
||||
rsp.Dst_id = binary.BigEndian.Uint16(buf[offset:offset+2])
|
||||
case IE_RESULT:
|
||||
result = buf[offset]
|
||||
if result == 0 {
|
||||
rsp.CreateAccountRsp.Code = strconv.Itoa(int(ERRCODE_SUCCESS))
|
||||
rsp.CreateAccountRsp.Message = Rest_proxy_errcodemsg(ERRCODE_SUCCESS)
|
||||
}
|
||||
case IE_ERROR_CODE:
|
||||
var err_code uint32
|
||||
if vallen == 1 {
|
||||
err_code = uint32(buf[offset])
|
||||
} else {
|
||||
err_code = binary.BigEndian.Uint32(buf[offset:offset+4])
|
||||
}
|
||||
|
||||
rsp.CreateAccountRsp.Code = strconv.Itoa(int(err_code))
|
||||
rsp.CreateAccountRsp.Message = Rest_proxy_errcodemsg(err_code)
|
||||
default:
|
||||
}
|
||||
offset += int(vallen)
|
||||
}
|
||||
|
||||
l4g.RestLog.Debugf("decode_create_acct_rsp: %#v", rsp.CreateAccountRsp)
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
func decode_update_subs_req(buf []byte, msglen int, rsp *RestRsp) int {
|
||||
var offset int = 0
|
||||
var tag byte = 0
|
||||
var vallen byte = 0
|
||||
|
||||
rsp.UpdateSubsReq.OptFlag = 0
|
||||
for {
|
||||
if offset >= msglen {
|
||||
break
|
||||
}
|
||||
tag = buf[offset]
|
||||
offset++
|
||||
vallen = buf[offset]
|
||||
offset++
|
||||
|
||||
switch tag {
|
||||
case IE_SRC_REF:
|
||||
rsp.Src_id = binary.BigEndian.Uint16(buf[offset:offset+2])
|
||||
case IE_DST_REF:
|
||||
rsp.Dst_id = binary.BigEndian.Uint16(buf[offset:offset+2])
|
||||
case IE_MSISDN:
|
||||
rsp.UpdateSubsReq.TelNumber = string(buf[offset:offset+int(vallen)])
|
||||
case IE_ACCOUNT_ID:
|
||||
rsp.UpdateSubsReq.AccountIdU32 = binary.BigEndian.Uint32(buf[offset:offset+4])
|
||||
case IE_STATUS:
|
||||
rsp.UpdateSubsReq.StatusU8 = buf[offset]
|
||||
rsp.UpdateSubsReq.OptFlag |= 0x01
|
||||
case IE_BALANCE:
|
||||
rsp.UpdateSubsReq.BalanceU32 = binary.BigEndian.Uint32(buf[offset:offset+4])
|
||||
rsp.UpdateSubsReq.OptFlag |= 0x02
|
||||
case IE_EXPIRY_TIME:
|
||||
rsp.UpdateSubsReq.ExpDateU32 = binary.BigEndian.Uint32(buf[offset:offset+4])
|
||||
rsp.UpdateSubsReq.OptFlag |= 0x04
|
||||
case IE_PLAN_ID:
|
||||
rsp.UpdateSubsReq.PackageIdU32 = binary.BigEndian.Uint32(buf[offset:offset+4])
|
||||
rsp.UpdateSubsReq.OptFlag |= 0x08
|
||||
case IE_RENT_CHARGE:
|
||||
rsp.UpdateSubsReq.RentChargeU32 = binary.BigEndian.Uint32(buf[offset:offset+4])
|
||||
rsp.UpdateSubsReq.OptFlag |= 0x10
|
||||
case IE_VAS_CUG_STATUS:
|
||||
rsp.UpdateSubsReq.VasCugStatusU8 = buf[offset]
|
||||
rsp.UpdateSubsReq.OptFlag |= 0x20
|
||||
default:
|
||||
}
|
||||
offset += int(vallen)
|
||||
}
|
||||
|
||||
l4g.RestLog.Debugf("decode_update_subs_req: %#v", rsp.UpdateSubsReq)
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
func decode_update_subs_rsp(buf []byte, msglen int, rsp *RestRsp) int {
|
||||
var offset int = 0
|
||||
var tag byte = 0
|
||||
var vallen byte = 0
|
||||
var result byte = 1
|
||||
|
||||
for {
|
||||
if offset >= msglen {
|
||||
break
|
||||
}
|
||||
tag = buf[offset];
|
||||
offset++
|
||||
vallen = buf[offset];
|
||||
offset++
|
||||
|
||||
switch tag {
|
||||
case IE_SRC_REF:
|
||||
rsp.Src_id = binary.BigEndian.Uint16(buf[offset:offset+2])
|
||||
case IE_DST_REF:
|
||||
rsp.Dst_id = binary.BigEndian.Uint16(buf[offset:offset+2])
|
||||
case IE_RESULT:
|
||||
result = buf[offset]
|
||||
if result == 0 {
|
||||
rsp.UpdateSubsRsp.Code = strconv.Itoa(int(ERRCODE_SUCCESS))
|
||||
rsp.UpdateSubsRsp.Message = Rest_proxy_errcodemsg(ERRCODE_SUCCESS)
|
||||
}
|
||||
case IE_ERROR_CODE:
|
||||
var err_code uint32
|
||||
if vallen == 1 {
|
||||
err_code = uint32(buf[offset])
|
||||
} else {
|
||||
err_code = binary.BigEndian.Uint32(buf[offset:offset+4])
|
||||
}
|
||||
|
||||
rsp.UpdateSubsRsp.Code = strconv.Itoa(int(err_code))
|
||||
rsp.UpdateSubsRsp.Message = Rest_proxy_errcodemsg(err_code)
|
||||
default:
|
||||
}
|
||||
offset += int(vallen)
|
||||
}
|
||||
|
||||
l4g.RestLog.Debugf("decode_update_subs_rsp: %#v", rsp.UpdateSubsRsp)
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
func decode_delete_subs_rsp(buf []byte, msglen int, rsp *RestRsp) int {
|
||||
var offset int = 0
|
||||
var tag byte = 0
|
||||
var vallen byte = 0
|
||||
var result byte = 1
|
||||
|
||||
for {
|
||||
if offset >= msglen {
|
||||
break
|
||||
}
|
||||
tag = buf[offset]
|
||||
offset++
|
||||
vallen = buf[offset]
|
||||
offset++
|
||||
|
||||
switch tag {
|
||||
case IE_SRC_REF:
|
||||
rsp.Src_id = binary.BigEndian.Uint16(buf[offset:offset+2])
|
||||
case IE_DST_REF:
|
||||
rsp.Dst_id = binary.BigEndian.Uint16(buf[offset:offset+2])
|
||||
case IE_RESULT:
|
||||
result = buf[offset]
|
||||
rsp.DeleteSubsRsp.Result = result
|
||||
if result == 0 {
|
||||
rsp.DeleteSubsRsp.Code = strconv.Itoa(int(ERRCODE_SUCCESS))
|
||||
rsp.DeleteSubsRsp.Message = Rest_proxy_errcodemsg(ERRCODE_SUCCESS)
|
||||
}
|
||||
case IE_ERROR_CODE:
|
||||
var err_code uint32
|
||||
if vallen == 1 {
|
||||
err_code = uint32(buf[offset])
|
||||
} else {
|
||||
err_code = binary.BigEndian.Uint32(buf[offset:offset+4])
|
||||
}
|
||||
|
||||
rsp.DeleteSubsRsp.ErrorCode = err_code
|
||||
rsp.DeleteSubsRsp.Code = strconv.Itoa(int(err_code))
|
||||
rsp.DeleteSubsRsp.Message = Rest_proxy_errcodemsg(err_code)
|
||||
default:
|
||||
}
|
||||
offset += int(vallen)
|
||||
}
|
||||
|
||||
l4g.RestLog.Debugf("decode_update_subs_rsp: %#v", rsp.UpdateSubsRsp)
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
func decodeUpdateBundleUsageReq(buf []byte, msglen int, rsp *RestRsp) int {
|
||||
var offset int = 0
|
||||
var tag byte = 0
|
||||
var vallen byte = 0
|
||||
|
||||
for {
|
||||
if offset >= msglen {
|
||||
break
|
||||
}
|
||||
tag = buf[offset]
|
||||
offset++
|
||||
vallen = buf[offset]
|
||||
offset++
|
||||
|
||||
switch tag {
|
||||
case IE_SRC_REF:
|
||||
rsp.Src_id = binary.BigEndian.Uint16(buf[offset:offset+2])
|
||||
case IE_DST_REF:
|
||||
rsp.Dst_id = binary.BigEndian.Uint16(buf[offset:offset+2])
|
||||
case IE_MSISDN:
|
||||
rsp.UpdateBundleUsageReq.Msisdn = string(buf[offset:offset+int(vallen)])
|
||||
case IE_SERVICE_TYPE:
|
||||
rsp.UpdateBundleUsageReq.ServiceType = buf[offset]
|
||||
case IE_ACCOUNT_ID:
|
||||
rsp.UpdateBundleUsageReq.AccountId = binary.BigEndian.Uint32(buf[offset:offset+4])
|
||||
case IE_PLAN_ID:
|
||||
rsp.UpdateBundleUsageReq.PlanId = binary.BigEndian.Uint32(buf[offset:offset+4])
|
||||
case IE_BUNDLE_ID:
|
||||
rsp.UpdateBundleUsageReq.BundleId = binary.BigEndian.Uint32(buf[offset:offset+4])
|
||||
case IE_PLAN_VALUE:
|
||||
rsp.UpdateBundleUsageReq.PlanValue = binary.BigEndian.Uint64(buf[offset:offset+8])
|
||||
case IE_PLAN_USED_VALUE:
|
||||
rsp.UpdateBundleUsageReq.PlanUsedValue = binary.BigEndian.Uint64(buf[offset:offset+8])
|
||||
case IE_SESS_UPDATE_TIME:
|
||||
rsp.UpdateBundleUsageReq.SessUpdateTime = binary.BigEndian.Uint32(buf[offset:offset+4])
|
||||
case IE_PLAN_VALUE_ADD_THIS_TIME:
|
||||
rsp.UpdateBundleUsageReq.PlanValueAddThisTime = binary.BigEndian.Uint64(buf[offset:offset+8])
|
||||
default:
|
||||
}
|
||||
offset += int(vallen)
|
||||
}
|
||||
|
||||
l4g.RestLog.Debugf("decodeUpdateBundleUsageReq: %#v", rsp.UpdateSubsRsp)
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
func Decode_udp_msg(buf []byte, msglen int, rsp *RestRsp) int {
|
||||
var offset int = 0
|
||||
|
||||
if msglen <= 9 {
|
||||
return -1
|
||||
}
|
||||
|
||||
rsp.MsgType = buf[offset]
|
||||
offset++
|
||||
switch (rsp.MsgType) {
|
||||
case REST_SEND_AUTHCODE_RSP:
|
||||
return decode_authcode_rsp(buf[1:], msglen-1, rsp)
|
||||
case REST_QUERY_USERDATA_RSP:
|
||||
return decode_query_userData_rsp(buf[1:], msglen-1, rsp)
|
||||
case REST_BUNDLE_SUBS_RSP:
|
||||
return decode_bundleSubs_rsp(buf[1:], msglen-1, rsp)
|
||||
case REST_RECHARGE_RSP:
|
||||
return decode_recharge_rsp(buf[1:], msglen-1, rsp)
|
||||
case REST_TRANSFER_RSP:
|
||||
return decode_transfer_rsp(buf[1:], msglen-1, rsp)
|
||||
case REST_QUERY_BALANCE_RSP:
|
||||
return decode_query_balance_rsp(buf[1:], msglen-1, rsp)
|
||||
case REST_CRM_CREATE_ACCT_RES:
|
||||
return decode_create_acct_rsp(buf[1:], msglen-1, rsp)
|
||||
case REST_CRM_UPDATE_SUBS_REQ:
|
||||
return decode_update_subs_req(buf[1:], msglen-1, rsp)
|
||||
case REST_CRM_UPDATE_SUBS_RES:
|
||||
return decode_update_subs_rsp(buf[1:], msglen-1, rsp)
|
||||
case REST_CRM_DELETE_SUBS_RES:
|
||||
return decode_delete_subs_rsp(buf[1:], msglen-1, rsp)
|
||||
case REST_CRM_UPDATE_PLAN_INFO_REQ:
|
||||
return decodeUpdateBundleUsageReq(buf[1:], msglen-1, rsp)
|
||||
default:
|
||||
return -1
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user