+static int cmd_create_database( char *args[], char *outbuff)
+{
+ char *db=args[1];
+ if (!db)
+ db="Default";
+ strcat(outbuff,"Creating database ");
+ strcat(outbuff,db);
+ strcat(outbuff,"\n");
+
+ return zebra_create_database(zh, db);
+}
+
+static int cmd_drop_database( char *args[], char *outbuff)
+{
+ char *db=args[1];
+ if (!db)
+ db="Default";
+ strcat(outbuff,"Dropping database ");
+ strcat(outbuff,db);
+ strcat(outbuff,"\n");
+
+ return zebra_drop_database(zh, db);
+}
+
+static int cmd_begin_trans( char *args[], char *outbuff)
+{
+ int rw=0;
+ if (args[1] && ( (args[1][0]=='1') || (args[1][0]=='w') ))
+ rw=1;
+ return zebra_begin_trans(zh,rw);
+}
+static int cmd_end_trans( char *args[], char *outbuff)
+{
+ return zebra_end_trans(zh);
+}
+/*************************************
+ * Inserting and deleting
+ */
+
+static int cmd_record_insert( char *args[], char *outbuff)
+{
+ int sysno=0;
+ char buf[MAX_ARG_LEN];
+ int i;
+ int rc;
+
+ i=1;
+ buf[0]='\0';
+ while (args[i])
+ {
+ strcat(buf, args[i++]);
+ strcat(buf, " ");
+ }
+ rc=zebra_record_insert(zh,buf, strlen(buf), &sysno);
+ if (0==rc)
+ {
+ sprintf(buf,"ok sysno=%d\n",sysno);
+ strcat(outbuff,buf);
+ }
+ return rc;
+}
+
+
+static int cmd_exchange_record( char *args[], char *outbuff)
+{
+ char *base=args[1];
+ char *id = args[2];
+ char *action = args[3];
+ int i=4;
+ int rc;
+ char buf[MAX_ARG_LEN];
+ if (!(base && id && action && args[4] ))
+ {
+ strcat(outbuff,"Missing arguments!\n");
+ onecommand("help exchange_record", outbuff, "");
+ return -90;
+ }
+ while (args[i])
+ {
+ strcat(buf, args[i++]);
+ strcat(buf, " ");
+ }
+ rc=zebra_admin_exchange_record(zh, base, buf, strlen(buf),
+ id, strlen(id), atoi(action));
+ return rc;
+}
+
+
+/**************************************)