sctp-socket 0.1.0 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a483264dd5712655f641ade00e03177756f25340c2fd398bed3ad453bc6a9cdb
4
- data.tar.gz: 719857e2ce3a5db341aa317f23ec0bf2fa674dd9b427b502f99e3515cb786dac
3
+ metadata.gz: 89d20d26ad8e90c5673d4d126da8daa8f69d907a54ba0ddc9caf529ef5929c6e
4
+ data.tar.gz: 886d28171c2e7242a7875b7a998e7073a9bec469da7da5b9205859a4e2d3e257
5
5
  SHA512:
6
- metadata.gz: 3dd98e9076f37396a55339fa20f1097ab5c582a418d885d8599b320b5cf722acb3c296b8afb798faadbee67519ee9368e87596c60d8658ef35a23a01d76c0d82
7
- data.tar.gz: 4c7adf403e6075eb53129e9f4b92a97e3887518afa15458bf8b74fa7765478c54001d5f5f6cd997c2a4e44e1cba8783ee329ff9c3125f62fb9ae87e53c7e06b7
6
+ metadata.gz: ee23fbff8da2e3efa66f87f583ba1f631d39957a6f74bff530d1b71ae1a15ab773ecb6653f34d8d5e17e034a15f6a736c90a16f3c8f3ed636734ab674dee54ca
7
+ data.tar.gz: 68ff54d9088bfe723f0726c3bcc41c102aab7c3f631f1156f64651bd078ffa1a852b247505a4babf36cb37c61aa11726587db407ad34171c974b6afca96283a8
checksums.yaml.gz.sig CHANGED
Binary file
@@ -0,0 +1,37 @@
1
+ name: Ruby
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ paths-ignore:
7
+ - '**/*.md'
8
+ pull_request:
9
+ branches: [ main ]
10
+ paths-ignore:
11
+ - '**/*.md'
12
+ workflow_dispatch:
13
+
14
+ jobs:
15
+ test:
16
+ runs-on: ubuntu-latest
17
+ strategy:
18
+ matrix:
19
+ ruby-version: ['3.2', '3.3']
20
+ steps:
21
+ - uses: actions/checkout@v4
22
+ - name: Install SCTP headers
23
+ run: |
24
+ sudo apt-get install libsctp-dev lksctp-tools
25
+ sudo ip link add dummy1 type dummy
26
+ sudo ip link add dummy2 type dummy
27
+ sudo ip addr add 1.1.1.1/24 dev dummy1
28
+ sudo ip addr add 1.1.1.2/24 dev dummy2
29
+ sudo ip link set dummy1 up
30
+ sudo ip link set dummy2 up
31
+ - name: Setup Ruby
32
+ uses: ruby/setup-ruby@v1
33
+ with:
34
+ ruby-version: ${{ matrix.ruby-version }}
35
+ bundler-cache: true
36
+ - name: Run Specs
37
+ run: bundle exec rake
data/CHANGES.md CHANGED
@@ -1,3 +1,19 @@
1
+ ## 0.1.2 - 10-Jan-2025
2
+ * Added support for BSD.
3
+
4
+ ## 0.1.1 - 1-Jan-2025
5
+ * Added the set_shared_key method.
6
+ * Added the get_active_shared_key and set_active_shared_key methods.
7
+ * Added the get_initmsg method.
8
+ * Added autoclose getter and setter methods.
9
+ * Added the enable_auth_support method.
10
+ * Added methods for getting, setting or deleting a shared key.
11
+ * Added the map_ipv4 method.
12
+ * Updated the get_peer_address_params method to include more info.
13
+ * Many comment additions and updates.
14
+ * Added a rake task to create dummy IP addresses for testing.
15
+ * Added a funding_uri to the gemspec.
16
+
1
17
  ## 0.1.0 - 31-May-2024
2
18
  * Added support for sender dry events.
