/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to plugins.d/mandosclient.c

  • Committer: Teddy Hogeborn
  • Date: 2008-07-21 04:42:08 UTC
  • mfrom: (15.1.3 mandos)
  • Revision ID: teddy@fukt.bsnet.se-20080721044208-y8v1sjmvalfiehrv
Merge.

Show diffs side-by-side

added added

removed removed

Lines of Context:
50
50
#include <errno.h>              /* perror() */
51
51
#include <gpgme.h>
52
52
 
 
53
// getopt long
 
54
#include <getopt.h>
53
55
 
54
56
#ifndef CERT_ROOT
55
57
#define CERT_ROOT "/conf/conf.d/cryptkeyreq/"
60
62
#define DH_BITS 1024
61
63
 
62
64
bool debug = false;
 
65
char *interface = "eth0";
63
66
 
64
67
typedef struct {
65
68
  gnutls_session_t session;
197
200
    new_packet_length += ret;
198
201
  }
199
202
 
200
 
  if(debug){
201
 
    fprintf(stderr, "decrypted password is: %s\n", *new_packet);
202
 
  }
203
 
 
204
 
   /* Delete the GPGME plaintext data buffer */
 
203
  /* FIXME: check characters before printing to screen so to not print
 
204
     terminal control characters */
 
205
  /*   if(debug){ */
 
206
  /*     fprintf(stderr, "decrypted password is: "); */
 
207
  /*     fwrite(*new_packet, 1, new_packet_length, stderr); */
 
208
  /*     fprintf(stderr, "\n"); */
 
209
  /*   } */
 
210
  
 
211
  /* Delete the GPGME plaintext data buffer */
205
212
  gpgme_data_release(dh_plain);
206
213
  return new_packet_length;
207
214
}
321
328
  size_t buffer_capacity = 0;
322
329
  ssize_t decrypted_buffer_size;
323
330
  int retval = 0;
324
 
  const char interface[] = "eth0";
325
331
 
326
332
  if(debug){
327
333
    fprintf(stderr, "Setting up a tcp connection to %s\n", ip);
552
558
int main(AVAHI_GCC_UNUSED int argc, AVAHI_GCC_UNUSED char*argv[]) {
553
559
    AvahiServerConfig config;
554
560
    AvahiSServiceBrowser *sb = NULL;
555
 
    const char db[] = "--debug";
556
561
    int error;
557
 
    int ret = 1;
 
562
    int ret;
558
563
    int returncode = EXIT_SUCCESS;
559
 
    char *basename = rindex(argv[0], '/');
560
 
    if(basename == NULL){
561
 
      basename = argv[0];
562
 
    } else {
563
 
      basename++;
564
 
    }
565
 
    
566
 
    char *program_name = malloc(strlen(basename) + sizeof(db));
567
 
 
568
 
    if (program_name == NULL){
569
 
      perror("argv[0]");
570
 
      return EXIT_FAILURE;
571
 
    }
572
 
    
573
 
    program_name[0] = '\0';
574
 
    
575
 
    for (int i = 1; i < argc; i++){
576
 
      if (not strncmp(argv[i], db, 5)){
577
 
          strcat(strcat(strcat(program_name, db ), "="), basename);
578
 
          if(not strcmp(argv[i], db) or not strcmp(argv[i], program_name)){
579
 
            debug = true;
580
 
          }
581
 
        }
582
 
    }
583
 
    free(program_name);
584
 
 
 
564
 
 
565
    while (true){
 
566
      static struct option long_options[] = {
 
567
        {"debug", no_argument, (int *)&debug, 1},
 
568
        {"interface", required_argument, 0, 'i'},
 
569
        {0, 0, 0, 0} };
 
570
 
 
571
      int option_index = 0;
 
572
      ret = getopt_long (argc, argv, "i:", long_options, &option_index);
 
573
 
 
574
      if (ret == -1){
 
575
        break;
 
576
      }
 
577
      
 
578
      switch(ret){
 
579
      case 0:
 
580
        break;
 
581
      case 'i':
 
582
        interface = optarg;
 
583
        break;
 
584
      default:
 
585
        exit(EXIT_FAILURE);
 
586
      }
 
587
    }
 
588
    
585
589
    if (not debug){
586
590
      avahi_set_log_function(empty_log);
587
591
    }
647
651
    if (simple_poll)
648
652
        avahi_simple_poll_free(simple_poll);
649
653
 
650
 
    return ret;
 
654
    return returncode;
651
655
}