summaryrefslogtreecommitdiffstats
path: root/Modules/clinic
diff options
context:
space:
mode:
authorBogdan Romanyuk <65823030+wrongnull@users.noreply.github.com>2023-11-08 14:03:52 (GMT)
committerGitHub <noreply@github.com>2023-11-08 14:03:52 (GMT)
commit8fbe5314cd6544bdcd50b3a57e0f8a9c6bf97374 (patch)
tree6d7709a15270af6b9a0d097c66f2304c1fe7201a /Modules/clinic
parent06efb602645226f108e02bde716f9061f1ec4cdd (diff)
downloadcpython-8fbe5314cd6544bdcd50b3a57e0f8a9c6bf97374.zip
cpython-8fbe5314cd6544bdcd50b3a57e0f8a9c6bf97374.tar.gz
cpython-8fbe5314cd6544bdcd50b3a57e0f8a9c6bf97374.tar.bz2
gh-111662: Update socket module to use AC for optimizing performance (gh-111661)
Diffstat (limited to 'Modules/clinic')
-rw-r--r--Modules/clinic/socketmodule.c.h165
1 files changed, 164 insertions, 1 deletions
diff --git a/Modules/clinic/socketmodule.c.h b/Modules/clinic/socketmodule.c.h
index b6c74b1..35019e7 100644
--- a/Modules/clinic/socketmodule.c.h
+++ b/Modules/clinic/socketmodule.c.h
@@ -91,4 +91,167 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=c85517815c2d69cf input=a9049054013a1b77]*/
+
+PyDoc_STRVAR(_socket_socket_ntohs__doc__,
+"ntohs($self, x, /)\n"
+"--\n"
+"\n"
+"Convert a 16-bit unsigned integer from network to host byte order.");
+
+#define _SOCKET_SOCKET_NTOHS_METHODDEF \
+ {"ntohs", (PyCFunction)_socket_socket_ntohs, METH_O, _socket_socket_ntohs__doc__},
+
+static PyObject *
+_socket_socket_ntohs_impl(PySocketSockObject *self, int x);
+
+static PyObject *
+_socket_socket_ntohs(PySocketSockObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int x;
+
+ x = PyLong_AsInt(arg);
+ if (x == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _socket_socket_ntohs_impl(self, x);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_socket_socket_htons__doc__,
+"htons($self, x, /)\n"
+"--\n"
+"\n"
+"Convert a 16-bit unsigned integer from host to network byte order.");
+
+#define _SOCKET_SOCKET_HTONS_METHODDEF \
+ {"htons", (PyCFunction)_socket_socket_htons, METH_O, _socket_socket_htons__doc__},
+
+static PyObject *
+_socket_socket_htons_impl(PySocketSockObject *self, int x);
+
+static PyObject *
+_socket_socket_htons(PySocketSockObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int x;
+
+ x = PyLong_AsInt(arg);
+ if (x == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _socket_socket_htons_impl(self, x);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_socket_socket_inet_aton__doc__,
+"inet_aton($self, ip_addr, /)\n"
+"--\n"
+"\n"
+"Convert an IP address in string format (123.45.67.89) to the 32-bit packed binary format used in low-level network functions.");
+
+#define _SOCKET_SOCKET_INET_ATON_METHODDEF \
+ {"inet_aton", (PyCFunction)_socket_socket_inet_aton, METH_O, _socket_socket_inet_aton__doc__},
+
+static PyObject *
+_socket_socket_inet_aton_impl(PySocketSockObject *self, const char *ip_addr);
+
+static PyObject *
+_socket_socket_inet_aton(PySocketSockObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ const char *ip_addr;
+
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("inet_aton", "argument", "str", arg);
+ goto exit;
+ }
+ ip_addr = PyUnicode_AsUTF8(arg);
+ if (ip_addr == NULL) {
+ goto exit;
+ }
+ return_value = _socket_socket_inet_aton_impl(self, ip_addr);
+
+exit:
+ return return_value;
+}
+
+#if defined(HAVE_INET_NTOA)
+
+PyDoc_STRVAR(_socket_socket_inet_ntoa__doc__,
+"inet_ntoa($self, packed_ip, /)\n"
+"--\n"
+"\n"
+"Convert an IP address from 32-bit packed binary format to string format.");
+
+#define _SOCKET_SOCKET_INET_NTOA_METHODDEF \
+ {"inet_ntoa", (PyCFunction)_socket_socket_inet_ntoa, METH_O, _socket_socket_inet_ntoa__doc__},
+
+static PyObject *
+_socket_socket_inet_ntoa_impl(PySocketSockObject *self, Py_buffer *packed_ip);
+
+static PyObject *
+_socket_socket_inet_ntoa(PySocketSockObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_buffer packed_ip = {NULL, NULL};
+
+ if (PyObject_GetBuffer(arg, &packed_ip, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ return_value = _socket_socket_inet_ntoa_impl(self, &packed_ip);
+
+exit:
+ /* Cleanup for packed_ip */
+ if (packed_ip.obj) {
+ PyBuffer_Release(&packed_ip);
+ }
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_INET_NTOA) */
+
+#if (defined(HAVE_IF_NAMEINDEX) || defined(MS_WINDOWS))
+
+PyDoc_STRVAR(_socket_socket_if_nametoindex__doc__,
+"if_nametoindex($self, oname, /)\n"
+"--\n"
+"\n"
+"Returns the interface index corresponding to the interface name if_name.");
+
+#define _SOCKET_SOCKET_IF_NAMETOINDEX_METHODDEF \
+ {"if_nametoindex", (PyCFunction)_socket_socket_if_nametoindex, METH_O, _socket_socket_if_nametoindex__doc__},
+
+static PyObject *
+_socket_socket_if_nametoindex_impl(PySocketSockObject *self, PyObject *oname);
+
+static PyObject *
+_socket_socket_if_nametoindex(PySocketSockObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ PyObject *oname;
+
+ if (!PyUnicode_FSConverter(arg, &oname)) {
+ goto exit;
+ }
+ return_value = _socket_socket_if_nametoindex_impl(self, oname);
+
+exit:
+ return return_value;
+}
+
+#endif /* (defined(HAVE_IF_NAMEINDEX) || defined(MS_WINDOWS)) */
+
+#ifndef _SOCKET_SOCKET_INET_NTOA_METHODDEF
+ #define _SOCKET_SOCKET_INET_NTOA_METHODDEF
+#endif /* !defined(_SOCKET_SOCKET_INET_NTOA_METHODDEF) */
+
+#ifndef _SOCKET_SOCKET_IF_NAMETOINDEX_METHODDEF
+ #define _SOCKET_SOCKET_IF_NAMETOINDEX_METHODDEF
+#endif /* !defined(_SOCKET_SOCKET_IF_NAMETOINDEX_METHODDEF) */
+/*[clinic end generated code: output=a6621b09bcb88f6b input=a9049054013a1b77]*/