This commit is contained in:
moznion
2020-11-28 17:59:59 +09:00
parent 9aa39d584a
commit b46b4ceaf9
6 changed files with 90 additions and 90 deletions

View File

@@ -231,7 +231,7 @@ fn generate_string_attribute_code(
) {
let code = format!(
"pub fn add_{method_identifier}(packet: &mut Packet, value: &str) {{
packet.add(AVP::from_string({type_identifier}, value));
packet.add(AVP::encode_string({type_identifier}, value));
}}
",
method_identifier = method_identifier,
@@ -247,7 +247,7 @@ fn generate_user_password_attribute_code(
) {
let code = format!(
"pub fn add_{method_identifier}(packet: &mut Packet, value: &[u8]) -> Result<(), AVPError> {{
packet.add(AVP::from_user_password({type_identifier}, value, packet.get_secret(), packet.get_authenticator())?);
packet.add(AVP::encode_user_password({type_identifier}, value, packet.get_secret(), packet.get_authenticator())?);
Ok(())
}}
",
@@ -264,7 +264,7 @@ fn generate_octets_attribute_code(
) {
let code = format!(
"pub fn add_{method_identifier}(packet: &mut Packet, value: &[u8]) {{
packet.add(AVP::from_bytes({type_identifier}, value));
packet.add(AVP::encode_bytes({type_identifier}, value));
}}
",
method_identifier = method_identifier,
@@ -280,7 +280,7 @@ fn generate_ipaddr_attribute_code(
) {
let code = format!(
"pub fn add_{method_identifier}(packet: &mut Packet, value: &Ipv4Addr) {{
packet.add(AVP::from_ipv4({type_identifier}, value));
packet.add(AVP::encode_ipv4({type_identifier}, value));
}}
",
method_identifier = method_identifier,
@@ -296,7 +296,7 @@ fn generate_integer_attribute_code(
) {
let code = format!(
"pub fn add_{method_identifier}(packet: &mut Packet, value: u32) {{
packet.add(AVP::from_u32({type_identifier}, value));
packet.add(AVP::encode_u32({type_identifier}, value));
}}
",
method_identifier = method_identifier,
@@ -313,7 +313,7 @@ fn generate_value_defined_integer_attribute_code(
) {
let code = format!(
"pub fn add_{method_identifier}(packet: &mut Packet, value: {value_type}) {{
packet.add(AVP::from_u32({type_identifier}, value as u32));
packet.add(AVP::encode_u32({type_identifier}, value as u32));
}}
",
method_identifier = method_identifier,

View File

