profile
viewpoint

hacst/HTML5HASH 14

Local file hashing with CRC32, MD5 and SHA1 in a browser using modern HTML5 features

hacst/sandbox 10

OpenCV based augmented reality sandbox

hacst/hfy2epub 5

A tool to turn post series from r/HFY to EPUB files in your browser

arrai/mumble-record 4

A temporary branch to implement recording in mumble

hacst/chess 2

Chess game with OpenGL GUI and AI

hacst/montecarlopi 2

Visualization of Pi calculation with the Monte Carlo method using Canvas and JavaScript

hacst/mumble 2

Mumble VoIP Client/Server

hacst/mumble_link 1

Python module for exercising Mumble's link postional audio plugin interface

hacst/rotcbot 1

A jabber bot that scans the TGE master server and announces new games of a specific type.

push eventmumble-voip/MumbleTransifexBot

Stefan Hacker

commit sha 59f8da8d4264111174588ab38f52b49fc0165f81

Switch to python3

view details

Stefan Hacker

commit sha 6f829a8d14bc595d1dda32877e5e78d25f697170

Switch to PAT auth against github Github is deprecating password based access for some API endpoints this bot uses. Switch to PAT based auth to keep it working.

view details

push time in 15 days

PR closed mumble-voip/mumble

Transifex translation update

New translation updates available from transifex https://www.transifex.com/organization/mumble/dashboard/mumble

+366 -316

1 comment

43 changed files

MumbleTransifexBot

pr closed time in 15 days

pull request commentmumble-voip/mumble

Transifex translation update

Closed to be able to test mumbletransifexbot changes.

MumbleTransifexBot

comment created time in 15 days

issue commentterraform-providers/terraform-provider-azurerm

Terraform tries to destroy resources before the management lock had a chance to sync

We are also seeing this issue. The locks seem to be prone to race issues in general. It seems like they can also behave inconsistent on creation leading to:

Error: locks.ManagementLocksClient#GetByScope: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="LockNotFound" Message="The lock 'XXX' could not be found."

But that is not easily reproducible like the deletion one.

mariojacobo

comment created time in a month

startedklaussinani/ao

started time in 2 months

push eventmumble-voip/mumble

John Mckay

commit sha f046c74aba68ed21b0855587bd54843dae29ff8e

Client authentication for gRPC This adds client authentication using TLS certificates when it is enabled in gRPC. This just the basic feature right now. You either have access or you do not. Access is granted by putting the certificate digests of the authorized users into the murmur.ini file.

view details

Stefan Hacker

commit sha 9c4a149138fd3a55e38f4c56e328d0baa43e8761

Merge pull request #3906 from McKayJT/grpc-client-authentication Client authentication for gRPC

view details

push time in 2 months

PR merged mumble-voip/mumble

Client authentication for gRPC

This adds client authentication using TLS certificates when it is enabled in gRPC. This just the basic feature right now. You either have access or you do not.

Access is granted by putting the certificate digests of the authorized users into the murmur.ini file. It's a simple configuration for the moment, but the authentication class would be easily able to be extended to have more fine-grained control.

This should solve also feature request #3496. It allows the gRPC port to be safely opened up to the internet as anybody without a valid certificate won't get much past the handshake. It also doesn't interfere with people who are using the unsecured connection types over a loopback device or a UNIX domain socket.

If anybody wants to test this, since I don't think there are many gRPC enabled clients, and I'm unaware of any that support client certificates, you can my fork of murmur-cli that I have added client certificate support to.

+93 -1

1 comment

5 changed files

McKayJT

pr closed time in 2 months

pull request commentmumble-voip/mumble

Client authentication for gRPC

Hi. Sorry for the delay. LGTM. C++11 use should be fine since it looks like grpc itself requires it. Also while that PR changes behaviour insofar as encrypted connections are no longer possible without client auth, I cannot really see an obvious use-case for needing that. Might as well wait whether anyone actually needs that for a good reason.

I do not think this necessarily resolves #3496 as IP filters make sense even if the connection has auth.

McKayJT

comment created time in 2 months

push eventmumble-voip/mumble

MumbleTransifexBot

commit sha eaad3a7edb2d7c2d02621d5f29c9381d5250ca5f

Transifex translation update Mode: default Minimum percent translated: 0 Matched 44 languages

view details

Stefan Hacker

commit sha a4da618d9a990d866272ab023b2b30551f950e55

Merge pull request #3870 from MumbleTransifexBot/master Transifex translation update

view details

push time in 2 months

PR merged mumble-voip/mumble

Transifex translation update translation

New translation updates available from transifex https://www.transifex.com/organization/mumble/dashboard/mumble

+443 -361

0 comment

4 changed files

MumbleTransifexBot

pr closed time in 2 months

push eventmumble-voip/mumble

John Mckay

commit sha 1d2e5b090af1a02e7bbdf8bf3bbf679635834645

shudown and drain GRPC completion queue on exit This prevents a segmentation fault in next() when it tries to call back to a deleted object.

view details

John Mckay

commit sha 2b4eb9fa943bb6c9e482603f9629c717fbb6d26d

Style fixes

view details

Stefan Hacker

commit sha 7e019a7b1727003d498efd02d9c61b157058e92f

Merge pull request #3905 from McKayJT/no-grpc-segfault Shutdown and drain gRPC completion queue on exit

view details

push time in 2 months

PR merged mumble-voip/mumble

Shutdown and drain gRPC completion queue on exit

This prevents a segmentation fault in next() when it tries to call back to a deleted object when murmur is shut down.

+16 -1

2 comments

2 changed files

McKayJT

pr closed time in 2 months

pull request commentmumble-voip/mumble

Shutdown and drain gRPC completion queue on exit

LGTM

McKayJT

comment created time in 2 months

Pull request review commentmumble-voip/mumble

