From 808a6e5818f8160b45cef46c962239db4553228f Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sun, 27 Jan 2019 21:59:28 +0000 Subject: [PATCH] list interfaces/adding just "binary" state status. --- Zend/zend_hash.h | 2 +- ext/standard/net.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Zend/zend_hash.h b/Zend/zend_hash.h index b231be8762897..b0940097c3c09 100644 --- a/Zend/zend_hash.h +++ b/Zend/zend_hash.h @@ -168,7 +168,7 @@ ZEND_API int ZEND_FASTCALL zend_hash_str_del_ind(HashTable *ht, const char *key, ZEND_API int ZEND_FASTCALL zend_hash_index_del(HashTable *ht, zend_ulong h); ZEND_API void ZEND_FASTCALL zend_hash_del_bucket(HashTable *ht, Bucket *p); -/* Data retreival */ +/* Data retrieval */ ZEND_API zval* ZEND_FASTCALL zend_hash_find(const HashTable *ht, zend_string *key); ZEND_API zval* ZEND_FASTCALL zend_hash_str_find(const HashTable *ht, const char *key, size_t len); ZEND_API zval* ZEND_FASTCALL zend_hash_index_find(const HashTable *ht, zend_ulong h); diff --git a/ext/standard/net.c b/ext/standard/net.c index 23806cabf8216..7fe8b99fe2bb3 100644 --- a/ext/standard/net.c +++ b/ext/standard/net.c @@ -252,6 +252,8 @@ PHP_FUNCTION(net_get_interfaces) { } add_assoc_zval(&iface, "unicast", &unicast); + add_assoc_bool(&iface, "up", (p->OperStatus == IfOperStatusUp)); + add_assoc_zval(return_value, p->AdapterName, &iface); } @@ -271,7 +273,7 @@ PHP_FUNCTION(net_get_interfaces) { array_init(return_value); for (p = addrs; p; p = p->ifa_next) { zval *iface = zend_hash_str_find(Z_ARR_P(return_value), p->ifa_name, strlen(p->ifa_name)); - zval *unicast; + zval *unicast, *status; if (!iface) { zval newif; @@ -291,6 +293,10 @@ PHP_FUNCTION(net_get_interfaces) { p->ifa_addr, p->ifa_netmask, (p->ifa_flags & IFF_BROADCAST) ? p->ifa_broadaddr : NULL, (p->ifa_flags & IFF_POINTOPOINT) ? p->ifa_dstaddr : NULL); + status = zend_hash_str_find(Z_ARR_P(iface), "up", sizeof("up") - 1); + if (!status) { + add_assoc_bool(iface, "up", ((p->ifa_flags & IFF_UP) != 0)); + } } freeifaddrs(addrs);