@@ -36,6 +36,7 @@ static int driver_stop(neu_plugin_t *plugin);
3636static int driver_config (neu_plugin_t * plugin , const char * config );
3737static int driver_request (neu_plugin_t * plugin , neu_reqresp_head_t * head ,
3838 void * data );
39+ static int driver_connect (neu_plugin_t * plugin );
3940
4041static int driver_validate_tag (neu_plugin_t * plugin , neu_datatag_t * tag );
4142static int driver_group_timer (neu_plugin_t * plugin , neu_plugin_group_t * group );
@@ -46,14 +47,15 @@ static int driver_test_read_tag(neu_plugin_t *plugin, void *req,
4647 neu_datatag_t tag );
4748
4849static const neu_plugin_intf_funs_t plugin_intf_funs = {
49- .open = driver_open ,
50- .close = driver_close ,
51- .init = driver_init ,
52- .uninit = driver_uninit ,
53- .start = driver_start ,
54- .stop = driver_stop ,
55- .setting = driver_config ,
56- .request = driver_request ,
50+ .open = driver_open ,
51+ .close = driver_close ,
52+ .init = driver_init ,
53+ .uninit = driver_uninit ,
54+ .start = driver_start ,
55+ .stop = driver_stop ,
56+ .setting = driver_config ,
57+ .request = driver_request ,
58+ .try_connect = driver_connect ,
5759
5860 .driver .validate_tag = driver_validate_tag ,
5961 .driver .group_timer = driver_group_timer ,
@@ -388,6 +390,21 @@ static int driver_config(neu_plugin_t *plugin, const char *config)
388390 return 0 ;
389391}
390392
393+ static int driver_connect (neu_plugin_t * plugin )
394+ {
395+ if (plugin -> conn != NULL ) {
396+ if (neu_conn_is_connected (plugin -> conn )) {
397+ plugin -> common .link_state = NEU_NODE_LINK_STATE_CONNECTED ;
398+ } else {
399+ neu_conn_connect (plugin -> conn );
400+ if (neu_conn_is_connected (plugin -> conn )) {
401+ plugin -> common .link_state = NEU_NODE_LINK_STATE_CONNECTED ;
402+ }
403+ }
404+ }
405+ return 0 ;
406+ }
407+
391408static int driver_request (neu_plugin_t * plugin , neu_reqresp_head_t * head ,
392409 void * data )
393410{
0 commit comments