shudown and drain gRPC completion queue on exit

 MurmurRPCImpl::MurmurRPCImpl(const QString &address, std::shared_ptr<::grpc::Ser 	m_completionQueue = builder.AddCompletionQueue(); 	m_server = builder.BuildAndStart(); 	meta->connectListener(this);+	b_IsRunning = true; 	start(); }  MurmurRPCImpl::~MurmurRPCImpl() {+	void *ignored_tag;+	bool ignored_ok;+	b_IsRunning = false;

Even with this ::run might still pick up another tag and start processing it or it might be processing one right now. Then the destructor might return before processing in ::run is complete.

TBO looking at the shutdown sequence I'm wondering whether it is still safe to process anything at all at the point of this destructor or whether grpc shutdown would have to happen before server shutdowns to be safe. Did you happen to investigate that?

McKayJT

comment created time in 2 months

Pull request review commentmumble-voip/mumble

shudown and drain gRPC completion queue on exit

 namespace MurmurRPC { class MurmurRPCImpl : public QThread { 		Q_OBJECT; 		std::unique_ptr<grpc::Server> m_server;+		volatile bool b_IsRunning;

Should be m_isRunning (see https://wiki.mumble.info/wiki/Coding_Guidelines#Member_variables)

McKayJT

comment created time in 2 months

Pull request review commentmumble-voip/mumble

shudown and drain gRPC completion queue on exit

 MurmurRPCImpl::MurmurRPCImpl(const QString &address, std::shared_ptr<::grpc::Ser 	m_completionQueue = builder.AddCompletionQueue(); 	m_server = builder.BuildAndStart(); 	meta->connectListener(this);+	b_IsRunning = true; 	start(); }  MurmurRPCImpl::~MurmurRPCImpl() {+	void *ignored_tag;+	bool ignored_ok;+	b_IsRunning = false;+	m_server->Shutdown(std::chrono::system_clock::now());+	m_completionQueue->Shutdown();+	while (m_completionQueue->Next(&ignored_tag, &ignored_ok))

Should delete the drained tags instead of leaking them. No reason to needlessly create valgrind/asan false positives even if it doesn't endanger application stability.

McKayJT

comment created time in 2 months

push eventmumble-voip/mumble

MumbleTransifexBot

commit sha 6d3d27e2dceca02b1d066c7bc9358b37621bb5db

Transifex translation update Mode: default Minimum percent translated: 0 Matched 44 languages

view details

Stefan Hacker

commit sha ccdb88f872b85e04733e1e39ed78b23142ab581c

Merge pull request #3635 from MumbleTransifexBot/master Transifex translation update

view details

push time in 3 months

PR merged mumble-voip/mumble

Transifex translation update translation

New translation updates available from transifex https://www.transifex.com/organization/mumble/dashboard/mumble

+19534 -78911

0 comment

45 changed files

MumbleTransifexBot

pr closed time in 3 months

pull request commentmumble-voip/mumble

Update translations

Updated. As discussed on IRC this drops the location lines now. Hopefully this will make future diffs easier to work with.

hacst

comment created time in 3 months

push eventhacst/mumble

Stefan Hacker

commit sha efc8dee56127e775f4436349b75470bf69c2c16f

Remove location reporting from updatetranslations.sh Locations produce a ton of churn in our diffs with little gain. If someone actually needs the source location they can still grep for the string.

view details

Stefan Hacker

commit sha 7c8655d5a49053f304e071b865c4292f1fa79752

Translation update Updating 'mumble_en.ts'... Found 1721 source text(s) (14 new and 1707 already existing) Removed 10 obsolete entries

view details

push time in 3 months

PR opened mumble-voip/mumble

Reviewers
Update translations

This updates translations and fixes a typo lupdate complained about in main.cpp . The funny churn in mumble_en.ts comes from alphabetical ordering changes due to some words no longer being capitalized.

+157 -135

0 comment

2 changed files

pr created time in 3 months

create barnchhacst/mumble

branch : updtrans

created branch time in 3 months

push eventhacst/mumble

Stefan Hacker

commit sha 58a63964ece7b909a15d06982e10e2a48cd48211

Make client more robust against inconsistent state If during message handling we somehow end up in a situation where no ClientUser is registered or g.uiSession is not set we end up with pSelf as a null pointer. Dereferncing that crashes the application. Similar to other objects we retrieve for message processing this patch modified the macro to log and bail if we encounter this situation instead of crashing. One drawback of this patch is that it might make state corruption caused by client bugs less visible to us because we no longer receive crash reports on them while the client functionality could still be degraded severly.

view details

push time in 3 months

pull request commentmumble-voip/mumble

Make client more robust against inconsistent state

I tried to stick to how the other macros do it.

hacst

comment created time in 3 months

Pull request review commentmumble-voip/mumble

Make client more robust against inconsistent state

 	}  #define SELF_INIT \-	ClientUser *pSelf = ClientUser::get(g.uiSession);-+	ClientUser *pSelf = ClientUser::get(g.uiSession); \+	if (! pSelf) { \

I copied that style from 5 lines above or so. When in Rome....

hacst

comment created time in 3 months

push eventhacst/mumble

Stefan Hacker

commit sha 83c0e20d0db8732eec14b645a965e08f72af812c

Make client more robust against inconsistent state If during message handling we somehow end up in a situation where no ClientUser is registered or g.uiSession is not set we end up with pSelf as a null pointer. Dereferncing that crashes the application. Similar to other objects we retrieve for message processing this patch modified the macro to log and bail if we encounter this situation instead of crashing. One drawback of this patch is that it might make state corruption caused by client bugs less visible to us because we no longer receive crash reports on them while the client functionality could still be degraded severly.

view details

push time in 3 months

PR opened mumble-voip/mumble

Reviewers
Make client more robust against inconsistent state

If during message handling we somehow end up in a situation where no ClientUser is registered or g.uiSession is not set we end up with pSelf as a null pointer. Dereferncing that crashes the application.

Similar to other objects we retrieve for message processing this patch modified the macro to log and bail if we encounter this situation instead of crashing.

One drawback of this patch is that it might make state corruption caused by client bugs less visible to us because we no longer receive crash reports on them while the client functionality could still be degraded severly.

+6 -4

0 comment

1 changed file

pr created time in 3 months

push eventhacst/mumble

Stefan Hacker

commit sha 44b5b78e72d9a92aa78b2ef8483c1d3c19ec25fd

Make client more robust against inconsistent state If during message handling we somehow end up in a situation where no ClientUser is registered or g.uiSession is not set we end up with pSelf as a null pointer. Dereferncing that crashes the application. Similar to other objects we retrieve for message processing this patch modified the macro to log and bail if we encounter this situation instead of crashing. One drawback of this patch is that it might make state corruption caused by client bugs less visible to us because we no longer receive crash reports on them while the client functionality could still be degraded severly.

view details

push time in 3 months

push eventhacst/mumble

Stefan Hacker

commit sha 5e153a1a5689c56a90f06336b68b085c30ead692

Disconnect if server does not send clients user before sync The protocol requires that a server sends all client information before sending the sync message that indicates state is matching. Before this patch violating this condition could bring the client into a bad state where a connection was established but the client's user object not existing. Now the client disconnects itself if such an issue occurs.

view details

push time in 3 months

PR opened mumble-voip/mumble

Reviewers
Disconnect if server does not send clients user before sync

The protocol requires that a server sends all client information before sending the sync message that indicates state is matching. Before this patch violating this condition could bring the client into a bad state where a connection was established but the client's user object not existing. Now the client disconnects itself if such an issue occurs.

+9 -2

0 comment

1 changed file

pr created time in 3 months

create barnchhacst/mumble

branch : syncnouser

created branch time in 3 months

Pull request review commentmumble-voip/mumble

Make client robust against server dropping occupied channel

 Channel *UserModel::addChannel(int id, Channel *p, const QString &name) { 	return c; } -void UserModel::removeChannel(Channel *c) {-	ModelItem *item, *i;--	item=ModelItem::c_qhChannels.value(c);+bool UserModel::removeChannel(Channel *c, bool onlyIfUnoccupied) {+	ModelItem *item = ModelItem::c_qhChannels.value(c);

Fixed

hacst

comment created time in 3 months

Pull request review commentmumble-voip/mumble

Make client robust against server dropping occupied channel

 class UserModel : public QAbstractItemModel { 		void setCommentHash(Channel *c, const QByteArray &hash);  		void removeUser(ClientUser *p);-		void removeChannel(Channel *c);+		bool removeChannel(Channel *c, bool onlyIfUnoccupied = false);

Added a const. Passing primitive variables as reference introduces an needless indirection (they fit a register anyways so why pass a pointer). Afaik best practice is to not use a reference for them.

hacst

comment created time in 3 months

push eventhacst/mumble

Stefan Hacker

commit sha 1ca73d8e71729f7ce7fcf64cd967d3844cad1ad1

Make client robust against server dropping occupied channel While this should not occur the client did not properly consider what would happen if a server sent a ChannelRemove without first moving all users out. Allowing this operation to happen will bring our UserModel into an undefined state where users (even ourselves) might have been dropped while the server still considers them. With this patch we now detect that case and disconnect ourselves from the broken server instead of breaking our state.

view details

push time in 3 months

Pull request review commentmumble-voip/mumble

Make client robust against server dropping occupied channel

 class UserModel : public QAbstractItemModel { 		void setCommentHash(Channel *c, const QByteArray &hash);  		void removeUser(ClientUser *p);-		void removeChannel(Channel *c);+		bool removeChannel(Channel *c, bool onlyIfUnoccupied = false);

Using a reference here doesn't make sense. I can add some const. Forgot I added const correctness to the coding guidelines way back ;)

hacst

comment created time in 3 months

PR opened mumble-voip/mumble

Reviewers
Make client robust against server dropping occupied channel

While this should not occur the client did not properly consider what would happen if a server send a ChannelRemove without first moving all users out. Allowing this operation to happen will bring our UserModel into an undefined state where users (even ourselves) might have been dropped while the server still considers them.

With this patch we now detect that case and disconnect ourselves from the broken server instead of breaking our state.

+14 -8

0 comment

3 changed files

pr created time in 3 months

push eventhacst/mumble

Stefan Hacker

commit sha 3473ed500f39bbc7d50c3dc83ead875655691a9a

Make client robust against server dropping occupied channel While this should not occur the client did not properly consider what would happen if a server send a ChannelRemove without first moving all users out. Allowing this operation to happen will bring our UserModel into an undefined state where users (even ourselves) might have been dropped while the server still considers them. With this patch we now detect that case and disconnect ourselves from the broken server instead of breaking our state.

view details

push time in 3 months

create barnchhacst/mumble

branch : cremove

created branch time in 3 months

push eventhacst/mumble

Stefan Hacker

commit sha 2fbf75cda324e4507e62a795b3df8794bd30d139

Fix crash on msg while local ChannelUser not available Our msg* functions did not properly consider the case of messages being received from the server while the ChannelUser representing the local user is not available. This patch makes the client more robust when encountering this issue.

view details

push time in 3 months

create barnchhacst/mumble

branch : pself

created branch time in 3 months

issue openedmicrosoft/azure-pipelines-tasks

Interest in "Kubernetes Proxy" functionality?

Required Information

Question, Bug, or Feature?
Type: Question

Enter Task Name: KubernetesV1

Issue Description

One challenge we have encountered when working with Kubernetes from pipelines is that it is hard to run post-deployment integration tests on cluster internal services.

The workaround we have come up with for this is to use the kubectl port-forward feature to make the internal service (or pod) available locally to the build job and then run the tests against that proxy.

I was wondering whether this is functionality for which there was interest upstream? It has some tradeoffs we are willing to take which might not be generally acceptable:

  1. To act as a proxy for the rest of the job kubectl port-forward has to keep running after the task completes. This is accomplished by spawning kubectl with the detached option (not possible with normal tool lib but easy with raw child_process). The finalizing task of the job will kill this orphan process without error though, so no user action is needed for cleanup.
  2. The port is bound to 127.0.0.1 so while no external access is possible other processes running in the machine can access the port while it exists.
  3. To allow kubectl itself select a free local port the task has to parse its log output to figure out which port it actually started to listen on.

Our implementation for this was created based on the KubernetesV1 task. We turned it into a separate "KubernetesProxy" task which only provides the port-forwarding functionality. It takes a target service or pod name and a target service port. The local address of the "proxy" is provided as an output variable.

If there is interest I could create a PR so a closer look can be taken.

created time in 4 months

issue commentmicrosoft/azure-pipelines-tasks

Build fails to download external dependencies because sync-request module is hopelessly out of date

Same here. Looks like this code is no longer compatible with current node stable versions. Using an old v11.15.0 node things work. Using a current 12.11.0 it fails with this error.

IanKemp

comment created time in 4 months

issue commentTykTechnologies/tyk

OpenAPI 3.0 support for specifying APIs

Big SaaS APIMs like Azure API Management and apigee have supported OpenAPI 3.0 for a while now. When evaluating potential APIM solutions this made us pass over even closely considering tyk even though the rest of the featureset sounds interesting. Is there any plan to put this on the roadmap in the near future?

jgraham0325

comment created time in 4 months

issue openedsourcegraph/terraform-provider-site24x7

Missing license

Currently it is unclear under what license this project is developed under. It would be great if a LICENSE file could be added to clarify this.

It looks like official provider's are required to be licensed as MPL-2.0. If the license has not been decided yet MPL-2.0 might be worth a look.

created time in 4 months

issue openedsourcegraph/terraform-provider-site24x7

Missing readme

It would be great if there were a README.md describing the current capabilities and restrictions of the provider as well as whether this is intended to be contributed to or just something internal.

created time in 4 months

issue openedsourcegraph/terraform-provider-site24x7

Support for EU API endpoints

Currently the provider hard-codes the .com site24x7 endpoints. For European site24x7 customers there are equivalent .eu endpoints that have to be used.

It would be great if this could be made configurable.

created time in 4 months

issue commentsourcegraph/terraform-provider-site24x7

switch to using oauth2 as the authtoken is being depricated

@keegancsmith Any updates on this? I might be able to contribute towards making this work in October if there isn't any other plan to tackle this.

xsnrg

comment created time in 4 months

more