Skip to content

Commit 18f2458

Browse files
committed
starting to namespace types
1 parent 3b96b21 commit 18f2458

File tree

3 files changed

+190
-215
lines changed

3 files changed

+190
-215
lines changed

ext/sockets/sockets.c

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -497,12 +497,12 @@ static PHP_MINIT_FUNCTION(sockets)
497497
socket_object_handlers.compare = zend_objects_not_comparable;
498498

499499
#if defined(AF_PACKET)
500-
packet_ce = register_class_Packet();
501-
ethpacket_ce = register_class_EthernetPacket(packet_ce);
502-
tcppacket_ce = register_class_TcpPacket(packet_ce);
503-
udppacket_ce = register_class_UdpPacket(packet_ce);
504-
ipv4packet_ce = register_class_Ipv4Packet(packet_ce);
505-
ipv6packet_ce = register_class_Ipv6Packet(packet_ce);
500+
packet_ce = register_class_Socket_Packet();
501+
ethpacket_ce = register_class_Socket_EthernetPacket(packet_ce);
502+
tcppacket_ce = register_class_Socket_TcpPacket(packet_ce);
503+
udppacket_ce = register_class_Socket_UdpPacket(packet_ce);
504+
ipv4packet_ce = register_class_Socket_Ipv4Packet(packet_ce);
505+
ipv6packet_ce = register_class_Socket_Ipv6Packet(packet_ce);
506506
#endif
507507
address_info_ce = register_class_AddressInfo();
508508
address_info_ce->create_object = address_info_create_object;
@@ -1678,8 +1678,8 @@ PHP_FUNCTION(socket_recvfrom)
16781678
zval obj;
16791679
object_init_ex(&obj, ethpacket_ce);
16801680
zend_update_property(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("socket"), arg1);
1681-
zend_update_property_long(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("headersize"), sizeof(*e));
1682-
zend_update_property_long(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("ethprotocol"), protocol);
1681+
zend_update_property_long(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("headerSize"), sizeof(*e));
1682+
zend_update_property_long(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("ethProtocol"), protocol);
16831683

