MEChat 1.2.1 → 1.2.5.pre.pause

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/Chat.rb +11 -0
  3. data/client.rb +1 -6
  4. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 556b83c0aefa9cb6249f2c754d1935c62b6b8b111bae62033ccedc8ea5550675
4
- data.tar.gz: f38270047e1275ea3f9a88efc5d000d201bbe5e714c999eaabae6c1f572a21e2
3
+ metadata.gz: bf2ec999b660eded80cb27be27389b5f5ed3cdbbb9413c794e349bfe743d6ec4
4
+ data.tar.gz: 9c33f89aabb6acc8e801c833947c4c4cc917990a98fb63d9ce077e861f473fcf
5
5
  SHA512:
6
- metadata.gz: 8b187f484fa46fc5f3be32f4fbaec2cb03492bc62f37d92c6b520d205a362bfc7cbe9453f041957c4811223ae1352d9a40d29f73a79400c4333f72da444f9081
7
- data.tar.gz: 1aff1558b26d02df3ca12a896675b8fd2d7898839c9c599a2db3df9b4b38a908cee9c73e5d9d9ed83ca9e0eb60152ddf772da129a651770150b0467c8e7b0bf1
6
+ metadata.gz: 90018a9598629f8e7af04f2a874a715ef9fa4bd38e93194683edd7cd7f57fc6829384aefec9b260b4a7f093542067dd1e0b3056960a61c4152cfb01fbf8affc8
7
+ data.tar.gz: 279a0a25e925d743405863dcbf68e392a579d469e2bb6d28b85a55a90dc66140ce7985c13fc3af08014779bf91df954c3a177aa054a780d304fdd3e4a53bc7be
data/Chat.rb CHANGED
@@ -36,10 +36,21 @@ class Chat < DistributedChat::ChatService::Service
36
36
  def request_critical_section(req,_call)
37
37
  request = {:ip => Addrinfo.getaddrinfo(req.username.split(":")[0..-2].join(":"),req.username.split(":")[-1].to_i)[0], :message => req}
38
38
  if $crit_section === 0
39
+ @logger.info "Sent reply to #{request[:ip].ip_address}:#{request[:ip].ip_port}, because I am not in critical section"
39
40
  send_reply ip: request[:ip]
40
41
  elsif $crit_section < 2 && request[:message].timestamp < $alg.clock
42
+ @logger.info "Sent reply to #{request[:ip].ip_address}:#{request[:ip].ip_port}, because I am entering critical section but my request is newer"
41
43
  send_reply ip: request[:ip]
44
+ elsif $crit_section < 2 && request[:message].timestamp === $alg.clock
45
+ if request[:ip].ip_address + ":" + request[:ip].ip_port.to_s < @ip.ip_address + ":" + @port.to_s
46
+ @logger.info "Sent reply to #{request[:ip].ip_address}:#{request[:ip].ip_port}, because I am entering critical section but my request is newer"
47
+ send_reply ip: request[:ip]
48
+ else
49
+ @logger.info "Delayed reply to #{request[:ip].ip_address}:#{request[:ip].ip_port}, because I am entering critical section but my request is older"
50
+ $alg.requests << request
51
+ end
42
52
  else
53
+ @logger.info "Delayed reply to #{request[:ip].ip_address}:#{request[:ip].ip_port}, because I am in critical section"
43
54
  $alg.requests << request
44
55
  end
45
56
  DistributedChat::Response.new status_code: 0
data/client.rb CHANGED
@@ -70,16 +70,11 @@ class Client
70
70
  while new_msg != "exit"
71
71
  $crit_section = 1
72
72
  request_critical_section
73
- sleepdur = 0
74
73
  while $alg.replies.length < $nodes.length
75
- sleepdur += 0.1
76
- @logger.info "#{@ip.ip_address}:#{$port.to_s} waiting for replies"
77
74
  sleep 0.1
78
- if sleepdur % 5 == 0
79
- puts "Waiting for replies. #{$alg.replies.length}/#{$nodes.length} replies received"
80
- end
81
75
  end
82
76
  $crit_section = 2
77
+ gets
83
78
  $nodes.each do |node|
84
79
  chat = DistributedChat::ChatService::Stub.new("#{node.address}:#{node.port}", :this_channel_is_insecure)
85
80
  chat.send_message(DistributedChat::Request.new(username: "#{@ip.ip_address}:#{$port.to_s}", message: new_msg, timestamp: $alg.clock))
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: MEChat
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.2.5.pre.pause
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lukas Kaufmann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-08 00:00:00.000000000 Z
11
+ date: 2024-01-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: grpc
@@ -140,9 +140,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
140
140
  version: '0'
141
141
  required_rubygems_version: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ">="
143
+ - - ">"
144
144
  - !ruby/object:Gem::Version
145
- version: '0'
145
+ version: 1.3.1
146
146
  requirements: []
147
147
  rubygems_version: 3.4.10
148
148
  signing_key: