Skip to content

Instantly share code, notes, and snippets.

Avatar

Petr Messner messa

View GitHub Profile
View dns_server.py
#!/usr/bin/env python3
from argparse import ArgumentParser
from asyncio import run, get_running_loop, sleep, create_task
from logging import getLogger
from pathlib import Path
from dnslib import DNSRecord, DNSHeader, DNSQuestion, RR, A
logger = getLogger(Path(__file__).with_suffix('').name)
@messa
messa / openssl.conf
Last active Apr 12, 2022
Sample OpenSSL configuration for local CA; see my CA guide: https://github.com/messa/tips/blob/master/OpenSSL.md
View openssl.conf
[ ca ]
default_ca = CA_default
[ CA_default ]
dir = /XXX/root-ca
certs = $dir/certs
crl_dir = $dir/crl
new_certs_dir = $dir/newcerts
database = $dir/index.txt
serial = $dir/serial
@messa
messa / asyncio_ssl_example.py
Created Jun 26, 2015
Python asyncio + SSL TCP client/server example
View asyncio_ssl_example.py
#!/usr/bin/env python3
import asyncio
import multiprocessing
import os
import ssl
from time import sleep
port = 9000
@messa
messa / Dockerfile
Last active Aug 2, 2021
Building graph-tool in Docker
View Dockerfile
FROM debian:stretch
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update
RUN apt-get install -y apt-utils wget bzip2
WORKDIR /src
@messa
messa / aiohttp_request_id_logging.py
Last active Mar 17, 2021
Aiohttp request_id logging
View aiohttp_request_id_logging.py
# BTW. I have created a library for this: https://github.com/messa/aiohttp-request-id-logging
from aiohttp import web
from aiohttp.web_log import AccessLogger
import asyncio
from asyncio import CancelledError
from contextvars import ContextVar
import logging
import os
import secrets
@messa
messa / demo.py
Last active Feb 1, 2021
MongoDB pymongo bulk update all documents in a collection
View demo.py
#!/usr/bin/env python3
from bson import MinKey
import pymongo
from pymongo import ASCENDING
client = pymongo.MongoClient()
db = client['test']
collection = db['dataset']
View replace_line.py
#!/usr/bin/env python3
from argparse import ArgumentParser
from pathlib import Path
def replace_line(path, line_number, text):
if isinstance(text, str):
text = text.encode()
assert isinstance(text, bytes)
View requests_asyncio_example.py
#!/usr/bin/env python3
import asyncio
import logging
from pprint import pprint
from reprlib import repr as smart_repr
import requests
logger = logging.getLogger(__name__)
View aiohttp_example.py
#!/usr/bin/env python3
from aiohttp import ClientSession
import asyncio
import logging
from pprint import pprint
from reprlib import repr as smart_repr
logger = logging.getLogger(__name__)
View rtail.py
#!/usr/bin/env python
"""
Usage:
./rtail.py user@host:path/foo.log bar.log host2:/path/baz.log
"""
import optparse
import os