PHP 8.2.30
Preview: opensocketexception.py Size: 861 B
//opt/hc_python/share/doc/pycurl/examples/opensocketexception.py

# Exposing rich exception information from callbacks example

import pycurl, random, socket

class ConnectionRejected(Exception):
    pass

def opensocket(curl, purpose, curl_address):
    if random.random() < 0.5:
        curl.exception = ConnectionRejected('Rejecting connection attempt in opensocket callback')
        return pycurl.SOCKET_BAD
    
    family, socktype, protocol, address = curl_address
    s = socket.socket(family, socktype, protocol)
    s.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
    return s

c = pycurl.Curl()
c.setopt(c.URL, 'http://pycurl.io')
c.exception = None
c.setopt(c.OPENSOCKETFUNCTION,
    lambda purpose, address: opensocket(c, purpose, address))

try:
    c.perform()
except pycurl.error as e:
    if e.args[0] == pycurl.E_COULDNT_CONNECT and c.exception:
        print(c.exception)
    else:
        print(e)

Directory Contents

Dirs: 2 × Files: 11

Name Size Perms Modified Actions
- drwxr-xr-x 2025-04-04 08:01:21
Edit Download
- drwxr-xr-x 2025-04-04 08:01:21
Edit Download
545 B lrw-r--r-- 2025-04-04 08:01:21
Edit Download
1.15 KB lrw-r--r-- 2025-04-04 08:01:21
Edit Download
21.26 KB lrw-r--r-- 2025-04-04 08:01:21
Edit Download
7.81 KB lrw-r--r-- 2025-04-04 08:01:21
Edit Download
861 B lrw-r--r-- 2025-04-04 08:01:21
Edit Download
3.28 KB lrw-r--r-- 2025-04-04 08:01:21
Edit Download
2.60 KB lrw-r--r-- 2025-04-04 08:01:21
Edit Download
2.40 KB lrw-r--r-- 2025-04-04 08:01:21
Edit Download
1.07 KB lrw-r--r-- 2025-04-04 08:01:21
Edit Download
302 B lrw-r--r-- 2025-04-04 08:01:21
Edit Download
2.13 KB lrw-r--r-- 2025-04-04 08:01:21
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).