X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=source%2FBootServerRequest.py;h=5313a23ff6338e65b9657da0fbf2668ef12fa2a9;hb=b39639a85e4d0e8b620dcee989e6c5e83bc6de7e;hp=b2f03a16658c9b552bdc68a788861707deffc365;hpb=cab62700611eaf574313cc210ffee91a128ba89e;p=bootmanager.git diff --git a/source/BootServerRequest.py b/source/BootServerRequest.py index b2f03a1..5313a23 100644 --- a/source/BootServerRequest.py +++ b/source/BootServerRequest.py @@ -1,46 +1,10 @@ -#!/usr/bin/python2 +#!/usr/bin/python # Copyright (c) 2003 Intel Corporation # All rights reserved. - -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: - -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. - -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following -# disclaimer in the documentation and/or other materials provided -# with the distribution. - -# * Neither the name of the Intel Corporation nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. - -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE INTEL OR -# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -# EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF -# YOUR JURISDICTION. It is licensee's responsibility to comply with any -# export regulations applicable in licensee's jurisdiction. Under -# CURRENT (May 2000) U.S. export regulations this software is eligible -# for export from the U.S. and can be downloaded by or otherwise -# exported or reexported worldwide EXCEPT to U.S. embargoed destinations -# which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, -# Afghanistan and any other country to which the U.S. has embargoed -# goods and services. - +# +# Copyright (c) 2004-2006 The Trustees of Princeton University +# All rights reserved. import os, sys import re @@ -214,20 +178,33 @@ class BootServerRequest: MaxTransferTime= DEFAULT_CURL_MAX_TRANSFER_TIME, FormData= None): - buffer = tempfile.NamedTemporaryFile() + (fd, buffer_name) = tempfile.mkstemp("MakeRequest-XXXXXX") + os.close(fd) + buffer = open(buffer_name, "w+b") + + # the file "buffer_name" will be deleted by DownloadFile() ok = self.DownloadFile(PartialPath, GetVars, PostVars, - DoSSL, DoCertCheck, buffer.name, + DoSSL, DoCertCheck, buffer_name, ConnectTimeout, MaxTransferTime, FormData) - # check the code, return the string only if it was successfull + # check the ok code, return the string only if it was successfull if ok: buffer.seek(0) - return buffer.read() + ret = buffer.read() else: - return None + ret = None + + buffer.close() + try: + # just in case it is not deleted by DownloadFile() + os.unlink(buffer_name) + except OSError: + pass + + return ret def DownloadFile(self, PartialPath, GetVars, PostVars, DoSSL, DoCertCheck, DestFilePath, @@ -402,7 +379,7 @@ class BootServerRequest: if not outfile.closed: try: os.unlink(DestFilePath) - outfile.close + outfile.close() except OSError: pass