Commit Graph

10 Commits

Author SHA1 Message Date
Evan Hahn
370ff654e7
Change license to AGPL
Change license to AGPL

This commit:

- Updates the `LICENSE` file

- Start every file with something like:

      // Copyright YEAR_FIRST_PUBLISHED Signal Messenger, LLC
      // SPDX-License-Identifier: AGPL-3.0-only

---

First, I removed existing license headers with this Ruby 3.1.2 script:

    require 'set'

    EXTENSIONS_TO_CHECK = Set['.h', '.hpp', '.cpp', '.m', '.mm', '.pch', '.swift']

    same = 0
    different = 0

    all_files = `git ls-files`.lines.map { |line| line.strip }
    all_files.each do |relative_path|
      if relative_path == 'Pods'
        next
      end

      unless EXTENSIONS_TO_CHECK.include? File.extname(relative_path)
        next
      end

      path = File.expand_path(relative_path)

      contents = File.read(path)
      new_contents = contents.sub(/\/\/\n\/\/  Copyright .*\n\/\/\n\n/, '')

      if contents == new_contents
        same += 1
      else
        different += 1
      end

      File.write(path, new_contents)
    end

    puts "updated #{different} file(s), left #{same} untouched"

I'm sure this script could be improved, but it worked well enough.

Then, I created `Scripts/lint/lint-license-headers` and ran it to auto-
fix a lot of files. This changed the mode of some files, but I think
that's actually desirable. For example,
`SignalServiceKit/src/Util/AppContext.m` previously had a mode of
`0755/-rwxr-xr-x`, and it's now `0644/-rw-r--r--`.

Then I fixed some stragglers and updated the precommit script.

See [a similar change in the Desktop app][0].

[0]: 8bfaf598af
2022-10-13 08:25:37 -05:00
Jordan Rose
a302e7cfbc If a call message gets stuck, make sure it's treated as old later
Call messages delivered to the NSE have to be handled in the main app,
so they're put in a synced key-value store and the app is notified.
Rings are processed oldest-to-newest in case you get two calls in
succession before the main app awakes. However, if this processing is
interrupted, the store won't get cleared, and the app may try to
process the *old* ring when it's woken up by a *new* ring. This would
*still* be correct (e.g. for showing missed call notifications) except
that the "age" of a ring message is calculated purely on when it makes
it to the user's device, since it was assumed that it would be
processed promptly. Since this is not necessarily the case in these
error scenarios, this commit adds a second timestamp to track the skew
between when the NSE enqueues the call message and when the main app
processes it.
2022-02-18 16:01:09 -08:00
Michelle Linington
a452ed3061 Wait for RingRTC before we finish handling VoIP push 2021-09-24 18:36:35 -07:00
Matthew Chen
692c637e80 Handle certain call messages sync. 2021-09-22 12:11:09 -07:00
Michelle Linington
0a69803b96 Restore NSE+main call message handoff 2021-09-22 11:23:14 -07:00
Michelle Linington
48435eb05d NSE should bail whenever it wakes the main app
We've observed races between the NSE+app handoff that can cause a
message to be decrypted twice. This works around this by quitting the
NSE if we decide to wake the main app. This isn't a good fix, but it
should address these out-of-sync session issues for now.
2021-09-21 18:44:00 -07:00
Matthew Chen
db08e2e651 Announcement-only groups. 2021-07-13 11:42:52 -03:00
Nora Trapp
e65b722230 Don't perform duplicate decryption of relayed call messages 2021-07-06 13:41:36 -07:00
Nora Trapp
b6e33ec162 Only relay encrypted data to main app when receiving a call 2021-06-03 08:38:30 -07:00
Nora Trapp
f1e4113fb2 Handle call messages in the NSE 2021-06-03 08:38:29 -07:00