The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,828 other subscribers

Archive for the ‘Uncategorized’ Category

gmail SMTP errors to help clean up your bounces list

Posted by jpluimers on 2022/01/19

From some of the logs:

   ----- Transcript of session follows -----
... while talking to alt1.gmail-smtp-in.l.google.com.:
>>> DATA
<<< 421-4.7.0 [###.###.###.###      15] Our system has detected that this message is
<<< 421-4.7.0 suspicious due to the very low reputation of the sending domain. To
<<< 421-4.7.0 best protect our users from spam, the message has been blocked.
<<< 421-4.7.0 Please visit
<<>> DATA
<<< 550-5.7.1 [###.###.###.###      12] Our system has detected that this message is
<<< 550-5.7.1 likely unsolicited mail. To reduce the amount of spam sent to Gmail,
<<< 550-5.7.1 this message has been blocked. Please visit
<<< 550-5.7.1  https://support.google.com/mail/?p=UnsolicitedMessageError
<<< 550 5.7.1  for more information. c184si14930209pfa.345 - gsmtp
554 5.0.0 Service unavailable

The ###.###.###.### are the outgoing WAN IP addresses of our SMTP server.

Basically filtering on .* Our system has detected that this message is helps clearing up a lot of bounce messages until I’ve found better black-lists.

Related:

  • [Wayback] “421-4.7.0” “Our system has detected that this message is” – Google Search
  • [Wayback] “550-5.7.1” “Our system has detected that this message is” – Google Search
    • [Wayback] How to Remove Your IP from the Gmail Blacklist – rackAID

      1. Why is Gmail Blocking My Emails?
      2. Authenticate Your Email
      3. Follow Gmail’s Best Practices
      4. Submit Gmail Blacklist Removal Form
      5. Waiting on the Gmail Blacklist Removal
      6. Get Removed from Gmail’s Blacklist

      421, “4.4.5”, Server busy, try again later.
      421, “4.7.0”, IP not in whitelist for RCPT domain, closing connection.
      421, “4.7.0”, Our system has detected an unusual rate of unsolicited mail originating from your IP address. To protect our users from spam, mail sent from your IP address has been temporarily blocked. Review our Bulk Senders Guidelines.
      421, “4.7.0”, Temporary System Problem. Try again later.
      421, “4.7.0”, TLS required for RCPT domain, closing connection.
      421, “4.7.0”, Try again later, closing connection. This usually indicates a Denial of Service (DoS) for the SMTP relay at the HELO stage.
      450, “4.2.1” The user you are trying to contact is receiving mail too quickly. Please resend your message at a later time. If the user is able to receive mail at that time, your message will be delivered. For more information, review this article.
      450, “4.2.1”, The user you are trying to contact is receiving mail at a rate that prevents additional messages from being delivered. Please resend your message at a later time. If the user is able to receive mail at that time, your message will be delivered. For more information, review this article.
      450, “4.2.1”, Peak SMTP relay limit exceeded for customer. This is a temporary error. For more information on SMTP relay limits, please contact your administrator or review this article.
      451, “4.3.0”, Mail server temporarily rejected message.
      451, “4.3.0”, Multiple destination domains per transaction is unsupported. Please try again.
      451, “4.4.2”, Timeout – closing connection.
      451, “4.5.0”, SMTP protocol violation, see RFC 2821.
      452, “4.2.2”, The email account that you tried to reach is over quota. Please direct the recipient to this article.
      452, “4.5.3”, Domain policy size per transaction exceeded, please try this recipient in a separate transaction.
      452, “4.5.3”, Your message has too many recipients. For more information regarding Google’s sending limits, review this article.
      454, “4.5.0”, SMTP protocol violation, no commands allowed to pipeline after STARTTLS, see RFC 3207.
      454, “4.7.0”, Cannot authenticate due to temporary system problem. Try again later.
      454, “5.5.1”, STARTTLS may not be repeated.
      501, “5.5.2”, Cannot Decode response.
      501, “5.5.4”, HELO/EHLO argument is invalid, please review this article.
      502, “5.5.1”, Too many unrecognized commands, goodbye.
      502, “5.5.1”, Unimplemented command.
      502, “5.5.1”, Unrecognized command.
      503, “5.5.1”, “EHLO/HELO first.
      503, “5.5.1”, MAIL first.
      503, “5.5.1”, RCPT first.
      503, “5.7.0”, No identity changes permitted.
      504, “5.7.4”, Unrecognized Authentication Type.
      530, “5.5.1”, Authentication Required. Learn more here.
      530, “5.7.0”, Must issue a STARTTLS command first.
      535, “5.5.4”, Optional Argument not permitted for that AUTH mode.
      535, “5.7.1”, Application-specific password required. Learn more here.
      535, “5.7.1”, Please log in with your web browser and then try again. Learn more here.
      535, “5.7.1”, Username and Password not accepted. Learn more here.
      550, “5.1.1”, The email account that you tried to reach does not exist. Please try double-checking the recipient’s email address for typos or unnecessary spaces. For more information, review this article.
      550, “5.2.1”, The email account that you tried to reach is disabled.
      550, “5.2.1”, The user you are trying to contact is receiving mail at a rate that prevents additional messages from being delivered. For more information, review this article.
      550, “5.4.5”, Daily sending quota exceeded. Learn more here.
      550, “5.4.5”, Daily SMTP relay limit exceeded for user. For more information on SMTP relay sending limits please contact your administrator or review this article.
      550, “5.7.0”, Mail relay denied.
      550, “5.7.0”, Mail Sending denied. This error occurs if the sender account is disabled or not registered within your G Suite domain.
      550, “5.7.1”, Email quota exceeded.
      550, “5.7.1”, Invalid credentials for relay.
      550, “5.7.1”, Our system has detected an unusual rate of unsolicited mail originating from your IP address. To protect our users from spam, mail sent from your IP address has been blocked. Review our Bulk Senders Guidelines.
      550, “5.7.1”, Our system has detected that this message is likely unsolicited mail. To reduce the amount of spam sent to Gmail, this message has been blocked. For more information, review this article.
      550, “5.7.1”, The IP you’re using to send mail is not authorized to send email directly to our servers. Please use the SMTP relay at your service provider instead. For more information, review this article.
      550, “5.7.1”, The user or domain that you are sending to (or from) has a policy that prohibited the mail that you sent. Please contact your domain administrator for further details. For more information, review this article.
      550, “5.7.1”, Unauthenticated email is not accepted from this domain.
      550, “5.7.1”, Daily SMTP relay limit exceeded for customer. For more information on SMTP relay sending limits please contact your administrator or review this article.
      552, “5.2.2”, The email account that you tried to reach is over quota.
      552, “5.2.3”, Your message exceeded Google’s message size limits. Please review our size guidelines.
      553, “5.1.2”, We weren’t able to find the recipient domain. Please check for any spelling errors, and make sure you didn’t enter any spaces, periods, or other punctuation after the recipient’s email address.
      554, “5.6.0”, Mail message is malformed. Not accepted.
      554, “5.6.0”, Message exceeded 50 hops, this may indicate a mail loop.
      554, “5.7.0”, Too Many Unauthenticated commands.
      555, “5.5.2”, Syntax error.

–jeroen

Posted in Uncategorized | Leave a Comment »

Het moment om Schiphol te laten krimpen is nu – Follow the Money – Platform voor onderzoeksjournalistiek

Posted by jpluimers on 2022/01/12

[Wayback/Archive] Het moment om Schiphol te laten krimpen is nu – Follow the Money – Platform voor onderzoeksjournalistiek

Via [Archive] Eric Smit on Twitter: “In Europa zijn boekwerken volgeschreven over de vraag hoe je een groeiende capaciteit tussen luchtvaartmaatschappijen verdeelt, maar is er nooit nagedacht over de consequenties van een afnemende capaciteit … via @ftm_nl” / Twitter

jeroen

Posted in Uncategorized | Leave a Comment »

Covid-19 booster prik vanuit het buitenland reserveren: bel +31851124970

Posted by jpluimers on 2021/12/28

Via https://twitter.com/locuta/status/1475849029376516098

LET OP: We hebben een telefoonnummer gevonden dat je vanuit het buitenland kunt bellen om een boosterafspraak te maken: +31851124970. Deze lijkt nog wél te werken!
prikdoor

Draadje met extra informatie:

Posted in Uncategorized | Leave a Comment »

bol.com landvoorkeur weer omschakelen naar Nederland (als die per ongeluk op België staat)

Posted by jpluimers on 2021/12/24

Voeg ?country=NL toe aan je URL

Ik was via Google automagisch op België doorgeschakeld doordat ik naar deze URL werd doorgestuurd: https://www.bol.com/nl/p/brennenstuhl-primera-line-duo-stekkerdoos-10x-belgische-aarding-2-meter/9200000021551992/ en werd doorgestuurd naar https://www.bol.com/nl/l/brennenstuhl-stekkerdozen/N/28919+4287678768/?country=BE#modal_open

–jeroen

Posted in Uncategorized | Leave a Comment »

Twitter: view tweets by people you enabled the “notification bell” for

Posted by jpluimers on 2021/11/26

This URL will usually bring you the list of “important” tweets (by people you have flagged to get notifications about):

https://twitter.com/i/timeline

Via: [Archive.isJeroen Pluimers on Twitter: “Ik kijk steeds vaker via twitter.com/i/timeline “

–jeroen

Read the rest of this entry »

Posted in Uncategorized | Leave a Comment »

Some links git cloning over an NTLM proxy

Posted by jpluimers on 2021/11/08

In the past I used cntlm for this, but it looks like git can now authenticate properly over an ntlm proxy.

Some links:

–jeroen

Posted in Uncategorized | Leave a Comment »

Happy 25th birthday Internet Archive! Thanks Brewster for setting it in motion.

Posted by jpluimers on 2021/10/29

View the short video about the first crawl back in 1996:

https://twitter.com/internetarchive/status/1438606052291842062 Then head to anniversary.archive.org and enjoy more bits of its history. One of the first articles: [Wayback] Archive.is: Brewster Kahle . In Scientific American (no original on-line at archive.org any more [Wayback/Archive.is]) –jeroen

Posted in Uncategorized | Leave a Comment »

One of the Let’s Encrypt’s Root Certificates expired today (and their corresponding intermediate yesterday); how is your infrastructure doing?

Posted by jpluimers on 2021/09/30

Last weekend I published 5 days before the Let’s Encrypt’s Root Certificate is expiring!

It basically was a post trying to amplify the [Wayback/Archive.isLet’s Encrypt’s Root Certificate is expiring! message by [WaybackScott Helme .

Yesterday and today, he is maintaining a Twitter thread on things that have broken.

Quite a few things have, including some versions of curl, on which a lot of infrastructure relies (the certificate for it got fixed later on 20120930), see:

Two important starting points in his thread:

  1. [Archive.is] Scott Helme on Twitter: “🚨🚨🚨 5 minutes until the Let’s Encrypt R3 intermediate expires 🚨🚨🚨 29 September 2021 19:21:40 UTC”
  2. [Archive.is] Scott Helme on Twitter: “🚨🚨🚨 30 minute warning 🚨🚨🚨 IdentTrust DST Root CA X3 Expires: Sep 30 14:01:15 2021 UTC… “

If you want to check from one of your own clients, try [Archive.is] Scott Helme on Twitter: “I’ve created a test site to help identify issues with clients. If you can connect to https://t.co/bXHsnlRk8D then your client can handle being served the expired R3 Intermediate in the server chain!… “

[Wayback/Archive.is] https://expired-r3-test.scotthelme.co.uk/

Note that neither SSLabs, nor Cencys, nor CertCheckkerApp do show the expired certificate, only the new one:

Yes, I know the pluimers.com web server is rated B from a TLS perspective. Will be working on it, but I’m still recovering from rectum cancer treatments, and have an almost 1.5 year backlog to get through.

–jeroen

Posted in Communications Development, Development, Encryption, HTTP, https, HTTPS/TLS security, Internet protocol suite, Let's Encrypt (letsencrypt/certbot), Power User, Security, Software Development, TCP, TLS, Uncategorized, Web Development | Leave a Comment »

Europees gefabriceerde auto importeren vanuit Zwitserland

Posted by jpluimers on 2021/09/03

Voor mijn geheugen.

Wat heb je nodig:

  • Chassisnummer te kopen auto
  • Geldig ID
  • EUR.1 formulier (afhalen bij een spediteur, bijvoorbeeld Focus93, of bij een zollamt aan de grens)
  • Machtiging van de verkoper dat jij als koper de uitvoer mag afhandelen
  • Grijze kaart van de Zwitserse auto (kentekenbewijs ofwel Fahrzeugausweis)

Wat moet je regelen:

  1. Bij een van de Strassenverkehrsämter in Zwiterland de auto overschrijven naar een exportkenzeichen (waar je de grijze kaart voor nodig hebt); je krijgt dan
    • Exportnummerplaten
    • Nieuwe grijze kaart met rode markering
    • Groene verzekeringskaart
  2. BPM vrijstelling aanvragen zodat je er maximaal 2 weken mee in Nederland mag rijden zodat je in tussen de BPM en schouwing (en mogelijk APK keuring) bij het RDW kunt doen
  3. Bij de grens
    1. de vrachtwagens volgen, en dan bij een Spediteur aankloppen (ik heb goede ervaringen met Focus93 omdat ze met name ervaring tussen Zwitserland/EU hebben; ze hebben kantoren bij diverse grensovergangen: www.focus93.ch/standorte)
      1. Hier vullen ze de EUR.1 in en die mag je dan ondertekenen
      2. Ze voeren ook de auto in in het export systeem
      3. Optioneel (alleen nuttig bij zakelijke import) vullen ze een T1 aanvraag in
    2. Bij de Zwitserse douane de uitvoer doen
    3. Bij de Duitse douane de invoer doen en de BTW betalen (als je het zakelijk doet, dan een borg betalen en je IBAN opgeven)
    4. Bij de spediteur afmelden en de kosten betalen
  4. Voor zakelijk: in Nederland een expediteur zoeken die de T1 afhandeling kan doen en de BTW int (die vraag je later bij de belastingdienst terug) en de auto bij de Duitse douane afmeldt (dan krijg je de borg teruggestort op een IBAN rekening)
  5. RDW schouwing aanvragen op [WayBack] keuringsafspraakmaken.rdw.nl/particulier; zie [WayBack] Invoeren vanuit EU- of EVA-land | RDW
    • Soms kun je de bestaande APK overnemen, dan is alleen een schouwing nodig (je hebt dan APK rapport uit Zwitserland nodig); als je onzeker bent: meteen APK laten keuren bij het RDW
  6. Voor op de dag van keuring:
    1. een tijdelijk kenteken aanvragen op [WayBack] eendagskentekenbewijsaanvragen.rdw.nl via [WayBack] Eendagskentekenbewijs | RDW en [WayBack] Eendagskentekenbewijs aanvragen
    2. een tijdelijke verzekering aanvragen (niet alle autoverzekeraars doen dit, dus zoek dit van te voren uit!)
  7. Aangifte BPM doen bij de belastingdienst; ik heb deze volgorde gebruikt zodat ik zeker wist dat ik niks gemist had
    1. [WayBack] Aangifte bpm doen
    2. [WayBack] Bpm-aangifte doen
    3. [WayBack] Aangifte, melding of opgaaf bpm
    4. [WayBack] Aangifte, melding of opgaaf bpm
    5. [WayBack] Toelichting aangifte, melding of opgaaf bpm
    6. [WayBack] Afschrijving met forfaitaire tabel

      Wilt u een motorrijtuig voor het eerst in Nederland registreren? Bepaal dan de waarde ervan met een forfaitaire tabel. Lees hoe en welke voorwaarden gelden.

  8. BPM betalen
  9. RDW kentekenbewijs ontvangen
  10. Nummerplaten laten maken
  11. Verzekering regelen

Posted in Uncategorized | Leave a Comment »

Space matching with sed is different from PCRE or other common regular expression parsers

Posted by jpluimers on 2021/07/14

On my research list: find out what is the cause of the difference below (Windows batch and Linux behave the same; just the quotes around the echo is different):

Windows statements:

echo cs:2648@rep:MyRepository@repserver:ssl://plastic.example.org:8080 | sed -E -r -n "s/^cs:(.*?)@rep:(.*?)@repserver:([a-zA-Z][a-zA-Z+.-]*?):\/\/(\w[^: ]*?)(:\d*)?.*$/https:\/\/\4\/webui\/repos\/\2\/diff\/changeset\/\1/p"
echo cs:2648@rep:MyRepository@repserver:ssl://plastic.example.org:8080| sed -E -r -n "s/^cs:(.*?)@rep:(.*?)@repserver:([a-zA-Z][a-zA-Z+.-]*?):\/\/(\w[^: ]*?)(:\d*)?.*$/https:\/\/\4\/webui\/repos\/\2\/diff\/changeset\/\1/p"
echo cs:2648@rep:MyRepository@repserver:ssl://plastic.example.org | sed -E -r -n "s/^cs:(.*?)@rep:(.*?)@repserver:([a-zA-Z][a-zA-Z+.-]*?):\/\/(\w[^: ]*?)(:\d*)?.*$/https:\/\/\4\/webui\/repos\/\2\/diff\/changeset\/\1/p"
echo cs:2648@rep:MyRepository@repserver:ssl://plastic.example.org| sed -E -r -n "s/^cs:(.*?)@rep:(.*?)@repserver:([a-zA-Z][a-zA-Z+.-]*?):\/\/(\w[^: ]*?)(:\d*)?.*$/https:\/\/\4\/webui\/repos\/\2\/diff\/changeset\/\1/p"
echo failure with [:\s]*?
echo cs:2648@rep:MyRepository@repserver:ssl://plastic.example.org:8080 | sed -E -r -n "s/^cs:(.*?)@rep:(.*?)@repserver:([a-zA-Z][a-zA-Z+.-]*?):\/\/(\w[^:\s]*?)(:\d*)?.*$/https:\/\/\4\/webui\/repos\/\2\/diff\/changeset\/\1/p"
echo cs:2648@rep:MyRepository@repserver:ssl://plastic.example.org:8080| sed -E -r -n "s/^cs:(.*?)@rep:(.*?)@repserver:([a-zA-Z][a-zA-Z+.-]*?):\/\/(\w[^:\s]*?)(:\d*)?.*$/https:\/\/\4\/webui\/repos\/\2\/diff\/changeset\/\1/p"
echo cs:2648@rep:MyRepository@repserver:ssl://plastic.example.org | sed -E -r -n "s/^cs:(.*?)@rep:(.*?)@repserver:([a-zA-Z][a-zA-Z+.-]*?):\/\/(\w[^:\s]*?)(:\d*)?.*$/https:\/\/\4\/webui\/repos\/\2\/diff\/changeset\/\1/p"
echo cs:2648@rep:MyRepository@repserver:ssl://plastic.example.org| sed -E -r -n "s/^cs:(.*?)@rep:(.*?)@repserver:([a-zA-Z][a-zA-Z+.-]*?):\/\/(\w[^:\s]*?)(:\d*)?.*$/https:\/\/\4\/webui\/repos\/\2\/diff\/changeset\/\1/p"

Linux statements:

echo "cs:2648@rep:MyRepository@repserver:ssl://plastic.example.org:8080 "| sed -E -r -n "s/^cs:(.*?)@rep:(.*?)@repserver:([a-zA-Z][a-zA-Z+.-]*?):\/\/(\w[^: ]*?)(:\d*)?.*$/https:\/\/\4\/webui\/repos\/\2\/diff\/changeset\/\1/p"
echo "cs:2648@rep:MyRepository@repserver:ssl://plastic.example.org:8080"| sed -E -r -n "s/^cs:(.*?)@rep:(.*?)@repserver:([a-zA-Z][a-zA-Z+.-]*?):\/\/(\w[^: ]*?)(:\d*)?.*$/https:\/\/\4\/webui\/repos\/\2\/diff\/changeset\/\1/p"
echo "cs:2648@rep:MyRepository@repserver:ssl://plastic.example.org "| sed -E -r -n "s/^cs:(.*?)@rep:(.*?)@repserver:([a-zA-Z][a-zA-Z+.-]*?):\/\/(\w[^: ]*?)(:\d*)?.*$/https:\/\/\4\/webui\/repos\/\2\/diff\/changeset\/\1/p"
echo "cs:2648@rep:MyRepository@repserver:ssl://plastic.example.org"| sed -E -r -n "s/^cs:(.*?)@rep:(.*?)@repserver:([a-zA-Z][a-zA-Z+.-]*?):\/\/(\w[^: ]*?)(:\d*)?.*$/https:\/\/\4\/webui\/repos\/\2\/diff\/changeset\/\1/p"
echo failure with [:\s]*?
echo "cs:2648@rep:MyRepository@repserver:ssl://plastic.example.org:8080 "| sed -E -r -n "s/^cs:(.*?)@rep:(.*?)@repserver:([a-zA-Z][a-zA-Z+.-]*?):\/\/(\w[^:\s]*?)(:\d*)?.*$/https:\/\/\4\/webui\/repos\/\2\/diff\/changeset\/\1/p"
echo "cs:2648@rep:MyRepository@repserver:ssl://plastic.example.org:8080"| sed -E -r -n "s/^cs:(.*?)@rep:(.*?)@repserver:([a-zA-Z][a-zA-Z+.-]*?):\/\/(\w[^:\s]*?)(:\d*)?.*$/https:\/\/\4\/webui\/repos\/\2\/diff\/changeset\/\1/p"
echo "cs:2648@rep:MyRepository@repserver:ssl://plastic.example.org "| sed -E -r -n "s/^cs:(.*?)@rep:(.*?)@repserver:([a-zA-Z][a-zA-Z+.-]*?):\/\/(\w[^:\s]*?)(:\d*)?.*$/https:\/\/\4\/webui\/repos\/\2\/diff\/changeset\/\1/p"
echo "cs:2648@rep:MyRepository@repserver:ssl://plastic.example.org"| sed -E -r -n "s/^cs:(.*?)@rep:(.*?)@repserver:([a-zA-Z][a-zA-Z+.-]*?):\/\/(\w[^:\s]*?)(:\d*)?.*$/https:\/\/\4\/webui\/repos\/\2\/diff\/changeset\/\1/p"

Output:

echo cs:2648@rep:MyRepository@repserver:ssl://plastic.example.org:8080 | sed -E -r -n "s/^cs:(.*?)@rep:(.*?)@repserver:([a-zA-Z][a-zA-Z+.-]*?):\/\/(\w[^: ]*?)(:\d*)?.*$/https:\/\/\4\/webui\/repos\/\2\/diff\/changeset\/\1/p"
https://plastic.example.org/webui/repos/MyRepository/diff/changeset/2648

echo cs:2648@rep:MyRepository@repserver:ssl://plastic.example.org:8080| sed -E -r -n "s/^cs:(.*?)@rep:(.*?)@repserver:([a-zA-Z][a-zA-Z+.-]*?):\/\/(\w[^: ]*?)(:\d*)?.*$/https:\/\/\4\/webui\/repos\/\2\/diff\/changeset\/\1/p"
https://plastic.example.org/webui/repos/MyRepository/diff/changeset/2648

echo cs:2648@rep:MyRepository@repserver:ssl://plastic.example.org | sed -E -r -n "s/^cs:(.*?)@rep:(.*?)@repserver:([a-zA-Z][a-zA-Z+.-]*?):\/\/(\w[^: ]*?)(:\d*)?.*$/https:\/\/\4\/webui\/repos\/\2\/diff\/changeset\/\1/p"
https://plastic.example.org/webui/repos/MyRepository/diff/changeset/2648

echo cs:2648@rep:MyRepository@repserver:ssl://plastic.example.org| sed -E -r -n "s/^cs:(.*?)@rep:(.*?)@repserver:([a-zA-Z][a-zA-Z+.-]*?):\/\/(\w[^: ]*?)(:\d*)?.*$/https:\/\/\4\/webui\/repos\/\2\/diff\/changeset\/\1/p"
https://plastic.example.org/webui/repos/MyRepository/diff/changeset/2648

echo failure with [:\s]*?
failure with [:\s]*?

echo cs:2648@rep:MyRepository@repserver:ssl://plastic.example.org:8080 | sed -E -r -n "s/^cs:(.*?)@rep:(.*?)@repserver:([a-zA-Z][a-zA-Z+.-]*?):\/\/(\w[^:\s]*?)(:\d*)?.*$/https:\/\/\4\/webui\/repos\/\2\/diff\/changeset\/\1/p"
https://pla/webui/repos/MyRepository/diff/changeset/2648

echo cs:2648@rep:MyRepository@repserver:ssl://plastic.example.org:8080| sed -E -r -n "s/^cs:(.*?)@rep:(.*?)@repserver:([a-zA-Z][a-zA-Z+.-]*?):\/\/(\w[^:\s]*?)(:\d*)?.*$/https:\/\/\4\/webui\/repos\/\2\/diff\/changeset\/\1/p"
https://pla/webui/repos/MyRepository/diff/changeset/2648

echo cs:2648@rep:MyRepository@repserver:ssl://plastic.example.org | sed -E -r -n "s/^cs:(.*?)@rep:(.*?)@repserver:([a-zA-Z][a-zA-Z+.-]*?):\/\/(\w[^:\s]*?)(:\d*)?.*$/https:\/\/\4\/webui\/repos\/\2\/diff\/changeset\/\1/p"
https://pla/webui/repos/MyRepository/diff/changeset/2648

echo cs:2648@rep:MyRepository@repserver:ssl://plastic.example.org| sed -E -r -n "s/^cs:(.*?)@rep:(.*?)@repserver:([a-zA-Z][a-zA-Z+.-]*?):\/\/(\w[^:\s]*?)(:\d*)?.*$/https:\/\/\4\/webui\/repos\/\2\/diff\/changeset\/\1/p"
https://pla/webui/repos/MyRepository/diff/changeset/2648

Related:

–jeroen

Read the rest of this entry »

Posted in Uncategorized | 1 Comment »