author | John Beck <John.Beck@Oracle.COM> |
Thu, 22 May 2014 14:36:47 -0700 | |
changeset 1914 | 00e8dbcb9b1e |
parent 578 | components/python/python27/patches/10-closerange.patch@4f51372decaf |
child 1954 | 32663e59626d |
permissions | -rw-r--r-- |
1914
00e8dbcb9b1e
PSARC 2014/183 Python 2.7.6
John Beck <John.Beck@Oracle.COM>
parents:
578
diff
changeset
|
1 |
--- Python-2.7.6/Modules/posixmodule.c.~1~ 2013-11-09 23:36:41.000000000 -0800 |
00e8dbcb9b1e
PSARC 2014/183 Python 2.7.6
John Beck <John.Beck@Oracle.COM>
parents:
578
diff
changeset
|
2 |
+++ Python-2.7.6/Modules/posixmodule.c 2014-05-14 13:22:52.461187524 -0700 |
00e8dbcb9b1e
PSARC 2014/183 Python 2.7.6
John Beck <John.Beck@Oracle.COM>
parents:
578
diff
changeset
|
3 |
@@ -6603,16 +6603,34 @@ |
578
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
4 |
"closerange(fd_low, fd_high)\n\n\ |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
5 |
Closes all file descriptors in [fd_low, fd_high), ignoring errors."); |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
6 |
|
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
7 |
+static int |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
8 |
+close_func(void *lohi, int fd) |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
9 |
+{ |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
10 |
+ int lo = ((int *)lohi)[0]; |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
11 |
+ int hi = ((int *)lohi)[1]; |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
12 |
+ |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
13 |
+ if (fd >= hi) |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
14 |
+ return (1); |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
15 |
+ else if (fd >= lo) |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
16 |
+ close(fd); |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
17 |
+ |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
18 |
+ return (0); |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
19 |
+} |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
20 |
+ |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
21 |
static PyObject * |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
22 |
posix_closerange(PyObject *self, PyObject *args) |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
23 |
{ |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
24 |
int fd_from, fd_to, i; |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
25 |
+ int lohi[2]; |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
26 |
+ |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
27 |
if (!PyArg_ParseTuple(args, "ii:closerange", &fd_from, &fd_to)) |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
28 |
return NULL; |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
29 |
Py_BEGIN_ALLOW_THREADS |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
30 |
- for (i = fd_from; i < fd_to; i++) |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
31 |
- if (_PyVerify_fd(i)) |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
32 |
- close(i); |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
33 |
+ |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
34 |
+ lohi[0] = fd_from; |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
35 |
+ lohi[1] = fd_to; |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
36 |
+ fdwalk(close_func, lohi); |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
37 |
+ |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
38 |
Py_END_ALLOW_THREADS |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
39 |
Py_RETURN_NONE; |
4f51372decaf
7053223 python needs lint libraries
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
40 |
} |