MEChat 1.2.1 → 1.2.5.pre.pause

Sign up to get free protection for your applications and to get access to all the features.
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: