X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fcfg.c;h=901315ed99cd83d0f8b333a7e8e03247734f66c8;hb=f1aa2072c80dc8d4fb7a776801537172a656dbdd;hp=b4d1d591a74e8e6188881577dc60fb1c949e0fa5;hpb=064af42167bf4fc9aaea2702d80ce08074b889c0;p=openvswitch diff --git a/lib/cfg.c b/lib/cfg.c index b4d1d591..901315ed 100644 --- a/lib/cfg.c +++ b/lib/cfg.c @@ -1,27 +1,16 @@ /* Copyright (c) 2008, 2009 Nicira Networks - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * http://www.apache.org/licenses/LICENSE-2.0 * - * In addition, as a special exception, Nicira Networks gives permission - * to link the code of its release of vswitchd with the OpenSSL project's - * "OpenSSL" library (or with modified versions of it that use the same - * license as the "OpenSSL" library), and distribute the linked - * executables. You must obey the GNU General Public License in all - * respects for all of the code used other than "OpenSSL". If you modify - * this file, you may extend this exception to your version of the file, - * but you are not obligated to do so. If you do not wish to do so, - * delete this exception statement from your version. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ #include @@ -154,22 +143,15 @@ cfg_set_file(const char *file_name) static int update_cookie(void) { + struct sha1_ctx context; int i; - SHA1Context context; - if (SHA1Reset(&context) != shaSuccess) { - return -1; - } + sha1_init(&context); for (i = 0; i < cfg.n; i++) { - if (SHA1Input(&context, (uint8_t *)cfg.names[i], - strlen(cfg.names[i])) != shaSuccess) { - return -1; - } - SHA1Input(&context, (uint8_t *)"\n", 1); - } - if (SHA1Result(&context, cfg_cookie) != shaSuccess) { - return -1; + sha1_update(&context, cfg.names[i], strlen(cfg.names[i])); + sha1_update(&context, "\n", 1); } + sha1_final(&context, cfg_cookie); return 0; } @@ -350,13 +332,16 @@ try_lock(int fd, bool block) int cfg_lock(uint8_t *cookie, int timeout) { - long long int start = time_msec(); + long long int start; long long int elapsed = 0; int fd; uint8_t curr_cookie[CFG_COOKIE_LEN]; assert(lock_fd < 0); COVERAGE_INC(cfg_lock); + + time_refresh(); + start = time_msec(); for (;;) { int error;