Skip to content

Commit 2ae4135

Browse files
authored
Merge pull request #1889 from LinkTed/master
Add more constants for Linux like OS
2 parents e3312f5 + c6e695f commit 2ae4135

File tree

4 files changed

+158
-85
lines changed

4 files changed

+158
-85
lines changed

src/unix/linux_like/android/mod.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1676,13 +1676,16 @@ pub const SFD_NONBLOCK: ::c_int = O_NONBLOCK;
16761676
pub const SOCK_NONBLOCK: ::c_int = O_NONBLOCK;
16771677

16781678
pub const SO_ORIGINAL_DST: ::c_int = 80;
1679-
pub const IP_ORIGDSTADDR: ::c_int = 20;
1680-
pub const IP_RECVORIGDSTADDR: ::c_int = IP_ORIGDSTADDR;
1679+
1680+
pub const IP_RECVFRAGSIZE: ::c_int = 25;
1681+
16811682
pub const IPV6_FLOWINFO: ::c_int = 11;
1682-
pub const IPV6_ORIGDSTADDR: ::c_int = 74;
1683-
pub const IPV6_RECVORIGDSTADDR: ::c_int = IPV6_ORIGDSTADDR;
1683+
pub const IPV6_MULTICAST_ALL: ::c_int = 29;
1684+
pub const IPV6_ROUTER_ALERT_ISOLATE: ::c_int = 30;
16841685
pub const IPV6_FLOWLABEL_MGR: ::c_int = 32;
16851686
pub const IPV6_FLOWINFO_SEND: ::c_int = 33;
1687+
pub const IPV6_RECVFRAGSIZE: ::c_int = 77;
1688+
pub const IPV6_FREEBIND: ::c_int = 78;
16861689
pub const IPV6_FLOWINFO_FLOWLABEL: ::c_int = 0x000fffff;
16871690
pub const IPV6_FLOWINFO_PRIORITY: ::c_int = 0x0ff00000;
16881691

src/unix/linux_like/emscripten/mod.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1576,6 +1576,9 @@ pub const SO_RCVTIMEO: ::c_int = 20;
15761576
pub const SO_SNDTIMEO: ::c_int = 21;
15771577
pub const SO_ACCEPTCONN: ::c_int = 30;
15781578

1579+
pub const IPV6_RTHDR_LOOSE: ::c_int = 0;
1580+
pub const IPV6_RTHDR_STRICT: ::c_int = 1;
1581+
15791582
pub const SA_ONSTACK: ::c_int = 0x08000000;
15801583
pub const SA_SIGINFO: ::c_int = 0x00000004;
15811584
pub const SA_NOCLDWAIT: ::c_int = 0x00000002;

src/unix/linux_like/linux/mod.rs

Lines changed: 10 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -1262,73 +1262,6 @@ pub const SCHED_RESET_ON_FORK: ::c_int = 0x40000000;
12621262

