chunkd: return known to array
PATCH 1/2 chunkd: return known to array
The .known is the array management item which has no business in a list-managed struct. Phase 1: return it where it was. In phase 2 we will drop it from cldc_host. Then perhaps change array to a circular list.
Signed-off-by Pete Zaitcev <[email protected]>
server/cldu.c +14 -8
@@ -22,13 +22,18 @@#define N_CLD 10/* 5 * (v4+v6) */ +struct cld_host { +int known; +struct cldc_host h; +}; +struct cld_session {bool forced_hosts;/* Administrator overrode default CLD */ bool sess_open;struct cldc_udp *lib;/* library state */ int actx;/* Active host cldv[actx] */ -struct cldc_host cldv[N_CLD ]; +struct cld_host cldv[N_CLD ];struct event ev;/* Associated with fd */ char *cfname;/* /chunk-CELL directory */
@@ -71,7 +76,7 @@ static int cldu_nextactive(struct cld_session *sp) n =0 ; }/* Full circle, end on the old actx */ -return n; +return sp->actx; } static int cldu_setcell(struct cld_session *sp,
@@ -217,11 +222,11 @@ static int cldu_set_cldc(struct cld_session *sp, int newactive) } sp->actx = newactive; - hp = &sp->cldv[sp->actx]; -if (!hp->known) { +if (!sp->cldv[sp->actx].known) {applog (LOG_ERR ,"No CLD hosts" ); goto err_addr; } + hp = &sp->cldv[sp->actx].h; rc =cldc_udp_new (hp->host, hp->port, &sp->lib);if (rc) {
@@ -530,8 +535,9 @@ int cld_begin(const char *thishost, const char *thiscell, uint32_t nid, i =0 ;for (tmp = host_list; tmp; tmp = tmp->next) {if (i <N_CLD ) { -memcpy (&ses.cldv[i], tmp->data, +memcpy (&ses.cldv[i].h, tmp->data,sizeof (struct cldc_host )); + ses.cldv[i].known =1 ; i++; }else {struct cldc_host *hp = tmp->data;
@@ -577,7 +583,7 @@ void cld_end(void)if (!ses.forced_hosts) {for (i =0 ; i <N_CLD ; i++) {if (ses.cldv[i].known) -free (ses.cldv[i].host); +free (ses.cldv[i].h.host); } }
@@ -589,7 +595,7 @@ void cldu_add_host(const char *hostname, unsigned int port, void log(const char *fmt, ...)) {static struct cld_session *sp = &ses; -struct cldc_host *hp; +struct cld_host *hp;int i;for (i =0 ; i <N_CLD ; i++) {
@@ -600,7 +606,7 @@ void cldu_add_host(const char *hostname, unsigned int port,if (i >=N_CLD )return ; -if (cldc_saveaddr (hp,100 ,100 , port,strlen (hostname), hostname, +if (cldc_saveaddr (&hp->h,100 ,100 , port,strlen (hostname), hostname, debugging, log))return ; hp->known =1 ;
Quoted 6 lines · Pete Zaitcev
The .known is the array management item which has no business in a list-managed struct. Phase 1: return it where it was. In phase 2 we will drop it from
cldc_host. Then perhaps change array to a circular list.Signed-off-by Pete Zaitcev <[email protected]>
applied 1-2