@@ -46,11 +46,11 @@ impl RequestHandler<(), io::Error> for MyRequestHandler {
let maybe_user_name_attr = rfc2865::lookup_user_name(req_packet);
let maybe_user_password_attr = rfc2865::lookup_user_password(req_packet);
let user_name = maybe_user_name_attr.unwrap().to_string().unwrap();
let user_name = maybe_user_name_attr.unwrap().decode_string().unwrap();
let user_password = String::from_utf8(
maybe_user_password_attr
.unwrap()
.to_user_password(req_packet.get_secret(), req_packet.get_authenticator())
.decode_user_password(req_packet.get_secret(), req_packet.get_authenticator())
.unwrap(),
)
.unwrap();

View File

@@ -33,42 +33,42 @@ pub struct AVP {
}
impl AVP {
pub fn from_u32(typ: AVPType, value: u32) -> Self {
pub fn encode_u32(typ: AVPType, value: u32) -> Self {
AVP {
typ,
value: u32::to_be_bytes(value).to_vec(),
}
}
pub fn from_string(typ: AVPType, value: &str) -> Self {
pub fn encode_string(typ: AVPType, value: &str) -> Self {
AVP {
typ,
value: value.as_bytes().to_vec(),
}
}
pub fn from_bytes(typ: AVPType, value: &[u8]) -> Self {
pub fn encode_bytes(typ: AVPType, value: &[u8]) -> Self {
AVP {
typ,
value: value.to_vec(),
}
}
pub fn from_ipv4(typ: AVPType, value: &Ipv4Addr) -> Self {
pub fn encode_ipv4(typ: AVPType, value: &Ipv4Addr) -> Self {
AVP {
typ,
value: value.octets().to_vec(),
}
}
pub fn from_ipv6(typ: AVPType, value: &Ipv6Addr) -> Self {
pub fn encode_ipv6(typ: AVPType, value: &Ipv6Addr) -> Self {
AVP {
typ,
value: value.octets().to_vec(),
}
}
pub fn from_user_password(
pub fn encode_user_password(
typ: AVPType,
plain_text: &[u8],
secret: &[u8],
@@ -122,14 +122,14 @@ impl AVP {
Ok(AVP { typ, value: enc })
}
pub fn from_date(typ: AVPType, dt: &DateTime<Utc>) -> Self {
pub fn encode_date(typ: AVPType, dt: &DateTime<Utc>) -> Self {
AVP {
typ,
value: u32::to_be_bytes(dt.timestamp() as u32).to_vec(),
}
}
pub fn to_u32(&self) -> Result<u32, AVPError> {
pub fn decode_u32(&self) -> Result<u32, AVPError> {
const U32_SIZE: usize = std::mem::size_of::<u32>();
if self.value.len() != U32_SIZE {
return Err(AVPError::InvalidAttributeLengthError(self.value.len()));
@@ -142,15 +142,15 @@ impl AVP {
}
}
pub fn to_string(&self) -> Result<String, FromUtf8Error> {
pub fn decode_string(&self) -> Result<String, FromUtf8Error> {
String::from_utf8(self.value.to_vec())
}
pub fn to_bytes(&self) -> Vec<u8> {
pub fn decode_bytes(&self) -> Vec<u8> {
self.value.to_vec()
}
pub fn to_ipv4(&self) -> Result<Ipv4Addr, AVPError> {
pub fn decode_ipv4(&self) -> Result<Ipv4Addr, AVPError> {
const IPV4_SIZE: usize = std::mem::size_of::<Ipv4Addr>();
if self.value.len() != IPV4_SIZE {
return Err(AVPError::InvalidAttributeLengthError(self.value.len()));
@@ -163,7 +163,7 @@ impl AVP {
}
}
pub fn to_ipv6(&self) -> Result<Ipv6Addr, AVPError> {
pub fn decode_ipv6(&self) -> Result<Ipv6Addr, AVPError> {
const IPV6_SIZE: usize = std::mem::size_of::<Ipv6Addr>();
if self.value.len() != IPV6_SIZE {
return Err(AVPError::InvalidAttributeLengthError(self.value.len()));
@@ -176,7 +176,7 @@ impl AVP {
}
}
pub fn to_user_password(
pub fn decode_user_password(
&self,
secret: &[u8],
request_authenticator: &[u8],
@@ -219,7 +219,7 @@ impl AVP {
}
}
pub fn to_date(&self) -> Result<DateTime<Utc>, AVPError> {
pub fn decode_date(&self) -> Result<DateTime<Utc>, AVPError> {
const U32_SIZE: usize = std::mem::size_of::<u32>();
if self.value.len() != U32_SIZE {
return Err(AVPError::InvalidAttributeLengthError(self.value.len()));
@@ -247,31 +247,31 @@ mod tests {
#[test]
fn it_should_convert_attribute_to_integer32() -> Result<(), AVPError> {
let given_u32 = 16909060;
let avp = AVP::from_u32(1, given_u32);
assert_eq!(avp.to_u32()?, given_u32);
let avp = AVP::encode_u32(1, given_u32);
assert_eq!(avp.decode_u32()?, given_u32);
Ok(())
}
#[test]
fn it_should_convert_attribute_to_string() -> Result<(), FromUtf8Error> {
let given_str = "Hello, World";
let avp = AVP::from_string(1, given_str);
assert_eq!(avp.to_string()?, given_str);
let avp = AVP::encode_string(1, given_str);
assert_eq!(avp.decode_string()?, given_str);
Ok(())
}
#[test]
fn it_should_convert_attribute_to_byte() {
let given_bytes = b"Hello, World";
let avp = AVP::from_bytes(1, given_bytes);
assert_eq!(avp.to_bytes(), given_bytes);
let avp = AVP::encode_bytes(1, given_bytes);
assert_eq!(avp.decode_bytes(), given_bytes);
}
#[test]
fn it_should_convert_ipv4() -> Result<(), AVPError> {
let given_ipv4 = Ipv4Addr::new(192, 0, 2, 1);
let avp = AVP::from_ipv4(1, &given_ipv4);
assert_eq!(avp.to_ipv4()?, given_ipv4);
let avp = AVP::encode_ipv4(1, &given_ipv4);
assert_eq!(avp.decode_ipv4()?, given_ipv4);
Ok(())
}
@@ -280,8 +280,8 @@ mod tests {
let given_ipv6 = Ipv6Addr::new(
0x2001, 0x0db8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001,
);
let avp = AVP::from_ipv6(1, &given_ipv6);
assert_eq!(avp.to_ipv6()?, given_ipv6);
let avp = AVP::encode_ipv6(1, &given_ipv6);
assert_eq!(avp.decode_ipv6()?, given_ipv6);
Ok(())
}
@@ -323,7 +323,7 @@ mod tests {
];
for test_case in test_cases {
let user_password_avp_result = AVP::from_user_password(
let user_password_avp_result = AVP::encode_user_password(
1,
test_case.plain_text.as_bytes(),
&secret,
@@ -333,7 +333,7 @@ mod tests {
assert_eq!(avp.value.len(), test_case.expected_encoded_len);
let decoded_password = avp
.to_user_password(&secret, &request_authenticator)
.decode_user_password(&secret, &request_authenticator)
.unwrap();
assert_eq!(
String::from_utf8(decoded_password).unwrap(),
@@ -345,8 +345,8 @@ mod tests {
#[test]
fn it_should_convert_date() -> Result<(), AVPError> {
let now = Utc::now();
let avp = AVP::from_date(1, &now);
assert_eq!(avp.to_date()?.timestamp(), now.timestamp(),);
let avp = AVP::encode_date(1, &now);
assert_eq!(avp.decode_date()?.timestamp(), now.timestamp(),);
Ok(())
}
}

View File

@@ -90,7 +90,7 @@ pub fn lookup_all_user_name(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(USER_NAME_TYPE)
}
pub fn add_user_name(packet: &mut Packet, value: &str) {
packet.add(AVP::from_string(USER_NAME_TYPE, value));
packet.add(AVP::encode_string(USER_NAME_TYPE, value));
}
pub const USER_PASSWORD_TYPE: AVPType = 2;
@@ -104,7 +104,7 @@ pub fn lookup_all_user_password(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(USER_PASSWORD_TYPE)
}
pub fn add_user_password(packet: &mut Packet, value: &[u8]) -> Result<(), AVPError> {
packet.add(AVP::from_user_password(
packet.add(AVP::encode_user_password(
USER_PASSWORD_TYPE,
value,
packet.get_secret(),
@@ -124,7 +124,7 @@ pub fn lookup_all_chap_password(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(CHAP_PASSWORD_TYPE)
}
pub fn add_chap_password(packet: &mut Packet, value: &[u8]) {
packet.add(AVP::from_bytes(CHAP_PASSWORD_TYPE, value));
packet.add(AVP::encode_bytes(CHAP_PASSWORD_TYPE, value));
}
pub const NAS_IP_ADDRESS_TYPE: AVPType = 4;
@@ -138,7 +138,7 @@ pub fn lookup_all_nas_ip_address(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(NAS_IP_ADDRESS_TYPE)
}
pub fn add_nas_ip_address(packet: &mut Packet, value: &Ipv4Addr) {
packet.add(AVP::from_ipv4(NAS_IP_ADDRESS_TYPE, value));
packet.add(AVP::encode_ipv4(NAS_IP_ADDRESS_TYPE, value));
}
pub const NAS_PORT_TYPE: AVPType = 5;
@@ -152,7 +152,7 @@ pub fn lookup_all_nas_port(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(NAS_PORT_TYPE)
}
pub fn add_nas_port(packet: &mut Packet, value: u32) {
packet.add(AVP::from_u32(NAS_PORT_TYPE, value));
packet.add(AVP::encode_u32(NAS_PORT_TYPE, value));
}
pub const SERVICE_TYPE_TYPE: AVPType = 6;
@@ -166,7 +166,7 @@ pub fn lookup_all_service_type(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(SERVICE_TYPE_TYPE)
}
pub fn add_service_type(packet: &mut Packet, value: ServiceType) {
packet.add(AVP::from_u32(SERVICE_TYPE_TYPE, value as u32));
packet.add(AVP::encode_u32(SERVICE_TYPE_TYPE, value as u32));
}
pub const FRAMED_PROTOCOL_TYPE: AVPType = 7;
@@ -180,7 +180,7 @@ pub fn lookup_all_framed_protocol(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(FRAMED_PROTOCOL_TYPE)
}
pub fn add_framed_protocol(packet: &mut Packet, value: FramedProtocol) {
packet.add(AVP::from_u32(FRAMED_PROTOCOL_TYPE, value as u32));
packet.add(AVP::encode_u32(FRAMED_PROTOCOL_TYPE, value as u32));
}
pub const FRAMED_IP_ADDRESS_TYPE: AVPType = 8;
@@ -194,7 +194,7 @@ pub fn lookup_all_framed_ip_address(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(FRAMED_IP_ADDRESS_TYPE)
}
pub fn add_framed_ip_address(packet: &mut Packet, value: &Ipv4Addr) {
packet.add(AVP::from_ipv4(FRAMED_IP_ADDRESS_TYPE, value));
packet.add(AVP::encode_ipv4(FRAMED_IP_ADDRESS_TYPE, value));
}
pub const FRAMED_IP_NETMASK_TYPE: AVPType = 9;
@@ -208,7 +208,7 @@ pub fn lookup_all_framed_ip_netmask(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(FRAMED_IP_NETMASK_TYPE)
}
pub fn add_framed_ip_netmask(packet: &mut Packet, value: &Ipv4Addr) {
packet.add(AVP::from_ipv4(FRAMED_IP_NETMASK_TYPE, value));
packet.add(AVP::encode_ipv4(FRAMED_IP_NETMASK_TYPE, value));
}
pub const FRAMED_ROUTING_TYPE: AVPType = 10;
@@ -222,7 +222,7 @@ pub fn lookup_all_framed_routing(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(FRAMED_ROUTING_TYPE)
}
pub fn add_framed_routing(packet: &mut Packet, value: FramedRouting) {
packet.add(AVP::from_u32(FRAMED_ROUTING_TYPE, value as u32));
packet.add(AVP::encode_u32(FRAMED_ROUTING_TYPE, value as u32));
}
pub const FILTER_ID_TYPE: AVPType = 11;
@@ -236,7 +236,7 @@ pub fn lookup_all_filter_id(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(FILTER_ID_TYPE)
}
pub fn add_filter_id(packet: &mut Packet, value: &str) {
packet.add(AVP::from_string(FILTER_ID_TYPE, value));
packet.add(AVP::encode_string(FILTER_ID_TYPE, value));
}
pub const FRAMED_MTU_TYPE: AVPType = 12;
@@ -250,7 +250,7 @@ pub fn lookup_all_framed_mtu(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(FRAMED_MTU_TYPE)
}
pub fn add_framed_mtu(packet: &mut Packet, value: u32) {
packet.add(AVP::from_u32(FRAMED_MTU_TYPE, value));
packet.add(AVP::encode_u32(FRAMED_MTU_TYPE, value));
}
pub const FRAMED_COMPRESSION_TYPE: AVPType = 13;
@@ -264,7 +264,7 @@ pub fn lookup_all_framed_compression(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(FRAMED_COMPRESSION_TYPE)
}
pub fn add_framed_compression(packet: &mut Packet, value: FramedCompression) {
packet.add(AVP::from_u32(FRAMED_COMPRESSION_TYPE, value as u32));
packet.add(AVP::encode_u32(FRAMED_COMPRESSION_TYPE, value as u32));
}
pub const LOGIN_IP_HOST_TYPE: AVPType = 14;
@@ -278,7 +278,7 @@ pub fn lookup_all_login_ip_host(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(LOGIN_IP_HOST_TYPE)
}
pub fn add_login_ip_host(packet: &mut Packet, value: &Ipv4Addr) {
packet.add(AVP::from_ipv4(LOGIN_IP_HOST_TYPE, value));
packet.add(AVP::encode_ipv4(LOGIN_IP_HOST_TYPE, value));
}
pub const LOGIN_SERVICE_TYPE: AVPType = 15;
@@ -292,7 +292,7 @@ pub fn lookup_all_login_service(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(LOGIN_SERVICE_TYPE)
}
pub fn add_login_service(packet: &mut Packet, value: LoginService) {
packet.add(AVP::from_u32(LOGIN_SERVICE_TYPE, value as u32));
packet.add(AVP::encode_u32(LOGIN_SERVICE_TYPE, value as u32));
}
pub const LOGIN_TCP_PORT_TYPE: AVPType = 16;
@@ -306,7 +306,7 @@ pub fn lookup_all_login_tcp_port(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(LOGIN_TCP_PORT_TYPE)
}
pub fn add_login_tcp_port(packet: &mut Packet, value: LoginTCPPort) {
packet.add(AVP::from_u32(LOGIN_TCP_PORT_TYPE, value as u32));
packet.add(AVP::encode_u32(LOGIN_TCP_PORT_TYPE, value as u32));
}
pub const REPLY_MESSAGE_TYPE: AVPType = 18;
@@ -320,7 +320,7 @@ pub fn lookup_all_reply_message(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(REPLY_MESSAGE_TYPE)
}
pub fn add_reply_message(packet: &mut Packet, value: &str) {
packet.add(AVP::from_string(REPLY_MESSAGE_TYPE, value));
packet.add(AVP::encode_string(REPLY_MESSAGE_TYPE, value));
}
pub const CALLBACK_NUMBER_TYPE: AVPType = 19;
@@ -334,7 +334,7 @@ pub fn lookup_all_callback_number(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(CALLBACK_NUMBER_TYPE)
}
pub fn add_callback_number(packet: &mut Packet, value: &str) {
packet.add(AVP::from_string(CALLBACK_NUMBER_TYPE, value));
packet.add(AVP::encode_string(CALLBACK_NUMBER_TYPE, value));
}
pub const CALLBACK_ID_TYPE: AVPType = 20;
@@ -348,7 +348,7 @@ pub fn lookup_all_callback_id(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(CALLBACK_ID_TYPE)
}
pub fn add_callback_id(packet: &mut Packet, value: &str) {
packet.add(AVP::from_string(CALLBACK_ID_TYPE, value));
packet.add(AVP::encode_string(CALLBACK_ID_TYPE, value));
}
pub const FRAMED_ROUTE_TYPE: AVPType = 22;
@@ -362,7 +362,7 @@ pub fn lookup_all_framed_route(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(FRAMED_ROUTE_TYPE)
}
pub fn add_framed_route(packet: &mut Packet, value: &str) {
packet.add(AVP::from_string(FRAMED_ROUTE_TYPE, value));
packet.add(AVP::encode_string(FRAMED_ROUTE_TYPE, value));
}
pub const FRAMED_IPX_NETWORK_TYPE: AVPType = 23;
@@ -376,7 +376,7 @@ pub fn lookup_all_framed_ipx_network(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(FRAMED_IPX_NETWORK_TYPE)
}
pub fn add_framed_ipx_network(packet: &mut Packet, value: &Ipv4Addr) {
packet.add(AVP::from_ipv4(FRAMED_IPX_NETWORK_TYPE, value));
packet.add(AVP::encode_ipv4(FRAMED_IPX_NETWORK_TYPE, value));
}
pub const STATE_TYPE: AVPType = 24;
@@ -390,7 +390,7 @@ pub fn lookup_all_state(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(STATE_TYPE)
}
pub fn add_state(packet: &mut Packet, value: &[u8]) {
packet.add(AVP::from_bytes(STATE_TYPE, value));
packet.add(AVP::encode_bytes(STATE_TYPE, value));
}
pub const CLASS_TYPE: AVPType = 25;
@@ -404,7 +404,7 @@ pub fn lookup_all_class(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(CLASS_TYPE)
}
pub fn add_class(packet: &mut Packet, value: &[u8]) {
packet.add(AVP::from_bytes(CLASS_TYPE, value));
packet.add(AVP::encode_bytes(CLASS_TYPE, value));
}
pub const VENDOR_SPECIFIC_TYPE: AVPType = 26;
@@ -429,7 +429,7 @@ pub fn lookup_all_session_timeout(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(SESSION_TIMEOUT_TYPE)
}
pub fn add_session_timeout(packet: &mut Packet, value: u32) {
packet.add(AVP::from_u32(SESSION_TIMEOUT_TYPE, value));
packet.add(AVP::encode_u32(SESSION_TIMEOUT_TYPE, value));
}
pub const IDLE_TIMEOUT_TYPE: AVPType = 28;
@@ -443,7 +443,7 @@ pub fn lookup_all_idle_timeout(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(IDLE_TIMEOUT_TYPE)
}
pub fn add_idle_timeout(packet: &mut Packet, value: u32) {
packet.add(AVP::from_u32(IDLE_TIMEOUT_TYPE, value));
packet.add(AVP::encode_u32(IDLE_TIMEOUT_TYPE, value));
}
pub const TERMINATION_ACTION_TYPE: AVPType = 29;
@@ -457,7 +457,7 @@ pub fn lookup_all_termination_action(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(TERMINATION_ACTION_TYPE)
}
pub fn add_termination_action(packet: &mut Packet, value: TerminationAction) {
packet.add(AVP::from_u32(TERMINATION_ACTION_TYPE, value as u32));
packet.add(AVP::encode_u32(TERMINATION_ACTION_TYPE, value as u32));
}
pub const CALLED_STATION_ID_TYPE: AVPType = 30;
@@ -471,7 +471,7 @@ pub fn lookup_all_called_station_id(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(CALLED_STATION_ID_TYPE)
}
pub fn add_called_station_id(packet: &mut Packet, value: &str) {
packet.add(AVP::from_string(CALLED_STATION_ID_TYPE, value));
packet.add(AVP::encode_string(CALLED_STATION_ID_TYPE, value));
}
pub const CALLING_STATION_ID_TYPE: AVPType = 31;
@@ -485,7 +485,7 @@ pub fn lookup_all_calling_station_id(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(CALLING_STATION_ID_TYPE)
}
pub fn add_calling_station_id(packet: &mut Packet, value: &str) {
packet.add(AVP::from_string(CALLING_STATION_ID_TYPE, value));
packet.add(AVP::encode_string(CALLING_STATION_ID_TYPE, value));
}
pub const NAS_IDENTIFIER_TYPE: AVPType = 32;
@@ -499,7 +499,7 @@ pub fn lookup_all_nas_identifier(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(NAS_IDENTIFIER_TYPE)
}
pub fn add_nas_identifier(packet: &mut Packet, value: &str) {
packet.add(AVP::from_string(NAS_IDENTIFIER_TYPE, value));
packet.add(AVP::encode_string(NAS_IDENTIFIER_TYPE, value));
}
pub const PROXY_STATE_TYPE: AVPType = 33;
@@ -513,7 +513,7 @@ pub fn lookup_all_proxy_state(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(PROXY_STATE_TYPE)
}
pub fn add_proxy_state(packet: &mut Packet, value: &[u8]) {
packet.add(AVP::from_bytes(PROXY_STATE_TYPE, value));
packet.add(AVP::encode_bytes(PROXY_STATE_TYPE, value));
}
pub const LOGIN_LAT_SERVICE_TYPE: AVPType = 34;
@@ -527,7 +527,7 @@ pub fn lookup_all_login_lat_service(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(LOGIN_LAT_SERVICE_TYPE)
}
pub fn add_login_lat_service(packet: &mut Packet, value: &str) {
packet.add(AVP::from_string(LOGIN_LAT_SERVICE_TYPE, value));
packet.add(AVP::encode_string(LOGIN_LAT_SERVICE_TYPE, value));
}
pub const LOGIN_LAT_NODE_TYPE: AVPType = 35;
@@ -541,7 +541,7 @@ pub fn lookup_all_login_lat_node(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(LOGIN_LAT_NODE_TYPE)
}
pub fn add_login_lat_node(packet: &mut Packet, value: &str) {
packet.add(AVP::from_string(LOGIN_LAT_NODE_TYPE, value));
packet.add(AVP::encode_string(LOGIN_LAT_NODE_TYPE, value));
}
pub const LOGIN_LAT_GROUP_TYPE: AVPType = 36;
@@ -555,7 +555,7 @@ pub fn lookup_all_login_lat_group(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(LOGIN_LAT_GROUP_TYPE)
}
pub fn add_login_lat_group(packet: &mut Packet, value: &[u8]) {
packet.add(AVP::from_bytes(LOGIN_LAT_GROUP_TYPE, value));
packet.add(AVP::encode_bytes(LOGIN_LAT_GROUP_TYPE, value));
}
pub const FRAMED_APPLE_TALK_LINK_TYPE: AVPType = 37;
@@ -569,7 +569,7 @@ pub fn lookup_all_framed_apple_talk_link(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(FRAMED_APPLE_TALK_LINK_TYPE)
}
pub fn add_framed_apple_talk_link(packet: &mut Packet, value: u32) {
packet.add(AVP::from_u32(FRAMED_APPLE_TALK_LINK_TYPE, value));
packet.add(AVP::encode_u32(FRAMED_APPLE_TALK_LINK_TYPE, value));
}
pub const FRAMED_APPLE_TALK_NETWORK_TYPE: AVPType = 38;
@@ -583,7 +583,7 @@ pub fn lookup_all_framed_apple_talk_network(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(FRAMED_APPLE_TALK_NETWORK_TYPE)
}
pub fn add_framed_apple_talk_network(packet: &mut Packet, value: u32) {
packet.add(AVP::from_u32(FRAMED_APPLE_TALK_NETWORK_TYPE, value));
packet.add(AVP::encode_u32(FRAMED_APPLE_TALK_NETWORK_TYPE, value));
}
pub const FRAMED_APPLE_TALK_ZONE_TYPE: AVPType = 39;
@@ -597,7 +597,7 @@ pub fn lookup_all_framed_apple_talk_zone(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(FRAMED_APPLE_TALK_ZONE_TYPE)
}
pub fn add_framed_apple_talk_zone(packet: &mut Packet, value: &str) {
packet.add(AVP::from_string(FRAMED_APPLE_TALK_ZONE_TYPE, value));
packet.add(AVP::encode_string(FRAMED_APPLE_TALK_ZONE_TYPE, value));
}
pub const CHAP_CHALLENGE_TYPE: AVPType = 60;
@@ -611,7 +611,7 @@ pub fn lookup_all_chap_challenge(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(CHAP_CHALLENGE_TYPE)
}
pub fn add_chap_challenge(packet: &mut Packet, value: &[u8]) {
packet.add(AVP::from_bytes(CHAP_CHALLENGE_TYPE, value));
packet.add(AVP::encode_bytes(CHAP_CHALLENGE_TYPE, value));
}
pub const NAS_PORT_TYPE_TYPE: AVPType = 61;
@@ -625,7 +625,7 @@ pub fn lookup_all_nas_port_type(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(NAS_PORT_TYPE_TYPE)
}
pub fn add_nas_port_type(packet: &mut Packet, value: NasPortType) {
packet.add(AVP::from_u32(NAS_PORT_TYPE_TYPE, value as u32));
packet.add(AVP::encode_u32(NAS_PORT_TYPE_TYPE, value as u32));
}
pub const PORT_LIMIT_TYPE: AVPType = 62;
@@ -639,7 +639,7 @@ pub fn lookup_all_port_limit(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(PORT_LIMIT_TYPE)
}
pub fn add_port_limit(packet: &mut Packet, value: u32) {
packet.add(AVP::from_u32(PORT_LIMIT_TYPE, value));
packet.add(AVP::encode_u32(PORT_LIMIT_TYPE, value));
}
pub const LOGIN_LAT_PORT_TYPE: AVPType = 63;
@@ -653,5 +653,5 @@ pub fn lookup_all_login_lat_port(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(LOGIN_LAT_PORT_TYPE)
}
pub fn add_login_lat_port(packet: &mut Packet, value: &str) {
packet.add(AVP::from_string(LOGIN_LAT_PORT_TYPE, value));
packet.add(AVP::encode_string(LOGIN_LAT_PORT_TYPE, value));
}

View File

@@ -49,7 +49,7 @@ pub fn lookup_all_acct_status_type(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(ACCT_STATUS_TYPE_TYPE)
}
pub fn add_acct_status_type(packet: &mut Packet, value: AcctStatusType) {
packet.add(AVP::from_u32(ACCT_STATUS_TYPE_TYPE, value as u32));
packet.add(AVP::encode_u32(ACCT_STATUS_TYPE_TYPE, value as u32));
}
pub const ACCT_DELAY_TIME_TYPE: AVPType = 41;
@@ -63,7 +63,7 @@ pub fn lookup_all_acct_delay_time(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(ACCT_DELAY_TIME_TYPE)
}
pub fn add_acct_delay_time(packet: &mut Packet, value: u32) {
packet.add(AVP::from_u32(ACCT_DELAY_TIME_TYPE, value));
packet.add(AVP::encode_u32(ACCT_DELAY_TIME_TYPE, value));
}
pub const ACCT_INPUT_OCTETS_TYPE: AVPType = 42;
@@ -77,7 +77,7 @@ pub fn lookup_all_acct_input_octets(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(ACCT_INPUT_OCTETS_TYPE)
}
pub fn add_acct_input_octets(packet: &mut Packet, value: u32) {
packet.add(AVP::from_u32(ACCT_INPUT_OCTETS_TYPE, value));
packet.add(AVP::encode_u32(ACCT_INPUT_OCTETS_TYPE, value));
}
pub const ACCT_OUTPUT_OCTETS_TYPE: AVPType = 43;
@@ -91,7 +91,7 @@ pub fn lookup_all_acct_output_octets(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(ACCT_OUTPUT_OCTETS_TYPE)
}
pub fn add_acct_output_octets(packet: &mut Packet, value: u32) {
packet.add(AVP::from_u32(ACCT_OUTPUT_OCTETS_TYPE, value));
packet.add(AVP::encode_u32(ACCT_OUTPUT_OCTETS_TYPE, value));
}
pub const ACCT_SESSION_ID_TYPE: AVPType = 44;
@@ -105,7 +105,7 @@ pub fn lookup_all_acct_session_id(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(ACCT_SESSION_ID_TYPE)
}
pub fn add_acct_session_id(packet: &mut Packet, value: &str) {
packet.add(AVP::from_string(ACCT_SESSION_ID_TYPE, value));
packet.add(AVP::encode_string(ACCT_SESSION_ID_TYPE, value));
}
pub const ACCT_AUTHENTIC_TYPE: AVPType = 45;
@@ -119,7 +119,7 @@ pub fn lookup_all_acct_authentic(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(ACCT_AUTHENTIC_TYPE)
}
pub fn add_acct_authentic(packet: &mut Packet, value: AcctAuthentic) {
packet.add(AVP::from_u32(ACCT_AUTHENTIC_TYPE, value as u32));
packet.add(AVP::encode_u32(ACCT_AUTHENTIC_TYPE, value as u32));
}
pub const ACCT_SESSION_TIME_TYPE: AVPType = 46;
@@ -133,7 +133,7 @@ pub fn lookup_all_acct_session_time(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(ACCT_SESSION_TIME_TYPE)
}
pub fn add_acct_session_time(packet: &mut Packet, value: u32) {
packet.add(AVP::from_u32(ACCT_SESSION_TIME_TYPE, value));
packet.add(AVP::encode_u32(ACCT_SESSION_TIME_TYPE, value));
}
pub const ACCT_INPUT_PACKETS_TYPE: AVPType = 47;
@@ -147,7 +147,7 @@ pub fn lookup_all_acct_input_packets(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(ACCT_INPUT_PACKETS_TYPE)
}
pub fn add_acct_input_packets(packet: &mut Packet, value: u32) {
packet.add(AVP::from_u32(ACCT_INPUT_PACKETS_TYPE, value));
packet.add(AVP::encode_u32(ACCT_INPUT_PACKETS_TYPE, value));
}
pub const ACCT_OUTPUT_PACKETS_TYPE: AVPType = 48;
@@ -161,7 +161,7 @@ pub fn lookup_all_acct_output_packets(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(ACCT_OUTPUT_PACKETS_TYPE)
}
pub fn add_acct_output_packets(packet: &mut Packet, value: u32) {
packet.add(AVP::from_u32(ACCT_OUTPUT_PACKETS_TYPE, value));
packet.add(AVP::encode_u32(ACCT_OUTPUT_PACKETS_TYPE, value));
}
pub const ACCT_TERMINATE_CAUSE_TYPE: AVPType = 49;
@@ -175,7 +175,7 @@ pub fn lookup_all_acct_terminate_cause(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(ACCT_TERMINATE_CAUSE_TYPE)
}
pub fn add_acct_terminate_cause(packet: &mut Packet, value: AcctTerminateCause) {
packet.add(AVP::from_u32(ACCT_TERMINATE_CAUSE_TYPE, value as u32));
packet.add(AVP::encode_u32(ACCT_TERMINATE_CAUSE_TYPE, value as u32));
}
pub const ACCT_MULTI_SESSION_ID_TYPE: AVPType = 50;
@@ -189,7 +189,7 @@ pub fn lookup_all_acct_multi_session_id(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(ACCT_MULTI_SESSION_ID_TYPE)
}
pub fn add_acct_multi_session_id(packet: &mut Packet, value: &str) {
packet.add(AVP::from_string(ACCT_MULTI_SESSION_ID_TYPE, value));
packet.add(AVP::encode_string(ACCT_MULTI_SESSION_ID_TYPE, value));
}
pub const ACCT_LINK_COUNT_TYPE: AVPType = 51;
@@ -203,5 +203,5 @@ pub fn lookup_all_acct_link_count(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(ACCT_LINK_COUNT_TYPE)
}
pub fn add_acct_link_count(packet: &mut Packet, value: u32) {
packet.add(AVP::from_u32(ACCT_LINK_COUNT_TYPE, value));
packet.add(AVP::encode_u32(ACCT_LINK_COUNT_TYPE, value));
}

View File

@@ -22,7 +22,7 @@ pub fn lookup_all_acct_tunnel_connection(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(ACCT_TUNNEL_CONNECTION_TYPE)
}
pub fn add_acct_tunnel_connection(packet: &mut Packet, value: &str) {
packet.add(AVP::from_string(ACCT_TUNNEL_CONNECTION_TYPE, value));
packet.add(AVP::encode_string(ACCT_TUNNEL_CONNECTION_TYPE, value));
}
pub const ACCT_TUNNEL_PACKETS_LOST_TYPE: AVPType = 86;
@@ -36,5 +36,5 @@ pub fn lookup_all_acct_tunnel_packets_lost(packet: &Packet) -> Vec<&AVP> {
packet.lookup_all(ACCT_TUNNEL_PACKETS_LOST_TYPE)
}
pub fn add_acct_tunnel_packets_lost(packet: &mut Packet, value: u32) {
packet.add(AVP::from_u32(ACCT_TUNNEL_PACKETS_LOST_TYPE, value));
packet.add(AVP::encode_u32(ACCT_TUNNEL_PACKETS_LOST_TYPE, value));
}