16841684
switch (protocol) {
16851685
case ETH_P_IP: {
@@ -1691,7 +1691,7 @@ PHP_FUNCTION(socket_recvfrom)
16911691
if (tlayer < sizeof(*ip) || totalip < tlayer) {
16921692
ZVAL_NULL(&zpayload);
16931693
zend_update_property(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("payload"), &zpayload);
1694-
zend_update_property_string(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("rawpacket"), ZSTR_VAL(recv_buf));
1694+
zend_update_property_string(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("rawPacket"), ZSTR_VAL(recv_buf));
16951695
zend_string_efree(recv_buf);
16961696
ZEND_TRY_ASSIGN_REF_VALUE(arg2, &obj);
16971697
ZEND_TRY_ASSIGN_REF_STRING(arg5, ifrname);
@@ -1708,35 +1708,35 @@ PHP_FUNCTION(socket_recvfrom)
17081708
d.s_addr = ip->daddr;
17091709
zval szpayload;
17101710
object_init_ex(&zpayload, ipv4packet_ce);
1711-
zend_update_property_string(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("ipsrc"), inet_ntoa(s));
1712-
zend_update_property_string(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("ipdst"), inet_ntoa(d));
1713-
zend_update_property_long(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("headersize"), sizeof(*ip));
1711+
zend_update_property_string(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("ipSrc"), inet_ntoa(s));
1712+
zend_update_property_string(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("ipDst"), inet_ntoa(d));
1713+
zend_update_property_long(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("headerSize"), sizeof(*ip));
17141714
zend_update_property(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("socket"), arg1);
17151715

17161716
switch (ip->protocol) {
17171717
case IPPROTO_TCP: {
17181718
struct tcphdr *tcp = (struct tcphdr *)ipdata;
17191719
object_init_ex(&szpayload, tcppacket_ce);
1720-
zend_update_property_long(Z_OBJCE(szpayload), Z_OBJ(szpayload), ZEND_STRL("srcport"), ntohs(tcp->th_sport));
1721-
zend_update_property_long(Z_OBJCE(szpayload), Z_OBJ(szpayload), ZEND_STRL("dstport"), ntohs(tcp->th_dport));
1722-
zend_update_property_long(Z_OBJCE(szpayload), Z_OBJ(szpayload), ZEND_STRL("headersize"), sizeof(*tcp));
1720+
zend_update_property_long(Z_OBJCE(szpayload), Z_OBJ(szpayload), ZEND_STRL("srcPort"), ntohs(tcp->th_sport));
1721+
zend_update_property_long(Z_OBJCE(szpayload), Z_OBJ(szpayload), ZEND_STRL("dstPort"), ntohs(tcp->th_dport));
1722+
zend_update_property_long(Z_OBJCE(szpayload), Z_OBJ(szpayload), ZEND_STRL("headerSize"), sizeof(*tcp));
17231723
zend_update_property(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("payload"), &szpayload);
17241724
break;
17251725
}
17261726
case IPPROTO_UDP: {
17271727
struct udphdr *udp = (struct udphdr *)ipdata;
17281728
object_init_ex(&szpayload, udppacket_ce);
1729-
zend_update_property_string(Z_OBJCE(szpayload), Z_OBJ(szpayload), ZEND_STRL("ipsrc"), inet_ntoa(s));
1730-
zend_update_property_string(Z_OBJCE(szpayload), Z_OBJ(szpayload), ZEND_STRL("ipdst"), inet_ntoa(d));
1729+
zend_update_property_string(Z_OBJCE(szpayload), Z_OBJ(szpayload), ZEND_STRL("ipSrc"), inet_ntoa(s));
1730+
zend_update_property_string(Z_OBJCE(szpayload), Z_OBJ(szpayload), ZEND_STRL("ipDst"), inet_ntoa(d));
17311731
zend_update_property_long(Z_OBJCE(szpayload), Z_OBJ(szpayload), ZEND_STRL("srcport"), ntohs(udp->uh_sport));
17321732
zend_update_property_long(Z_OBJCE(szpayload), Z_OBJ(szpayload), ZEND_STRL("dstport"), ntohs(udp->uh_dport));
1733-
zend_update_property_long(Z_OBJCE(szpayload), Z_OBJ(szpayload), ZEND_STRL("headersize"), sizeof(*udp));
1733+
zend_update_property_long(Z_OBJCE(szpayload), Z_OBJ(szpayload), ZEND_STRL("headerSize"), sizeof(*udp));
17341734
zend_update_property(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("payload"), &szpayload);
17351735
break;
17361736
}
17371737
default:
17381738
zend_update_property(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("payload"), &zpayload);
1739-
zend_update_property_string(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("rawpacket"), ZSTR_VAL(recv_buf));
1739+
zend_update_property_string(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("rawPacket"), ZSTR_VAL(recv_buf));
17401740
zend_string_efree(recv_buf);
17411741
ZEND_TRY_ASSIGN_REF_VALUE(arg2, &obj);
17421742
ZEND_TRY_ASSIGN_REF_STRING(arg5, ifrname);
@@ -1756,9 +1756,9 @@ PHP_FUNCTION(socket_recvfrom)
17561756
inet_ntop(AF_INET6, &ip->saddr, s, sizeof(s));
17571757
inet_ntop(AF_INET6, &ip->daddr, d, sizeof(d));
17581758
object_init_ex(&zpayload, ipv6packet_ce);
1759-
zend_update_property_string(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("ipsrc"), s);
1760-
zend_update_property_string(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("ipdst"), d);
1761-
zend_update_property_long(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("headersize"), sizeof(*ip));
1759+
zend_update_property_string(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("ipSrc"), s);
1760+
zend_update_property_string(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("ipDst"), d);
1761+
zend_update_property_long(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("headerSize"), sizeof(*ip));
17621762
// TODO completing
17631763
break;
17641764
}
@@ -1767,19 +1767,19 @@ PHP_FUNCTION(socket_recvfrom)
17671767
zval innerp;
17681768
ZVAL_NULL(&innerp);
17691769
object_init_ex(&zpayload, ethpacket_ce);
1770-
zend_update_property_string(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("macsrc"), ether_ntoa((struct ether_addr *)innere->h_source));
1771-
zend_update_property_string(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("macdst"), ether_ntoa((struct ether_addr *)innere->h_dest));
1772-
zend_update_property_long(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("headersize"), sizeof(*innere));
1770+
zend_update_property_string(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("macSrc"), ether_ntoa((struct ether_addr *)innere->h_source));
1771+
zend_update_property_string(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("macDst"), ether_ntoa((struct ether_addr *)innere->h_dest));
1772+
zend_update_property_long(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("headerSize"), sizeof(*innere));
17731773
zend_update_property(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("socket"), arg1);
17741774
zend_update_property(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("rawpacket"), &innerp);
17751775
zend_update_property(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("payload"), &innerp);
1776-
zend_update_property_long(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("ethprotocol"), 0);
1776+
zend_update_property_long(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("ethProtocol"), 0);
17771777
break;
17781778
}
17791779
default:
17801780
ZVAL_NULL(&zpayload);
17811781
zend_update_property(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("payload"), &zpayload);
1782-
zend_update_property_string(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("rawpacket"), ZSTR_VAL(recv_buf));
1782+
zend_update_property_string(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("rawPacket"), ZSTR_VAL(recv_buf));
17831783
zend_string_efree(recv_buf);
17841784
ZEND_TRY_ASSIGN_REF_VALUE(arg2, &obj);
17851785
ZEND_TRY_ASSIGN_REF_STRING(arg5, ifrname);
@@ -1791,10 +1791,10 @@ PHP_FUNCTION(socket_recvfrom)
17911791
RETURN_THROWS();
17921792
}
17931793

1794-
zend_update_property_string(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("macsrc"), ether_ntoa((struct ether_addr *)e->h_source));
1795-
zend_update_property_string(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("macdst"), ether_ntoa((struct ether_addr *)e->h_dest));
1794+
zend_update_property_string(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("macSrc"), ether_ntoa((struct ether_addr *)e->h_source));
1795+
zend_update_property_string(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("macDst"), ether_ntoa((struct ether_addr *)e->h_dest));
17961796
zend_update_property(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("payload"), &zpayload);
1797-
zend_update_property_string(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("rawpacket"), ZSTR_VAL(recv_buf));
1797+
zend_update_property_string(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("rawPacket"), ZSTR_VAL(recv_buf));
17981798
Z_DELREF(zpayload);
17991799
zend_string_efree(recv_buf);
18001800

ext/sockets/sockets.stub.php

Lines changed: 45 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
/** @generate-class-entries */
44

5+
namespace {
56
/**
67
* @var int
78
* @cvalue AF_UNIX
@@ -2161,50 +2162,52 @@ function socket_wsaprotocol_info_import(string $info_id): Socket|false {}
21612162

21622163
function socket_wsaprotocol_info_release(string $info_id): bool {}
21632164
#endif
2164-
2165-
#ifdef AF_PACKET
2166-
readonly class Packet
2167-
{
2168-
public int $headersize;
2169-
public ?string $rawpacket;
21702165
}
21712166

2172-
2173-
final readonly class EthernetPacket extends Packet
2174-
{
2167+
#ifdef AF_PACKET
2168+
namespace Socket {
2169+
readonly class Packet
2170+
{
2171+
public int $headerSize;
2172+
public ?string $rawPacket;
2173+
}
2174+
2175+
final readonly class EthernetPacket extends Packet
2176+
{
21752177
public Socket $socket;
2176-
public int $ethprotocol;
2177-
public string $macsrc;
2178-
public string $macdst;
2179-
public Ipv4Packet|Ipv6Packet|EthernetPacket|null $payload;
2180-
}
2181-
2182-
final readonly class TcpPacket extends Packet
2183-
{
2184-
public string $srcaddr;
2185-
public string $dstaddr;
2186-
public string $srcport;
2187-
public int $dstport;
2188-
}
2189-
2190-
final readonly class UdpPacket extends Packet
2191-
{
2192-
public string $srcaddr;
2193-
public string $dstaddr;
2194-
public string $srcport;
2195-
public int $dstport;
2196-
}
2197-
2198-
final readonly class Ipv4Packet extends Packet
2199-
{
2200-
public string $srcaddr;
2201-
public string $dstaddr;
2202-
public TcpPacket|UdpPacket|null $payload;
2203-
}
2204-
2205-
final readonly class Ipv6Packet extends Packet
2206-
{
2207-
public string $srcaddr;
2208-
public string $dstaddr;
2178+
public int $ethProtocol;
2179+
public string $macSrc;
2180+
public string $macDst;
2181+
public ?object $payload;
2182+
}
2183+
2184+
final readonly class TcpPacket extends Packet
2185+
{
2186+
public string $srcAddr;
2187+
public string $dstAddr;
2188+
public string $srcPort;
2189+
public int $dstPort;
2190+
}
2191+
2192+
final readonly class UdpPacket extends Packet
2193+
{
2194+
public string $srcAddr;
2195+
public string $dstAddr;
2196+
public string $srcPort;
2197+
public int $dstPort;
2198+
}
2199+
2200+
final readonly class Ipv4Packet extends Packet
2201+
{
2202+
public string $srcAddr;
2203+
public string $dstAddr;
2204+
public ?object $payload;
2205+
}
2206+
2207+
final readonly class Ipv6Packet extends Packet
2208+
{
2209+
public string $srcAddr;
2210+
public string $dstAddr;
2211+
}
22092212
}
22102213
#endif

0 commit comments

Comments
 (0)