Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use socket_proxy if set #129

Merged
merged 2 commits into from
Mar 3, 2023
Merged

Conversation

debagel
Copy link
Contributor

@debagel debagel commented Mar 2, 2023

Use socket_proxy setting for curl request to enable using a proxy for fetching map tiles

debagel added 2 commits March 2, 2023 20:40
Use socket_proxy setting with curl to get maptile in requestTest()
Use socket_proxy setting with curl to get maptile in sendTile()
@skerbis skerbis merged commit b8575df into FriendsOfREDAXO:master Mar 3, 2023
@christophboecker
Copy link
Member

Ich hätte da durchaus noch Fragen :-)

Wofür ist das gut? Geolocation ist doch schon der Proxy?

Und warum nicht mit einem ExtensionPoint gelöst? Denn das ist der Redaxo-übliche Weg.

@skerbis
Copy link
Member

skerbis commented Mar 4, 2023

@christophboecker @debagel mein Fehler. Bitte PR neu einreichen. Ich habe zu voreilig gemergt und daher reverted.
@christophboecker die Option ist ggf. interessant, möchte man die requests über einen eigenen Proxy leiten oder diesen umgehen.

@debagel
Copy link
Contributor Author

debagel commented Mar 4, 2023

@christophboecker Genau, wie @skerbis oben schreibt habe ich hier einen Server der Verbindungen ins Internet nur über einen Proxy zulässt, z.B. auch für den Addon Installer.

Der in den Settings gesetzte "socket_proxy" muss bei mir auch in Geolocation verwendet werden um die Maptiles vom Kartenserver holen zu können. Deshalb hatte ich das bei den curl-Aufrufen ergänzt. Hast du einen Hinweis wie ich das per ExtensionPoint löse? Davon habe ich bisher keine Ahnung.

@skerbis
Copy link
Member

skerbis commented Mar 4, 2023

den Weg über die Property oder Config finde ich persönlich besser da ein EP sicher mehr Rechenzeit benötigt.Wobei man hier noch überlegen könnte von Curl auf rex_socket zu wechseln.

@christophboecker
Copy link
Member

@debagel

Hast du einen Hinweis wie ich das per ExtensionPoint löse?

z.B. so ähnlich:

$ch = curl_init($url);
....
$ch  = \rex_extension::registerPoint(new \rex_extension_point(
    'GEOLOCATION_PROXY',
    $ch,
    []
));
....

Und dann belegen mit

$proxy = ...;
\rex_extension::register(
    'GEOLOCATION_PROXY', 
    static function( \rex_extension_point $ep ){
        $ch = $ep->getSubject;
        curl_setopt($ch, CURLOPT_PROXY, $ep->getParam('proxy');
    },
    rex_extension::NORMAL,
    ['proxy' => $proxy]

ungetestet.

@christophboecker
Copy link
Member

... da ein EP sicher mehr Rechenzeit benötigt

Angesichts des Gesamt-Overhead, den das Laden der Redaxo-Instanz verursacht, würde ich die wenigen Zeilen Code (die Klassen sind ja eh geladen und initialisiert) als irrelevant vermuten.

noch überlegen könnte von Curl auf rex_socket zu wechseln

na ja, die Curl-Sachen stammen ja ursprünglich aus Deinem geo_osm-Addon. Ich kenne mich damit nicht wirklich aus.

Es ist "Dein" Addon, Thomas. Du entscheidest.

@skerbis
Copy link
Member

skerbis commented Mar 5, 2023

@christophboecker ok .. dann schaue ich mal

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants