@@ -398,7 +398,7 @@ <h1 class="modulename">
398398</ span > < span id ="L-269 "> < a href ="#L-269 "> < span class ="linenos "> 269</ span > </ a > < span class ="sd "> - Unix domain sockets must exist and have appropriate permissions.</ span >
399399</ span > < span id ="L-270 "> < a href ="#L-270 "> < span class ="linenos "> 270</ span > </ a >
400400</ span > < span id ="L-271 "> < a href ="#L-271 "> < span class ="linenos "> 271</ span > </ a > < span class ="sd "> ### Example</ span >
401- </ span > < span id ="L-272 "> < a href ="#L-272 "> < span class ="linenos "> 272</ span > </ a > < span class ="sd "> >>> success, response = fetch_socket('/var/run/haproxy.sock', b'show stat\n')</ span >
401+ </ span > < span id ="L-272 "> < a href ="#L-272 "> < span class ="linenos "> 272</ span > </ a > < span class ="sd "> >>> success, response = fetch_socket('/var/run/haproxy.sock', b'show stat\\ n')</ span >
402402</ span > < span id ="L-273 "> < a href ="#L-273 "> < span class ="linenos "> 273</ span > </ a > < span class ="sd "> """</ span >
403403</ span > < span id ="L-274 "> < a href ="#L-274 "> < span class ="linenos "> 274</ span > </ a > < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> open_unix_socket</ span > < span class ="p "> ():</ span >
404404</ span > < span id ="L-275 "> < a href ="#L-275 "> < span class ="linenos "> 275</ span > </ a > < span class ="k "> return</ span > < span class ="n "> socket</ span > < span class ="o "> .</ span > < span class ="n "> socket</ span > < span class ="p "> (</ span > < span class ="n "> socket</ span > < span class ="o "> .</ span > < span class ="n "> AF_UNIX</ span > < span class ="p "> ,</ span > < span class ="n "> SOCK_TCP</ span > < span class ="p "> )</ span >
@@ -453,7 +453,7 @@ <h1 class="modulename">
453453</ span > < span id ="L-324 "> < a href ="#L-324 "> < span class ="linenos "> 324</ span > </ a > < span class ="sd "> - Uses `server_hostname` to support Server Name Indication (SNI).</ span >
454454</ span > < span id ="L-325 "> < a href ="#L-325 "> < span class ="linenos "> 325</ span > </ a >
455455</ span > < span id ="L-326 "> < a href ="#L-326 "> < span class ="linenos "> 326</ span > </ a > < span class ="sd "> ### Example</ span >
456- </ span > < span id ="L-327 "> < a href ="#L-327 "> < span class ="linenos "> 327</ span > </ a > < span class ="sd "> >>> success, response = fetch_ssl('example.com', 443, b'GET / HTTP/1.0\r\ nHost: example.com\r\n\r \n')</ span >
456+ </ span > < span id ="L-327 "> < a href ="#L-327 "> < span class ="linenos "> 327</ span > </ a > < span class ="sd "> >>> success, response = fetch_ssl('example.com', 443, b'GET / HTTP/1.0\\r\\ nHost: example.com\\r\\n\\r\ \n')</ span >
457457</ span > < span id ="L-328 "> < a href ="#L-328 "> < span class ="linenos "> 328</ span > </ a > < span class ="sd "> """</ span >
458458</ span > < span id ="L-329 "> < a href ="#L-329 "> < span class ="linenos "> 329</ span > </ a > < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> open_ssl_socket</ span > < span class ="p "> ():</ span >
459459</ span > < span id ="L-330 "> < a href ="#L-330 "> < span class ="linenos "> 330</ span > </ a > < span class ="n "> context</ span > < span class ="o "> =</ span > < span class ="n "> ssl</ span > < span class ="o "> .</ span > < span class ="n "> create_default_context</ span > < span class ="p "> ()</ span >
@@ -1062,7 +1062,7 @@ <h3 id="example">Example</h3>
10621062</ span > < span id ="fetch_socket-270 "> < a href ="#fetch_socket-270 "> < span class ="linenos "> 270</ span > </ a > < span class ="sd "> - Unix domain sockets must exist and have appropriate permissions.</ span >
10631063</ span > < span id ="fetch_socket-271 "> < a href ="#fetch_socket-271 "> < span class ="linenos "> 271</ span > </ a >
10641064</ span > < span id ="fetch_socket-272 "> < a href ="#fetch_socket-272 "> < span class ="linenos "> 272</ span > </ a > < span class ="sd "> ### Example</ span >
1065- </ span > < span id ="fetch_socket-273 "> < a href ="#fetch_socket-273 "> < span class ="linenos "> 273</ span > </ a > < span class ="sd "> >>> success, response = fetch_socket('/var/run/haproxy.sock', b'show stat\n')</ span >
1065+ </ span > < span id ="fetch_socket-273 "> < a href ="#fetch_socket-273 "> < span class ="linenos "> 273</ span > </ a > < span class ="sd "> >>> success, response = fetch_socket('/var/run/haproxy.sock', b'show stat\\ n')</ span >
10661066</ span > < span id ="fetch_socket-274 "> < a href ="#fetch_socket-274 "> < span class ="linenos "> 274</ span > </ a > < span class ="sd "> """</ span >
10671067</ span > < span id ="fetch_socket-275 "> < a href ="#fetch_socket-275 "> < span class ="linenos "> 275</ span > </ a > < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> open_unix_socket</ span > < span class ="p "> ():</ span >
10681068</ span > < span id ="fetch_socket-276 "> < a href ="#fetch_socket-276 "> < span class ="linenos "> 276</ span > </ a > < span class ="k "> return</ span > < span class ="n "> socket</ span > < span class ="o "> .</ span > < span class ="n "> socket</ span > < span class ="p "> (</ span > < span class ="n "> socket</ span > < span class ="o "> .</ span > < span class ="n "> AF_UNIX</ span > < span class ="p "> ,</ span > < span class ="n "> SOCK_TCP</ span > < span class ="p "> )</ span >
@@ -1090,33 +1090,45 @@ <h3 id="example">Example</h3>
10901090
10911091 < div class ="docstring "> < p > Fetch data via a Unix domain socket connection.</ p >
10921092
1093- < pre > < code > This function opens a connection to a Unix socket file, optionally sends a command,
1094- and returns the received response. It is similar to `fetch()` but operates over local
1095- filesystem sockets.
1096-
1097- ### Parameters
1098- - **sock_file** (`str`):
1099- Path to the Unix domain socket file.
1100- - **cmd** (`bytes`, optional):
1101- A command to send after connecting. If `None`, no command is sent.
1102- - **timeout** (`int`, optional):
1103- Socket timeout in seconds. Defaults to `3`.
1104-
1105- ### Returns
1106- - **tuple** (`bool`, `str`):
1107- - `True`, followed by the received response text if successful.
1108- - `False`, followed by an error message if failed.
1109-
1110- ### Notes
1111- - Timeout and socket errors are handled gracefully.
1112- - Response is decoded into text.
1113- - Unix domain sockets must exist and have appropriate permissions.
1114-
1115- ### Example
1116- >>> success, response = fetch_socket('/var/run/haproxy.sock', b'show stat
1117- </ code > </ pre >
1093+ < p > This function opens a connection to a Unix socket file, optionally sends a command,
1094+ and returns the received response. It is similar to < code > < a href ="#fetch "> fetch()</ a > </ code > but operates over local
1095+ filesystem sockets.</ p >
1096+
1097+ < h3 id ="parameters "> Parameters</ h3 >
1098+
1099+ < ul >
1100+ < li > < strong > sock_file</ strong > (< code > str</ code > ):
1101+ Path to the Unix domain socket file.</ li >
1102+ < li > < strong > cmd</ strong > (< code > bytes</ code > , optional):
1103+ A command to send after connecting. If < code > None</ code > , no command is sent.</ li >
1104+ < li > < strong > timeout</ strong > (< code > int</ code > , optional):
1105+ Socket timeout in seconds. Defaults to < code > 3</ code > .</ li >
1106+ </ ul >
11181107
1119- < p > ')</ p >
1108+ < h3 id ="returns "> Returns</ h3 >
1109+
1110+ < ul >
1111+ < li > < strong > tuple</ strong > (< code > bool</ code > , < code > str</ code > ):
1112+ < ul >
1113+ < li > < code > True</ code > , followed by the received response text if successful.</ li >
1114+ < li > < code > False</ code > , followed by an error message if failed.</ li >
1115+ </ ul > </ li >
1116+ </ ul >
1117+
1118+ < h3 id ="notes "> Notes</ h3 >
1119+
1120+ < ul >
1121+ < li > Timeout and socket errors are handled gracefully.</ li >
1122+ < li > Response is decoded into text.</ li >
1123+ < li > Unix domain sockets must exist and have appropriate permissions.</ li >
1124+ </ ul >
1125+
1126+ < h3 id ="example "> Example</ h3 >
1127+
1128+ < div class ="pdoc-code codehilite ">
1129+ < pre > < span > </ span > < code > < span class ="gp "> >>> </ span > < span class ="n "> success</ span > < span class ="p "> ,</ span > < span class ="n "> response</ span > < span class ="o "> =</ span > < span class ="n "> fetch_socket</ span > < span class ="p "> (</ span > < span class ="s1 "> '/var/run/haproxy.sock'</ span > < span class ="p "> ,</ span > < span class ="sa "> b</ span > < span class ="s1 "> 'show stat</ span > < span class ="se "> \n</ span > < span class ="s1 "> '</ span > < span class ="p "> )</ span >
1130+ </ code > </ pre >
1131+ </ div >
11201132</ div >
11211133
11221134
@@ -1162,7 +1174,7 @@ <h3 id="example">Example</h3>
11621174</ span > < span id ="fetch_ssl-325 "> < a href ="#fetch_ssl-325 "> < span class ="linenos "> 325</ span > </ a > < span class ="sd "> - Uses `server_hostname` to support Server Name Indication (SNI).</ span >
11631175</ span > < span id ="fetch_ssl-326 "> < a href ="#fetch_ssl-326 "> < span class ="linenos "> 326</ span > </ a >
11641176</ span > < span id ="fetch_ssl-327 "> < a href ="#fetch_ssl-327 "> < span class ="linenos "> 327</ span > </ a > < span class ="sd "> ### Example</ span >
1165- </ span > < span id ="fetch_ssl-328 "> < a href ="#fetch_ssl-328 "> < span class ="linenos "> 328</ span > </ a > < span class ="sd "> >>> success, response = fetch_ssl('example.com', 443, b'GET / HTTP/1.0\r\ nHost: example.com\r\n\r \n')</ span >
1177+ </ span > < span id ="fetch_ssl-328 "> < a href ="#fetch_ssl-328 "> < span class ="linenos "> 328</ span > </ a > < span class ="sd "> >>> success, response = fetch_ssl('example.com', 443, b'GET / HTTP/1.0\\r\\ nHost: example.com\\r\\n\\r\ \n')</ span >
11661178</ span > < span id ="fetch_ssl-329 "> < a href ="#fetch_ssl-329 "> < span class ="linenos "> 329</ span > </ a > < span class ="sd "> """</ span >
11671179</ span > < span id ="fetch_ssl-330 "> < a href ="#fetch_ssl-330 "> < span class ="linenos "> 330</ span > </ a > < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> open_ssl_socket</ span > < span class ="p "> ():</ span >
11681180</ span > < span id ="fetch_ssl-331 "> < a href ="#fetch_ssl-331 "> < span class ="linenos "> 331</ span > </ a > < span class ="n "> context</ span > < span class ="o "> =</ span > < span class ="n "> ssl</ span > < span class ="o "> .</ span > < span class ="n "> create_default_context</ span > < span class ="p "> ()</ span >
@@ -1179,38 +1191,48 @@ <h3 id="example">Example</h3>
11791191
11801192 < div class ="docstring "> < p > Fetch data via an SSL/TLS encrypted TCP socket connection.</ p >
11811193
1182- < pre > < code > This function opens a secure SSL/TLS socket connection to a given host and port, optionally
1194+ < p > This function opens a secure SSL/TLS socket connection to a given host and port, optionally
11831195sends a message, and returns the received response. It uses the system's default trusted CA
1184- certificates.
1185-
1186- ### Parameters
1187- - **host** (`str`):
1188- Target hostname or IP address for the SSL connection.
1189- - **port** (`int`):
1190- Target TCP port number (usually 443 for HTTPS services).
1191- - **msg** (`bytes`, optional):
1192- A message to send after connecting. If `None`, no message is sent.
1193- - **timeout** (`int`, optional):
1194- Socket timeout in seconds. Defaults to `3`.
1195-
1196- ### Returns
1197- - **tuple** (`bool`, `str`):
1198- - `True`, followed by the received response text if successful.
1199- - `False`, followed by an error message if failed.
1200-
1201- ### Notes
1202- - Timeout, SSL, and socket errors are handled gracefully.
1203- - Response is decoded into UTF-8 text.
1204- - SSL certificate validation is performed automatically based on the system's trusted CAs.
1205- - Uses `server_hostname` to support Server Name Indication (SNI).
1206-
1207- ### Example
1208- >>> success, response = fetch_ssl('example.com', 443, b'GET / HTTP/1.0
1209- </ code > </ pre >
1196+ certificates.</ p >
12101197
1211- < p > Host: example.com</ p >
1198+ < h3 id ="parameters "> Parameters</ h3 >
1199+
1200+ < ul >
1201+ < li > < strong > host</ strong > (< code > str</ code > ):
1202+ Target hostname or IP address for the SSL connection.</ li >
1203+ < li > < strong > port</ strong > (< code > int</ code > ):
1204+ Target TCP port number (usually 443 for HTTPS services).</ li >
1205+ < li > < strong > msg</ strong > (< code > bytes</ code > , optional):
1206+ A message to send after connecting. If < code > None</ code > , no message is sent.</ li >
1207+ < li > < strong > timeout</ strong > (< code > int</ code > , optional):
1208+ Socket timeout in seconds. Defaults to < code > 3</ code > .</ li >
1209+ </ ul >
1210+
1211+ < h3 id ="returns "> Returns</ h3 >
1212+
1213+ < ul >
1214+ < li > < strong > tuple</ strong > (< code > bool</ code > , < code > str</ code > ):
1215+ < ul >
1216+ < li > < code > True</ code > , followed by the received response text if successful.</ li >
1217+ < li > < code > False</ code > , followed by an error message if failed.</ li >
1218+ </ ul > </ li >
1219+ </ ul >
1220+
1221+ < h3 id ="notes "> Notes</ h3 >
12121222
1213- < p > ')</ p >
1223+ < ul >
1224+ < li > Timeout, SSL, and socket errors are handled gracefully.</ li >
1225+ < li > Response is decoded into UTF-8 text.</ li >
1226+ < li > SSL certificate validation is performed automatically based on the system's trusted CAs.</ li >
1227+ < li > Uses < code > server_hostname</ code > to support Server Name Indication (SNI).</ li >
1228+ </ ul >
1229+
1230+ < h3 id ="example "> Example</ h3 >
1231+
1232+ < div class ="pdoc-code codehilite ">
1233+ < pre > < span > </ span > < code > < span class ="gp "> >>> </ span > < span class ="n "> success</ span > < span class ="p "> ,</ span > < span class ="n "> response</ span > < span class ="o "> =</ span > < span class ="n "> fetch_ssl</ span > < span class ="p "> (</ span > < span class ="s1 "> 'example.com'</ span > < span class ="p "> ,</ span > < span class ="mi "> 443</ span > < span class ="p "> ,</ span > < span class ="sa "> b</ span > < span class ="s1 "> 'GET / HTTP/1.0</ span > < span class ="se "> \r\n</ span > < span class ="s1 "> Host: example.com</ span > < span class ="se "> \r\n\r\n</ span > < span class ="s1 "> '</ span > < span class ="p "> )</ span >
1234+ </ code > </ pre >
1235+ </ div >
12141236</ div >
12151237
12161238
0 commit comments