~ubuntu-branches/ubuntu/lucid/openvpn/lucid

« back to all changes in this revision

Viewing changes to manage.c

  • Committer: Bazaar Package Importer
  • Author(s): Chuck Short
  • Date: 2008-02-12 07:48:51 UTC
  • mfrom: (1.1.8 upstream)
  • Revision ID: james.westby@ubuntu.com-20080212074851-afz17m450vq8fuwd
Tags: 2.1~rc7-1ubuntu1
* New upstream version (LP: #157144).
* Disable creation of tun, let udev handle it.

Show diffs side-by-side

added added

removed removed

Lines of Context:
40
40
#include "otime.h"
41
41
#include "integer.h"
42
42
#include "misc.h"
 
43
#include "ssl.h"
43
44
#include "manage.h"
44
45
 
45
46
#include "memdbg.h"
70
71
  msg (M_CLIENT, "bytecount n            : Show bytes in/out, update every n secs (0=off).");
71
72
  msg (M_CLIENT, "echo [on|off] [N|all]  : Like log, but only show messages in echo buffer.");
72
73
  msg (M_CLIENT, "exit|quit              : Close management session.");
 
74
  msg (M_CLIENT, "forget-passwords       : Forget passwords entered so far.");
73
75
  msg (M_CLIENT, "help                   : Print this message.");
74
76
  msg (M_CLIENT, "hold [on|off|release]  : Set/show hold flag to on/off state, or"); 
75
77
  msg (M_CLIENT, "                         release current hold and start tunnel."); 
602
604
}
603
605
 
604
606
static void
 
607
man_forget_passwords (struct management *man)
 
608
{
 
609
  ssl_purge_auth ();
 
610
  msg (M_CLIENT, "SUCCESS: Passwords were forgotten");
 
611
}
 
612
 
 
613
static void
605
614
man_net (struct management *man)
606
615
{
607
616
  if (man->persist.callback.show_net)
789
798
      if (man_need (man, p, 2, 0))
790
799
        man_query_password (man, p[1], p[2]);
791
800
    }
 
801
  else if (streq (p[0], "forget-passwords"))
 
802
    {
 
803
      man_forget_passwords (man);
 
804
    }
792
805
  else if (streq (p[0], "needok"))
793
806
    {
794
807
      if (man_need (man, p, 2, 0))
1067
1080
    }
1068
1081
  if (!exiting)
1069
1082
    {
 
1083
      if (man->settings.management_forget_disconnect)
 
1084
         ssl_purge_auth ();
 
1085
 
 
1086
      if (man->settings.signal_on_disconnect) {
 
1087
          int mysig = man_mod_signal (man, SIGUSR1);
 
1088
          if (mysig >= 0)
 
1089
            {
 
1090
              msg (D_MANAGEMENT, "MANAGEMENT: Triggering management signal");
 
1091
              throw_signal_soft (mysig, "management-disconnect");
 
1092
            }
 
1093
      }
 
1094
 
1070
1095
      if (man->settings.connect_as_client)
1071
1096
        {
1072
1097
          msg (D_MANAGEMENT, "MANAGEMENT: Triggering management exit");
1310
1335
                   const int echo_buffer_size,
1311
1336
                   const int state_buffer_size,
1312
1337
                   const bool hold,
 
1338
                   const bool signal_on_disconnect,
 
1339
                   const bool management_forget_disconnect,
1313
1340
                   const bool connect_as_client,
1314
1341
                   const char *write_peer_info_file,
1315
1342
                   const int remap_sigusr1)
1342
1369
      ms->hold = hold;
1343
1370
 
1344
1371
      /*
 
1372
       * Should OpenVPN be signaled if management
 
1373
       * disconnects?
 
1374
       */
 
1375
      ms->signal_on_disconnect = signal_on_disconnect;
 
1376
 
 
1377
      /*
 
1378
       * Should OpenVPN forget passwords when managmenet
 
1379
       * session disconnects?
 
1380
       */
 
1381
      ms->management_forget_disconnect = management_forget_disconnect;
 
1382
 
 
1383
      /*
1345
1384
       * Should OpenVPN connect to management interface as a client
1346
1385
       * rather than a server?
1347
1386
       */
1483
1522
                 const int echo_buffer_size,
1484
1523
                 const int state_buffer_size,
1485
1524
                 const bool hold,
 
1525
                 const bool signal_on_disconnect,
 
1526
                 const bool management_forget_disconnect,
1486
1527
                 const bool connect_as_client,
1487
1528
                 const char *write_peer_info_file,
1488
1529
                 const int remap_sigusr1)
1503
1544
                     echo_buffer_size,
1504
1545
                     state_buffer_size,
1505
1546
                     hold,
 
1547
                     signal_on_disconnect,
 
1548
                     management_forget_disconnect,
1506
1549
                     connect_as_client,
1507
1550
                     write_peer_info_file,
1508
1551
                     remap_sigusr1);