12631263
// netinet/in.h
12641264
// NOTE: These are in addition to the constants defined in src/unix/mod.rs
1265-
1266-
// IPPROTO_IP defined in src/unix/mod.rs
1267-
/// Hop-by-hop option header
1268-
pub const IPPROTO_HOPOPTS: ::c_int = 0;
1269-
// IPPROTO_ICMP defined in src/unix/mod.rs
1270-
/// group mgmt protocol
1271-
pub const IPPROTO_IGMP: ::c_int = 2;
1272-
/// for compatibility
1273-
pub const IPPROTO_IPIP: ::c_int = 4;
1274-
// IPPROTO_TCP defined in src/unix/mod.rs
1275-
/// exterior gateway protocol
1276-
pub const IPPROTO_EGP: ::c_int = 8;
1277-
/// pup
1278-
pub const IPPROTO_PUP: ::c_int = 12;
1279-
// IPPROTO_UDP defined in src/unix/mod.rs
1280-
/// xns idp
1281-
pub const IPPROTO_IDP: ::c_int = 22;
1282-
/// tp-4 w/ class negotiation
1283-
pub const IPPROTO_TP: ::c_int = 29;
1284-
/// DCCP
1285-
pub const IPPROTO_DCCP: ::c_int = 33;
1286-
// IPPROTO_IPV6 defined in src/unix/mod.rs
1287-
/// IP6 routing header
1288-
pub const IPPROTO_ROUTING: ::c_int = 43;
1289-
/// IP6 fragmentation header
1290-
pub const IPPROTO_FRAGMENT: ::c_int = 44;
1291-
/// resource reservation
1292-
pub const IPPROTO_RSVP: ::c_int = 46;
1293-
/// General Routing Encap.
1294-
pub const IPPROTO_GRE: ::c_int = 47;
1295-
/// IP6 Encap Sec. Payload
1296-
pub const IPPROTO_ESP: ::c_int = 50;
1297-
/// IP6 Auth Header
1298-
pub const IPPROTO_AH: ::c_int = 51;
1299-
// IPPROTO_ICMPV6 defined in src/unix/mod.rs
1300-
/// IP6 no next header
1301-
pub const IPPROTO_NONE: ::c_int = 59;
1302-
/// IP6 destination option
1303-
pub const IPPROTO_DSTOPTS: ::c_int = 60;
1304-
pub const IPPROTO_MTP: ::c_int = 92;
1305-
pub const IPPROTO_BEETPH: ::c_int = 94;
1306-
/// encapsulation header
1307-
pub const IPPROTO_ENCAP: ::c_int = 98;
1308-
/// Protocol indep. multicast
1309-
pub const IPPROTO_PIM: ::c_int = 103;
1310-
/// IP Payload Comp. Protocol
1311-
pub const IPPROTO_COMP: ::c_int = 108;
1312-
/// SCTP
1313-
pub const IPPROTO_SCTP: ::c_int = 132;
1314-
pub const IPPROTO_MH: ::c_int = 135;
1315-
pub const IPPROTO_UDPLITE: ::c_int = 136;
1316-
pub const IPPROTO_MPLS: ::c_int = 137;
1317-
/// raw IP packet
1318-
pub const IPPROTO_RAW: ::c_int = 255;
1319-
pub const IPPROTO_MAX: ::c_int = 256;
1320-
1321-
pub const IP_MSFILTER: ::c_int = 41;
1322-
pub const MCAST_JOIN_GROUP: ::c_int = 42;
1323-
pub const MCAST_BLOCK_SOURCE: ::c_int = 43;
1324-
pub const MCAST_UNBLOCK_SOURCE: ::c_int = 44;
1325-
pub const MCAST_LEAVE_GROUP: ::c_int = 45;
1326-
pub const MCAST_JOIN_SOURCE_GROUP: ::c_int = 46;
1327-
pub const MCAST_LEAVE_SOURCE_GROUP: ::c_int = 47;
1328-
pub const MCAST_MSFILTER: ::c_int = 48;
1329-
pub const IP_MULTICAST_ALL: ::c_int = 49;
1330-
pub const IP_UNICAST_IF: ::c_int = 50;
1331-
13321265
pub const AF_IB: ::c_int = 27;
13331266
pub const AF_MPLS: ::c_int = 28;
13341267
pub const AF_NFC: ::c_int = 39;
@@ -1591,16 +1524,22 @@ pub const FALLOC_FL_UNSHARE_RANGE: ::c_int = 0x40;
15911524
pub const ENOATTR: ::c_int = ::ENODATA;
15921525

15931526
pub const SO_ORIGINAL_DST: ::c_int = 80;
1594-
pub const IP_ORIGDSTADDR: ::c_int = 20;
1595-
pub const IP_RECVORIGDSTADDR: ::c_int = IP_ORIGDSTADDR;
1527+
1528+
pub const IP_RECVFRAGSIZE: ::c_int = 25;
1529+
15961530
pub const IPV6_FLOWINFO: ::c_int = 11;
1597-
pub const IPV6_ORIGDSTADDR: ::c_int = 74;
1598-
pub const IPV6_RECVORIGDSTADDR: ::c_int = IPV6_ORIGDSTADDR;
1531+
pub const IPV6_MULTICAST_ALL: ::c_int = 29;
1532+
pub const IPV6_ROUTER_ALERT_ISOLATE: ::c_int = 30;
15991533
pub const IPV6_FLOWLABEL_MGR: ::c_int = 32;
16001534
pub const IPV6_FLOWINFO_SEND: ::c_int = 33;
1535+
pub const IPV6_RECVFRAGSIZE: ::c_int = 77;
1536+
pub const IPV6_FREEBIND: ::c_int = 78;
16011537
pub const IPV6_FLOWINFO_FLOWLABEL: ::c_int = 0x000fffff;
16021538
pub const IPV6_FLOWINFO_PRIORITY: ::c_int = 0x0ff00000;
16031539

