Force posting to matrix to use IPv4 resolution
All checks were successful
Create Docker Image / Build Docker Image (x86_64) (push) Successful in 28s
Create Docker Image / Build Docker Image (arm64) (push) Successful in 1m31s
Create Docker Image / Final Docker Image Manifest (push) Successful in 8s

This commit is contained in:
2024-11-01 13:01:55 +11:00
parent 1002309614
commit 881449a170
2 changed files with 13 additions and 6 deletions

View File

@@ -45,12 +45,18 @@ class Echomail extends Matrix
$user = sprintf('@%s:%s',$username,config('matrix.server'));
// @todo We need to force IP4 as running clrghouz in a container without a proper IPv6 address is problematic
$matrix = Http::withToken(config('matrix.as_token'))
->withOptions([
CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4,
]);
// Set topic if it is different:
$subject = Http::withToken(config('matrix.as_token'))
$subject = $matrix
->get(sprintf('https://%s/_matrix/client/v3/rooms/%s/state/m.room.topic',config('matrix.server'),$room));
if (($x=preg_replace('/^RE:\s*/i','',$this->o->subject)) !== $subject->json('topic','Message from Matrix')) {
$topic = Http::withToken(config('matrix.as_token'))
$topic = $matrix
->put(sprintf('https://%s/_matrix/client/v3/rooms/%s/state/m.room.topic',config('matrix.server'),$room),[
'topic'=>$x,
]);
@@ -61,7 +67,7 @@ class Echomail extends Matrix
$omsg = preg_replace("/\r---.*$/U",'',$this->o->msg);
$msg = Http::withToken(config('matrix.as_token'))
$msg = $matrix
->withQueryParameters(['user_id'=>$user])
->post(sprintf('https://%s/_matrix/client/v3/rooms/%s/send/m.room.message',config('matrix.server'),$room),[
'msgtype'=>'m.text',
@@ -81,7 +87,7 @@ class Echomail extends Matrix
// If the user doesnt exist in matrix yet
if (str_starts_with($msg->json('error'),'Application service has not registered this user')) {
// Register user
$msg = Http::withToken(config('matrix.as_token'))
$msg = $matrix
->post(sprintf('https://%s/_matrix/client/v3/register',config('matrix.server')),[
'type'=>'m.login.application_service',
'username'=>$username,
@@ -94,7 +100,7 @@ class Echomail extends Matrix
// @todo Test that the user has been invited
// Invite user
$msg = Http::withToken(config('matrix.as_token'))
$msg = $matrix
//->withQueryParameters(['user_id'=>$user])
->post(sprintf('https://%s/_matrix/client/v3/rooms/%s/invite',config('matrix.server'),$room),[
'user_id'=>$user,
@@ -106,7 +112,7 @@ class Echomail extends Matrix
}
// Join as user
$msg = Http::withToken(config('matrix.as_token'))
$msg = $matrix
->withQueryParameters(['user_id'=>$user])
->post(sprintf('https://%s/_matrix/client/v3/rooms/%s/join',config('matrix.server'),$room),[
'user_id'=>$user,