Skip to content

Commit eaf2c89

Browse files
committed
fixing bug/test
1 parent f7409d9 commit eaf2c89

File tree

4 files changed

+81
-36
lines changed

4 files changed

+81
-36
lines changed

ext/sockets/sockets.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1686,7 +1686,6 @@ PHP_FUNCTION(socket_recvfrom)
16861686
payload = ((unsigned char *)e + ETH_HLEN);
16871687
struct iphdr a;
16881688
memcpy(&a, payload, sizeof(a));
1689-
//struct iphdr *ip = (struct iphdr *)payload;
16901689
struct iphdr *ip = &a;
16911690
size_t tlayer = ip->ihl * 4;
16921691
size_t totalip = ntohs(ip->tot_len);
@@ -1714,6 +1713,7 @@ PHP_FUNCTION(socket_recvfrom)
17141713
zend_update_property_string(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("srcAddr"), inet_ntoa(s));
17151714
zend_update_property_string(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("dstAddr"), inet_ntoa(d));
17161715
zend_update_property_long(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("headerSize"), totalip);
1716+
zend_update_property_string(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("rawPacket"), (char *)payload);
17171717
zend_update_property(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("socket"), arg1);
17181718

17191719
switch (ip->protocol) {
@@ -1725,6 +1725,7 @@ PHP_FUNCTION(socket_recvfrom)
17251725
zend_update_property_long(Z_OBJCE(szpayload), Z_OBJ(szpayload), ZEND_STRL("srcPort"), ntohs(tcp->th_sport));
17261726
zend_update_property_long(Z_OBJCE(szpayload), Z_OBJ(szpayload), ZEND_STRL("dstPort"), ntohs(tcp->th_dport));
17271727
zend_update_property_long(Z_OBJCE(szpayload), Z_OBJ(szpayload), ZEND_STRL("headerSize"), sizeof(*tcp));
1728+
zend_update_property_string(Z_OBJCE(szpayload), Z_OBJ(szpayload), ZEND_STRL("rawPacket"), (char *)ipdata);
17281729
zend_update_property(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("payload"), &szpayload);
17291730
Z_DELREF(szpayload);
17301731
break;
@@ -1737,6 +1738,7 @@ PHP_FUNCTION(socket_recvfrom)
17371738
zend_update_property_long(Z_OBJCE(szpayload), Z_OBJ(szpayload), ZEND_STRL("srcPort"), ntohs(udp->uh_sport));
17381739
zend_update_property_long(Z_OBJCE(szpayload), Z_OBJ(szpayload), ZEND_STRL("dstPort"), ntohs(udp->uh_dport));
17391740
zend_update_property_long(Z_OBJCE(szpayload), Z_OBJ(szpayload), ZEND_STRL("headerSize"), sizeof(*udp));
1741+
zend_update_property_string(Z_OBJCE(szpayload), Z_OBJ(szpayload), ZEND_STRL("rawPacket"), (char *)ipdata);
17401742
zend_update_property(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("payload"), &szpayload);
17411743
Z_DELREF(szpayload);
17421744
break;

ext/sockets/sockets.stub.php

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2173,41 +2173,41 @@ function socket_wsaprotocol_info_release(string $info_id): bool {}
21732173

21742174
namespace Socket {
21752175
#ifdef AF_PACKET
2176-
readonly class Packet
2176+
class Packet
21772177
{
21782178
public int $headerSize;
21792179
public ?string $rawPacket;
21802180
}
21812181

2182-
final readonly class EthernetPacket extends Packet
2182+
final class EthernetPacket extends Packet
21832183
{
21842184
public \Socket $socket;
21852185
public int $ethProtocol;
21862186
public string $srcMac;
21872187
public string $dstMac;
2188-
public ?Packet $payload;
2188+
public ?object $payload;
21892189
}
21902190

2191-
final readonly class TcpPacket extends Packet
2191+
final class TcpPacket extends Packet
21922192
{
2193-
public string $srcPort;
2193+
public int $srcPort;
21942194
public int $dstPort;
21952195
}
21962196

2197-
final readonly class UdpPacket extends Packet
2197+
final class UdpPacket extends Packet
21982198
{
21992199
public int $srcPort;
22002200
public int $dstPort;
22012201
}
22022202

2203-
final readonly class Ipv4Packet extends Packet
2203+
final class Ipv4Packet extends Packet
22042204
{
22052205
public string $srcAddr;
22062206
public string $dstAddr;
2207-
public ?Packet $payload;
2207+
public ?object $payload;
22082208
}
22092209

2210-
final readonly class Ipv6Packet extends Packet
2210+
final class Ipv6Packet extends Packet
22112211
{
22122212
public string $srcAddr;
22132213
public string $dstAddr;

ext/sockets/sockets_arginfo.h

Lines changed: 23 additions & 25 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ext/sockets/tests/socket_afpacket.phpt

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,53 @@ object(Socket\EthernetPacket)#3 (%d) {
112112
string(%d) "%s:%s:%s:%s:%s:%s"
113113
["payload"]=>
114114
object(%s)#4 (%d) {
115-
%a
115+
%A
116116
}
117117
}
118118
int(60)
119119
unsupported ethernet protocol
120+
int(60)
121+
122+
Deprecated: Creation of dynamic property Socket\Ipv4Packet::$socket is deprecated in %s on line %d
123+
int(%d)
124+
string(2) "lo"
125+
object(Socket\EthernetPacket)#2 (7) {
126+
["headerSize"]=>
127+
int(14)
128+
["rawPacket"]=>
129+
string(%d) "%A"
130+
["socket"]=>
131+
object(Socket)#8 (0) {
132+
}
133+
["ethProtocol"]=>
134+
int(2048)
135+
["srcMac"]=>
136+
string(%d) "%s:%s:%s:%s:%s:%s"
137+
["dstMac"]=>
138+
string(%d) "%s:%s:%s:%s:%s:%s"
139+
["payload"]=>
140+
object(Socket\Ipv4Packet)#10 (6) {
141+
["headerSize"]=>
142+
int(%d)
143+
["rawPacket"]=>
144+
string(%d) "%s"
145+
["srcAddr"]=>
146+
string(%d) "%d.%d.%d.%d"
147+
["dstAddr"]=>
148+
string(%d) "%d.%d.%d.%d"
149+
["payload"]=>
150+
object(Socket\%sPacket)#11 (4) {
151+
["headerSize"]=>
152+
int(%d)
153+
["rawPacket"]=>
154+
string(%d) "%s"
155+
["srcPort"]=>
156+
int(%d)
157+
["dstPort"]=>
158+
int(%d)
159+
}
160+
["socket"]=>
161+
object(Socket)#8 (0) {
162+
}
163+
}
164+
}

0 commit comments

Comments
 (0)