]> git.puffer.fish Git - mirror/frr.git/commitdiff
lib: grpc: fix handling of "empty" yang type 10741/head
authorChristian Hopps <chopps@labn.net>
Sun, 6 Mar 2022 16:58:26 +0000 (11:58 -0500)
committerChristian Hopps <chopps@labn.net>
Sun, 6 Mar 2022 17:00:22 +0000 (12:00 -0500)
- rather than coerce `const char *` to std:string&, just pass the
C ptr, as that's what is used anyway.

fixes #10578

Signed-off-by: Christian Hopps <chopps@labn.net>
lib/northbound_grpc.cpp

index ca253031f45baf0c8c6e98711a683bc76f941598..f5c2a91a50025f8c943ecce25b6683d32539d316 100644 (file)
@@ -276,10 +276,10 @@ static LYD_FORMAT encoding2lyd_format(enum frr::Encoding encoding)
 }
 
 static int yang_dnode_edit(struct lyd_node *dnode, const std::string &path,
-                          const std::string &value)
+                          const char *value)
 {
-       LY_ERR err = lyd_new_path(dnode, ly_native_ctx, path.c_str(),
-                                 value.c_str(), LYD_NEW_PATH_UPDATE, &dnode);
+       LY_ERR err = lyd_new_path(dnode, ly_native_ctx, path.c_str(), value,
+                                 LYD_NEW_PATH_UPDATE, &dnode);
        if (err != LY_SUCCESS) {
                flog_warn(EC_LIB_LIBYANG, "%s: lyd_new_path() failed: %s",
                          __func__, ly_errmsg(ly_native_ctx));
@@ -706,8 +706,8 @@ void HandleUnaryEditCandidate(
 
        auto pvs = tag->request.update();
        for (const frr::PathValue &pv : pvs) {
-               if (yang_dnode_edit(candidate_tmp->dnode, pv.path(), pv.value())
-                   != 0) {
+               if (yang_dnode_edit(candidate_tmp->dnode, pv.path(),
+                                   pv.value().c_str()) != 0) {
                        nb_config_free(candidate_tmp);
 
                        tag->responder.Finish(