internal netconf mods
This commit is contained in:
parent
2fcefda831
commit
eec5896797
22 changed files with 665 additions and 1205 deletions
|
|
@ -46,31 +46,18 @@ enum format_enum{
|
|||
MSG_NOTIFY_XML, /* means filter works on xml */
|
||||
};
|
||||
|
||||
/* See also map_type2str in clicon_proto.c */
|
||||
enum clicon_msg_type{
|
||||
CLICON_MSG_NETCONF = 1, /* Generic netconf message (lock/unlock/..) can all
|
||||
msgs go to this?
|
||||
1. string: netconf message
|
||||
*/
|
||||
CLICON_MSG_CHANGE, /* Change a (single) database entry:
|
||||
1. uint32: operation: OP_MERGE/OP_REPLACE/OP_REMOVE
|
||||
2. uint32: length of value string
|
||||
3. string: name of database to change (eg "running")
|
||||
4. string: key
|
||||
5. string: value (can be NULL)
|
||||
*/
|
||||
};
|
||||
|
||||
/* Protocol message header */
|
||||
struct clicon_msg {
|
||||
uint16_t op_len; /* length of message. */
|
||||
uint16_t op_type; /* message type, see enum clicon_msg_type */
|
||||
char op_body[0]; /* rest of message, actual data */
|
||||
};
|
||||
|
||||
/*
|
||||
* Prototypes
|
||||
*/
|
||||
struct clicon_msg *clicon_msg_encode(char *format, ...);
|
||||
int clicon_msg_decode(struct clicon_msg *msg, cxobj **xml);
|
||||
|
||||
int clicon_connect_unix(char *sockpath);
|
||||
|
||||
int clicon_rpc_connect_unix(struct clicon_msg *msg,
|
||||
|
|
@ -92,13 +79,6 @@ int clicon_msg_rcv(int s, struct clicon_msg **msg, int *eof);
|
|||
|
||||
int send_msg_notify(int s, int level, char *event);
|
||||
|
||||
int send_msg_reply(int s, uint16_t type, char *data, uint16_t datalen);
|
||||
|
||||
int send_msg_ok(int s, char *data);
|
||||
|
||||
int send_msg_err(int s, int err, int suberr, char *format, ...);
|
||||
|
||||
int send_msg_netconf_reply(int s, char *format, ...);
|
||||
|
||||
int send_msg_reply(int s, char *data, uint16_t datalen);
|
||||
|
||||
#endif /* _CLIXON_PROTO_H_ */
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@
|
|||
|
||||
int clicon_rpc_msg(clicon_handle h, struct clicon_msg *msg, cxobj **xret0,
|
||||
int *sock0);
|
||||
int clicon_rpc_netconf(clicon_handle h, char *xmlst, cxobj **xret, int *sp);
|
||||
int clicon_rpc_netconf_xml(clicon_handle h, cxobj *xml, cxobj **xret, int *sp);
|
||||
int clicon_rpc_generate_error(cxobj *xerr);
|
||||
int clicon_rpc_get_config(clicon_handle h, char *db, char *xpath, cxobj **xret);
|
||||
|
|
@ -55,7 +56,7 @@ int clicon_rpc_close_session(clicon_handle h);
|
|||
int clicon_rpc_kill_session(clicon_handle h, int session_id);
|
||||
int clicon_rpc_validate(clicon_handle h, char *db);
|
||||
int clicon_rpc_commit(clicon_handle h);
|
||||
// discard-changes
|
||||
int clicon_rpc_discard_changes(clicon_handle h);
|
||||
int clicon_rpc_create_subscription(clicon_handle h, char *stream, char *filter,
|
||||
int *s);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,70 +0,0 @@
|
|||
/*
|
||||
*
|
||||
***** BEGIN LICENSE BLOCK *****
|
||||
|
||||
Copyright (C) 2009-2017 Olof Hagsand and Benny Holmgren
|
||||
|
||||
This file is part of CLIXON.
|
||||
|
||||
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
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
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.
|
||||
|
||||
Alternatively, the contents of this file may be used under the terms of
|
||||
the GNU General Public License Version 3 or later (the "GPL"),
|
||||
in which case the provisions of the GPL are applicable instead
|
||||
of those above. If you wish to allow use of your version of this file only
|
||||
under the terms of the GPL, and not to allow others to
|
||||
use your version of this file under the terms of Apache License version 2,
|
||||
indicate your decision by deleting the provisions above and replace them with
|
||||
the notice and other provisions required by the GPL. If you do not delete
|
||||
the provisions above, a recipient may use your version of this file under
|
||||
the terms of any one of the Apache License version 2 or the GPL.
|
||||
|
||||
***** END LICENSE BLOCK *****
|
||||
|
||||
*
|
||||
* Protocol to communicate between clients (eg clixon_cli, clixon_netconf)
|
||||
* and server (clicon_backend)
|
||||
*/
|
||||
|
||||
#ifndef _CLIXON_PROTO_ENCODE_H_
|
||||
#define _CLIXON_PROTO_ENCODE_H_
|
||||
|
||||
/*
|
||||
* Prototypes
|
||||
*/
|
||||
struct clicon_msg *clicon_msg_netconf_encode(char *format, ...);
|
||||
struct clicon_msg *clicon_msg_netconf_encode_xml(cxobj *xml);
|
||||
|
||||
int clicon_msg_netconf_decode(struct clicon_msg *msg, cxobj **xml);
|
||||
|
||||
struct clicon_msg *
|
||||
clicon_msg_change_encode(char *db, uint32_t op, char *key,
|
||||
char *lvec, uint32_t lvec_len);
|
||||
|
||||
int
|
||||
clicon_msg_change_decode(struct clicon_msg *msg,
|
||||
char **db, uint32_t *op, char **key,
|
||||
char **lvec, uint32_t *lvec_len,
|
||||
const char *label);
|
||||
|
||||
struct clicon_msg *
|
||||
clicon_msg_dbitems_get_reply_encode(cvec **cvecv,
|
||||
int cveclen);
|
||||
int
|
||||
clicon_msg_dbitems_get_reply_decode(char *data,
|
||||
uint16_t datalen,
|
||||
cvec ***cvecv,
|
||||
size_t *cveclen,
|
||||
const char *label);
|
||||
|
||||
#endif /* _CLIXON_PROTO_ENCODE_H_ */
|
||||
|
|
@ -47,9 +47,6 @@ int xmldb_get(clicon_handle h, char *db, char *xpath,
|
|||
cxobj **xtop, cxobj ***xvec, size_t *xlen);
|
||||
int xmldb_put(clicon_handle h, char *db, enum operation_type op,
|
||||
char *api_path, cxobj *xt);
|
||||
int xmldb_put_xkey(clicon_handle h, char *db, enum operation_type op,
|
||||
char *xkey, char *val);
|
||||
|
||||
int xmldb_dump(FILE *f, char *dbfilename, char *rxkey);
|
||||
int xmldb_copy(clicon_handle h, char *from, char *to);
|
||||
int xmldb_lock(clicon_handle h, char *db, int pid);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue