summaryrefslogtreecommitdiff
path: root/dhcpctl/omshell.c
diff options
context:
space:
mode:
Diffstat (limited to 'dhcpctl/omshell.c')
-rw-r--r--dhcpctl/omshell.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/dhcpctl/omshell.c b/dhcpctl/omshell.c
index d5d31aa8..785f59a6 100644
--- a/dhcpctl/omshell.c
+++ b/dhcpctl/omshell.c
@@ -208,6 +208,7 @@ main(int argc, char **argv) {
printf (" server <server address>\n");
printf (" key <key name> <key value>\n");
printf (" connect\n");
+ printf (" disconnect\n");
printf (" new <object-type>\n");
printf (" set <name> = <value>\n");
printf (" create\n");
@@ -427,6 +428,28 @@ main(int argc, char **argv) {
connected = 1;
break;
+ case DISCONNECT:
+ token = next_token (&val, (unsigned *)0, cfile);
+ if (token != END_OF_FILE && token != EOL) {
+ printf ("usage: disconnect\n");
+ skip_to_semi (cfile);
+ break;
+ }
+
+ if (!connected || !connection) {
+ fprintf (stderr, "not connected\n");
+ break;
+ }
+
+ status = dhcpctl_disconnect (&connection, 0);
+ if (status != ISC_R_SUCCESS) {
+ fprintf (stderr, "dhcpctl_disconnect: %s\n",
+ isc_result_totext (status));
+ break;
+ }
+ connected = 0;
+ break;
+
case TOKEN_NEW:
token = next_token (&val, (unsigned *)0, cfile);
if ((!is_identifier (token) && token != STRING)) {