0ia ddlZddlZddlmZddlmZddlmZerddlmZm Z ddl m Z m Z m Z mZdgZGddeZd Zd Zd Zy) N)MYPY)OP) Integration) AddressFamily SocketKind)TupleOptionalUnionListSocketIntegrationc*eZdZdZdeZedZy)r socketz auto.socket.c,tty)zs patches two of the most used functions of socket: create_connection and getaddrinfo(dns resolver) N)_patch_create_connection_patch_getaddrinfoM/opt/hc_python/lib/python3.12/site-packages/sentry_sdk/integrations/socket.py setup_oncezSocketIntegration.setup_onces !"rN)__name__ __module__ __qualname__ identifierorigin staticmethodrrrrr r s%JJ< (Frc |j} |j}|d|}|S#ttf$rY+wxYw#ttf$rY/wxYw)N:)decodeUnicodeDecodeErrorAttributeError)hostport descriptions r_get_span_descriptionr$se {{} {{}"4(K   /    /   s,A>>AAchtjtjdffd }|t_y)Nctjjt}| |||Stjt j t|d|dtj5}|jd||jd||jd||||cdddS#1swYyxYw)Nropnameraddresstimeoutsource_address)r+r,r-) sentry_sdk get_clientget_integrationr start_spanrSOCKET_CONNECTIONr$rset_data)r+r,r- integrationspanreal_create_connections rcreate_connectionz3_patch_create_connection..create_connection2s !++-==>OP  )'7NK K  " "##&wqz71:>$++  MM)W - MM)W - MM*N ;)   s 9ACC )rr7_GLOBAL_DEFAULT_TIMEOUT)r7r6s @rrr.s,#55... 1FrcHtjdfd }|t_y)Nc ztjjt}| ||||||Stjt j t||tj5}|jd||jd|||||||cdddS#1swYyxYw)Nr(r!r") r.r/r0r r1r SOCKET_DNSr$rr3) r!r"familytypeprotoflagsr4r5real_getaddrinfos r getaddrinfoz'_patch_getaddrinfo..getaddrinfoPs ++-==>OP  #D$eUK K  " "}}&tT2$++  MM&$ ' MM&$ '#D$eUK   s 61B11B:)rrrr)rrA)rAr@s @rrrLs))L %Fr)rr.sentry_sdk._typesrsentry_sdk.constsrsentry_sdk.integrationsrrrtypingrr r r __all__r r$rrrrrrGsC " /033    "1<%r