X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fcfg.c;h=901315ed99cd83d0f8b333a7e8e03247734f66c8;hb=23834de273c6bd42362f4e6c013703c5b6fa2fd5;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;