X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=vss.c;h=8ba17fc34e4b2e0f3c77452f0ec233ae270e2e22;hp=efd0c5ea8e43402fc85f801fc87f039674cf91a8;hb=e13271a35ebe1580929c3a5de3169501b5d81634;hpb=7d912dbad687503f2a8d4895b0e48b4584b4940b diff --git a/vss.c b/vss.c index efd0c5ea..8ba17fc3 100644 --- a/vss.c +++ b/vss.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 1997-2007 Andre Noll + * Copyright (C) 1997-2008 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -261,9 +261,13 @@ struct timeval *vss_chunk_time(void) return &mmd->afd.afhi.chunk_tv; } +/** The possible states of the afs socket. See \ref afs_socket. */ enum afs_socket_status { + /** Socket is inactive. */ AFS_SOCKET_READY, + /** Socket fd was included in the write fd set for select(). */ AFS_SOCKET_CHECK_FOR_WRITE, + /** vss wrote a request to the socket and waits for afs to reply. */ AFS_SOCKET_AFD_PENDING }; @@ -379,6 +383,7 @@ static void recv_afs_result(void) struct stat statbuf; struct timeval now; + mmd->afd.afhi.chunk_table = NULL; ret = recv_afs_msg(&passed_fd, &afs_code, &afs_data); if (ret < 0) goto err; @@ -415,9 +420,10 @@ static void recv_afs_result(void) tv_add(&now, &announce_tv, &data_send_barrier); return; err: + free(mmd->afd.afhi.chunk_table); if (passed_fd >= 0) close(passed_fd); - PARA_ERROR_LOG("%s\n", PARA_STRERROR(-ret)); + PARA_ERROR_LOG("%s\n", para_strerror(-ret)); mmd->new_vss_status_flags = VSS_NEXT; }