3
19
  * Added the get_peer_address_params method.
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ [![Ruby](https://github.com/djberg96/sctp-socket/actions/workflows/ruby.yml/badge.svg)](https://github.com/djberg96/sctp-socket/actions/workflows/ruby.yml)
2
+
1
3
  ## Description
2
4
 
3
5
  A Ruby interface for SCTP sockets.
@@ -55,16 +57,22 @@ end
55
57
 
56
58
  ## Future Plans
57
59
 
58
- * Add more constants.
59
60
  * Add more specs.
60
- * Add more notifications.
61
+ * Subclass the Socket class (but see known issues below).
62
+ * Create a wrapper for the usrlibsctp implementation using FFI.
61
63
 
62
64
  ## Known Issues
63
65
 
64
- Currently this has only been developed and tested on Linux. Other platforms
65
- will probably only be supported via community contributions.
66
+ Currently this has only been developed and tested on Linux and BSD. Other
67
+ platforms will probably only be supported via community contributions.
68
+
69
+ The sendv and recvv methods may not be available. Use the sendmsg and recvmsg
70
+ methods instead.
66
71
 
67
- The sendv method is not available on some Linux variants. Use the sendmsg method instead.
72
+ I am currently unable to subclass the Socket class from Ruby's standard library.
73
+ For whatever reason the call to rb_call_super works, but the fileno is always
74
+ set to nil. I think it's getting confused by the IPPROTO_SCTP value for the
75
+ protocol, but I haven't nailed it down yet.
68
76
 
69
77
  Please report any issues on the github project page.
70
78
 
@@ -75,6 +83,8 @@ Please report any issues on the github project page.
75
83
  * https://www.linuxjournal.com/article/9748
76
84
  * https://www.linuxjournal.com/article/9749
77
85
  * https://www.linuxjournal.com/article/9784
86
+ * SCTP in Theory and Practice - Svetomir Dimitrov
87
+ * Stream Control Transmission Protocol (A Reference Guide) - Randall Stewart and Qiaobing Xie
78
88
 
79
89
  ## License
80
90
 
@@ -82,7 +92,7 @@ Apache-2.0
82
92
 
83
93
  ## Copyright
84
94
 
85
- (C) 2020-2024, Daniel J. Berger
95
+ (C) 2020-2025, Daniel J. Berger
86
96
  Al Rights Reserved
87
97
 
88
98
  ## Author
data/Rakefile CHANGED
@@ -37,6 +37,17 @@ Rake::ExtensionTask.new('socket') do |t|
37
37
  t.lib_dir = 'lib/sctp'
38
38
  end
39
39
 
40
+ desc "Create dummy IP addresses to use for testing"
41
+ task :create_dummy_links do
42
+ system('sudo ip link add dummy1 type dummy')
43
+ system('sudo ip link add dummy2 type dummy')
44
+ system('sudo ip addr add 1.1.1.1/24 dev dummy1')
45
+ system('sudo ip addr add 1.1.1.2/24 dev dummy2')
46
+ system('sudo ip link set dummy1 up')
47
+ system('sudo ip link set dummy2 up')
48
+ system('ip link show')
49
+ end
50
+
40
51
  RSpec::Core::RakeTask.new
41
52
 
42
53
  task :spec => :compile
data/ext/sctp/extconf.rb CHANGED
@@ -24,8 +24,25 @@ unless have_header('netinet/sctp.h')
24
24
  exit
25
25
  end
26
26
 
27
+ header = 'netinet/sctp.h'
28
+
27
29
  have_library('sctp')
28
- have_func('sctp_sendv', 'netinet/sctp.h')
29
- have_func('sctp_recvv', 'netinet/sctp.h')
30
- have_struct_member('struct sctp_event_subscribe', 'sctp_send_failure_event', 'netinet/sctp.h')
30
+
31
+ have_header('sys/param.h')
32
+
33
+ have_func('sctp_sendv', header)
34
+ have_func('sctp_recvv', header)
35
+
36
+ have_struct_member('struct sctp_event_subscribe', 'sctp_send_failure_event', header)
37
+ have_struct_member('struct sctp_event_subscribe', 'sctp_stream_reset_event', header)
38
+ have_struct_member('struct sctp_event_subscribe', 'sctp_assoc_reset_event', header)
39
+ have_struct_member('struct sctp_event_subscribe', 'sctp_stream_change_event', header)
40
+ have_struct_member('struct sctp_event_subscribe', 'sctp_send_failure_event_event', header)
41
+
42
+ have_struct_member('struct sctp_send_failed_event', 'ssfe_length', header)
43
+
44
+ have_struct_member('union sctp_notification', 'sn_auth_event', header)
45
+
46
+ have_const('SCTP_EMPTY', header)
47
+
31
48
  create_makefile('sctp/socket')