Added getprotobyname() interface.

This commit is contained in:
Guido van Rossum 1996-12-19 16:35:04 +00:00
parent ae0cd0b9b3
commit 3901d85277
1 changed files with 24 additions and 0 deletions

View File

@ -1117,6 +1117,29 @@ BUILD_FUNC_DEF_2(PySocket_getservbyname,PyObject *,self, PyObject *,args)
}
/* Python interface to getprotobyname(name).
This only returns the protocol number, since the other info is
already known or not useful (like the list of aliases). */
/*ARGSUSED*/
static PyObject *
BUILD_FUNC_DEF_2(PySocket_getprotobyname,PyObject *,self, PyObject *,args)
{
char *name;
struct protoent *sp;
if (!PyArg_Parse(args, "s", &name))
return NULL;
Py_BEGIN_ALLOW_THREADS
sp = getprotobyname(name);
Py_END_ALLOW_THREADS
if (sp == NULL) {
PyErr_SetString(PySocket_Error, "protocol not found");
return NULL;
}
return PyInt_FromLong((long) sp->p_proto);
}
/* Python interface to socket(family, type, proto).
The third (protocol) argument is optional.
Return a new socket object. */
@ -1238,6 +1261,7 @@ static PyMethodDef PySocket_methods[] = {
{"gethostbyaddr", PySocket_gethostbyaddr},
{"gethostname", PySocket_gethostname},
{"getservbyname", PySocket_getservbyname},
{"getprotobyname", PySocket_getprotobyname},
{"socket", PySocket_socket, 1},
#ifndef NO_DUP
{"fromfd", PySocket_fromfd, 1},