The ovm_ipv4_t
type is the OrchIDS type of IPv4 addresses.
It is defined this way in src/lang.h:
typedef struct ovm_ipv4_s ovm_ipv4_t; struct ovm_ipv4_s { gc_header_t gc; struct in_addr ipv4addr; };
This is a type of garbage-collectable data. To allocate a new object of type ovm_ipv4_t
, use the function:
ovm_var_t *ovm_ipv4_new(gc_t *gc_ctx);
This creates a new uninitialized ovm_ipv4_t
object. Its return type is the universal type
ovm_var_t
instead of ovm_ipv4_t
, for practical reasons. Calling res
the result, one always has TYPE(res)==T_IPV4
.
The result is created white, and much be gc_touch()
ed before storing it into a garbage-collectable object.
The returned ovm_ipv4_t
object res
is modifiable. One can read from or write from it by using the IPV4()
macro (e.g., in_addr_t addr=IPV4(res).s_addr; IPV4(res).s_addr = addr;
).