Commit Graph
11 Commits
Author SHA1 Message Date
Michael WilsonandZac Bergquist 08beb1b959 Ensure that TrackingReadConn and TrackingReader conform to io.Reader (#17377)
* Ensure that TrackingReadConn and TrackingReader conform to io.Reader

Implementations of io.Reader should return io.EOF directly when the end of
the stream is reached, because callers will compare the error using ==.

* Update lib/srv/monitor_test.go

Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>

* Use require.Equal for conn_test.go

Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>
2022-10-14 15:01:38 +00:00
Noah Stride 02b4f8575f Configure linter to catch British 🇬🇧 spellings 🇺🇸 🦅 📖 (#14363)
* configure golangci-lint misspell to check for anglicized spellings

* Americanize spellings

* fix aws constant value with british spelling 🇬🇧

* update api types with americanized spellings

* use american spellings .cloudbuild/scripts
2022-07-14 10:51:23 +00:00
Joel 17fd4ccade Align atomics on ARM32 (#11822) 2022-04-13 14:42:54 +00:00
Zac Bergquist 55cbd0ac97 Remove use of deprecated ioutil package (#11296)
* Remove use of deprecated ioutil package
* Add lint rule to check for ioutil imports
2022-03-21 18:00:34 +00:00
Jim Bishopp 4127f1848a Fix app server goroutine leak (#9332)
Fixes https://github.com/gravitational/teleport-private/issues/79
LAT-APP21-4: DOS - Goroutine leak in app server

Prevent the app server's HandleConnection from blocking for 
every connection until the server closes. This change blocks 
only until the connection is closed.
2021-12-10 21:28:51 +00:00
Andrew Lytvynov aceffd9a35 Add more data to k8s session events (#4858)
Added fields:
- kube users/groups
- pod name/namespace
- container name/image
- node name

Container image and node name need to be fetched from the k8s API, they
are not known from just the client request. This fetch is optional, and
if it fails (like due to permission errors), those fields will be
missing.

Since kubernetes_service can talk to k8s API and proxy_service can't,
all session events are now emitted by kubernetes_service and skipped by
the proxy (used to be the other way around).
2020-11-17 23:46:51 +00:00
Sasha Klizhentas d160507430 Session streaming
This commit introduces GRPC API for streaming sessions.

It adds structured events and sync streaming
that avoids storing events on disk.

You can find design in rfd/0002-streaming.md RFD.
2020-09-28 23:08:56 -07:00
Andrew Lytvynov b1eae4ac4c Remove unused functions and methods throughout lib/...
This code is not caught by linters because it's exported and they assume
there's some external users.
Since teleport is relatively self-contained, we can tell for sure
whether something is called or not.
2020-05-06 00:02:53 +00:00
Russell Jones ac9af87dfb Emit data transfer events.
Created *utils.TrackingConn that wraps the server side net.Conn and is
used to track how much data is transmitted and received over the
net.Conn. At the close of a connection (close of a *srv.ServerContext)
the total data transmitted and received is emitted to the Audit Log.
2019-03-08 19:22:20 +00:00
Sasha Klizhentas f8dba76147 SSH/TLS multiplexer with Proxy protocol support
This commit aadds multiplexer library of SSH/TLS on the same
listener socket. The multiplexer detects the protocol by the first
3 bytes of the incoming connection and forwards wrapped
connection either to the SSH ot TLS listeners.

The library also supports PROXY line protocol
and wraps connection information with connection details
from the proxy line received by the server
2017-11-23 14:50:28 -08:00
Sasha Klizhentas e12ec7422c refactoring 2017-10-05 17:29:31 -07:00