ffi-libc 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog.md +12 -1
- data/README.md +1 -3
- data/VERSION +1 -1
- data/ffi-libc.gemspec +10 -2
- data/lib/ffi/libc/af.rb +23 -0
- data/lib/ffi/libc/in6_addr.rb +12 -0
- data/lib/ffi/libc/in_addr.rb +14 -0
- data/lib/ffi/libc/sock_addr.rb +17 -0
- data/lib/ffi/libc/sock_addr_dl.rb +22 -0
- data/lib/ffi/libc/sock_addr_family.rb +12 -0
- data/lib/ffi/libc/sock_addr_in.rb +19 -0
- data/lib/ffi/libc/sock_addr_in6.rb +19 -0
- data/lib/ffi/libc/types.rb +2 -5
- metadata +12 -4
data/ChangeLog.md
CHANGED
@@ -1,4 +1,15 @@
|
|
1
|
-
### 0.
|
1
|
+
### 0.0.2 / 2010-05-21
|
2
|
+
|
3
|
+
* Removed a duplicate typedef of the `size_t` type.
|
4
|
+
* Added the Structs:
|
5
|
+
* {FFI::LibC::InAddr}.
|
6
|
+
* {FFI::LibC::In6Addr}.
|
7
|
+
* {FFI::LibC::SockAddr}.
|
8
|
+
* {FFI::LibC::SockAddrDL}.
|
9
|
+
* {FFI::LibC::SockAddrIn}.
|
10
|
+
* {FFI::LibC::SockAddrIn6}.
|
11
|
+
|
12
|
+
### 0.0.1 / 2010-05-19
|
2
13
|
|
3
14
|
* Initial release.
|
4
15
|
* Added the Structs:
|
data/README.md
CHANGED
@@ -13,11 +13,9 @@ Useful Ruby FFI bindings for `libc`.
|
|
13
13
|
* Provides common Structs used in `libc`.
|
14
14
|
* Binds to common functions and global variables in `libc`.
|
15
15
|
|
16
|
-
## Examples
|
17
|
-
|
18
16
|
## Requirements
|
19
17
|
|
20
|
-
* [ffi](http://github.com/ffi/ffi)
|
18
|
+
* [ffi](http://github.com/ffi/ffi) ~> 0.6.0
|
21
19
|
|
22
20
|
## Install
|
23
21
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
data/ffi-libc.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{ffi-libc}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Postmodern"]
|
12
|
-
s.date = %q{2010-05-
|
12
|
+
s.date = %q{2010-05-21}
|
13
13
|
s.description = %q{Useful Ruby FFI bindings for libc.}
|
14
14
|
s.email = %q{postmodern.mod3@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -29,7 +29,15 @@ Gem::Specification.new do |s|
|
|
29
29
|
"VERSION",
|
30
30
|
"ffi-libc.gemspec",
|
31
31
|
"lib/ffi/libc.rb",
|
32
|
+
"lib/ffi/libc/af.rb",
|
33
|
+
"lib/ffi/libc/in6_addr.rb",
|
34
|
+
"lib/ffi/libc/in_addr.rb",
|
32
35
|
"lib/ffi/libc/libc.rb",
|
36
|
+
"lib/ffi/libc/sock_addr.rb",
|
37
|
+
"lib/ffi/libc/sock_addr_dl.rb",
|
38
|
+
"lib/ffi/libc/sock_addr_family.rb",
|
39
|
+
"lib/ffi/libc/sock_addr_in.rb",
|
40
|
+
"lib/ffi/libc/sock_addr_in6.rb",
|
33
41
|
"lib/ffi/libc/timeval.rb",
|
34
42
|
"lib/ffi/libc/timezone.rb",
|
35
43
|
"lib/ffi/libc/types.rb"
|
data/lib/ffi/libc/af.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'socket'
|
2
|
+
|
3
|
+
module FFI
|
4
|
+
module LibC
|
5
|
+
#
|
6
|
+
# Contains `AF_*` constants culled from Ruby's ::Socket
|
7
|
+
#
|
8
|
+
module AF
|
9
|
+
APPLETALK = 5
|
10
|
+
AX25 = 3
|
11
|
+
INET = 2
|
12
|
+
INET6 = 10
|
13
|
+
IPX = 4
|
14
|
+
ISDN = 34
|
15
|
+
LOCAL = 1
|
16
|
+
MAX = 36
|
17
|
+
ROUTE = 16
|
18
|
+
SNA = 22
|
19
|
+
UNIX = 1
|
20
|
+
UNSPEC = 0
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'ffi/libc/types'
|
2
|
+
require 'ffi/libc/sock_addr_family'
|
3
|
+
|
4
|
+
module FFI
|
5
|
+
module LibC
|
6
|
+
#
|
7
|
+
# The generic `sock_addr` structure.
|
8
|
+
#
|
9
|
+
class SockAddr < SockAddrFamily
|
10
|
+
|
11
|
+
layout :len, :uint8,
|
12
|
+
:family, :sa_family_t,
|
13
|
+
:data, :char
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'ffi/libc/types'
|
2
|
+
require 'ffi/libc/sock_addr_family'
|
3
|
+
|
4
|
+
module FFI
|
5
|
+
module LibC
|
6
|
+
#
|
7
|
+
# The data-link socket address
|
8
|
+
#
|
9
|
+
class SockAddrDL < SockAddrFamily
|
10
|
+
|
11
|
+
layout :len, :uint8,
|
12
|
+
:family, :sa_family_t,
|
13
|
+
:sdl_index, :uint16,
|
14
|
+
:dltype, :uint8,
|
15
|
+
:nlen, :uint8,
|
16
|
+
:alen, :uint8,
|
17
|
+
:slen, :uint8,
|
18
|
+
:_data, :char
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'ffi/libc/types'
|
2
|
+
require 'ffi/libc/sock_addr_family'
|
3
|
+
|
4
|
+
module FFI
|
5
|
+
module LibC
|
6
|
+
#
|
7
|
+
# sockaddr inet, always good to have around
|
8
|
+
#
|
9
|
+
class SockAddrIn < SockAddrFamily
|
10
|
+
|
11
|
+
layout :len, :uint8,
|
12
|
+
:family, :sa_family_t,
|
13
|
+
:port, :in_port_t,
|
14
|
+
:addr, :in_addr_t,
|
15
|
+
:_sa_zero, [:uint8, 8]
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'ffi/libc/types'
|
2
|
+
require 'ffi/libc/in6_addr'
|
3
|
+
|
4
|
+
module FFI
|
5
|
+
module LibC
|
6
|
+
#
|
7
|
+
# IPv6 socket address
|
8
|
+
#
|
9
|
+
class SockAddrIn6 < SockAddrFamily
|
10
|
+
|
11
|
+
layout :len, :uint8,
|
12
|
+
:family, :sa_family_t,
|
13
|
+
:port, :in_port_t,
|
14
|
+
:flowinfo, :uint32,
|
15
|
+
:addr, In6Addr
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/ffi/libc/types.rb
CHANGED
@@ -4,11 +4,8 @@ module FFI
|
|
4
4
|
module LibC
|
5
5
|
extend FFI::Library
|
6
6
|
|
7
|
-
typedef :uint, :size_t
|
8
|
-
typedef :int, :ssize_t
|
9
|
-
typedef :uint, :off_t
|
10
|
-
typedef :ulong, :time_t
|
11
|
-
typedef :long, :suseconds_t
|
12
7
|
typedef :pointer, :FILE
|
8
|
+
typedef :uint32, :in_addr_t
|
9
|
+
typedef :uint16, :in_port_t
|
13
10
|
end
|
14
11
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ffi-libc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Postmodern
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-05-
|
18
|
+
date: 2010-05-21 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -120,7 +120,15 @@ files:
|
|
120
120
|
- VERSION
|
121
121
|
- ffi-libc.gemspec
|
122
122
|
- lib/ffi/libc.rb
|
123
|
+
- lib/ffi/libc/af.rb
|
124
|
+
- lib/ffi/libc/in6_addr.rb
|
125
|
+
- lib/ffi/libc/in_addr.rb
|
123
126
|
- lib/ffi/libc/libc.rb
|
127
|
+
- lib/ffi/libc/sock_addr.rb
|
128
|
+
- lib/ffi/libc/sock_addr_dl.rb
|
129
|
+
- lib/ffi/libc/sock_addr_family.rb
|
130
|
+
- lib/ffi/libc/sock_addr_in.rb
|
131
|
+
- lib/ffi/libc/sock_addr_in6.rb
|
124
132
|
- lib/ffi/libc/timeval.rb
|
125
133
|
- lib/ffi/libc/timezone.rb
|
126
134
|
- lib/ffi/libc/types.rb
|