Commit Graph

25 Commits

Author SHA1 Message Date
Evan Hahn
15c27437e9
Remove websocket feature flag
This change should have no user impact.

This has been enabled for almost a year (see
1ef694e241). Let's assume it's always
enabled and remove it.
2023-03-21 09:28:45 -07:00
Max Radermacher
0dc492fec5
Use common logic when creating web sockets 2023-01-24 14:01:34 -08:00
Igor Solomennikov
41b1469f7a
Convert OWSAudioPlayer to swift and lose 'OWS' prefix.
Also rename OWSAudioSession to AudioSession for consistency with everything else.
2022-12-06 16:00:58 -08:00
Max Radermacher
fe077c5e33
Fix web socket bugs & add close reason
* Add & use WebSocketError type

Previously, there were separate errors thrown for Starscream and native
web sockets. Now, they both throw `WebSocketError`s.

Also, if there’s a "Retry-After" header, we’ll include it on errors.

* Use coarser lock in SSKWebSocketNative

This isn’t strictly required, but it makes the class easier to reason
about, and it fixes a bug where writing to a web socket while that
socket is being closed normally could allow the write error to be
reported instead of the close error.

* Fix web socket close/final message race condition

There’s a comment in the code that describes the fix.

In addition, this updates the native web socket to only post the first
error that occurs. Both of the existing web socket implementations
(OWSWebSocket & ProvisioningSocket) are written in such a way that these
subsequent errors would be ignored, and it makes future code simpler if
there’s at most one error that gets reported.

* Make error required in web socket close delegate

Before this change, the error was never nil when using the native
socket, which is the implementation we use on iOS 13+. This change
ensures it’s never nil on iOS 12, which improves consistency.

In addition, this updates the iOS 12 implementation to skip reporting
error if the user has explicitly requested the connection be closed,
which also mimics the behavior on iOS 13+.
2022-11-30 14:35:22 -08:00
Max Radermacher
0606340fc5
Remove old CA certificate 2022-11-30 14:31:25 -08:00
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
c027faab7d Report HTTP status code when web sockets fail to connect
Necessary to detect when a device has been unlinked or unregistered.
2022-03-28 15:25:37 -07:00
Nora Trapp
d87fa8c16c Add new fonts for text stories 2022-03-17 14:30:19 -07:00
Michelle Linington
0f57b13e1d Drop Starscream dependency 2022-02-22 12:41:04 -08:00
Michelle Linington
fc1a94b5dc PR Feedback 2022-02-22 12:41:04 -08:00
Michelle Linington
1f2e39b07a WebSocket responses can now vend raw bytes 2022-02-22 12:41:04 -08:00
Ehren Kret
41a289946b Add support for new certificate authority
TextSecure CA expires in ~1 year; time for new one.
2022-01-26 12:59:45 -06:00
Matthew Chen
c0c72ef3fb Introduce WebSocketFactory. 2021-11-03 19:48:48 -07:00
Matthew Chen
539dff09e4 Move MobileCoin SDK to SignalUI. 2021-11-02 14:26:03 -03:00
Matthew Chen
079bb08067 Move MobileCoin SDK to SignalUI. 2021-11-02 14:26:02 -03:00
Matthew Chen
60593ee26f Move MobileCoin SDK to SignalUI. 2021-11-02 14:26:02 -03:00
Matthew Chen
7d0485661d Move window manager to Signal target. 2021-10-19 17:59:13 -03:00
Matthew Chen
05940be99d Respond to CR. 2021-10-19 09:40:26 -03:00
Matthew Chen
399c0c3c33 Add SignalUI framework target. 2021-10-19 09:39:54 -03:00
Matthew Chen
21a8175795 Add SignalUI framework target. 2021-10-19 09:39:53 -03:00
Matthew Chen
fbde0356f7 Add SignalUI framework target. 2021-10-19 09:39:53 -03:00
Matthew Chen
93ba483ec5 Add SignalUI framework target. 2021-10-19 09:39:53 -03:00
Matthew Chen
b5ed609b42 Add SignalUI framework target. 2021-10-19 09:39:53 -03:00
Matthew Chen
a50b328efd Add SignalUI framework target. 2021-10-19 09:39:53 -03:00
Matthew Chen
c416609108 Add SignalUI framework target. 2021-10-19 09:39:53 -03:00