1540+
pub const IPV6_RTHDR_LOOSE: ::c_int = 0;
1541+
pub const IPV6_RTHDR_STRICT: ::c_int = 1;
1542+
16041543
pub const IUTF8: ::tcflag_t = 0x00004000;
16051544
pub const CMSPAR: ::tcflag_t = 0o10000000000;
16061545

src/unix/linux_like/mod.rs

Lines changed: 138 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -768,22 +768,119 @@ pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP;
768768

769769
pub const SOCK_RAW: ::c_int = 3;
770770
pub const SOCK_RDM: ::c_int = 4;
771-
pub const IP_MULTICAST_IF: ::c_int = 32;
772-
pub const IP_MULTICAST_TTL: ::c_int = 33;
773-
pub const IP_MULTICAST_LOOP: ::c_int = 34;
774771
pub const IP_TOS: ::c_int = 1;
775772
pub const IP_TTL: ::c_int = 2;
776773
pub const IP_HDRINCL: ::c_int = 3;
774+
pub const IP_OPTIONS: ::c_int = 4;
775+
pub const IP_ROUTER_ALERT: ::c_int = 5;
776+
pub const IP_RECVOPTS: ::c_int = 6;
777+
pub const IP_RETOPTS: ::c_int = 7;
777778
pub const IP_PKTINFO: ::c_int = 8;
779+
pub const IP_PKTOPTIONS: ::c_int = 9;
778780
pub const IP_MTU_DISCOVER: ::c_int = 10;
779-
pub const IP_RECVTOS: ::c_int = 13;
780781
pub const IP_RECVERR: ::c_int = 11;
782+
pub const IP_RECVTTL: ::c_int = 12;
783+
pub const IP_RECVTOS: ::c_int = 13;
784+
pub const IP_MTU: ::c_int = 14;
781785
pub const IP_FREEBIND: ::c_int = 15;
786+
pub const IP_IPSEC_POLICY: ::c_int = 16;
787+
pub const IP_XFRM_POLICY: ::c_int = 17;
788+
pub const IP_PASSSEC: ::c_int = 18;
789+
pub const IP_TRANSPARENT: ::c_int = 19;
790+
pub const IP_ORIGDSTADDR: ::c_int = 20;
791+
pub const IP_RECVORIGDSTADDR: ::c_int = IP_ORIGDSTADDR;
792+
pub const IP_MINTTL: ::c_int = 21;
793+
pub const IP_NODEFRAG: ::c_int = 22;
794+
pub const IP_CHECKSUM: ::c_int = 23;
795+
pub const IP_BIND_ADDRESS_NO_PORT: ::c_int = 24;
796+
pub const IP_MULTICAST_IF: ::c_int = 32;
797+
pub const IP_MULTICAST_TTL: ::c_int = 33;
798+
pub const IP_MULTICAST_LOOP: ::c_int = 34;
782799
pub const IP_ADD_MEMBERSHIP: ::c_int = 35;
783800
pub const IP_DROP_MEMBERSHIP: ::c_int = 36;
801+
pub const IP_UNBLOCK_SOURCE: ::c_int = 37;
802+
pub const IP_BLOCK_SOURCE: ::c_int = 38;
784803
pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 39;
785804
pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 40;
786-
pub const IP_TRANSPARENT: ::c_int = 19;
805+
pub const IP_MSFILTER: ::c_int = 41;
806+
pub const IP_MULTICAST_ALL: ::c_int = 49;
807+
pub const IP_UNICAST_IF: ::c_int = 50;
808+
809+
pub const IP_DEFAULT_MULTICAST_TTL: ::c_int = 1;
810+
pub const IP_DEFAULT_MULTICAST_LOOP: ::c_int = 1;
811+
812+
pub const IP_PMTUDISC_DONT: ::c_int = 0;
813+
pub const IP_PMTUDISC_WANT: ::c_int = 1;
814+
pub const IP_PMTUDISC_DO: ::c_int = 2;
815+
pub const IP_PMTUDISC_PROBE: ::c_int = 3;
816+
pub const IP_PMTUDISC_INTERFACE: ::c_int = 4;
817+
pub const IP_PMTUDISC_OMIT: ::c_int = 5;
818+
819+
// IPPROTO_IP defined in src/unix/mod.rs
820+
/// Hop-by-hop option header
821+
pub const IPPROTO_HOPOPTS: ::c_int = 0;
822+
// IPPROTO_ICMP defined in src/unix/mod.rs
823+
/// group mgmt protocol
824+
pub const IPPROTO_IGMP: ::c_int = 2;
825+
/// for compatibility
826+
pub const IPPROTO_IPIP: ::c_int = 4;
827+
// IPPROTO_TCP defined in src/unix/mod.rs
828+
/// exterior gateway protocol
829+
pub const IPPROTO_EGP: ::c_int = 8;
830+
/// pup
831+
pub const IPPROTO_PUP: ::c_int = 12;
832+
// IPPROTO_UDP defined in src/unix/mod.rs
833+
/// xns idp
834+
pub const IPPROTO_IDP: ::c_int = 22;
835+
/// tp-4 w/ class negotiation
836+
pub const IPPROTO_TP: ::c_int = 29;
837+
/// DCCP
838+
pub const IPPROTO_DCCP: ::c_int = 33;
839+
// IPPROTO_IPV6 defined in src/unix/mod.rs
840+
/// IP6 routing header
841+
pub const IPPROTO_ROUTING: ::c_int = 43;
842+
/// IP6 fragmentation header
843+
pub const IPPROTO_FRAGMENT: ::c_int = 44;
844+
/// resource reservation
845+
pub const IPPROTO_RSVP: ::c_int = 46;
846+
/// General Routing Encap.
847+
pub const IPPROTO_GRE: ::c_int = 47;
848+
/// IP6 Encap Sec. Payload
849+
pub const IPPROTO_ESP: ::c_int = 50;
850+
/// IP6 Auth Header
851+
pub const IPPROTO_AH: ::c_int = 51;
852+
// IPPROTO_ICMPV6 defined in src/unix/mod.rs
853+
/// IP6 no next header
854+
pub const IPPROTO_NONE: ::c_int = 59;
855+
/// IP6 destination option
856+
pub const IPPROTO_DSTOPTS: ::c_int = 60;
857+
pub const IPPROTO_MTP: ::c_int = 92;
858+
pub const IPPROTO_BEETPH: ::c_int = 94;
859+
/// encapsulation header
860+
pub const IPPROTO_ENCAP: ::c_int = 98;
861+
/// Protocol indep. multicast
862+
pub const IPPROTO_PIM: ::c_int = 103;
863+
/// IP Payload Comp. Protocol
864+
pub const IPPROTO_COMP: ::c_int = 108;
865+
/// SCTP
866+
pub const IPPROTO_SCTP: ::c_int = 132;
867+
pub const IPPROTO_MH: ::c_int = 135;
868+
pub const IPPROTO_UDPLITE: ::c_int = 136;
869+
pub const IPPROTO_MPLS: ::c_int = 137;
870+
/// raw IP packet
871+
pub const IPPROTO_RAW: ::c_int = 255;
872+
pub const IPPROTO_MAX: ::c_int = 256;
873+
874+
pub const MCAST_EXCLUDE: ::c_int = 0;
875+
pub const MCAST_INCLUDE: ::c_int = 1;
876+
pub const MCAST_JOIN_GROUP: ::c_int = 42;
877+
pub const MCAST_BLOCK_SOURCE: ::c_int = 43;
878+
pub const MCAST_UNBLOCK_SOURCE: ::c_int = 44;
879+
pub const MCAST_LEAVE_GROUP: ::c_int = 45;
880+
pub const MCAST_JOIN_SOURCE_GROUP: ::c_int = 46;
881+
pub const MCAST_LEAVE_SOURCE_GROUP: ::c_int = 47;
882+
pub const MCAST_MSFILTER: ::c_int = 48;
883+
787884
pub const IPV6_ADDRFORM: ::c_int = 1;
788885
pub const IPV6_2292PKTINFO: ::c_int = 2;
789886
pub const IPV6_2292HOPOPTS: ::c_int = 3;
@@ -793,6 +890,7 @@ pub const IPV6_2292PKTOPTIONS: ::c_int = 6;
793890
pub const IPV6_CHECKSUM: ::c_int = 7;
794891
pub const IPV6_2292HOPLIMIT: ::c_int = 8;
795892
pub const IPV6_NEXTHOP: ::c_int = 9;
893+
pub const IPV6_AUTHHDR: ::c_int = 10;
796894
pub const IPV6_UNICAST_HOPS: ::c_int = 16;
797895
pub const IPV6_MULTICAST_IF: ::c_int = 17;
798896
pub const IPV6_MULTICAST_HOPS: ::c_int = 18;
@@ -806,16 +904,46 @@ pub const IPV6_RECVERR: ::c_int = 25;
806904
pub const IPV6_V6ONLY: ::c_int = 26;
807905
pub const IPV6_JOIN_ANYCAST: ::c_int = 27;
808906
pub const IPV6_LEAVE_ANYCAST: ::c_int = 28;
907+
pub const IPV6_IPSEC_POLICY: ::c_int = 34;
908+
pub const IPV6_XFRM_POLICY: ::c_int = 35;
909+
pub const IPV6_HDRINCL: ::c_int = 36;
809910
pub const IPV6_RECVPKTINFO: ::c_int = 49;
810911
pub const IPV6_PKTINFO: ::c_int = 50;
912+
pub const IPV6_RECVHOPLIMIT: ::c_int = 51;
811913
pub const IPV6_HOPLIMIT: ::c_int = 52;
914+
pub const IPV6_RECVHOPOPTS: ::c_int = 53;
915+
pub const IPV6_HOPOPTS: ::c_int = 54;
916+
pub const IPV6_RTHDRDSTOPTS: ::c_int = 55;
917+
pub const IPV6_RECVRTHDR: ::c_int = 56;
918+
pub const IPV6_RTHDR: ::c_int = 57;
919+
pub const IPV6_RECVDSTOPTS: ::c_int = 58;
920+
pub const IPV6_DSTOPTS: ::c_int = 59;
921+
pub const IPV6_RECVPATHMTU: ::c_int = 60;
922+
pub const IPV6_PATHMTU: ::c_int = 61;
923+
pub const IPV6_DONTFRAG: ::c_int = 62;
812924
pub const IPV6_RECVTCLASS: ::c_int = 66;
813925
pub const IPV6_TCLASS: ::c_int = 67;
814-
815-
pub const IP_PMTUDISC_DONT: ::c_int = 0;
816-
pub const IP_PMTUDISC_WANT: ::c_int = 1;
817-
pub const IP_PMTUDISC_DO: ::c_int = 2;
818-
pub const IP_PMTUDISC_PROBE: ::c_int = 3;
926+
pub const IPV6_AUTOFLOWLABEL: ::c_int = 70;
927+
pub const IPV6_ADDR_PREFERENCES: ::c_int = 72;
928+
pub const IPV6_MINHOPCOUNT: ::c_int = 73;
929+
pub const IPV6_ORIGDSTADDR: ::c_int = 74;
930+
pub const IPV6_RECVORIGDSTADDR: ::c_int = IPV6_ORIGDSTADDR;
931+
pub const IPV6_TRANSPARENT: ::c_int = 75;
932+
pub const IPV6_UNICAST_IF: ::c_int = 76;
933+
pub const IPV6_PREFER_SRC_TMP: ::c_int = 0x0001;
934+
pub const IPV6_PREFER_SRC_PUBLIC: ::c_int = 0x0002;
935+
pub const IPV6_PREFER_SRC_PUBTMP_DEFAULT: ::c_int = 0x0100;
936+
pub const IPV6_PREFER_SRC_COA: ::c_int = 0x0004;
937+
pub const IPV6_PREFER_SRC_HOME: ::c_int = 0x0400;
938+
pub const IPV6_PREFER_SRC_CGA: ::c_int = 0x0008;
939+
pub const IPV6_PREFER_SRC_NONCGA: ::c_int = 0x0800;
940+
941+
pub const IPV6_PMTUDISC_DONT: ::c_int = 0;
942+
pub const IPV6_PMTUDISC_WANT: ::c_int = 1;
943+
pub const IPV6_PMTUDISC_DO: ::c_int = 2;
944+
pub const IPV6_PMTUDISC_PROBE: ::c_int = 3;
945+
pub const IPV6_PMTUDISC_INTERFACE: ::c_int = 4;
946+
pub const IPV6_PMTUDISC_OMIT: ::c_int = 5;
819947

820948
pub const TCP_NODELAY: ::c_int = 1;
821949
pub const TCP_MAXSEG: ::c_int = 2;

0 commit comments

Comments
 (0)